資料介紹
描述
?
深度學(xué)習(xí)極大地提高了計(jì)算機(jī)視覺(jué)的性能,使其能夠達(dá)到人類甚至在某些情況下甚至超人類水平的能力。在過(guò)去的幾年里,用于訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的框架一直在提高其用戶友好性,以至于具有一些 Python 編程技能的普通用戶可以訓(xùn)練和使用神經(jīng)網(wǎng)絡(luò)來(lái)完成廣泛的計(jì)算機(jī)視覺(jué)任務(wù),包括圖像分類、對(duì)象檢測(cè)和語(yǔ)義分割。
不過(guò)有一個(gè)警告——眾所周知,如果你想獲得好的結(jié)果,深度神經(jīng)網(wǎng)絡(luò)需要大量數(shù)據(jù)進(jìn)行訓(xùn)練。在某些情況下,您可以使用開(kāi)放數(shù)據(jù)集 - 然后問(wèn)題就解決了。
在圖像分類的情況下,可以通過(guò)抓取網(wǎng)絡(luò)獲得中小型數(shù)據(jù)集。對(duì)于對(duì)象檢測(cè),情況更加困難,因?yàn)橛?xùn)練對(duì)象檢測(cè)網(wǎng)絡(luò)不僅需要圖像,還需要注釋文件,其中包含邊界框坐標(biāo)。因此,如果有問(wèn)題的對(duì)象沒(méi)有可用的良好開(kāi)源檢測(cè)數(shù)據(jù)集,您唯一的選擇是手動(dòng)創(chuàng)建數(shù)據(jù)集,這可能是一項(xiàng)乏味的任務(wù)。
除非...
您可以使用合成數(shù)據(jù)自動(dòng)執(zhí)行數(shù)據(jù)集創(chuàng)建過(guò)程。有幾種方法可以生成用于對(duì)象檢測(cè)的合成數(shù)據(jù):
1)只需將對(duì)象粘貼到背景上并隨機(jī)化它們的方向/比例/位置
2)使用逼真的3D渲染引擎,如Unreal Engine
3) 使用 GAN 生成數(shù)據(jù)?當(dāng)然,在這種情況下,您已經(jīng)擁有一個(gè)能夠識(shí)別/檢測(cè)相關(guān)對(duì)象的網(wǎng)絡(luò)(GAN 中的鑒別器),所以這有點(diǎn)像雞與蛋的問(wèn)題
2022 年 4 月 4 日更新。我盡我所能定期更新我的文章,并根據(jù)您在 YouTube/Hackster 評(píng)論部分的反饋。如果您想表達(dá)對(duì)這些努力的支持和贊賞,請(qǐng)考慮給我買杯咖啡(或披薩):)。
在本文中,我們將重點(diǎn)介紹最簡(jiǎn)單和最容易剖析的方法 - 剪切粘貼。不要被腳本生成的圖像看似簡(jiǎn)單和不切實(shí)際的外觀所迷惑。卷積神經(jīng)網(wǎng)絡(luò)沒(méi)有邏輯或常識(shí)——因此對(duì)于我們的對(duì)象檢測(cè)網(wǎng)絡(luò),即使是看似荒謬的圖像也是一個(gè)很好的學(xué)習(xí)材料。
我的任務(wù)是MARK 機(jī)器人平臺(tái)的樂(lè)高檢測(cè)模型。我在 Kaggle 上找到了一個(gè)很好的樂(lè)高分類數(shù)據(jù)集,但沒(méi)有現(xiàn)成的檢測(cè)數(shù)據(jù)集。所以我決定重新設(shè)計(jì)用于為論文Cut, Paste and Learn: Surprisingly Easy Synthesis for Instance Detection生成合成場(chǎng)景的代碼。
下載并準(zhǔn)備對(duì)象實(shí)例
從這里下載樂(lè)高圖像數(shù)據(jù)集。它實(shí)際上也是使用 Autodesk Maya 2020 從 3D 模型程序生成的。
對(duì)于合成數(shù)據(jù)生成,我們將需要對(duì)象實(shí)例及其二進(jìn)制掩碼——在我們的例子中,由于樂(lè)高積木都在黑色背景上,我們可以簡(jiǎn)單地使用以下閾值腳本來(lái)生成這些掩碼。我們還隨機(jī)給樂(lè)高積木上色,因?yàn)槲覀兿MP蜋z測(cè)不同顏色的樂(lè)高積木。
# 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()
使用輸入文件夾的名稱運(yùn)行上述腳本(其中包含具有不同對(duì)象圖像的文件夾,每種類型的對(duì)象一個(gè))和輸出文件夾,其中將保存圖像和蒙版,例如
python helper.py objects output
您將看到正在處理和保存的圖像。
接下來(lái),克隆我的剪切、粘貼和學(xué)習(xí)論文代碼的分支——我將其更改為使用 Python 3 并接受.png 圖像作為掩碼。
git clone https://github.com/AIWintermuteAI/syndata-generation.git
安裝所有必需的依賴項(xiàng)(我建議您安裝依賴項(xiàng)并在 Python 的虛擬環(huán)境中執(zhí)行腳本,例如 conda 或 virtualenv)。
pip install -r requirements.txt
將帶有圖像和蒙版的文件夾放入 data_dir/objects_dir 并在 data_dir/backgrounds 中添加或更改背景圖片。干擾物是我們?cè)噲D檢測(cè)的其他不是物體的物體——我在做這個(gè)項(xiàng)目時(shí)沒(méi)有使用它們。然后使用以下命令運(yùn)行生成腳本:
python dataset_generator.py data_dir/objects_dir/lego/imgs output_dir/ --num 3 --scale --dontocclude
和...
獲得數(shù)據(jù)后,我們需要對(duì)其進(jìn)行適當(dāng)?shù)慕Y(jié)構(gòu)化。需要有 4 個(gè)文件夾——訓(xùn)練圖像、訓(xùn)練注釋、驗(yàn)證圖像和驗(yàn)證注釋。只需從剛剛生成的數(shù)據(jù)中剪切一些圖片和注釋,然后將它們粘貼到驗(yàn)證圖像和注釋文件夾中。確保剪切而不是復(fù)制圖像/注釋。
訓(xùn)練模型
您可以使用任何框架/腳本來(lái)訓(xùn)練模型 - 但是我建議使用aXeleRate,這是一個(gè)基于 Keras 的邊緣 AI 框架。它將自動(dòng)訓(xùn)練模型并將訓(xùn)練會(huì)話的最佳模型轉(zhuǎn)換為邊緣推理所需的格式 - 目前它支持將訓(xùn)練模型轉(zhuǎn)換為:.kmodel(K210)、.tflite 格式(提供完整的整數(shù)和動(dòng)態(tài)范圍量化支持),OpenVINO IR 模型格式。實(shí)驗(yàn)性支持:Google Edge TPU、TensorRT。
在本地機(jī)器上安裝 aXeleRate
pip install git+https://github.com/AIWintermuteAI/aXeleRate
要下載示例,請(qǐng)運(yùn)行:
git clone https://github.com/AIWintermuteAI/aXeleRate.git
您可以使用aXeleRate文件夾中的 tests_training_and_inference.py運(yùn)行快速測(cè)試。它將為每種模型類型運(yùn)行訓(xùn)練和推理,保存和轉(zhuǎn)換訓(xùn)練好的模型。由于它只訓(xùn)練 5 個(gè) epoch 并且數(shù)據(jù)集非常小,您將無(wú)法獲得有用的模型,但此腳本僅用于檢查是否存在錯(cuò)誤。
對(duì)于實(shí)際訓(xùn)練,您需要運(yùn)行以下命令:
python axelerate/train.py -c config/lego_detector.json
您可以從此處下載 example.json 配置文件和預(yù)訓(xùn)練模型。確保更改圖像/注釋訓(xùn)練和驗(yàn)證文件夾路徑以匹配它們?cè)谙到y(tǒng)上的位置。有關(guān)配置文件中附加參數(shù)的進(jìn)一步說(shuō)明,請(qǐng)查看本文。
推理
訓(xùn)練完成后,您可以使用以下命令在您的計(jì)算機(jī)上進(jìn)行快速健全性檢查并執(zhí)行推理:
python axelerate/infer.py -c config/lego_detector.json --weights path-to-h5-weights
以下步驟將取決于您要運(yùn)行訓(xùn)練模型的硬件。例如,對(duì)于 Raspberry Pi,使用 generated.tflite 模型和這個(gè)示例腳本。
在本文中,我們將使用基于 K210 的機(jī)器人平臺(tái)進(jìn)行 AI 教育,MARK(代表 Make A Robot Kit)。將項(xiàng)目文件夾中的.kmodel 文件復(fù)制到SD 卡中,并將SD 卡插入cyberEye 主板——cyberEye 是Maixduino 的定制版本。首先,讓我們使用來(lái)自 TinkerGen 的圖形編程環(huán)境 Codecraft 快速測(cè)試我們的機(jī)器人樂(lè)高檢測(cè)功能。
打開(kāi) Codecraft ,選擇 MARK(cyberEye) 作為設(shè)備,添加自定義模型擴(kuò)展并定義具有以下屬性的對(duì)象檢測(cè)模型:
然后使用新出現(xiàn)的塊創(chuàng)建以下代碼:
如果您覺(jué)得卡住了,可以從本文的附件中下載 Codecraft 的 .cdc 文件。
它適用于較大的樂(lè)高積木,但也可以檢測(cè)較小的積木。在找到四月標(biāo)簽后,機(jī)器人會(huì)接近四月標(biāo)簽,直到達(dá)到設(shè)定的距離。然后它放下樂(lè)高積木,轉(zhuǎn)身并從循環(huán)的開(kāi)頭繼續(xù)。
如果您使用相同型號(hào)和相同打印的 April Tag(A3 紙,tag36h11_1),您可以簡(jiǎn)單地在 MaixPy IDE 中執(zhí)行代碼并觀看您的機(jī)器人收集樂(lè)高積木!
如果您有任何問(wèn)題,請(qǐng)?jiān)贚inkedIn上添加我,并訂閱我的 YouTube 頻道,以獲得有關(guān)機(jī)器學(xué)習(xí)和機(jī)器人技術(shù)的更多有趣項(xiàng)目的通知。
- TinyML:使用合成數(shù)據(jù)的永遠(yuǎn)在線的音頻分類器
- 合成數(shù)據(jù)的不合理有效性
- TinyML:使用ChatGPT和合成數(shù)據(jù)檢測(cè)嬰兒哭聲
- PyTorch教程14.6之對(duì)象檢測(cè)數(shù)據(jù)集
- 可合成人像提取及半身像的生成對(duì)抗網(wǎng)絡(luò)算法 1次下載
- 基于改進(jìn)模型和區(qū)域分割的表情動(dòng)畫合成方法 2次下載
- 用于代碼注釋生成的語(yǔ)法輔助機(jī)制設(shè)計(jì) 19次下載
- 手語(yǔ)識(shí)別、翻譯及生成研究綜述 25次下載
- 用于網(wǎng)絡(luò)用戶行為聚類分析的簇標(biāo)簽自動(dòng)生成方法 15次下載
- 自動(dòng)生成數(shù)字密碼軟件1.71 PC版應(yīng)用程序免費(fèi)下載 0次下載
- dsPIC DSC DTMF 生成庫(kù)的詳細(xì)中文資料概述
- TMS320C54X生成數(shù)字信號(hào)處理器的設(shè)備的功能概述 1次下載
- 基于內(nèi)存云的大塊數(shù)據(jù)對(duì)象并行存取策略 0次下載
- 類對(duì)象測(cè)試數(shù)據(jù)自動(dòng)生成研究
- 面向對(duì)象軟件自動(dòng)生成在檢測(cè)系統(tǒng)中的應(yīng)用
- NVIDIA Nemotron-4 340B模型幫助開(kāi)發(fā)者生成合成訓(xùn)練數(shù)據(jù) 106次閱讀
- OpenCV4.8 C++實(shí)現(xiàn)YOLOv8 OBB旋轉(zhuǎn)對(duì)象檢測(cè) 1113次閱讀
- 對(duì)象檢測(cè)邊界框損失函數(shù)–從IOU到ProbIOU介紹 2059次閱讀
- YOLOv8實(shí)現(xiàn)旋轉(zhuǎn)對(duì)象檢測(cè) 1343次閱讀
- 【開(kāi)發(fā)者說(shuō)】鴻蒙原生應(yīng)用開(kāi)發(fā)——分布式數(shù)據(jù)對(duì)象 836次閱讀
- DDS信號(hào)生成模塊的Verilog實(shí)現(xiàn) 1146次閱讀
- 詳解對(duì)象檢測(cè)網(wǎng)絡(luò)性能評(píng)價(jià)指標(biāo)mAP計(jì)算 400次閱讀
- 數(shù)字頻率合成器的作用 841次閱讀
- Python中的類和對(duì)象詳解 942次閱讀
- 使用無(wú)監(jiān)督學(xué)習(xí)和合成數(shù)據(jù)作為數(shù)據(jù)增強(qiáng)方法來(lái)分類異常 920次閱讀
- 利用視覺(jué)語(yǔ)言模型對(duì)檢測(cè)器進(jìn)行預(yù)訓(xùn)練 1239次閱讀
- 詳談Python的數(shù)據(jù)模型和對(duì)象模型 2452次閱讀
- 谷歌新研究使用連續(xù)拍攝的一對(duì)非模糊圖像,能夠合成運(yùn)動(dòng)模糊圖像 2570次閱讀
- 如何使用ECDSA算法生成數(shù)字簽名 9033次閱讀
- 基于numpy實(shí)現(xiàn)合成梯度 2775次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多