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





