基于機(jī)器學(xué)習(xí)農(nóng)田驅(qū)鳥(niǎo)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)*
*本論文基于江蘇省大學(xué)生創(chuàng)新實(shí)踐項(xiàng)目scx1901 《一個(gè)通過(guò)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行鳥(niǎo)類識(shí)別的農(nóng)田驅(qū)鳥(niǎo)系統(tǒng)》。
1 課題介紹
1.1 題目來(lái)源
據(jù)可考數(shù)據(jù),每年農(nóng)田里已經(jīng)成熟的農(nóng)作物差不多會(huì)有25% 被鳥(niǎo)兒偷偷地啄食。經(jīng)過(guò)鳥(niǎo)類學(xué)家無(wú)數(shù)試驗(yàn)證明,鳥(niǎo)眼對(duì)532 nm 的綠色激光束最敏感[1],綠色激光束掃射過(guò)來(lái)時(shí),鳥(niǎo)類猶如看到一根綠色大棒,可以達(dá)到驅(qū)鳥(niǎo)效果,并且國(guó)內(nèi)外并沒(méi)有針對(duì)農(nóng)田成熟的驅(qū)鳥(niǎo)方案。
1.2 應(yīng)用背景
目前市面上已存在一些具有相同功能的產(chǎn)品,大多都使用紅外傳感器、微波運(yùn)動(dòng)傳感器來(lái)探測(cè)是否有鳥(niǎo)飛入,其均能實(shí)現(xiàn)探測(cè)是否有鳥(niǎo)類存在的效果,但是都具有以下缺點(diǎn):探測(cè)范圍小,多數(shù)產(chǎn)品探測(cè)半徑小于 10 m,只有少數(shù)能達(dá)到 20~30 m;探測(cè)目標(biāo)不明確,僅能夠探測(cè)是否有溫度較高的運(yùn)動(dòng)物體靠近,無(wú)法判斷靠近的物體是鳥(niǎo)類還是人類。而通過(guò)機(jī)器學(xué)習(xí)的算法使用攝像頭識(shí)別鳥(niǎo)類的方法即可以完美克服這些缺點(diǎn)。
2 平臺(tái)選擇
2.1 嵌入式平臺(tái)選擇
2.1.1 NVIDIA Jetson Nano
NVIDIA Jetson Nano 是NVIDIA 為新一代自主機(jī)器設(shè)計(jì)的嵌入式系統(tǒng),是一個(gè)低成本的AI 計(jì)算機(jī),具備的性能和能效可以運(yùn)行現(xiàn)代 AI 工作負(fù)載,并行運(yùn)行多個(gè)神經(jīng)網(wǎng)絡(luò),以及同時(shí)處理來(lái)自多個(gè)高清傳感器的數(shù)據(jù),開(kāi)發(fā)板價(jià)格在600~700 元之間。
2.1.2 勘智K210
勘智K210 采用RISC-V出庫(kù)器架構(gòu),具備試聽(tīng)一體,自主IP 核與可編程能力強(qiáng)三大特點(diǎn),支持機(jī)器視覺(jué)與聽(tīng)覺(jué)的多模態(tài)識(shí)別,可廣泛應(yīng)用于智能家居、智能園區(qū)、智能能耗和智能農(nóng)業(yè)等場(chǎng)景,價(jià)格相對(duì)較低,開(kāi)發(fā)板價(jià)格在70~150 元之間。
2.1.3 Rockchip RK3399 SoC
RK3399 是瑞芯微推出的一款低功耗、高性能的應(yīng)用處理器芯片,該芯片基于big.LITTLE 架構(gòu),即具有獨(dú)立的NEON 協(xié)同處理器的雙核Cortex-A72 及四核Cortex-A53 組合架構(gòu),主要應(yīng)用于計(jì)算機(jī)、個(gè)人互聯(lián)網(wǎng)移動(dòng)設(shè)備、VR、廣告機(jī)等智能終端設(shè)備。RK3399 內(nèi)置多個(gè)高性能硬件處理引擎,能夠支持多種格式的視頻解碼,如:4K×2K@60 fps 的H.264/H.265/VP9,也支持1 080 P@30 fps 的H.264/MVC/VP8 以及高質(zhì)量的JPEG編解碼和圖像的前后處理器。芯片價(jià)格昂貴,開(kāi)發(fā)板價(jià)格在900~1 000 元之間。
綜合考究,我們決定在初步搭建中選擇成本較低的K210 作為開(kāi)發(fā)平臺(tái),如果后期想要增加探測(cè)半徑,可以使用價(jià)格相對(duì)昂貴,性能更加強(qiáng)悍,可以驅(qū)動(dòng)更優(yōu)秀攝像頭的嵌入式系統(tǒng)。
2.2 模型選擇
2.2.1 官方模型
使用官方已經(jīng)訓(xùn)練好的20class.kfpkg 下載進(jìn)K210的kflash 來(lái)檢測(cè)檢測(cè)鳥(niǎo)類,因?yàn)槭亲R(shí)別20 種物體的檢測(cè)模型,經(jīng)常出現(xiàn)誤判,識(shí)別不及時(shí)等現(xiàn)象。
2.2.2 自己訓(xùn)練的鳥(niǎo)類模型
自己在網(wǎng)上下載包含20 978 個(gè)鳥(niǎo)類的15 698 張照片作為訓(xùn)練集,使用yolo 算法進(jìn)行訓(xùn)練,再轉(zhuǎn)化成可以下載進(jìn)K210 的kflash 的Kmodel 文件,解決了誤判,識(shí)別不及時(shí)等問(wèn)題。
顯而易見(jiàn),我們選擇了自己訓(xùn)練的BIRD.kmodel 作為我們鳥(niǎo)類模型的選擇。
3 采用方案
3.1 研究方案
第1 步: 由于使用Haar、SSD、YOLO、R-CNN等算法均能通過(guò)鳥(niǎo)類本身的形狀對(duì)鳥(niǎo)類進(jìn)行識(shí)別,算法的開(kāi)發(fā)流程[2-3]:
1) 收集一組正樣本(鳥(niǎo)類圖片)和負(fù)樣本(非鳥(niǎo)類的圖片)作為訓(xùn)練集;
2) 選擇一個(gè)合適的機(jī)器學(xué)習(xí)算法(可根據(jù)實(shí)際應(yīng)用進(jìn)行一定的修改);
3) 把訓(xùn)練集作為樣本,去訓(xùn)練機(jī)器學(xué)習(xí)模型,并評(píng)估模型性能,不斷優(yōu)化;
4) 當(dāng)模型的性能能夠滿足一定要求后,部署模型。最后形成的算法模型即可以用來(lái)進(jìn)行鳥(niǎo)類識(shí)別。
第2 步:通過(guò)算法給出鳥(niǎo)類的坐標(biāo),利用雙舵機(jī)系統(tǒng)驅(qū)動(dòng)激光器進(jìn)行全方位立體的精確“打擊”。
3.2 系統(tǒng)架構(gòu)
該嵌入式系統(tǒng)的主處理器是K210,該處理器與用于捕獲圖像的相機(jī)、雙舵機(jī)控制電路、步進(jìn)電機(jī)驅(qū)動(dòng)電路連接。它還連接到顯示屏之類的外圍設(shè)備,以方便用戶觀看設(shè)備狀態(tài),圖1 是驅(qū)鳥(niǎo)系統(tǒng)總體架構(gòu)。圖2 是驅(qū)鳥(niǎo)系統(tǒng)成品圖。
圖1 驅(qū)鳥(niǎo)系統(tǒng)圖
圖2 驅(qū)鳥(niǎo)系統(tǒng)成品圖
3.3 硬件平臺(tái)設(shè)計(jì)
3.3.1 雙自由度云臺(tái)舵機(jī)驅(qū)動(dòng)電路
舵機(jī)控制精度對(duì)于本系統(tǒng)的關(guān)鍵部件,舵機(jī)的輸出準(zhǔn)確性直接關(guān)系到本系統(tǒng)是否可以完成預(yù)定動(dòng)作指令,因此我們?cè)O(shè)計(jì)了這一塊雙自由度云臺(tái)舵機(jī)驅(qū)動(dòng)電路板。硬件電路設(shè)計(jì)在軟件上完成,包括電路原理圖的繪制和印刷電路板文件的制作,電子元器件選型和焊接由人工完成。
該模塊( 如圖3) 具有以下的電氣參數(shù):輸入電壓:3.6~23 V;輸出電壓:0.8 V~VIN;輸出最大電流:5 A。
圖3 舵機(jī)驅(qū)動(dòng)電路電路原理圖
3.3.2 步進(jìn)電機(jī)驅(qū)動(dòng)電路
A4988 是一款帶轉(zhuǎn)換器和過(guò)流保護(hù)的DMOS 微步驅(qū)動(dòng)器( 如圖4), 可在全、半、1/4、1/8 及1/16 步進(jìn)模式時(shí)操作雙極步進(jìn)電動(dòng)機(jī),輸出驅(qū)動(dòng)性能可達(dá)35±2 V,A4988 包括一個(gè)固定關(guān)斷時(shí)間電流穩(wěn)壓器,該穩(wěn)壓器可在慢或混合衰減模式下工作。轉(zhuǎn)換器是A4988 易于實(shí)施的關(guān)鍵。只要在“步進(jìn)”輸入中輸入一個(gè)脈沖,即可驅(qū)動(dòng)電動(dòng)機(jī)產(chǎn)生微步。無(wú)須進(jìn)行相位順序表、高頻率控制行或復(fù)雜的界面編程。該模塊具有以下的電氣參數(shù):工作電壓:8~35 V;連續(xù)電流:1 A;最大電流:2 A。
圖4 A4988模塊
3.3.3 激光模組
選擇了符合輸出532 nm 波長(zhǎng),達(dá)到驅(qū)鳥(niǎo)目的的綠色激光器,使用綠光TTL 調(diào)制(如圖5)。該模塊具有以下的電氣參數(shù):波長(zhǎng):532 nm;輸出功率:30 mW;工作電壓:2.7~5.0 V;工作電流:<280 mA。
圖5 激光模組
3.4 機(jī)械結(jié)構(gòu)
3.4.1 升降機(jī)
部分機(jī)械結(jié)構(gòu)設(shè)計(jì)在SolidWorks 軟件上完成,包括零部件設(shè)計(jì)和整體運(yùn)動(dòng)仿真,零部件選型和裝配由人工完成,機(jī)械結(jié)構(gòu)制作由3D 打印完成(如圖6、圖7)。
圖6 機(jī)械建模
圖7 3D打印實(shí)物
3.4.2 自由度云臺(tái)
使用由多功能支架、長(zhǎng)U 型支架、平面軸承和鋁板組成的2 自由度云臺(tái),如圖9。
圖9 自由度云臺(tái)
3.5 軟件設(shè)計(jì)
3.5.1 模型訓(xùn)練
在計(jì)算機(jī)上創(chuàng)建虛擬環(huán)境,并安裝必要軟件包與庫(kù)。將互聯(lián)網(wǎng)上下載的包含20 978 個(gè)鳥(niǎo)類的15 698 張照片作為訓(xùn)練集,使用labelImg 進(jìn)行注釋,再通過(guò)yolo 算法進(jìn)行訓(xùn)練獲得.tfile 文件,通過(guò)ncc_0.1_win 將.tfile文件轉(zhuǎn)為可以燒錄進(jìn)K210 flash 的.kmodel 文件[4]。
3.5.2 模型部署
在K210 上移植最新的可以運(yùn)行micropython 的MaixPy-0.5.0,然后將訓(xùn)練好的.kmodel 模型燒錄進(jìn)K210,再使用K210 通過(guò)雙自由度云臺(tái)舵機(jī)驅(qū)動(dòng)電路控制舵機(jī),使用識(shí)別到鳥(niǎo)類獲得的坐標(biāo)與捕獲到圖像中點(diǎn)進(jìn)行誤差分析,通過(guò)PID 算法控制激光模塊一直鎖定鳥(niǎo)類(如圖10)。
圖10 程序設(shè)計(jì)框圖
4 實(shí)驗(yàn)評(píng)估
4.1 仿真測(cè)試
使用鳥(niǎo)模型對(duì)系統(tǒng)的瞄準(zhǔn)精確度進(jìn)行多次實(shí)驗(yàn),發(fā)現(xiàn)在10 m內(nèi)系統(tǒng)的瞄準(zhǔn)精度非常高,識(shí)別速度非???,激光瞄準(zhǔn)運(yùn)動(dòng)鳥(niǎo)類十分平滑,每秒幀率達(dá)到10 幀以上。
4.2 進(jìn)步空間
當(dāng)前系統(tǒng)使用QVGA 的圖像,分辨率非常的低,如果使用性能更加優(yōu)秀的類似于NVIDIA Jetson Nano的嵌入式平臺(tái),并且提升下分辨率,再修改下PID 參數(shù),這套方案完全可以解決半徑50 m 以上的驅(qū)鳥(niǎo)任務(wù),
5 結(jié)論
為了解決農(nóng)田驅(qū)鳥(niǎo)這一問(wèn)題,參考了鳥(niǎo)眼對(duì)532 nm的綠色激光束敏感這一研究結(jié)果,設(shè)計(jì)出了一套既可以低成本又可以高成本的解決方案,將來(lái)使用這一方案的農(nóng)田驅(qū)鳥(niǎo)系統(tǒng)一定會(huì)在驅(qū)鳥(niǎo)領(lǐng)域占有一席之地。
參考文獻(xiàn):
[1] 于建友.一種基于532nm激光技術(shù)的智能驅(qū)鳥(niǎo)方法:中國(guó),CN201510832622.5[P].2017-6-6,
[2] HINTON G E,OSINDERO S,TEH Y W.A fast learning algorithm for deep belief nets[J]. Neural Comput., 2006(18):1527-1554.
[ 3 ] 周志華. 機(jī)器學(xué)習(xí): = M a c h i n elearning[M].北京:清華大學(xué)出版社,2016.
[4] JOSEPH R,FARHADI A.YOLOv3: An incremental improvement [ Z ] . p r e p r i n t ,arXiv:1804.02767.
(本文來(lái)源于《電子產(chǎn)品世界》雜志2021年3月期)
評(píng)論