為了殺蚊子,國外的一位博士用樹莓派DIY了一把激光滅蚊槍

  • DIY
  • 樹莓派
  • AI
Image placeholder
管理員 2021-03-10 15:50

全世界每年有70多萬人死于蚊蟲叮咬。這是世界上每年謀殺案數量的2倍多。在這方面,發明新的更有效的防蚊方法是必要的。本文首次利用機器視覺和1w激光對蚊蟲進行了綜合研究。用樹莓皮研制了激光裝置,用電流計改變激光的方向。我們開發了一個實時跟蹤蚊子的程序。探討了利用深度神經網絡、Haar級聯、機器學習等方法進行蚊類識別的可能性。詳細研究了圖像中蚊子的分類問題。提出了一種基于微控制器實現該裝置的建議,以供以后作為無人機的一部分使用。田間任何有害昆蟲都可以作為防治對象。


研究中使用的設備:

-???Raspberry Pi 3型號B+,Broadcom BCM2837B0,帶有64位四核處理器(ARM

Cortex-A53),頻率1.4ghz;

-???Pi攝像機,索尼IMX219 Exmor;

-???電流計,速度-20 kps;

-???功率激光器-1w,波長-450nm;


蚊子的大小可以從1毫米到5毫米不等,這是檢測和檢索蚊子坐標方法的主要標準。用超聲波監測蚊子的位置時,需要在不同的地方使用多個傳感器,并對它們的信息進行處理來計算位置,理論上只適合檢測一只蚊子,但如果有多只蚊子,裝置就不能正常工作。蚊子冷血引起的體溫和環境溫度一樣。由于熱成像儀的分辨率非常高,蚊子的溫度與背景相差不大,大約為0.1 C.在開闊區域工作時,聲納的使用有幾個困難,在那里必須使用窄波束和窄輻射模式的聲納。

經過分析,在本研究中,決定使用攝像機來探測和確定蚊子的坐標。攝像機檢測到蚊子后,為了增加激光受影響的可能性,必須提前預測蚊子的位置(超過0.2秒)。因此,有必要研究影響蚊蟲飛行行為的因素。

Syed等人[12]描述了蚊子對氣味的影響。Cortez等人[13]提出了蚊子飛行公式,這些公式是在考慮二氧化碳存在的情況下計算出來的。蚊子的速度是由一個確定的公式決定的:


s=Smax–(Smax-Smin)*F(b,b0) ?(1)


式中,Smax,Smin–蚊子的最大和最小速度,F是取值在0和1之間的斜坡函數。

在運行中,每△T時間單位更新一次每只蚊子的飛行方向和速度。蚊子的更新位置通過以下公式計算:

= =?(?)??+??? ? ? ?(2)


式中(xn,yn)-蚊子在時間步長n處的位置。數字d是在跟蹤和跟蹤之間變化的方向向量,V-風速。


考慮到借助攝像機檢測蚊子,對其進行跟蹤,并利用數學公式預測其進一步飛行,從而提高了陽性控制的概率。

利用預先訓練好的深度學習網絡對覆盆子皮進行蚊類監測,初步考慮采用深度學習方法實施。但是由于Raspberry Pi 3(1 GB)上的RAM有限,甚至Raspberry Pi 4(4 GB)的最大配置,以及1.5 Ghz的低處理器速度,使用深度神經網絡幾乎是不可能的(ResNet>100 MB,AlexNet>200 MB)。在嘗試使用擠壓網時,使用1×1和3×3卷積的新用法,我們成功地獲得了一個重量為5mb的模型,但是對于所需對象的存在的圖像處理結果大約是1秒。


用R-CNN、更快的R-CNN、YoloV3、4、5、RetinaNet進行實時檢測在識別速度上也存在同樣的問題。解決方案可能是使用nvidiajetsontx1和TX2這兩個計算神經網絡的特殊平臺。主要缺點是成本高。因此,我們關注可以在Raspberry PI上實現的方法,它允許您創建一個經濟緊湊的設備。幀間差分、背景差分和光流場分析是檢測運動目標最常用的方法之一。Barros等人[14]詳細介紹了這些方法的優缺點。


使用Hara級聯,你可以訓練一個模型來跟蹤一個物體,精確度很大程度上取決于訓練模型所用的照片數量。在發現的案例中,450張有蚊子的照片被用作陽性例子,500張照片被用作陰性例子。使用cv2.cvtColor函數按顏色檢測蚊子。此函數獲取原始圖像并變換顏色空間。在我們的例子中,HSV和RGB顏色空間被考慮。這種方法更便于實驗室測試,可以在蚊子和背景之間形成鮮明的色彩對比,研究蚊子的運動動態,測試預測蚊子飛行的功能。在自然生境中,由于顏色的多樣性,該方法的有效性接近于0。相機的大焦距并不能改善這種情況,因為蚊子本身沒有一個單一的色域,這意味著在程序中搜索時,它需要擴大顏色范圍。最后,它增加了噪音。


在高分辨率相機上使用類似光流的幀差可以跟蹤蚊子的飛行。在這種情況下,由于可見運動的圖像表示兩個圖像之間的每個點的偏移,因此在這種情況下,Hara級聯中存在的所有顏色噪聲和噪聲都無關緊要。這種方法的缺點是無法識別蚊子,因為在這種情況下,標準僅是蚊子的大小、運動的位移和靜態圖像的分析。在這種情況下,一個攝像頭應該覆蓋360度的半徑,因為攝像頭的恒定動態使得無法使用這些方法。


視頻中連續幀中對象在線位置的定義稱為跟蹤。在OpenCV庫中,TrackerCSRT,TrackerKCF,TrackerBoosting,TrackerMIL,TrackerTLD,TrackerMedianFlow,TrackerMOSSE。圖書館開發人員的網站上提供了相關說明。我們已經檢查了所有參數。最好使用-tracker=cv2.TrackerCSRT\u create。跟蹤的優點是比檢測速度快。因為當跟蹤前一幀中檢測到的對象時,程序知道初始數據——對象的外觀、位置、速度和移動方向。圖1顯示了用各種方法追蹤蚊子的情況,適用于2-4毫米大小的蚊子。


? ? ? ??

?

getmultimedia-1.gif

?

a、b、c

???

getmultimedia.gif

?

d、e、f

???????????????????????????????????

圖1。使用OpenCV跟蹤蚊子:a–跟蹤蚊子

cv2.TrackerCSRT\u create(),b–Hara cascade,c–彩色跟蹤,d–彩色跟蹤未成功,e–光流,f–幀差

?

圖1.d顯示了所有追蹤蚊子的方法都存在問題的情況,因為隨著飛行路徑的急劇變化,攝像機的速度不足以確定蚊子的形狀。因此,這一刻所有的方法都從視野中失去了蚊子。圖1.e顯示蚊子和許多噪聲的光學方法。


使用圖像預處理功能可以顯著提高機器視覺圖像的可讀性。在圖2中,通過具有不同參數的閾值函數OpencV進行光處理。

getmultimedia-2.jpeg

?

圖2通過閾值函數OpencV進行照片處理的結果

?

圖像數據可以用于分類問題,筆者利用卷積神經網絡獲得了-95%的分類精度。為了分類,建立了卷積神經網絡(CNN)。在第二次和第四次卷積之后,它由8層卷積\u 2D和MaxPooling2D組成。在除輸出完全連接層以外的所有層上,使用ReLU激活功能,最后一級使用softmax。為了簡化我們的模型,在每個子樣本層和第一個完全鏈接層之后使用了一個退出層。


該網絡是在一臺裝有AMD ryzen53600處理器和6gbgb的GTX1060圖形卡的固定計算機上訓練的。所得結果使我們可以得出結論,就分類而言,在圖像中找到蚊子并計算其精確坐標并不困難,但需要時間——超過1秒。分類有助于消滅蚊子,因為在這種情況下有足夠的時間,蚊子不會移動。但在這項研究中,在動力學上中和蚊子的任務是確定的。


利用立體視覺OpenCV函數來確定與物體的距離。同時,深度值與位移像素成反比,以及視差與蚊子顯示深度的關系,如圖3所示。

getmultimedia-1.jpeg?

圖3。相機的布局:d-一個稱為視差的值,Z-到物體的深度或距離,T-相機之間的距離,f-相機之間焦距的系數。


攝像機和物體之間的關系由以下公式描述:

(T-d)/(Z-f)=T/Z(3)

?

三。實驗研究

為了進行實驗研究,我們開發了下一個安裝裝置,如圖4所示。

?????? ?

?

getmultimedia-2.gif

?

圖4. 激光裝置:1-攝像機,2-電流計,3-覆盆子PI3,4-激光測距儀,5-激光器,6-電源,7-電機驅動器,8-電子信號處理板,9-帶蚊子的盒子

?

裝置的工作原理如圖5所示。

?

getmultimedia.jpeg

?

?

圖5。實驗方案:1盒蚊蟲,2-pi攝像機,3-Raspberry-PI3,4-激光,5-電流計,6-激光束

?

Raspberry PI 3 B+單板計算機,處理來自視頻的數字信號,確定物體的位置,并將數字信號傳輸到模擬板-3,在模擬板-3中,數字-模擬轉換器將信號轉換為0-5V的范圍。接下來,使用帶運算放大器的板,我們得到雙極電壓正負5五、 它用電流計-4的馬達驅動電路板,信號從那里傳到電流計-7。電流計在鏡子的幫助下改變激光-6的方向。系統由一個電源裝置-5供電。攝像機2確定到物體的距離。

與蚊子的拳擊距離激光系統300毫米。攝像機找到蚊子并將數據傳輸到電流計,電流計將鏡子放置在正確的位置,然后激光器打開。


算法工作裝置如圖6所示。

getmultimedia-3.gif

圖6 算法工作裝置

?

讀數取平均值;平均值取自陣列中180個不同樣本的讀數

使用各種OpenCV函數的實驗研究結果如表1所示。

表1. 實驗研究結果

搜索方法

蚊子的坐標,X,Y,mm

平均檢測時間(秒)

跟蹤成功

, %

用激光中和,%。用預測公式

用激光中和,%。沒有預測公式。

擊中激光脈沖后存活-

0.5秒,%

按顏色

從2,15到15,20

0,3??

65?

13?

10?

55?

通過跟蹤

從0,18到10,12

0,15?

76?

15?

13?

56?

哈爾瀑布

從13,0到10,20

1?

70?

8?

8?

50?

幀差

從0,18到20,20

0,1?

62?

3?

5?

75?

光流

從0,0到

20,20

~

~

0?

0?

~

?

本文所研制的樣機作用范圍有限。但與此同時,這項工作的結果證明了使用激光消滅蚊子的可能性。今后,要提高激光的毀傷能力,就必須提高激光作業的精度。


為了用Python語言實現跟蹤,編寫了各種算法,既可以跟蹤一只蚊子,也可以使用多線程函數,還可以使用陣列將蚊子位置的數據傳輸到電流計。實驗的成功可以通過使用更強大的激光來提高,這將使得在一秒鐘內消滅2只以上的蚊子成為可能。考慮到電流計的速度,它允許你在幾秒鐘內改變千分之一的位置,我們的速度被限制在消滅蚊子只由激光功率和中央處理器的功率。同時追蹤蚊子的數量取決于處理器的處理能力。

?

4討論和結論

限制使用激光技術消滅蚊子的因素之一是允許的病變面積小。分析了利用長焦鏡頭監測蚊蟲位置的可能性。作為激光裝置的一部分,使用長焦鏡頭和伺服電機沿z軸移動可以顯著增加滅蚊面積。為了調節到蚊子的不同距離,我們使用了-Esp8266,從而在帶有蚊子和音頻傳感器的盒子之間以及帶有覆盆子pi3的盒子之間實現了具有標準ieee802.11連接的WI-FI。蚊子飛行監控的距離取決于長焦鏡頭的分辨率。


已開發裝置的一個有希望的發展方向是使用STM32系列的STMicroelectronics微控制器。假設在X-CUBE-AI中,AI有一個STM32CubeMX的擴展包。這種擴展可以在不同的深度學習框架下運行,如Caffe、Keras、TensorFlow、Caffe、ConvNetJs等。因此,可以在靜止的計算機上訓練神經網絡,并且可以在GPU上進行計算。集成后使用一個優化的庫到一個32位微控制器STM32。


同時,使用微控制器代替單板計算機將顯著降低幾瓦的功耗。值得考慮的是各種編程語言,例如,C語言上的程序比python語言效率更高。


作為電機的驅動器,建議使用基于SMD組件的驅動器。例如,與可充電電池一樣,Thunder Power Adrenaline重量不超過179.69g,容量為1100mAh,這將大大縮小設備的尺寸,并將其重量降至450克。


最終是什么提高了設備的效率,因為它將有可能使用自主飛機的設備。現在許多公司專門生產一種能承受重負,能遠距離飛行而不充電的飛機。這些工作的結果將在隨后的研究中充分披露。


今后必須使用帶聚焦的激光器。在本研究中,由于激光與滅蚊盒之間的距離很小,預先配置的激光焦點沒有起到很大的作用,因為滅蚊盒的寬度是70mm。在視圖中,盒子近側的損傷面積比遠側的蚊蟲損傷面積大2%。但這可能是一個普遍的錯誤,在本研究中,我們不側重于此。


建議考慮更換用于證明能夠在相當長距離內消滅蚊子的音頻傳感器。作為一種用于確定距離的設備,可以使用具有高數據速率的激光測距儀,其中一個接口使用SPI。由于反射鏡可以在幾毫秒內改變位置,因此從技術實現上用激光測距儀進行監測并不困難。


由于蚊子的飛行速度為每秒1米,隨著距離從15米增加,伺服電機沿z軸的旋轉速度對結果影響很大。有鑒于此,建議使用的算法是這樣實現的:識別后,蚊子被分配編號,如果蚊子已經離開相機的觀察區域,則使用數學模型計算其坐標,并將激光焦點轉移到計算出的坐標。


在這種情況下,這將大大增加時間。否則,由于蚊子離開觀察區,為了確定準確的位置,必須在沿z軸轉動后再次處理來自相機的整個圖片,這從時間上來說是非常昂貴的。


使用神經網絡來預測蚊子的位置將導致安裝額外的微控制器,這將導致設備質量和電能消耗增加2倍。


在這項研究中,使用帶有強大激光的電流計來中和蚊子的想法被首次實現。該系統每秒能中和2只蚊子,而且效果很容易改善。實驗證明了用激光消滅蚊子的可行性。開發了一種用電流計改變激光方向的激光裝置。已經開發了一個實時監測蚊子的程序。給出了計算結果和實驗研究結果。實驗研究了各種滅蚊技術,并選擇了在樹莓PI庫OpenCV中使用的滅蚊最佳方案,該庫具有cv2.TrackerCSRT\u createm功能。


參考鏈接:(可能需要翻出去)

[1]https://www.preprints.org/manuscript/202101.0412/v1

[2]https://news.ycombinator.com/item?id=26376376

[3]https://www.youtube.com/watch?v=BKm8FolQ7jw

評論0