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