周亦哲 周慧玲 王威松
(北京郵電大學自動化學院,北京 100089)
在糧食儲藏過程中蟲害的發生和發展是需要密切關注的問題。目前,在我國普遍使用熏蒸藥劑磷化氫或者低氧儲糧以達到害蟲防治的目的[1]。使用熏蒸藥劑進行殺蟲時,對人畜都有很高的毒性[2],因為缺乏有效的監測手段,時常會有過度熏蒸情況發生,不僅會造成環境污染,而且會使害蟲的抗藥性增強[3]。隨著我國一些糧庫陸續安裝了儲糧害蟲圖像采集裝置,因此設想在使用磷化氫殺蟲過程中,通過投放蟲籠的方式或者誘捕的方式來實時監測儲糧害蟲死亡數量變化的情況,作為了解熏蒸效果以及指導熏蒸操作的參考依據。
在儲糧害蟲的檢測方法中,現有的方法包括誘捕法、聲測法、扦樣過篩法、機器視覺法和近紅外高光譜成像法等,這些研究工作主要集中在儲糧害蟲數量的計數與種類分類上[4-6],對于儲糧害蟲存活情況的在線監測方法很少,主要原因是圖像采集設備近一兩年才開始在糧倉內陸續安裝,因此基于視頻的儲糧害蟲數量和種類的識別算法研究工作正在逐漸展開。
近年來,使用深度卷積神經網絡[7]提取圖像特征,進行圖像的定位與識別,檢測準確率得到了很大的提升。在深度神經網絡的基礎上,2014年雙流法神經網絡首次被提出[8]。雙流是指空間流和時間流,雙流法是采用兩個并列的卷積神經網絡分別提取空間特征和時間特征,然后將兩種特征進行融合,從而提升網絡的識別效果。該網絡首次應用在視頻分類監測時,在視頻分類數據集UCF-101上的準確率達到了87%。之后又有一系列雙流法網絡被提出以提升視頻分類的效果[9-11]。
在本研究提出的基于深度卷積神經網絡的雙流法網絡中,空間流處理單獨的視頻幀得到害蟲的空間信息,時間流處理連續的幀差圖得到害蟲的運動信息,之后綜合害蟲的空間和運動信息聯合判斷儲糧害蟲的死亡情況。這種基于雙流法網絡的視頻檢測算法可以為殺蟲過程中害蟲死亡變化情況在線監測提供一種可能的自動化評估方法。
為了訓練與測試本研究的雙流法神經網絡,需要建立儲糧害蟲死亡過程的視頻數據集。由于赤擬谷盜分布于我國大部分地區,且危害較大[12],所以選擇赤擬谷盜作為研究對象,在自然場景中拍攝儲糧害蟲的死亡過程作為一種模擬,建立了害蟲死亡過程的視頻數據集。
分別通過小米手機和Superyes攝像頭拍攝視頻,建立視頻數據集。小米手機拍攝的視頻數據為30幀/s,視頻幀的分辨率為1 280×720像素,其中單頭儲糧害蟲的圖像分辨率為20×40像素左右。Superyes攝像頭可以攝像并自動生成文件夾儲存視頻,具有軟件拍照和防抖動功能。Superyes拍攝的視頻數據為30幀/s,視頻幀的分辨率為800×600像素,其中單頭儲糧害蟲的圖像分辨率為15×25像素左右。這兩種設備拍攝的視頻清晰度較高,可以捕捉活蟲與死蟲之間的差別。通過兩種設備拍攝數據集是為了增加數據的多樣性,加強識別算法的泛化能力。小米手機相機和Superyes攝像頭的具體參數如表1所示。

表1 小米手機相機和Superyes攝像頭具體參數
通過對儲糧害蟲死亡過程的實驗觀察,視頻中害蟲數量超過25頭會常常發生害蟲聚集現象。因此拍攝的視頻中的害蟲數量控制在25頭以下,通過簡化這個因素,將重點放在害蟲死亡判別的算法研究上。由于害蟲位置的變化較慢,因此從視頻中每隔50幀提取一張視頻幀,人工標記圖像中的所有害蟲的死、活情況和目標邊界框(以下簡稱目標框),最終完成帶標簽的圖片數據621張。在獲取視頻之后使用兩幀差分法處理相鄰幀生成幀差圖,用于提取害蟲的運動信息。圖1示例了2種設備的視頻幀和生成的幀差圖,表2為數據集中不同視頻時長對應的視頻數量和訓練集數量。

圖1 視頻幀和幀差圖

單個視頻時長10 s5 min30 min視頻數量/個90104訓練集數量/個7282
2 雙流法視頻檢測算法
在視頻檢測任務中,可以使用單流法完成視頻檢測的任務。單流法視頻檢測算法是從視頻流中選取視頻幀,通過圖像目標檢測算法得出害蟲的位置和害蟲死、活的分類。單流法算法只使用了視頻中的空間信息,視頻幀之間的運動信息未使用,導致運動信息的浪費,會影響視頻檢測的準確率。單流法視頻檢測算法流程圖如圖2所示。

圖2 單流法圖像檢測算法流程圖
雙流法視頻檢測算法是基于單流法視頻檢測算法進行改進的,它分為空間流和時間流2個網絡,其識別基本流程是:(1)從視頻流中選取視頻幀,通過兩幀差分法獲取4張幀差圖;(2)將選取的視頻幀送入空間流網絡中,采用圖像目標檢測算法對害蟲進行定位與分類;(3)將對應的4張幀差圖送入時間流網絡中,采用三維卷積神經網絡提取害蟲的運動信息輔助于害蟲死亡的分類;(4)將空間流特征與時間流特征進行融合,用以提升害蟲的分類準確率;(5)使用融合后的特征進行位置坐標回歸和分類,得到最終的害蟲定位與分類結果。雙流法視頻檢測算法流程圖如圖3所示。

圖3 雙流法視頻檢測算法流程圖
本數據集中最小的單頭儲糧害蟲的大小為15×25像素左右,屬于典型的小目標檢測任務。另外在儲糧害蟲死、活的判別過程中,高準確率十分重要,由于Faster R-CNN算法具有檢測精度高的特點[13],因此本研究選擇其作為目標檢測基礎算法。在目標檢測算法中,用于提取圖像特征的特征提取網絡十分重要,由于ResNet[14]網絡在以往ImageNet圖像分類比賽中的表現明顯優于AlxNet、VggNet、GoogleNet這些網絡[15],所以本研究使用ResNet101網絡為目標檢測算法的特征提取網絡。
為了對小尺度害蟲進行有效識別,本研究的空間流網絡對Faster R-CNN算法進行了改進,改進后的基本流程是:(1)通過調整輸入圖片大小,使視頻幀分辨率變為800×1 024像素;(2)將調整大小后的視頻幀送入二維(以下簡稱2d)卷積神經網絡ResNet中進行特征提取;(3)利用區域建議網絡(Region Proposal Networks,RPN)對ResNet網絡提取得到的特征圖提取候選區域,生成不同長寬比和不同尺寸的默認框(anchor),得到初始的害蟲位置候選框;(4)使用ResNet網絡提取到的不同尺寸的特征圖進行特征融合,對融合之后的特征圖進行目標框與默認框偏移量的回歸和害蟲分類;(5)對檢測到的候選框應用非極大值抑制算法(NMS),得到害蟲最終的預測框坐標和分類類別。
改進后的空間流網絡結構圖如圖4所示。方框內數字表示各個特征圖的大小,其中將用于特征融合的特征圖分別使用第三層(Conv2d_3)、第四層(Conv2d_4)、第五層(Conv2d_5)和第六層卷積層(Conv2d_6)的特征。在Faster R-CNN的基本流程(4)中,原始的Faster R-CNN算法使用特征圖Conv2d_5的特征生成區域建議后,只使用了Conv2d_5進行害蟲位置的回歸和種類的分類,但是由于Conv2d_5為原圖大小的1/16,會丟失小于16像素的害蟲的信息,所以會導致較多小目標害蟲發生漏檢的情況。由于圖像特征圖的局部細節特征和全局語義特征對于定位任務來說同樣重要[16],單獨使用Conv2d_5層特征進行回歸不能同時利用局部細節特征和全局語義特征。而特征圖Conv2d_3的大小為原圖的1/8,包含了更多的局部細節特征。所以本研究在Conv2d_3后添加一個短連接,并且增加一個Roi Pooling層,將RPN區域建議網絡提取的建議區域映射到Conv2d_3結構輸出的特征圖上,之后將Conv2d_3的局部細節特征和Conv2d_5的全局語義特征相融合,用以提升小目標害蟲的識別準確率,增加的短連接的連接方式如圖4中虛線部分所示。
視頻序列具有連續性的特點,在視頻數據中如果沒有活蟲,則連續幀的變化很微弱,如果存在活蟲,則連續的幀和幀之間會有明顯地變化。通過用兩幀差分法將相鄰兩幀對應的像素點相減,判斷灰度差的絕對值,當絕對值超過一定閾值時,即可判斷為活蟲,從而實現害蟲的運動信息的提取。兩幀差分法的具體步驟為:讀取視頻、選取兩幀、圖像灰度化、圖像濾波、幀間做差、二值化、形態學操作。
生成幀差圖之后,使用三維(以下簡稱3d)卷積神經網絡提取儲糧害蟲的運動信息[17]。3d卷積是通過堆疊多個連續的幀差圖組成一個立方體,然后在立方體中運用3d卷積核捕捉運動信息的。
本研究提出的時間流網絡結構如圖5所示,其中用于特征融合的特征圖分別來自第三層(Conv3d_3)、第四層(Conv3d_4)、第五層(Conv3d_5)和第六層卷積層(Conv3d_6)的特征。時間流網絡以4張幀差圖作為網絡的輸入,使用3d卷積層和3d池化層提取幀差圖的特征。
在進行空間流特征和時間流特征的融合時,有多種不同的融合方式選擇。本研究實驗了4種融合方式:特征求和(Sum)、特征合并(Concate)、特征取最大值(Max)和特征卷積(Conv)。實驗在特征融合位置為Conv2d_6+Conv3d_6的情況下進行,表3所示的是各種特征融合方式的平均準確率[18](Mean Average Precision,MAP)。通過比較結果可以看出,采用特征求和(Sum)的方式檢測效果更好。

圖4 空間流網絡結構圖

圖5 時間流網絡結構圖

圖6 雙流法特征融合位置圖

表3 不同融合方式的平均準確率
在進行空間流特征和時間流特征的融合時,有多種不同的融合位置選擇,將融合位置分為4種情況進行實驗。實驗是在融合方式為特征求和(Sum)的情況下進行,融合的位置分別是:Conv2d_3+Conv3d_3、Conv2d_4+Conv3d_4、Conv2d_5+Conv3d_5和Conv2d_6+Conv3d_6,分別對應了圖6中的①②③④虛線的位置。表4所示的是各種特征融合位置的平均準確率。可以看出,將Conv2d_6+Conv3d_6(位置④)進行特征融合的方式得到了更好的檢測效果。

表4 不同融合位置的平均準確率
3 實驗與評估
3.1.1 數據增強:在數據輸入的時候對圖片進行反轉操作以擴充訓練數據,擴充后的數據量為原始數據量的2倍;
3.1.2 預訓練:使用遷移學習[19]的方式,在圖像分類數據庫ImageNet上預先訓練的模型,來初始化網絡中的參數;
3.1.3 獲得幀差圖:使用Opencv處理視頻幀,使用每一個視頻幀相鄰前2個時刻和后2個時刻的視頻幀,生成4張幀差圖;
3.1.4 超參數設置:在訓練過程中,通過多次實驗測試得到下面超參數初始值:學習率為0.01,每一批次的訓練數量batch size為16,區域建議網絡RPN中的anchor大小設置為{4,8,16,32},極大值抑制參數NMS為0.7,采用的隨機梯度下降SGD優化器進行網絡優化。
為了驗證雙流法視頻檢測算法對于儲糧害蟲的檢測能力,訓練了單流法視頻檢測算法與雙流法視頻檢測算法進行對比。表5所示的是兩種算法在不同基礎網絡情況下儲糧害蟲的分類和定位的平均正確率。通過比較結果可以得出,采用基于Faster R-CNN+ResNet101(ours)的雙流法視頻檢測算法得到了更好的檢測效果,平均準確率達到了89.3%。

表5 不同算法的平均準確率
圖7為雙流法視頻檢測算法與單流法視頻檢測算法的害蟲檢測效果對比圖,其中圖7a和圖7c是小米手機拍攝的視頻幀檢測結果,圖7b和圖7d是Superyes攝像頭拍攝的視頻幀檢測結果,可以看到雙流法視頻檢測網絡可以有效改善害蟲誤檢的情況。
4 結論
本研究將視頻中的空間流和時間流相結合,提出了一種雙流法視頻檢測算法用于判別儲糧害蟲的死、活情況。本文使用小米5手機和Superyes攝像頭拍攝視頻,對赤擬谷盜建立了儲糧害蟲視頻數據集,視頻為30幀/s,視頻數據集的視頻數量為104個,視頻的總時長達到200 min;對Faster R-CNN目標檢測算法使用特征融合的方法進行改進,使算法能夠更好地檢測出小尺度害蟲,提高害蟲的定位準確率;運用雙流法在目標檢測過程中加入害蟲的運動信息,提高死蟲與活蟲的分類準確率;在視頻數據的測試集上驗證了模型的有效性。經過實驗測試,雙流法視頻檢測算法識別準確率達到了89.3%,比單流法視頻檢測算法提高了6.5%的準確率,從而證明了雙流法視頻檢測算法的有效性,可以較為準確地反映害蟲死亡過程中存活情況的實時判斷,也對糧庫殺蟲防治的量化指導進行了積極的探索。

注:a~b為單流法檢測結果;c~d為雙流法檢測結果。圖7 單流法和雙流法檢測結果