周亦哲 周慧玲 王威松
(北京郵電大學(xué)自動(dòng)化學(xué)院,北京 100089)
在糧食儲(chǔ)藏過程中蟲害的發(fā)生和發(fā)展是需要密切關(guān)注的問題。目前,在我國(guó)普遍使用熏蒸藥劑磷化氫或者低氧儲(chǔ)糧以達(dá)到害蟲防治的目的[1]。使用熏蒸藥劑進(jìn)行殺蟲時(shí),對(duì)人畜都有很高的毒性[2],因?yàn)槿狈τ行У谋O(jiān)測(cè)手段,時(shí)常會(huì)有過度熏蒸情況發(fā)生,不僅會(huì)造成環(huán)境污染,而且會(huì)使害蟲的抗藥性增強(qiáng)[3]。隨著我國(guó)一些糧庫(kù)陸續(xù)安裝了儲(chǔ)糧害蟲圖像采集裝置,因此設(shè)想在使用磷化氫殺蟲過程中,通過投放蟲籠的方式或者誘捕的方式來實(shí)時(shí)監(jiān)測(cè)儲(chǔ)糧害蟲死亡數(shù)量變化的情況,作為了解熏蒸效果以及指導(dǎo)熏蒸操作的參考依據(jù)。
在儲(chǔ)糧害蟲的檢測(cè)方法中,現(xiàn)有的方法包括誘捕法、聲測(cè)法、扦樣過篩法、機(jī)器視覺法和近紅外高光譜成像法等,這些研究工作主要集中在儲(chǔ)糧害蟲數(shù)量的計(jì)數(shù)與種類分類上[4-6],對(duì)于儲(chǔ)糧害蟲存活情況的在線監(jiān)測(cè)方法很少,主要原因是圖像采集設(shè)備近一兩年才開始在糧倉(cāng)內(nèi)陸續(xù)安裝,因此基于視頻的儲(chǔ)糧害蟲數(shù)量和種類的識(shí)別算法研究工作正在逐漸展開。
近年來,使用深度卷積神經(jīng)網(wǎng)絡(luò)[7]提取圖像特征,進(jìn)行圖像的定位與識(shí)別,檢測(cè)準(zhǔn)確率得到了很大的提升。在深度神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,2014年雙流法神經(jīng)網(wǎng)絡(luò)首次被提出[8]。雙流是指空間流和時(shí)間流,雙流法是采用兩個(gè)并列的卷積神經(jīng)網(wǎng)絡(luò)分別提取空間特征和時(shí)間特征,然后將兩種特征進(jìn)行融合,從而提升網(wǎng)絡(luò)的識(shí)別效果。該網(wǎng)絡(luò)首次應(yīng)用在視頻分類監(jiān)測(cè)時(shí),在視頻分類數(shù)據(jù)集UCF-101上的準(zhǔn)確率達(dá)到了87%。之后又有一系列雙流法網(wǎng)絡(luò)被提出以提升視頻分類的效果[9-11]。
在本研究提出的基于深度卷積神經(jīng)網(wǎng)絡(luò)的雙流法網(wǎng)絡(luò)中,空間流處理單獨(dú)的視頻幀得到害蟲的空間信息,時(shí)間流處理連續(xù)的幀差圖得到害蟲的運(yùn)動(dòng)信息,之后綜合害蟲的空間和運(yùn)動(dòng)信息聯(lián)合判斷儲(chǔ)糧害蟲的死亡情況。這種基于雙流法網(wǎng)絡(luò)的視頻檢測(cè)算法可以為殺蟲過程中害蟲死亡變化情況在線監(jiān)測(cè)提供一種可能的自動(dòng)化評(píng)估方法。
為了訓(xùn)練與測(cè)試本研究的雙流法神經(jīng)網(wǎng)絡(luò),需要建立儲(chǔ)糧害蟲死亡過程的視頻數(shù)據(jù)集。由于赤擬谷盜分布于我國(guó)大部分地區(qū),且危害較大[12],所以選擇赤擬谷盜作為研究對(duì)象,在自然場(chǎng)景中拍攝儲(chǔ)糧害蟲的死亡過程作為一種模擬,建立了害蟲死亡過程的視頻數(shù)據(jù)集。
分別通過小米手機(jī)和Superyes攝像頭拍攝視頻,建立視頻數(shù)據(jù)集。小米手機(jī)拍攝的視頻數(shù)據(jù)為30幀/s,視頻幀的分辨率為1 280×720像素,其中單頭儲(chǔ)糧害蟲的圖像分辨率為20×40像素左右。Superyes攝像頭可以攝像并自動(dòng)生成文件夾儲(chǔ)存視頻,具有軟件拍照和防抖動(dòng)功能。Superyes拍攝的視頻數(shù)據(jù)為30幀/s,視頻幀的分辨率為800×600像素,其中單頭儲(chǔ)糧害蟲的圖像分辨率為15×25像素左右。這兩種設(shè)備拍攝的視頻清晰度較高,可以捕捉活蟲與死蟲之間的差別。通過兩種設(shè)備拍攝數(shù)據(jù)集是為了增加數(shù)據(jù)的多樣性,加強(qiáng)識(shí)別算法的泛化能力。小米手機(jī)相機(jī)和Superyes攝像頭的具體參數(shù)如表1所示。
表1 小米手機(jī)相機(jī)和Superyes攝像頭具體參數(shù)
通過對(duì)儲(chǔ)糧害蟲死亡過程的實(shí)驗(yàn)觀察,視頻中害蟲數(shù)量超過25頭會(huì)常常發(fā)生害蟲聚集現(xiàn)象。因此拍攝的視頻中的害蟲數(shù)量控制在25頭以下,通過簡(jiǎn)化這個(gè)因素,將重點(diǎn)放在害蟲死亡判別的算法研究上。由于害蟲位置的變化較慢,因此從視頻中每隔50幀提取一張視頻幀,人工標(biāo)記圖像中的所有害蟲的死、活情況和目標(biāo)邊界框(以下簡(jiǎn)稱目標(biāo)框),最終完成帶標(biāo)簽的圖片數(shù)據(jù)621張。在獲取視頻之后使用兩幀差分法處理相鄰幀生成幀差圖,用于提取害蟲的運(yùn)動(dòng)信息。圖1示例了2種設(shè)備的視頻幀和生成的幀差圖,表2為數(shù)據(jù)集中不同視頻時(shí)長(zhǎng)對(duì)應(yīng)的視頻數(shù)量和訓(xùn)練集數(shù)量。
圖1 視頻幀和幀差圖
單個(gè)視頻時(shí)長(zhǎng)10 s5 min30 min視頻數(shù)量/個(gè)90104訓(xùn)練集數(shù)量/個(gè)7282
2 雙流法視頻檢測(cè)算法
在視頻檢測(cè)任務(wù)中,可以使用單流法完成視頻檢測(cè)的任務(wù)。單流法視頻檢測(cè)算法是從視頻流中選取視頻幀,通過圖像目標(biāo)檢測(cè)算法得出害蟲的位置和害蟲死、活的分類。單流法算法只使用了視頻中的空間信息,視頻幀之間的運(yùn)動(dòng)信息未使用,導(dǎo)致運(yùn)動(dòng)信息的浪費(fèi),會(huì)影響視頻檢測(cè)的準(zhǔn)確率。單流法視頻檢測(cè)算法流程圖如圖2所示。
圖2 單流法圖像檢測(cè)算法流程圖
雙流法視頻檢測(cè)算法是基于單流法視頻檢測(cè)算法進(jìn)行改進(jìn)的,它分為空間流和時(shí)間流2個(gè)網(wǎng)絡(luò),其識(shí)別基本流程是:(1)從視頻流中選取視頻幀,通過兩幀差分法獲取4張幀差圖;(2)將選取的視頻幀送入空間流網(wǎng)絡(luò)中,采用圖像目標(biāo)檢測(cè)算法對(duì)害蟲進(jìn)行定位與分類;(3)將對(duì)應(yīng)的4張幀差圖送入時(shí)間流網(wǎng)絡(luò)中,采用三維卷積神經(jīng)網(wǎng)絡(luò)提取害蟲的運(yùn)動(dòng)信息輔助于害蟲死亡的分類;(4)將空間流特征與時(shí)間流特征進(jìn)行融合,用以提升害蟲的分類準(zhǔn)確率;(5)使用融合后的特征進(jìn)行位置坐標(biāo)回歸和分類,得到最終的害蟲定位與分類結(jié)果。雙流法視頻檢測(cè)算法流程圖如圖3所示。
圖3 雙流法視頻檢測(cè)算法流程圖
本數(shù)據(jù)集中最小的單頭儲(chǔ)糧害蟲的大小為15×25像素左右,屬于典型的小目標(biāo)檢測(cè)任務(wù)。另外在儲(chǔ)糧害蟲死、活的判別過程中,高準(zhǔn)確率十分重要,由于Faster R-CNN算法具有檢測(cè)精度高的特點(diǎn)[13],因此本研究選擇其作為目標(biāo)檢測(cè)基礎(chǔ)算法。在目標(biāo)檢測(cè)算法中,用于提取圖像特征的特征提取網(wǎng)絡(luò)十分重要,由于ResNet[14]網(wǎng)絡(luò)在以往ImageNet圖像分類比賽中的表現(xiàn)明顯優(yōu)于AlxNet、VggNet、GoogleNet這些網(wǎng)絡(luò)[15],所以本研究使用ResNet101網(wǎng)絡(luò)為目標(biāo)檢測(cè)算法的特征提取網(wǎng)絡(luò)。
為了對(duì)小尺度害蟲進(jìn)行有效識(shí)別,本研究的空間流網(wǎng)絡(luò)對(duì)Faster R-CNN算法進(jìn)行了改進(jìn),改進(jìn)后的基本流程是:(1)通過調(diào)整輸入圖片大小,使視頻幀分辨率變?yōu)?00×1 024像素;(2)將調(diào)整大小后的視頻幀送入二維(以下簡(jiǎn)稱2d)卷積神經(jīng)網(wǎng)絡(luò)ResNet中進(jìn)行特征提??;(3)利用區(qū)域建議網(wǎng)絡(luò)(Region Proposal Networks,RPN)對(duì)ResNet網(wǎng)絡(luò)提取得到的特征圖提取候選區(qū)域,生成不同長(zhǎng)寬比和不同尺寸的默認(rèn)框(anchor),得到初始的害蟲位置候選框;(4)使用ResNet網(wǎng)絡(luò)提取到的不同尺寸的特征圖進(jìn)行特征融合,對(duì)融合之后的特征圖進(jìn)行目標(biāo)框與默認(rèn)框偏移量的回歸和害蟲分類;(5)對(duì)檢測(cè)到的候選框應(yīng)用非極大值抑制算法(NMS),得到害蟲最終的預(yù)測(cè)框坐標(biāo)和分類類別。
改進(jìn)后的空間流網(wǎng)絡(luò)結(jié)構(gòu)圖如圖4所示。方框內(nèi)數(shù)字表示各個(gè)特征圖的大小,其中將用于特征融合的特征圖分別使用第三層(Conv2d_3)、第四層(Conv2d_4)、第五層(Conv2d_5)和第六層卷積層(Conv2d_6)的特征。在Faster R-CNN的基本流程(4)中,原始的Faster R-CNN算法使用特征圖Conv2d_5的特征生成區(qū)域建議后,只使用了Conv2d_5進(jìn)行害蟲位置的回歸和種類的分類,但是由于Conv2d_5為原圖大小的1/16,會(huì)丟失小于16像素的害蟲的信息,所以會(huì)導(dǎo)致較多小目標(biāo)害蟲發(fā)生漏檢的情況。由于圖像特征圖的局部細(xì)節(jié)特征和全局語(yǔ)義特征對(duì)于定位任務(wù)來說同樣重要[16],單獨(dú)使用Conv2d_5層特征進(jìn)行回歸不能同時(shí)利用局部細(xì)節(jié)特征和全局語(yǔ)義特征。而特征圖Conv2d_3的大小為原圖的1/8,包含了更多的局部細(xì)節(jié)特征。所以本研究在Conv2d_3后添加一個(gè)短連接,并且增加一個(gè)Roi Pooling層,將RPN區(qū)域建議網(wǎng)絡(luò)提取的建議區(qū)域映射到Conv2d_3結(jié)構(gòu)輸出的特征圖上,之后將Conv2d_3的局部細(xì)節(jié)特征和Conv2d_5的全局語(yǔ)義特征相融合,用以提升小目標(biāo)害蟲的識(shí)別準(zhǔn)確率,增加的短連接的連接方式如圖4中虛線部分所示。
視頻序列具有連續(xù)性的特點(diǎn),在視頻數(shù)據(jù)中如果沒有活蟲,則連續(xù)幀的變化很微弱,如果存在活蟲,則連續(xù)的幀和幀之間會(huì)有明顯地變化。通過用兩幀差分法將相鄰兩幀對(duì)應(yīng)的像素點(diǎn)相減,判斷灰度差的絕對(duì)值,當(dāng)絕對(duì)值超過一定閾值時(shí),即可判斷為活蟲,從而實(shí)現(xiàn)害蟲的運(yùn)動(dòng)信息的提取。兩幀差分法的具體步驟為:讀取視頻、選取兩幀、圖像灰度化、圖像濾波、幀間做差、二值化、形態(tài)學(xué)操作。
生成幀差圖之后,使用三維(以下簡(jiǎn)稱3d)卷積神經(jīng)網(wǎng)絡(luò)提取儲(chǔ)糧害蟲的運(yùn)動(dòng)信息[17]。3d卷積是通過堆疊多個(gè)連續(xù)的幀差圖組成一個(gè)立方體,然后在立方體中運(yùn)用3d卷積核捕捉運(yùn)動(dòng)信息的。
本研究提出的時(shí)間流網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,其中用于特征融合的特征圖分別來自第三層(Conv3d_3)、第四層(Conv3d_4)、第五層(Conv3d_5)和第六層卷積層(Conv3d_6)的特征。時(shí)間流網(wǎng)絡(luò)以4張幀差圖作為網(wǎng)絡(luò)的輸入,使用3d卷積層和3d池化層提取幀差圖的特征。
在進(jìn)行空間流特征和時(shí)間流特征的融合時(shí),有多種不同的融合方式選擇。本研究實(shí)驗(yàn)了4種融合方式:特征求和(Sum)、特征合并(Concate)、特征取最大值(Max)和特征卷積(Conv)。實(shí)驗(yàn)在特征融合位置為Conv2d_6+Conv3d_6的情況下進(jìn)行,表3所示的是各種特征融合方式的平均準(zhǔn)確率[18](Mean Average Precision,MAP)。通過比較結(jié)果可以看出,采用特征求和(Sum)的方式檢測(cè)效果更好。
圖4 空間流網(wǎng)絡(luò)結(jié)構(gòu)圖
圖5 時(shí)間流網(wǎng)絡(luò)結(jié)構(gòu)圖
圖6 雙流法特征融合位置圖
表3 不同融合方式的平均準(zhǔn)確率
在進(jìn)行空間流特征和時(shí)間流特征的融合時(shí),有多種不同的融合位置選擇,將融合位置分為4種情況進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)是在融合方式為特征求和(Sum)的情況下進(jìn)行,融合的位置分別是:Conv2d_3+Conv3d_3、Conv2d_4+Conv3d_4、Conv2d_5+Conv3d_5和Conv2d_6+Conv3d_6,分別對(duì)應(yīng)了圖6中的①②③④虛線的位置。表4所示的是各種特征融合位置的平均準(zhǔn)確率??梢钥闯?,將Conv2d_6+Conv3d_6(位置④)進(jìn)行特征融合的方式得到了更好的檢測(cè)效果。
表4 不同融合位置的平均準(zhǔn)確率
3 實(shí)驗(yàn)與評(píng)估
3.1.1 數(shù)據(jù)增強(qiáng):在數(shù)據(jù)輸入的時(shí)候?qū)D片進(jìn)行反轉(zhuǎn)操作以擴(kuò)充訓(xùn)練數(shù)據(jù),擴(kuò)充后的數(shù)據(jù)量為原始數(shù)據(jù)量的2倍;
3.1.2 預(yù)訓(xùn)練:使用遷移學(xué)習(xí)[19]的方式,在圖像分類數(shù)據(jù)庫(kù)ImageNet上預(yù)先訓(xùn)練的模型,來初始化網(wǎng)絡(luò)中的參數(shù);
3.1.3 獲得幀差圖:使用Opencv處理視頻幀,使用每一個(gè)視頻幀相鄰前2個(gè)時(shí)刻和后2個(gè)時(shí)刻的視頻幀,生成4張幀差圖;
3.1.4 超參數(shù)設(shè)置:在訓(xùn)練過程中,通過多次實(shí)驗(yàn)測(cè)試得到下面超參數(shù)初始值:學(xué)習(xí)率為0.01,每一批次的訓(xùn)練數(shù)量batch size為16,區(qū)域建議網(wǎng)絡(luò)RPN中的anchor大小設(shè)置為{4,8,16,32},極大值抑制參數(shù)NMS為0.7,采用的隨機(jī)梯度下降SGD優(yōu)化器進(jìn)行網(wǎng)絡(luò)優(yōu)化。
為了驗(yàn)證雙流法視頻檢測(cè)算法對(duì)于儲(chǔ)糧害蟲的檢測(cè)能力,訓(xùn)練了單流法視頻檢測(cè)算法與雙流法視頻檢測(cè)算法進(jìn)行對(duì)比。表5所示的是兩種算法在不同基礎(chǔ)網(wǎng)絡(luò)情況下儲(chǔ)糧害蟲的分類和定位的平均正確率。通過比較結(jié)果可以得出,采用基于Faster R-CNN+ResNet101(ours)的雙流法視頻檢測(cè)算法得到了更好的檢測(cè)效果,平均準(zhǔn)確率達(dá)到了89.3%。
表5 不同算法的平均準(zhǔn)確率
圖7為雙流法視頻檢測(cè)算法與單流法視頻檢測(cè)算法的害蟲檢測(cè)效果對(duì)比圖,其中圖7a和圖7c是小米手機(jī)拍攝的視頻幀檢測(cè)結(jié)果,圖7b和圖7d是Superyes攝像頭拍攝的視頻幀檢測(cè)結(jié)果,可以看到雙流法視頻檢測(cè)網(wǎng)絡(luò)可以有效改善害蟲誤檢的情況。
4 結(jié)論
本研究將視頻中的空間流和時(shí)間流相結(jié)合,提出了一種雙流法視頻檢測(cè)算法用于判別儲(chǔ)糧害蟲的死、活情況。本文使用小米5手機(jī)和Superyes攝像頭拍攝視頻,對(duì)赤擬谷盜建立了儲(chǔ)糧害蟲視頻數(shù)據(jù)集,視頻為30幀/s,視頻數(shù)據(jù)集的視頻數(shù)量為104個(gè),視頻的總時(shí)長(zhǎng)達(dá)到200 min;對(duì)Faster R-CNN目標(biāo)檢測(cè)算法使用特征融合的方法進(jìn)行改進(jìn),使算法能夠更好地檢測(cè)出小尺度害蟲,提高害蟲的定位準(zhǔn)確率;運(yùn)用雙流法在目標(biāo)檢測(cè)過程中加入害蟲的運(yùn)動(dòng)信息,提高死蟲與活蟲的分類準(zhǔn)確率;在視頻數(shù)據(jù)的測(cè)試集上驗(yàn)證了模型的有效性。經(jīng)過實(shí)驗(yàn)測(cè)試,雙流法視頻檢測(cè)算法識(shí)別準(zhǔn)確率達(dá)到了89.3%,比單流法視頻檢測(cè)算法提高了6.5%的準(zhǔn)確率,從而證明了雙流法視頻檢測(cè)算法的有效性,可以較為準(zhǔn)確地反映害蟲死亡過程中存活情況的實(shí)時(shí)判斷,也對(duì)糧庫(kù)殺蟲防治的量化指導(dǎo)進(jìn)行了積極的探索。
注:a~b為單流法檢測(cè)結(jié)果;c~d為雙流法檢測(cè)結(jié)果。圖7 單流法和雙流法檢測(cè)結(jié)果