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