如何創(chuàng)建自定義對(duì)象檢測(cè)AI模型
本教程將指導(dǎo)您在樹莓派AI相機(jī)上創(chuàng)建和運(yùn)行自定義對(duì)象檢測(cè)AI模型。它是為初學(xué)者設(shè)計(jì)的,可以一步一步地跟隨。
在樹莓派AI相機(jī)上運(yùn)行自定義AI模型涉及幾個(gè)技術(shù)步驟,包括準(zhǔn)備訓(xùn)練代碼和優(yōu)化相機(jī)硬件的預(yù)訓(xùn)練模型。這個(gè)過程一開始會(huì)讓人覺得難以承受。
為了簡(jiǎn)化樹莓派AI相機(jī)的AI模型開發(fā),我們專門為開發(fā)人員創(chuàng)建了示例代碼。使用此示例,您將能夠直接在AI相機(jī)上訓(xùn)練和部署自己的對(duì)象檢測(cè)模型。
在本教程中,我們將使用一個(gè)公開可用的幾何形狀(圓形、三角形和正方形)數(shù)據(jù)集來演示從訓(xùn)練到部署的完整工作流。
本文概述
?使用提供的示例代碼構(gòu)建自己的對(duì)象檢測(cè)AI模型
?使用Docker或傳統(tǒng)的本地設(shè)置設(shè)置培訓(xùn)環(huán)境
?生成優(yōu)化的模型文件,并部署到您的樹莓派AI相機(jī)
系統(tǒng)需求
部署
?樹莓派(與AI相機(jī)兼容的任何型號(hào))
?樹莓派AI相機(jī)
用于模型訓(xùn)練
?帶有NVIDIA GPU的計(jì)算機(jī)(強(qiáng)烈推薦用于高效訓(xùn)練)
?Ubuntu 22.04(或兼容的Linux發(fā)行版)
?Python 3.10
注意:雖然GPU顯著加快訓(xùn)練速度,但你可以在CPU上訓(xùn)練,但可能需要更長(zhǎng)的時(shí)間。
本地環(huán)境建設(shè)
請(qǐng)注意:本節(jié)介紹在您的機(jī)器上本地設(shè)置培訓(xùn)環(huán)境。如果您更喜歡使用Docker,請(qǐng)查看存儲(chǔ)庫的README中的Docker部分。
1. 克隆存儲(chǔ)庫
2. 設(shè)置
安裝必要的軟件包。
3. 創(chuàng)建并激活Python 3.10虛擬環(huán)境
本教程假設(shè)使用Python 3.10,所以首先,讓我們確認(rèn)已經(jīng)安裝了3.10。
注意:由于所需庫的版本依賴關(guān)系,請(qǐng)確保使用Python 3.10。
如果顯示如下,則表示安裝了Python 3.10:
如果你還沒有安裝Python 3.10,你可以按照以下步驟安裝,例如:
接下來,創(chuàng)建一個(gè)虛擬環(huán)境。
4. 安裝軟件包
5. 確認(rèn)安裝成功
步驟1:訓(xùn)練模型
示例提供了以下7個(gè)配置文件。
ini文件的角色
為了保持條理,我們將所有重要的設(shè)置(訓(xùn)練、量化和評(píng)估)存儲(chǔ)在一個(gè)方便的.ini文件中。
其特點(diǎn)是,您可以靈活地調(diào)整訓(xùn)練條件,只需更改設(shè)置,而無需直接重寫Python代碼。您可以選擇數(shù)據(jù)集和任務(wù),并調(diào)整參數(shù)。
創(chuàng)建對(duì)象檢測(cè)AI模型
在本節(jié)中,我們將使用幾何形狀的數(shù)據(jù)集構(gòu)建一個(gè)對(duì)象檢測(cè)模型:圓形、三角形和正方形。
移動(dòng)到存儲(chǔ)ini文件的samples文件夾,運(yùn)行以下命令讀取ini文件并開始訓(xùn)練。
下面的命令將根據(jù)指定的.ini文件對(duì)模型進(jìn)行訓(xùn)練和量化。
訓(xùn)練將開始,如圖所示。
訓(xùn)練和模型量化完成后,度量將顯示如下。mAP為0.84,AP@50為0.99,說明培訓(xùn)成功。
這會(huì)生成以下模型文件:
步驟2:對(duì)訓(xùn)練好的模型進(jìn)行量化和轉(zhuǎn)換
將量化模型轉(zhuǎn)換并打包成與樹莓派AI相機(jī)兼容的格式。
注意:繼續(xù)在venv環(huán)境中工作,使用與用于訓(xùn)練的相同的TensorFlow版本進(jìn)行量化。版本不匹配導(dǎo)致錯(cuò)誤。
本教程解釋了轉(zhuǎn)換的過程。Keras to network。rpk,我們可以上傳到IMX500。
1. 安裝Edge-MDT(模型開發(fā)工具包),包括量化、壓縮和轉(zhuǎn)換AI模型所需的工具:
2. 執(zhí)行如下命令:
步驟3:AI相機(jī)包裝
注意:??從這里開始,操作將在Raspberry Pi??上進(jìn)行
將轉(zhuǎn)換后的文件夾移動(dòng)到樹莓派。在本教程中,文件夾名稱為convert_result。
1. 安裝必要的工具:
注意:執(zhí)行該步驟前,請(qǐng)確保convert_result/packerOut.zip文件存在。
2. 將模型打包到一個(gè)RPK文件中:
步驟4:在樹莓派上部署
1. 在樹莓派上安裝必要的庫:
2. 克隆picamera2 Python庫:
3. 創(chuàng)建用于對(duì)象檢測(cè)的類文件。創(chuàng)建custom_label.txt,寫入如下內(nèi)容:
4. 現(xiàn)在讓我們?cè)贏I相機(jī)上運(yùn)行我們的自定義模型
選擇網(wǎng)絡(luò)。您創(chuàng)建的RPK模型,并選擇上面創(chuàng)建的custom_label.txt文件:
結(jié)果
目標(biāo)檢測(cè)模型工作!在下面的圖片中,你可以看到模型正確地識(shí)別了我們數(shù)據(jù)集中的每個(gè)幾何形狀。圓圈、正方形和三角形都用它們各自的標(biāo)簽進(jìn)行檢測(cè)。
用你自己的數(shù)據(jù)集進(jìn)行訓(xùn)練
準(zhǔn)備好使用自己的數(shù)據(jù)集了嗎?以下是需要改變的地方:
1. 更新.ini配置文件:
?[DATASET] NAME = YourDatasetName
?[MODEL] CLASS_NUM =類的個(gè)數(shù)
?[TRAINER] CONFIG =你的YAML配置文件
2. 編輯custom_label.txt:
用您自己的類標(biāo)簽替換形狀名稱(每行一個(gè))。
常見錯(cuò)誤及解決方法
下面是您可能遇到的典型錯(cuò)誤的修復(fù)程序。如果您遇到任何其他錯(cuò)誤,請(qǐng)?jiān)谙旅娴腻e(cuò)誤消息中添加注釋。
?在模型轉(zhuǎn)換期間發(fā)生錯(cuò)誤
?原因:sdsp.app.AppKt使用Java 17(類文件版本61.0)編譯。
?解決方案:您需要將Java版本更新到Java 17或更高版本。
當(dāng)錯(cuò)誤發(fā)生時(shí),如果您檢查Java版本,您可能會(huì)發(fā)現(xiàn)正在使用低于17的版本。
在這種情況下,您需要更新如下:
結(jié)論
完成本教程非常棒!您現(xiàn)在已經(jīng)具備了為樹莓派AI相機(jī)創(chuàng)建自定義對(duì)象檢測(cè)模型的技能。
將這些技巧應(yīng)用到你自己的項(xiàng)目中:
?自定義對(duì)象檢測(cè)您的特定需求
?機(jī)器人或物聯(lián)網(wǎng)中的邊緣人工智能應(yīng)用
?實(shí)時(shí)視覺系統(tǒng)
本文編譯自hackster.io





