RM新时代网站-首页

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>用于對象檢測的合成數(shù)據(jù)生成

用于對象檢測的合成數(shù)據(jù)生成

2023-06-25 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

?

?

深度學(xué)習(xí)極大地提高了計算機視覺的性能,使其能夠達(dá)到人類甚至在某些情況下甚至超人類水平的能力。在過去的幾年里,用于訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的框架一直在提高其用戶友好性,以至于具有一些 Python 編程技能的普通用戶可以訓(xùn)練和使用神經(jīng)網(wǎng)絡(luò)來完成廣泛的計算機視覺任務(wù),包括圖像分類、對象檢測和語義分割。

不過有一個警告——眾所周知,如果你想獲得好的結(jié)果,深度神經(jīng)網(wǎng)絡(luò)需要大量數(shù)據(jù)進(jìn)行訓(xùn)練。在某些情況下,您可以使用開放數(shù)據(jù)集 - 然后問題就解決了。

在圖像分類的情況下,可以通過抓取網(wǎng)絡(luò)獲得中小型數(shù)據(jù)集。對于對象檢測,情況更加困難,因為訓(xùn)練對象檢測網(wǎng)絡(luò)不僅需要圖像,還需要注釋文件,其中包含邊界框坐標(biāo)。因此,如果有問題的對象沒有可用的良好開源檢測數(shù)據(jù)集,您唯一的選擇是手動創(chuàng)建數(shù)據(jù)集,這可能是一項乏味的任務(wù)。

除非...

您可以使用合成數(shù)據(jù)自動執(zhí)行數(shù)據(jù)集創(chuàng)建過程。有幾種方法可以生成用于對象檢測的合成數(shù)據(jù):

1)只需將對象粘貼到背景上并隨機化它們的方向/比例/位置

2)使用逼真的3D渲染引擎,如Unreal Engine

3) 使用 GAN 生成數(shù)據(jù)?當(dāng)然,在這種情況下,您已經(jīng)擁有一個能夠識別/檢測相關(guān)對象的網(wǎng)絡(luò)(GAN 中的鑒別器),所以這有點像雞與蛋的問題

2022 年 4 月 4 日更新。我盡我所能定期更新我的文章,并根據(jù)您在 YouTube/Hackster 評論部分的反饋。如果您想表達(dá)對這些努力的支持和贊賞,請考慮給我買杯咖啡(或披薩):)。

在本文中,我們將重點介紹最簡單和最容易剖析的方法 - 剪切粘貼。不要被腳本生成的圖像看似簡單和不切實際的外觀所迷惑。卷積神經(jīng)網(wǎng)絡(luò)沒有邏輯或常識——因此對于我們的對象檢測網(wǎng)絡(luò),即使是看似荒謬的圖像也是一個很好的學(xué)習(xí)材料。

poYBAGNYhJSABk25AAEDYNuTw3w632.png
在這些照片中,重力似乎消失了。嗯,YOLO 不知道重力
?

我的任務(wù)是MARK 機器人平臺的樂高檢測模型。我在 Kaggle 上找到了一個很好的樂高分類數(shù)據(jù)集,但沒有現(xiàn)成的檢測數(shù)據(jù)集。所以我決定重新設(shè)計用于為論文Cut, Paste and Learn: Surprisingly Easy Synthesis for Instance Detection生成合成場景的代碼

下載并準(zhǔn)備對象實例

從這里下載樂高圖像數(shù)據(jù)集。它實際上也是使用 Autodesk Maya 2020 從 3D 模型程序生成的。

對于合成數(shù)據(jù)生成,我們將需要對象實例及其二進(jìn)制掩碼——在我們的例子中,由于樂高積木都在黑色背景上,我們可以簡單地使用以下閾值腳本來生成這些掩碼。我們還隨機給樂高積木上色,因為我們希望模型檢測不同顏色的樂高積木。

# Standard imports
import cv2
import numpy as np;
import os
import time
import random
import sys

colors = ([1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 1, 0], [0, 1, 1], [1, 0, 1])
input_folder = sys.argv[1]
output_folder = sys.argv[2]
try:
    os.mkdir(os.path.join(os.path.join(output_folder, "imgs")))
    os.mkdir(os.path.join(os.path.join(output_folder, "masks")))
except Exception:
    pass
for folder in os.listdir(input_folder):
    for file in os.listdir(os.path.join(input_folder, folder)):
        print(file)
        img = cv2.imread(os.path.join(input_folder, folder, file))
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        ret, thresh = cv2.threshold(gray, 1,255, cv2.THRESH_BINARY_INV)
        
        #coloring
        RGB = random.randint(0, len(colors)-1)  
        img[thresh == 0] *= np.array(colors[RGB], dtype='uint8')
        
        #writing to files
        cv2.imwrite(os.path.join(os.path.join(output_folder, "imgs", file)), img)
        cv2.imwrite(os.path.join(os.path.join(output_folder, "masks", file)), thresh)
        
        cv2.imshow('final', img)
        cv2.waitKey(50)
cv2.destroyAllWindows()

使用輸入文件夾的名稱運行上述腳本(其中包含具有不同對象圖像的文件夾,每種類型的對象一個)和輸出文件夾,其中將保存圖像和蒙版,例如

python helper.py objects output
pYYBAGNYhJaABgpOAAA3Svr9VfQ811.png
?

您將看到正在處理和保存的圖像。

poYBAGNYhJmAE_GyAACRAxyCywA710.png
?

接下來,克隆我的剪切、粘貼和學(xué)習(xí)論文代碼的分支——我將其更改為使用 Python 3 并接受.png 圖像作為掩碼。

git clone https://github.com/AIWintermuteAI/syndata-generation.git

安裝所有必需的依賴項(我建議您安裝依賴項并在 Python 的虛擬環(huán)境中執(zhí)行腳本,例如 conda 或 virtualenv)。

pip install -r requirements.txt

將帶有圖像和蒙版的文件夾放入 data_dir/objects_dir 并在 data_dir/backgrounds 中添加或更改背景圖片。干擾物是我們試圖檢測的其他不是物體的物體——我在做這個項目時沒有使用它們。然后使用以下命令運行生成腳本:

python dataset_generator.py data_dir/objects_dir/lego/imgs output_dir/ --num 3 --scale --dontocclude

和...

這就是我在幾秒鐘內(nèi)生成數(shù)千個數(shù)據(jù)樣本時的想法
?

獲得數(shù)據(jù)后,我們需要對其進(jìn)行適當(dāng)?shù)慕Y(jié)構(gòu)化。需要有 4 個文件夾——訓(xùn)練圖像、訓(xùn)練注釋、驗證圖像和驗證注釋。只需從剛剛生成的數(shù)據(jù)中剪切一些圖片和注釋,然后將它們粘貼到驗證圖像和注釋文件夾中。確保剪切而不是復(fù)制圖像/注釋。

訓(xùn)練模型

您可以使用任何框架/腳本來訓(xùn)練模型 - 但是我建議使用aXeleRate,這是一個基于 Keras 的邊緣 AI 框架它將自動訓(xùn)練模型并將訓(xùn)練會話的最佳模型轉(zhuǎn)換為邊緣推理所需的格式 - 目前它支持將訓(xùn)練模型轉(zhuǎn)換為:.kmodel(K210)、.tflite 格式(提供完整的整數(shù)和動態(tài)范圍量化支持),OpenVINO IR 模型格式。實驗性支持:Google Edge TPU、TensorRT。

pYYBAGNYhJuAGwZaAAAQfLNBZgw732.png
?

在本地機器上安裝 aXeleRate

pip install git+https://github.com/AIWintermuteAI/aXeleRate

要下載示例,請運行:

git clone https://github.com/AIWintermuteAI/aXeleRate.git

您可以使用aXeleRate文件夾中的 tests_training_and_inference.py運行快速測試。它將為每種模型類型運行訓(xùn)練和推理,保存和轉(zhuǎn)換訓(xùn)練好的模型。由于它只訓(xùn)練 5 個 epoch 并且數(shù)據(jù)集非常小,您將無法獲得有用的模型,但此腳本僅用于檢查是否存在錯誤。

對于實際訓(xùn)練,您需要運行以下命令:

python axelerate/train.py -c config/lego_detector.json

您可以從此處下載 example.json 配置文件和預(yù)訓(xùn)練模型。確保更改圖像/注釋訓(xùn)練和驗證文件夾路徑以匹配它們在系統(tǒng)上的位置。有關(guān)配置文件中附加參數(shù)的進(jìn)一步說明,請查看本文。

推理

訓(xùn)練完成后,您可以使用以下命令在您的計算機上進(jìn)行快速健全性檢查并執(zhí)行推理:

python axelerate/infer.py -c config/lego_detector.json --weights path-to-h5-weights

以下步驟將取決于您要運行訓(xùn)練模型的硬件例如,對于 Raspberry Pi,使用 generated.tflite 模型和這個示例腳本。

在本文中,我們將使用基于 K210 的機器人平臺進(jìn)行 AI 教育,MARK(代表 Make A Robot Kit)。將項目文件夾中的.kmodel 文件復(fù)制到SD 卡中,并將SD 卡插入cyberEye 主板——cyberEye 是Maixduino 的定制版本。首先,讓我們使用來自 TinkerGen 的圖形編程環(huán)境 Codecraft 快速測試我們的機器人樂高檢測功能。

打開 Codecraft ,選擇 MARK(cyberEye) 作為設(shè)備,添加自定義模型擴展并定義具有以下屬性的對象檢測模型:

poYBAGNYhJ2AYNXLAAB_dh42_XE383.png
?

然后使用新出現(xiàn)的塊創(chuàng)建以下代碼:

poYBAGNYhJ-ACKy-AACY5Li9eUA672.png
?

如果您覺得卡住了,可以從本文的附件中下載 Codecraft 的 .cdc 文件。

?

它適用于較大的樂高積木,但也可以檢測較小的積木。在找到四月標(biāo)簽后,機器人會接近四月標(biāo)簽,直到達(dá)到設(shè)定的距離。然后它放下樂高積木,轉(zhuǎn)身并從循環(huán)的開頭繼續(xù)。

如果您使用相同型號和相同打印的 April Tag(A3 紙,tag36h11_1),您可以簡單地在 MaixPy IDE 中執(zhí)行代碼并觀看您的機器人收集樂高積木!

如果您有任何問題,請在LinkedIn上添加我,并訂閱我的 YouTube 頻道,以獲得有關(guān)機器學(xué)習(xí)和機器人技術(shù)的更多有趣項目的通知。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
RM新时代网站-首页