RK3588 邊緣計算應(yīng)用:文冠果成熟度檢測
60 多年過去了,盡管輝光管已經(jīng)停產(chǎn),有很多工程師仍然對它情有獨鐘。我用 8 塊液晶顯示屏制作了一個擬輝光管時鐘,感受復(fù)古元素的美感,表達(dá)對過去經(jīng)典的敬意。
文冠果是一種生長于北方的木本油料樹種,其所產(chǎn)的高級木本食用油非常適合長期儲存。目前傳統(tǒng)檢測文冠果的技術(shù)相對落后,并且存在人工檢測效率低的問題。香橙派5 Plus主控芯片為RK3588,它是瑞芯微電子推出的一款高性能芯片,該芯片集成了強(qiáng)大的CPU和NPU,提供高達(dá)6TOPS的算力,使其在復(fù)雜的視覺處理任務(wù)中表現(xiàn)卓越,特別適合機(jī)器視覺邊緣計算應(yīng)用。為了深入挖掘RK3588的視覺檢測潛力,我們將其應(yīng)用于農(nóng)業(yè)領(lǐng)域文冠果的成熟度檢測。這個任務(wù)涉及圖像識別中以文冠果為目標(biāo)的成熟度檢測,通過圖像分析來判斷文冠果的成熟狀態(tài),從而為果農(nóng)提供有價值的信息。
設(shè)計方案
首先我們構(gòu)建了一個文冠果成熟度檢測系統(tǒng),利用 RK3588 的計算能力實現(xiàn)自動化識別,檢測效果如圖 1 所示。系統(tǒng)首先使用攝像頭捕捉文冠果的圖像,然后通過預(yù)訓(xùn)練的深度學(xué)習(xí)模型對圖像進(jìn)行分析。模型能夠識別不同成熟度的果實,并根據(jù)成熟度等級提供相應(yīng)的反饋。當(dāng)系統(tǒng)識別到果實達(dá)到最佳采摘時期時,會發(fā)送通知給果農(nóng),提示果實可以采摘。
![]()
這個任務(wù)要求系統(tǒng)能夠從攝像頭圖像中識別文冠果并準(zhǔn)確判斷其成熟度。由于一張圖像中可能包含多個不同成熟階段的文冠果,且每個文冠果的大小、形狀和顏色都不相同,因此這一任務(wù)融合了圖像分類與位置定位。要求在文冠果成熟度檢測中不僅能夠識別圖中的文冠果,還需要給出每個文冠果的具體位置和成熟度,這比單一的分類任務(wù)要復(fù)雜得多。Yolo 算法是一種創(chuàng)新的目標(biāo)檢測方法,其核心特點:一次性檢測、統(tǒng)一的框架以及實時處理能力。因此我們選用了較新的 Yolov8 算法。
硬件清單
本文用到的部分硬件清單見附表。
![]()
制作過程
本系統(tǒng)利用高清攝像頭對文冠果拍攝進(jìn)行樣本采集,通過 USB 接口傳輸至香橙派 5 Plus 邊緣計算平臺。在香橙派 5 Plus 上,將采集的文冠果圖片數(shù)據(jù)導(dǎo)入部署的 Yolov8 模型上,經(jīng)模型快速訓(xùn)練推理后,在顯示屏上呈現(xiàn)推理結(jié)果。系統(tǒng)流程如圖 2 所示。大家可以掃描目錄頁電子資源二維碼獲取程序文件。
![]()
第一步:進(jìn)行文冠果的樣本采集,實地拍攝樣本大于 1000 張。建議使用與實際拍攝時一致的手機(jī)、拍攝環(huán)境和拍攝角度,通過對照片進(jìn)行初步篩選,獲取不同時期的果實照片,如圖 3 所示。
![]()
第 二 步: 對 采 集 的 文冠 果 數(shù) 據(jù) 進(jìn) 行 標(biāo) 注, 安 裝Labelimg進(jìn)行數(shù)據(jù)集標(biāo)注。
(1)通過輸入 pip 命令,安裝 Labelimg 標(biāo)注軟件。
(2)配置 predefined_classes.txt,以便于提高標(biāo)注的速度。
(3)通過在終端輸入Labelimg 啟 動 軟 件, 單 擊“Open Dir”打開照片所在的文件夾,單擊“ChangeSave Dir”將保存路徑設(shè)置為照片的原始路徑,并在 View 菜單中,修改為自動保存模式(Auto Save Mode)。
(4) 我 們 將 文 冠 果 照 片 為 3 類,Immature標(biāo)簽為未成熟,Ripe 標(biāo)簽為成熟,可采摘標(biāo)簽為Bursts。按 W 鍵啟用標(biāo)注功能,用鼠標(biāo)畫出矩形方框,對果實進(jìn)行標(biāo)注,松開鼠標(biāo)后,并在彈出的菜單中選擇我們預(yù)先設(shè)定好的 3 類標(biāo)簽。重復(fù)以上步驟,將所有圖片標(biāo)注完成就組成了文冠果的數(shù)據(jù)集,標(biāo)注文冠果數(shù)據(jù)如圖 4 所示。
![]()
第三步:配置 Yolov8 環(huán)境訓(xùn)練模型。
(1)安裝 pytorch、ultralytics 等。
(2)分割數(shù)據(jù)集,運行腳本 Split_Dataset.py,按照 8:2 的比例將文冠果數(shù)據(jù)集拆分為訓(xùn)練集和驗證集,其中訓(xùn)練集用于訓(xùn)練 Yolov8 網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)權(quán)值,驗證集用于驗證訓(xùn)練的參數(shù)權(quán)重是否滿足文冠果成熟度的量化要求。
(3) 編 寫 配 置 文 件 train-config.yaml, 及訓(xùn) 練 腳 本 Yolo-train.py。 然 后 通 過 運 行 python Yolo-train.py 命 令 進(jìn) 行 訓(xùn) 練, 等 待 訓(xùn) 練 結(jié) 束,Yolov8 模型訓(xùn)練結(jié)束,如圖 5 所示,展示了 3 種文冠果標(biāo)簽的訓(xùn)練結(jié)果。
![]()
第四步:轉(zhuǎn)化為 RKNN 模型部署至 RK3588。
(1)將 best.pt 文件導(dǎo)出為 ONNX 的通用模型文件,圖 6 所示為 ONNX 模型轉(zhuǎn)化完畢。
![]()
(2) 在 Ubuntu 20.04 系 統(tǒng) 中 安 裝 RKNNToolkit2 進(jìn)行模型轉(zhuǎn)換的環(huán)境準(zhǔn)備工作,再準(zhǔn)備所要用到的文件。
(3)使用 convert.py 對 ONNX 模型進(jìn)行轉(zhuǎn)換,轉(zhuǎn)化為 RKNN 模型以方便部署。
(4)在香橙派板端利用 rknn-toolkit2-lite 的Python API 板端推理模型,通過運行 Yolov8.py進(jìn)行模型推理。模型推理部分結(jié)果如圖 7 所示。
![]()
實驗訓(xùn)練
在數(shù)據(jù)集的準(zhǔn)備過程中,我們需要將文件的圖片隨機(jī)分配到 train(訓(xùn)練集)和 val(驗證集)兩個文件夾中,用于模型的訓(xùn)練和驗證。首先設(shè)置數(shù)據(jù)集劃分的比例,訓(xùn)練集占 80%,驗證集占 20%。然后遍歷數(shù)據(jù)集文件夾下的所有圖像和對應(yīng)的標(biāo)注文件,并根據(jù)設(shè)定的比例隨機(jī)分配到訓(xùn)練集和驗證集。最后將圖像和標(biāo)注文件移動到目標(biāo)文件夾中,確保每個圖像和其對應(yīng)的標(biāo)注文件一起被分配。具體實現(xiàn)如程序 1 所示。
![]()
![]()
![]()
在模型部署過程中,我們經(jīng)常需要將模型從一種格式轉(zhuǎn)換為另一種格式,以適應(yīng)不同的硬件平臺。例如,將 ONNX 格式的模型轉(zhuǎn)換為 RKNN 格式,以便RK3399Pro、RK1808 等在瑞芯微 NPU 上運行。程序 2 描述了如何將 ONNX 模型轉(zhuǎn)換為 RKNN 模型,并通過提供的數(shù)據(jù)集來改進(jìn)模型的量化精度。
![]()
![]()
在目標(biāo)檢測的實際應(yīng)用中,我們需要加載訓(xùn)練好的模型,對圖像進(jìn)行推理和檢測。Yolov8.py 演示了如何加載 Yolov8 模型,并對指定的圖像進(jìn)行推理,提供了從模型加載、圖像預(yù)處理、推理、結(jié)果后處理到結(jié)果展示的完整流程,幫助我們在不同的平臺上快速部署和驗證模型的性能,簡化后主要的程序如程序 3 所示。
![]()
![]()
![]()
結(jié)語
深度學(xué)習(xí)一定需要很高的專業(yè)水平、很復(fù)雜的技術(shù)嗎? RK3588 的高性能邊緣計算、廣泛應(yīng)用、易部署的優(yōu)勢,降低了嵌入式 AI 應(yīng)用落地的難度。在實際應(yīng)用中,這樣的系統(tǒng)可以幫助農(nóng)業(yè)生產(chǎn)者更準(zhǔn)確地進(jìn)行收獲決策,優(yōu)化收獲時間和提高整體產(chǎn)量。如果你有一個好玩的基于目標(biāo)檢測的創(chuàng)意,進(jìn)行采樣、標(biāo)記、訓(xùn)練之后,Yolov8 算法會提供現(xiàn)成訓(xùn)練環(huán)境,完善的訓(xùn)練工具,就能為你的興趣和夢想插上一雙翅膀。本項目由沈陽師范大學(xué)創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目資助,申請編號:202407035。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.