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