劉思琪 李江濤 錢榮榮 周慧玲
(北京郵電大學(xué)自動化學(xué)院,北京 100876)
儲糧害蟲的防治是糧食儲藏管理的重要工作內(nèi)容。除了早期的監(jiān)測和檢測儲糧害蟲的殺蟲效果,實驗也是重要的一環(huán),有助于了解各種害蟲的抗藥性情況,便于指導(dǎo)及時適度地進行殺蟲操作。
磷化氫熏蒸殺蟲具有高效、低殘留、低成本以及施用簡單等特點,是我國儲糧害蟲防治的主要手段。由于長期較單一使用,害蟲的磷化氫抗藥性在過去10年來不斷增強[1]。王繼婷等[2]實驗證明在磷化氫不同時長、不同濃度情況下,熏蒸抗性不同的玉米象的死亡率存在差異。陳銳等[3]證實了長時間單一地使用磷化氫熏蒸,誘發(fā)了儲糧害蟲對該藥劑產(chǎn)生了十分嚴(yán)重的抗藥性。因此,為探索有效且低劑量的殺蟲藥劑施用,很多研究人員開展了實驗室和實倉的實驗研究。目前殺蟲效果的結(jié)果判斷方式有兩種:一是熏蒸結(jié)束一段時間后相關(guān)技術(shù)人員在顯微鏡下用毛筆逐個觸碰害蟲,評估死活情況[4](30 min后不出現(xiàn)運動情況判別為死亡個體);二是在開始?xì)⑾x操作后每天觀察并統(tǒng)計害蟲死亡情況,直至全部死亡。這兩種判斷方式無法獲得熏蒸過程中害蟲狀態(tài)的連續(xù)變化情況,同時人工記錄結(jié)果費時費力?;谏鲜鰡栴},開展了基于視頻的害蟲狀態(tài)連續(xù)跟蹤研究。通過多目標(biāo)跟蹤算法跟蹤儲糧害蟲的運動,獲取每頭害蟲的運動速度,從數(shù)據(jù)角度衡量儲糧害蟲的活躍程度,可用在對殺蟲實驗效果的評估分析中。
目前已有一些學(xué)者開展了與此相關(guān)的研究工作。Yang等[5]提出了基于視頻技術(shù)的儲糧害蟲目標(biāo)檢測算法,由于該算法檢測活蟲的穩(wěn)定性更高,間接的達到了區(qū)分死蟲和活蟲的效果,但并未給出具體的準(zhǔn)確率。Wilkinson等[6]提出了可以使用目標(biāo)跟蹤的方法測量蚊子的飛行運動,并計算了蚊子的飛行速度、位移變化距離等數(shù)據(jù),為本文計算儲糧害蟲運動數(shù)據(jù)提供了思路;同年文韜等[7]提出一種融合卡爾曼濾波預(yù)測和顏色均值檢測漂移跟蹤的算法,對橘小實蠅成蟲進行了目標(biāo)跟蹤實驗,將多目標(biāo)黏連的跟蹤準(zhǔn)確率從76%提高到了93%;周亦哲等[8]采用雙流法實現(xiàn)了對視頻中儲糧害蟲定位與識別,準(zhǔn)確率為89.9%,但是目標(biāo)身份錯位問題(ID Switch,Identity Switches)有待解決。
本研究在實驗室條件下建立一段時間的儲糧害蟲視頻數(shù)據(jù)集,用于算法的訓(xùn)練和測試。提出一種基于Mean Shift改進的Deep SORT多目標(biāo)跟蹤算法,實現(xiàn)對運動害蟲的跟蹤,避免發(fā)生ID Switch問題。計算儲糧害蟲目標(biāo)隨時間變化的速度數(shù)據(jù),提出一種判斷儲糧害蟲活躍程度的方法,用于輔助實驗操作人員進行殺蟲效果的評估。
選用分布于我國大部分地區(qū)且危害較大的赤擬谷盜[9]成蟲作為研究對象,由國家糧食和物資儲備局科學(xué)研究院儲運所提供。在實際的儲糧害蟲殺蟲效果評估實驗中,實驗蟲數(shù)量、實驗儀器尺寸、實驗采樣的時間間隔并沒有統(tǒng)一的規(guī)則,例如張濤等[10]采用5 000 mL的廣口瓶,實驗蟲為200頭;源麗楓等[11]采用1 000 mL廣口瓶,試驗蟲為30頭。通過一定時間的觀察,發(fā)現(xiàn)在無飼料的情況下,害蟲趨于向培養(yǎng)皿的邊緣聚集,而害蟲聚集情況對目標(biāo)檢測及跟蹤的效果影響較大,在觀察10、15、20和30頭害蟲在30 min內(nèi)的運動情況后,發(fā)現(xiàn)20頭以內(nèi)害蟲聚集情況減少較多,如圖1所示。
圖1 10頭、15頭、20頭和30頭赤擬谷盜在培養(yǎng)皿中的聚集情況
制作了10頭、15頭和20頭赤擬谷盜害蟲的8個數(shù)據(jù)集,為包含害蟲運動的各種情況,并參考了Alfonso等[12]認(rèn)為多目標(biāo)跟蹤中視頻長度取決于目標(biāo)個數(shù)、種類和活躍程度,主要使用10頭5分鐘視頻數(shù)據(jù)集作為實驗結(jié)果展示,15和20頭赤擬谷盜害蟲的視頻數(shù)據(jù)集用于進行算法的評估。經(jīng)實驗測試,30幀/s的視頻中相鄰視頻幀害蟲位置變化不大,因此從每30張視頻幀中提取一張圖片作為一個數(shù)據(jù)集基本圖像,通過人工標(biāo)記出圖像中所有害蟲的位置,最終完成帶標(biāo)簽的圖片數(shù)據(jù)共計690張,用于訓(xùn)練本文算法模型,如表1所示。為了便于對比分析,在同一時間內(nèi)的數(shù)據(jù)集中需要存在不同活躍程度的赤擬谷盜害蟲,但活躍程度非一離散指標(biāo),難以在數(shù)據(jù)集中將所有活躍程度的情況全部覆蓋。因此在本文構(gòu)建的數(shù)據(jù)集中應(yīng)至少存在速度為0和不為0這兩種情況的赤擬谷盜害蟲。
表1 不同害蟲頭數(shù)的數(shù)據(jù)集相關(guān)參數(shù)
選用Superyes攝像頭拍攝視頻數(shù)據(jù)集。Superyes攝像頭可以攝像并自動生成文件夾儲存視頻,并且具有軟件拍照和防抖動功能,拍攝的視頻數(shù)據(jù)為30幀/s,視頻幀的分辨率為800×600像素。
多目標(biāo)跟蹤通過相鄰兩幀的估計與關(guān)聯(lián),共享同一個ID,并可以通過這個ID得到目標(biāo)在一段時間內(nèi)連續(xù)的數(shù)據(jù)信息。主要分為兩個步驟:目標(biāo)定位與目標(biāo)跟蹤。
通過目標(biāo)定位,可以在視頻幀中獲取到儲糧害蟲當(dāng)前的絕對位置。本文目標(biāo)檢測算法選用了Faster R-CNN[13]框架,目標(biāo)定位的流程圖如圖2。首先使用卷積層、激勵層和池化層提取儲糧害蟲視頻幀的特征圖,用于區(qū)域建議網(wǎng)絡(luò)(RPN,Region Proposal Network),通過Softmax函數(shù)判斷錨(Anchors)屬于前景或者背景,再通過邊界框回歸修正Anchors獲得精確的Proposals。
RPN通過對特征提取網(wǎng)絡(luò)提取的特征圖進行滑窗操作,在每一個位置都生成三種長寬比分別是1∶1、1∶2和2∶1的Anchors,由于單頭儲糧害蟲的圖像分辨率約為18×25像素,因此將實驗Anchors尺寸設(shè)為8、16和32像素,并分別對應(yīng)三種長寬比,共9個。保證在每個窗口都可以根據(jù)不同的長寬比例、不同面積的Anchors逆向推導(dǎo)出對應(yīng)原始圖片的Proposals。
由于目標(biāo)檢測的作用是獲取邊界框(Bounding Box),實現(xiàn)目標(biāo)定位的操作,因此在獲取到Proposals后將其保存,作為目標(biāo)跟蹤的輸入。
圖2 基于 Faster R-CNN的目標(biāo)檢測算法流程圖
目標(biāo)跟蹤是一種獲取到當(dāng)前幀的檢測結(jié)果與上一幀預(yù)測結(jié)果進行匹配并更新,同時進行下一幀的狀態(tài)預(yù)測的算法,通過迭代的方法完成在視頻幀中找到同一個目標(biāo)。
2.2.1 卡爾曼濾波狀態(tài)預(yù)測
初始化時,給每一頭儲糧害蟲目標(biāo)啟動一個具有唯一ID的跟蹤器,位置與目標(biāo)定位的Bounding Box位置一致,負(fù)責(zé)這個目標(biāo)的跟蹤??柭鼮V波通過儲糧害蟲當(dāng)前幀位置預(yù)測下一幀跟蹤器的位置。
使用8維狀態(tài)向量表示每頭儲糧害蟲在某時刻的狀態(tài),如式(1)。
(1)
本文采用線性勻速的標(biāo)準(zhǔn)卡爾曼濾波模型[14]直接觀測儲糧害蟲下一時刻跟蹤器的狀態(tài),如式(2)。
x′=Fx
(2)
式中:x為當(dāng)前時刻下儲糧害蟲的狀態(tài)向量;x′為下一時刻儲糧害蟲的狀態(tài)向量;F為狀態(tài)轉(zhuǎn)移矩陣,如式(3)。
(3)
2.2.2 數(shù)據(jù)關(guān)聯(lián)
將上一幀卡爾曼濾波預(yù)測出的跟蹤器位置與目標(biāo)檢測位置進行數(shù)據(jù)關(guān)聯(lián),如果成功,迭代更新跟蹤器的狀態(tài),完成基本的目標(biāo)跟蹤任務(wù)。本文采用了Deep SORT算法中數(shù)據(jù)關(guān)聯(lián)的方式[15],即通過位置信息和表觀信息兩種信息衡量數(shù)據(jù)的關(guān)聯(lián)程度。
目標(biāo)檢測的Bounding Box和跟蹤器的前四個維度表示了其位置信息,如果越接近說明越可能是同一個目標(biāo)。由于這四個維度的數(shù)量級具有差異且相互不獨立,因此采用馬氏距離來計算兩個未知樣本集相似度的方法,計算公式如式(4)。
d(1)(i,j)=(dj-yi)TSi(-1)(dj-yi)
(4)
式中:dj為第j個檢測目標(biāo)位置;yi為第i個跟蹤器對目標(biāo)的預(yù)測位置;Si(-1)為dj和yi協(xié)方差矩陣;d(1)(i,j)為第j個檢測目標(biāo)位置和第i個跟蹤器預(yù)測位置之間的馬氏距離。
定義一個門限函數(shù)b(1)(i,j)用來篩選檢測結(jié)果,如式(5)。
(5)
式中:t(1)為這個四維空間中對應(yīng)的馬氏距離閾值。
如果儲糧害蟲第j個檢測目標(biāo)和第i個跟蹤器之間的馬氏距離小于該閾值,則認(rèn)為兩者匹配成功。
由于儲糧害蟲的運動不確定性較大,通過卡爾曼濾波預(yù)測提供的位置信息比較粗略,尤其是當(dāng)儲糧害蟲產(chǎn)生遮擋和交疊情況,因此將儲糧害蟲的表觀特征信息作為將跟蹤器與檢測目標(biāo)匹配的另一種度量方式,通過余弦距離來進行計算,如式(6)。
d(2)(i,j)=min{1-rjTrk(i)|rk(i)∈Ri}
(6)
式中:rj為第j個檢測目標(biāo)的特征向量;rk(i)為第i個跟蹤器的特征向量,且是個合集,保留過去跟蹤成功的k個特征;1-rjTrk(i)為這兩個特征向量之間的余弦距離;d(2)(i,j)保存著這兩個余弦距離的最小值。相應(yīng)的,也為這個度量方式設(shè)置一個閾值,如式(7)。
(7)
最后,融合馬氏距離度量和表觀余弦度量的加權(quán)得到綜合匹配度和其閾值,如式(8)~式(9)。
c(i,j)=λd(1)(i,j)+(1-λ)d(2)(i,j)
(8)
(9)
式中:λ表示超參數(shù),用于平衡兩種度量方式的相對權(quán)值。由于儲糧害蟲的表觀信息區(qū)別較小,因此設(shè)為0.8。通過距離度量和表觀特征度量這兩種方式來增強檢測結(jié)果和跟蹤器的正確匹配。
2.2.3 基于Mean Shift的跟蹤策略
在儲糧害蟲的多目標(biāo)跟蹤過程中,若有兩個目標(biāo)相遇時,位置和特征信息均會更新,且在交疊的情況下無法獲取深度的特征信息,容易發(fā)生漏檢情況,因此在相遇后分離的情況下ID Switch的情況會有所增加。為解決這一問題,本文提出通過加入Mean Shift[16]的方法來提高分離后跟蹤的準(zhǔn)確性。Mean Shift算法是一種基于密度梯度上升的非參數(shù)方法,通過迭代運算找到目標(biāo)位置,實現(xiàn)目標(biāo)中心位置的跟蹤。具體匹配策略為:①引入Mean Shift算法預(yù)測兩目標(biāo)的位置,當(dāng)兩目標(biāo)距離小于一定閾值時,停止跟蹤狀態(tài),以保證各跟蹤軌跡的特征信息不被污染,進而作用于兩目標(biāo)分開后再匹配的時刻;②計算當(dāng)前幀兩目標(biāo)檢測框的中心距離,當(dāng)大于一定閾值時重啟跟蹤器。
將數(shù)據(jù)進行預(yù)處理后,通過Mean Shift算法計算當(dāng)前儲糧害蟲Bounding Box的質(zhì)心的位置,如式(10)~式(12)。
(10)
式中:z為儲糧害蟲當(dāng)前Bounding Box的中心點橫縱坐標(biāo)(u,v);Sh為以z為圓心,半徑為h的圓區(qū)域;zi為包含在此區(qū)域的儲糧害蟲目標(biāo)其他點到中心的距離;f為包含在Sh范圍內(nèi)點的個數(shù);M(z)為Sh范圍內(nèi)儲糧害蟲的質(zhì)心位置。
將高斯核引入Mean Shift函數(shù),使得隨著目標(biāo)中心樣本與被偏移點的距離的不同,其偏移量對均值偏移向量的貢獻也不同。高斯核表達式如式(11),新的Mean Shift函數(shù)表達式如式(12)。
(11)
(12)
獲得視頻幀:使用OpenCV處理視頻,以每幀一張圖片輸出視頻幀,用于輸入目標(biāo)檢測算法提取儲糧害蟲特征。
超參數(shù)設(shè)置:在訓(xùn)練目標(biāo)檢測網(wǎng)絡(luò)時需要設(shè)置超參數(shù)加快模型的收斂速度,RPN網(wǎng)絡(luò)中的Anchor設(shè)置為8、16和32像素。
數(shù)據(jù)預(yù)處理:將視頻幀進行高斯模糊,使用19×19的高斯核去除由相機等其他環(huán)境產(chǎn)生的噪聲,減少在邊緣提取時的圖像信息;再針對敏感分布不均的視頻幀進行自適應(yīng)閾值的二值化,生成直方圖反投影圖像,用于輔助Mean Shift進行計算。
訓(xùn)練:使用隨機梯度下降SGD[17]優(yōu)化器來學(xué)習(xí)網(wǎng)絡(luò)權(quán)重,在每次迭代中,通過抽取16張視頻幀來構(gòu)建一個包含16個樣本的小批量數(shù)據(jù),學(xué)習(xí)率設(shè)置為0.01。
測試:在測試時,給定一個視頻,每幀進行一次視頻幀采樣,進行目標(biāo)檢測,記錄每幀圖片儲糧害蟲的位置信息;將害蟲位置數(shù)據(jù)和視頻幀序列輸入目標(biāo)跟蹤算法,輸出每頭害蟲隨時間的運動速度曲線。
活躍程度分析:分析目標(biāo)跟蹤輸出的運動速度曲線,得出儲糧害蟲運動活躍程度等級。
3.2.1 算法評價指標(biāo)
多目標(biāo)跟蹤的評價指標(biāo)由兩部分構(gòu)成:多目標(biāo)跟蹤的準(zhǔn)確率和精度,它們分別體現(xiàn)了目標(biāo)的個數(shù)的準(zhǔn)確程度和目標(biāo)位置估計的精確程度,兩者共同衡量算法連續(xù)跟蹤目標(biāo)的能力。
3.2.1.1 多目標(biāo)跟蹤準(zhǔn)確率
計算每幀中所有未檢測到的目標(biāo)、錯誤檢測的目標(biāo)以及跟蹤器和檢測結(jié)果錯誤匹配的目標(biāo)。計算公式如式(13)。
(13)
式中:mw為w幀時漏檢數(shù)量占總目標(biāo)數(shù)量的比例;fpw、mmew分別是w幀時誤檢和錯誤匹配的數(shù)量;gw為所有幀數(shù)。以5 min時長9003幀的視頻為例,每1000幀進行一次記錄,實驗數(shù)據(jù)舉例如表2。
表2 10頭儲糧害蟲在9003幀視頻(5 min)幀中
多目標(biāo)跟蹤準(zhǔn)確率計算所有幀中目標(biāo)的誤檢,漏檢和錯誤匹配。非常直觀的衡量了跟蹤識別目標(biāo)保持一致性的能力。
3.2.1.2 多目標(biāo)跟蹤精度
多目標(biāo)跟蹤精度表示目標(biāo)位置估計的精確度,即所有幀中的預(yù)測正確的跟蹤軌跡與目標(biāo)個數(shù)的比值。它衡量了跟蹤估計目標(biāo)位置精度的能力,計算公式如式(14)。
(14)
3.2.1.3 為完善研究的目標(biāo)范圍,對儲糧害蟲的個數(shù)進行了擴充實驗,實驗結(jié)論如表3。
表3 不同數(shù)量的儲糧害蟲的多目標(biāo)跟蹤準(zhǔn)確率和多目標(biāo)跟蹤精度
由于本研究使用的赤擬谷盜害蟲屬于聚集型害蟲,因此多目標(biāo)跟蹤的準(zhǔn)確率和精度會隨著儲糧害蟲的目標(biāo)個數(shù)增加而減少。在10~20頭儲糧害蟲目標(biāo)跟蹤實驗中,平均準(zhǔn)確率為95.89%,平均精度為83.18%。
3.2.2 實驗結(jié)論
速度體現(xiàn)了單位時間內(nèi)害蟲的平均移動距離,因此可以用速度描述活躍程度。為輔助儲糧害蟲的殺蟲實驗結(jié)果驗證,提出了一種害蟲活躍度的打分方式:記錄一段時間內(nèi)儲糧害蟲的速度變化,分析儲糧害蟲的運動狀態(tài)變化情況。
將實驗的儲糧害蟲每10 s的位移除以時間得出速度隨時間變化曲線,如圖3。
圖3 害蟲速度隨時間變化圖
以10頭赤擬谷盜害蟲的5 min視頻為例,以100 s為間隔分為三個時間段,可以看出ID為4、5、7、9、10的害蟲有速度變化,其中 ID為10的害蟲速度變化明顯;而ID為1、2、3、6、8的五頭害蟲速度重疊于最下方,曲線沒有變化。分別計算各頭害蟲從跟蹤開始的平均運動速度,如表4所示,可用于輔助判斷儲糧害蟲的活躍程度。
表4 各軌跡ID的儲糧害蟲的速度活躍程度指標(biāo)
儲糧害蟲的速度受儲糧害蟲品種、溫度、濕度等培養(yǎng)環(huán)境的影響較大,參考2011年李兆東等[18]的分析,在18 ℃環(huán)境下,羽化兩周的赤擬谷盜成蟲在無糧平面的爬行速度約在3~5 mm/s,本研究拍攝數(shù)據(jù)集時的溫度約為18 ℃,因此認(rèn)為速度在1 min/s以下的活躍程度為低;1~3 mm/s的活躍程度為中等;大于3 mm/s的赤擬谷盜害蟲活躍程度為高,由表4可知ID為10的害蟲活躍程度高,ID為4、5、7、9的儲糧害蟲活躍程度中等,但ID為1、2、3、6、8的赤擬谷盜害蟲活躍程度低,與實際情況相符。
原始視頻幀如圖4a,基于Faster R-CNN框架的目標(biāo)檢測結(jié)果如圖4b所示,接著結(jié)合基于Mean Shift的Deep SORT目標(biāo)跟蹤算法進行多目標(biāo)跟蹤,每一個檢測出的目標(biāo)框的左上方有一個數(shù)字編號,該編號為目標(biāo)的跟蹤軌跡ID,在后續(xù)視頻目標(biāo)跟蹤中,會給出每一個被跟蹤目標(biāo)的編號,以表示跟蹤的結(jié)果。圖4c和圖4d為視頻目標(biāo)跟蹤的結(jié)果示意圖。
圖4 實驗過程視頻幀示例圖
圖5 Deep SORT算法與本算法在處理ID Switch問題上的效果比較
對于兩個目標(biāo)相遇后分開的ID Switch問題,Deep SORT算法下兩視頻幀圖為圖5a和圖5b,ID為11的目標(biāo)靠近ID為9的目標(biāo)后,兩目標(biāo)ID互換。本研究提出的算法的相鄰兩視頻幀圖為圖5c和圖5d,ID為4的目標(biāo)靠近ID為10的目標(biāo)后,兩目標(biāo)ID沒有互換。
對比實驗可以清晰的看出本算法對于解決ID Switch問題的有效性,在時長5 min的視頻中害蟲約發(fā)生19次相遇,其中Deep SORT算法中發(fā)生ID Switch 11次,本算法下發(fā)生ID Switch 0次。
本研究提出了一種基于Mean Shift的Deep SORT的多目標(biāo)跟蹤算法,用于輔助儲糧害蟲殺蟲實驗的判斷。該算法在10到20頭赤擬谷盜害蟲的目標(biāo)中平均多目標(biāo)跟蹤準(zhǔn)確率為95.89%,精度為83.18%。經(jīng)過與Deep SORT多目標(biāo)跟蹤算法的對比實驗,驗證了該算法在10頭赤擬谷盜5分鐘時長的視頻數(shù)據(jù)集中,對于解決兩目標(biāo)相遇后的ID Switch問題上有顯著效果。本文通過計算儲糧害蟲目標(biāo)跟蹤的運動速度數(shù)據(jù)給出了活躍程度的分級,但是由于本研究拍攝視頻數(shù)據(jù)集較少,并且儲糧害蟲目標(biāo)的表觀特征較為相似,在跟蹤過程中停止目標(biāo)表觀特征更新這一策略可能會產(chǎn)生誤差,導(dǎo)致準(zhǔn)確率和精度下降。如果能夠?qū)⒈碛^特征提取的精度提升到足以區(qū)分同種不同個體的害蟲,將會大大增加算法的實用性。此外,本研究僅針對一種害蟲進行了目標(biāo)跟蹤和活躍程度評估,如果有多種儲糧害蟲且能夠進行分類將會使算法的實用性更加完備。