趙新龍 顧臻奇 李 軍
(1.浙江理工大學信息科學與工程學院, 杭州 310018; 2.臺州學院智能制造學院, 臺州 318000)
黑水虻幼蟲又稱“鳳凰蟲”,是一種全世界廣泛分布的資源昆蟲,其以禽畜糞便、生活廢棄物為食,而其本身蛋白質(zhì)、脂肪含量較高,能用于生產(chǎn)高價值的動物蛋白飼料,在全世界范圍內(nèi)被大量用于廚余垃圾、牲畜糞便等有機廢物的無害化處理[1-2]。有機廢物轉(zhuǎn)化效率受其生物密度影響,為達到效率的最大化,需要找到幼蟲密度與有機廢物處理速度之間的關(guān)系,因此需要對黑水虻幼蟲進行計數(shù)[3]。
過去常使用人工計數(shù)方式,近幾年,隨著機器視覺的廣泛應用,基于機器視覺的目標計數(shù)成為一大研究方向。而黑水虻幼蟲這類目標具有繁殖迅速、生物量巨大的特性,人工計數(shù)方式費時費力,所以基于機器視覺的目標計數(shù)方式有巨大的應用價值。在目前研究中,基于機器學習的檢測計數(shù)有兩種主要的實現(xiàn)方式:第1種為通過獲得包含需求計數(shù)目標的圖像數(shù)據(jù)集,將圖像中的所有目標統(tǒng)計出來;第2種根據(jù)被識別目標的運動學特性實現(xiàn)計數(shù)。第2種方式自上而下需要經(jīng)過目標識別和目標追蹤兩個過程,經(jīng)過大量研究成果總結(jié),第1種方式主要研究問題為:對大密度和重疊導致大量信息丟失的目標進行目標識別[4-6]。第2種方式主要研究的問題為實現(xiàn)目標識別后的目標追蹤任務[7]。兩種計數(shù)方式應用場景不同,各有優(yōu)劣:第1種方式以張璐等[8]對魚群計數(shù)的研究為例,優(yōu)點在于算法邏輯簡單,但現(xiàn)實應用中存在圖像過大導致處理速度下降的缺點。針對上述問題,本文主要進行第2種方式的研究。
關(guān)于目標識別,在應用于黑水虻幼蟲的情境下,本文需要克服兩個困難:飼料背景對幼蟲目標的干擾以及幼蟲聚集的情況。普通算法提取特征單一,無法考慮多維特征,但深度學習算法可以提取多維度特征,為此類情況的解決提供了方法。其中,基于卷積神經(jīng)網(wǎng)絡(Convolutional neural network,CNN)建立的目標識別算法,在農(nóng)業(yè)采摘機械、光伏設備缺陷檢測、各種機器人視覺中被大量應用[9-13]。文獻[14]在研究Faster R-CNN(更快速區(qū)域卷積神經(jīng)網(wǎng)絡)檢測方面的研究過程中,對比了YOLO網(wǎng)絡和Faster R-CNN網(wǎng)絡處理速度,相同條件下YOLO網(wǎng)絡擁有比Fast R-CNN快一個數(shù)量級的速度優(yōu)勢。文獻[15]通過改進YOLO v3網(wǎng)絡提高了其對小目標檢測的敏感性,使目標推理精度提高2.36%,達到92.43%。文獻[16]使用YOLO v3-tiny,為YOLO系列中結(jié)構(gòu)最簡單的網(wǎng)絡,識別農(nóng)田中的障礙物,精度和召回率也分別達到95.5%和93.7%。最近,隨著Yolo系列新網(wǎng)絡模型YOLO v6和YOLO v7的推出,目標檢測技術(shù)的研究和應用又取得了新的突破[17-19]。其中,文獻[20]證明了改進后的YOLO v7在小目標檢測方面優(yōu)于其他模型的效果。綜上所述,YOLO網(wǎng)絡在目標識別的大量實際應用場景有較好的精度表現(xiàn),對小目標具有很好的靈敏度,再加之其運行速度快,對應文中黑水虻幼蟲個體目標小、數(shù)量多的特點,作為本研究的目標識別部分算法能達到較好的效果。
多目標追蹤(Multiple object tracking,MOT)主要需要解決目標形態(tài)尺度變化、目標遮擋消失、重新出現(xiàn)后再次追蹤這三大問題。由于其在實際應用中巨大的價值,在全世界有大量研究者,且提出了許多不同的方法解決這個問題,主要可以分為3種方向:基于排序算法(Simple online and realtime tracking,SORT)和DeepSORT的先檢測后追蹤的方式[21-24];基于JDE和CenterTrack的檢測和追蹤結(jié)合的方式;基于TransTrack和TrackFormer的注意力機制的方式[25-26]。本文采用第1種目標追蹤方式,其中SORT適用于處理高密度目標的情況,而DeepSORT是在SORT基礎上發(fā)展而來的算法,它將深度學習技術(shù)應用于目標跟蹤中,適用于需要進行多目標跟蹤以及在遮擋和交叉行人等情況下進行目標追蹤的應用場景。然而,針對黑水虻幼蟲計數(shù)應用,其目標追蹤在傳送帶上無遮擋,且由于幼蟲密度高導致計數(shù)速率要求高,因此SORT算法更加適合當前的應用情況。文獻[27]構(gòu)建了標準SORT算法,在使用較小計算量的情況下,精度與最先進在線追蹤器相當,同時,追蹤器更新頻率達到260 Hz,為本文目標追蹤實現(xiàn)提供了思路。
本文完成硬件平臺搭建,根據(jù)硬件設備建立數(shù)據(jù)集。自上而下實現(xiàn)基于YOLO v5s深度學習網(wǎng)絡黑水虻幼蟲的目標識別任務和基于標準SORT目標追蹤算法,結(jié)合兩種算法實現(xiàn)上文的第2種計數(shù)方式。在目標識別算法方面,本文通過對比YOLO v5s與其他網(wǎng)絡的性能差異,提供選擇YOLO v5s的依據(jù);在目標追蹤方面,針對原始SORT算法目標追蹤不穩(wěn)定導致的計數(shù)精度不足問題,本文結(jié)合卡爾曼濾波原理,改進SORT目標追蹤模型,通過仿真和應用實驗,論證改進SORT模型在幼蟲計數(shù)系統(tǒng)應用上的優(yōu)越性。
1.1.1硬件平臺搭建
為收集數(shù)據(jù)需要,設計并制造如圖1所示設備,設備主要由上料機構(gòu)、傳輸機構(gòu)、相機支架機構(gòu)、支撐機構(gòu)等4部分組成。使用深圳億維X1-32TD-E0型可編程邏輯控制器(PLC)作為下位機控制機械部分動作,伺服電機選用禾川SV-X3MM200A。使用個人計算機(PC)作為上位機進行圖像處理,顯卡為NVIDIA RTX2060,顯存6 GB,CPU型號為Intel i7-11700 2.5 GHz,深度學習框架為Pytorch(Python 3.9,Pytorch 1.10.2,torchvision 0.11.3)。
1.1.2實驗數(shù)據(jù)收集
使用上述設備獲取5段黑水虻幼蟲計數(shù)視頻作為本文計數(shù)結(jié)果測試數(shù)據(jù)集。另外,分別通過上述設備和手機拍攝的方式獲取各50幅共100幅包含目標的圖像作為訓練集,構(gòu)成中等規(guī)模的訓練集用于YOLO v5s網(wǎng)絡訓練。
為實現(xiàn)幼蟲計數(shù)目標,需要研究基于YOLO v5s的目標識別、基于SORT的目標追蹤和程序?qū)崿F(xiàn)3個部分,各部分包含功能如圖2所示。系統(tǒng)中首先使用YOLO v5s實現(xiàn)目標識別,再通過SORT算法實現(xiàn)被識別目標的身份標識號(Identity document,ID)指派,同一個ID目標分別有兩幀畫面在劃線兩側(cè)則計數(shù)值增加,圖3為劃線計數(shù)邏輯示意圖。
圖3 劃線計數(shù)示意圖
1.2.1基于YOLO v5s的目標識別實現(xiàn)
YOLO v5s是YOLO v5網(wǎng)絡中深度最小的網(wǎng)絡,該網(wǎng)絡在本文硬件配置情況下運行速度能夠達到156 f/s,目標識別的精度也能達到預期需求。YOLO v5s[28]網(wǎng)絡主要由Backbone、Neck、Detect網(wǎng)絡組成,圖4為其網(wǎng)絡結(jié)構(gòu)圖。Backbone由一系列卷積神經(jīng)網(wǎng)絡組成以提取圖像特征,其第1層Focus層能減少模型的計算量,加快訓練速度。Neck是一系列圖像特征混合組合的特征聚合層,將Backbone層傳輸來的特征降維排列,然后將輸出的特征圖傳輸?shù)紻etect層。Detect層主要用于模型的最終檢測,對上一層輸出的特征圖應用錨框,輸出一個向量,包含被識別的目標位置、執(zhí)行度以及類別,有76×76、38×38、19×19共3種尺寸的輸出,分別用于對大、中、小3種尺度目標的識別,需提升對更小物體的敏感性可減少19×19輸出層的大小。
圖4 YOLO v5s網(wǎng)絡基本結(jié)構(gòu)
1.2.2基于SORT的目標追蹤實現(xiàn)
圖5為目標追蹤算法實現(xiàn)過程的示意圖。主要流程為:首先,獲得Ti幀中目標位置;然后,使用卡爾曼濾波獲得Ti幀目標在Ti+1幀時預測位置,如圖5中Ti+1時刻的彩色框所示,Ti+1時刻灰色目標為實際目標位置;最后,獲得預測位置(彩色)與實際位置(灰色)的交并比(Intersection over union,IOU),通過匈牙利算法以上述交并比取非為代價矩陣得到前后兩幀目標之間的對應關(guān)系。在主程序中實現(xiàn)過程:先通過目標識別算法獲得包含[x1, y1, x2, y2, cls]5個特征的列表,然后將列表輸入SORT算法后返回[x1, y1, x2, y2, ID]列表,如前后兩幀中相同ID的目標為同一目標。
圖5 SORT算法追蹤示意圖
(1)標準卡爾曼濾波跟蹤模型實現(xiàn)
在SORT算法中使用標準卡爾曼濾波模型,其狀態(tài)量公式為
(1)
式中x——目標框長軸中心位置
y——目標框?qū)捿S中心位置
s——目標框面積
r——目標框長寬比
X——狀態(tài)向量
使用通用運動學模型離散化后得到
(2)
式中F——狀態(tài)轉(zhuǎn)移矩陣
Xk-1——第k-1時刻的狀態(tài)向量
Xk——第k時刻的狀態(tài)向量
觀測量為卡爾曼預測輸出結(jié)果,只需要狀態(tài)量中前4個變量,得到卡爾曼濾波觀測方程為
(3)
式中H——觀測矩陣
Zk——第k時刻的觀測向量
(2)交并比計算實現(xiàn)
兩個目標框交集面積與并集面積的比值可以用于評定兩個目標框重合的程度,即
(4)
式中A(C)——目標框C面積
A(G)——識別框G面積
Iou(C,G)——目標框C與識別框G的交并比
重合度與IOU的關(guān)系如圖6所示。
圖6 交并比計算示意圖
(3)使用匈牙利算法解決ID指派問題
在卡爾曼濾波器正常工作的前提下,預測框與目標框的重合度越高,則IOU越大;反之,重合度越低,則IOU越小。匈牙利算法能夠解決n×m維矩陣的最小代價匹配問題,使用MIOU作為匈牙利算法的代價矩陣,來匹配目標框和與其IOU最小的追蹤框,實現(xiàn)兩個框之間的最高重合度匹配。交并比矩陣MIOU為
MIOU=
(5)
式中Iou(dn,tm)——第n個目標框和第m個識別框的交并比
1.2.3改進卡爾曼濾波模型設計
圖7為同時考慮運動模型預測位置和實際識別位置獲得真實位置k的示意圖。對于運動模型預測來說,本文假設真實位置k出現(xiàn)在預測位置xk周圍空間的概率滿足高斯分布,因此加入滿足高斯分布的噪聲w。同時,本文認為實際檢測位置受幀率不穩(wěn)定、識別框抖動干擾而不穩(wěn)定,也需要引入滿足高斯分布的噪聲u。運動模型預測位置xk與實際識別位置Zk兩者高斯分布的重合部分就是真實位置k出現(xiàn)位置的分布區(qū)域,且滿足高斯分布,如圖中灰線所示。噪聲w和u滿足高斯分布
圖7 可能位置概率圖
(6)
式中N(0,Q)——均值為0、協(xié)方差為Q的正態(tài)分布
N(0,R)——均值為0、協(xié)方差為R的正態(tài)分布
p(w)——w噪聲概率
p(u)——u噪聲概率
根據(jù)卡爾曼濾波原理,每個預測循環(huán)中進行的濾波器更新公式為
(7)
式中A——狀態(tài)轉(zhuǎn)移矩陣
Pk-1——第k-1時刻的狀態(tài)估計誤差協(xié)方差矩陣
Pk——第k時刻的狀態(tài)估計誤差協(xié)方差矩陣
P′k——第k時刻的協(xié)方差矩陣計算過渡矩陣
Q——系統(tǒng)噪聲協(xié)方差矩陣
R——測量噪聲協(xié)方差矩陣
Kk——第k時刻的卡爾曼增益
下一幀位置更新公式為
xk+1=Ak+vt
(8)
式中xk+1——第k+1時刻的運動模型預測位置
針對實際應用中面對的勻速直線運動情況,傳統(tǒng)的卡爾曼濾波模型可以綜合考慮多維的運動變量來預測目標,但對于當前的應用對象,引入其他維度的預測信息只會對IOU產(chǎn)生負面影響,從而降低ID指派成功率。因此,本文建立一維運動模型,將狀態(tài)轉(zhuǎn)移矩陣A設置為1,將觀測矩陣H設置為1,從而提高了卡爾曼濾波的目標追蹤效果。
此外,隨著傳送帶運動速度的增加,目標可能僅在畫面中出現(xiàn)2、3幀,因此需要提高卡爾曼濾波器的響應速度。Q、R、P矩陣分別描述系統(tǒng)狀態(tài)的隨機擾動、觀測值的噪聲和狀態(tài)估計誤差的不確定性,降低這些矩陣的值可以提高濾波器對觀測值的信任程度,從而使預測框更快地追蹤上目標框。但在實際應用中,除了需要滿足快速性外,當目標框的位置跳動較大時,卡爾曼濾波的輸出也不能過于接近觀測值。因此,需要通過實驗和仿真確定一個折中的值,使預測框既能快速跟上目標框,又不會受到過多目標框位置跳動的影響。本文最終將Q、R、P的初值分別設置為10、10、800。
在當前實驗應用的前提下,假定配置環(huán)境相同且使用相同訓練參數(shù),YOLO v5s和其他網(wǎng)絡模型的訓練結(jié)果如表1(表中mAP@0.5表示IOU重疊閾值大于0.5的識別對象的平均精度)所示,本文使用的YOLO v5s網(wǎng)絡經(jīng)過訓練后運行幀率達到156 f/s,mAP@0.5為99.10%,精度(Precision,P)為90.11%,召回率(Recall,R)為99.22%。對于真實應用場景中的圖像,選取3種YOLO網(wǎng)絡模型進行推理,并對其效果進行比較,結(jié)果如圖8所示。
表1 不同網(wǎng)絡模型實驗結(jié)果對比
圖8 不同YOLO模型應用效果對比
由表1和圖8可知YOLO系列的網(wǎng)絡性能優(yōu)于Faster-R CNN;另一方面,即使YOLO v5s精度低于其他兩個YOLO網(wǎng)絡,但其幀率、mAP@0.5和召回率卻高于其他兩個網(wǎng)絡。在幀率方面,由于本文提出的計數(shù)方法需要應用于工業(yè)現(xiàn)場,實時性要求高,因此YOLO v5s具有更大的優(yōu)勢。在召回率方面,由于目標識別過程中無法被召回而丟失的個數(shù)將為計數(shù)過程引入絕對誤差,因此YOLO v5s具有更高的召回率。在精度和mAP@0.5方面,其他兩個網(wǎng)絡的該值低于YOLO v5s,但它們?nèi)孔R別目標的平均精度高于YOLO v5s,說明它們在訓練后賦予了過高的精度于IOU重疊閾值較低的個體,這表明模型的泛化能力較差。這與當前應用條件下訓練集數(shù)量過少,以及YOLO v6s和YOLO v7模型相對于YOLO v5s模型更加復雜有關(guān)。從圖8的實際應用效果比較中,也可以得出這一結(jié)論。綜上所述,在當前應用條件下,相比其他網(wǎng)絡模型,YOLO v5s網(wǎng)絡具有更好的應用效果。
為了直觀顯示追蹤效果,假設目標運動的真實運動模型為從零點位置以速度3 834像素/s勻速運動,步長選擇視頻幀率的倒數(shù)1/71 s。由于實際應用的需求,需要在較少個步長內(nèi)追上識別框,因此在仿真實驗中只需仿真20個循環(huán)。同時,相機拍攝為離散情況,導致物體出現(xiàn)第一幀不在坐標原點,因此,在仿真的第9個循環(huán)開始加入卡爾曼濾波追蹤。
圖9a為預測開始之后預測位置、真實位置、加入干擾的觀測位置隨時間的變化,圖9b為預測位置與真實位置的差值,可以看到,預測能快速逼近真實位置,誤差像素能穩(wěn)定在系統(tǒng)正常運行允許的區(qū)間內(nèi)。
圖9 仿真實驗結(jié)果
將通過仿真的改進卡爾曼濾波模型應用于SORT算法中,實際黑水虻幼蟲目標追蹤效果如圖10所示,其中紅色為預測框,綠色為目標框。可見改進卡爾曼濾波模型實際追蹤效果達到仿真預期:預測框能快速跟上目標框,同時在第k+2幀追蹤目標位置發(fā)生跳變的情況下,自動進行誤差補償,在長時間內(nèi)保持了穩(wěn)定的追蹤效果。
圖10 改進卡爾曼濾波預測效果
使用同樣的YOLO v5s目標識別網(wǎng)絡,將匈牙利算法的3個參數(shù)同樣設置為max_age=1、min_hits=0、iou_threshold=0.1。由于上料密度會改變料的堆積、并排等情況,導致目標識別準確度下降影響精度,因此,采集5段測試用數(shù)據(jù)集,包含不同上料密度情況,對比本文方法與基于標準SORT算法的劃線計數(shù)算法計數(shù)精度,具體結(jié)果如表2、3所示。
表2 YOLO v5s+標準SORT計數(shù)方式實驗結(jié)果
表3 YOLO v5s+改進SORT計數(shù)方式實驗結(jié)果
本文采用視頻中包含幼蟲目標的有效幀總數(shù)來定量判斷實際上料密度,由于上料總數(shù)不變,有效幀越多,則單位幀平均幼蟲數(shù)量越少,上料密度越小;反之,有效幀越少,則單位幀平均幼蟲數(shù)量越多,上料密度越大。由表2、3可知,較大密度上料的計數(shù)精度往往差于較小密度上料的計數(shù)精度。同時,使用本文改進卡爾曼濾波的SORT目標追蹤計數(shù)方式不論大密度或是小密度上料的計數(shù)精度都高于標準SORT目標追蹤計數(shù)方式。本方法計數(shù)最高精度達到99.71%,平均精度達到95.55%,滿足系統(tǒng)設計要求。
(1)針對黑水虻幼蟲目標識別過程中需要克服的飼料與幼蟲混合的干擾以及幼蟲堆料,本文對比多種目標識別模型效果,最終選用YOLO v5s深度學習網(wǎng)絡提取圖像多尺度特征,使用中型規(guī)模的數(shù)據(jù)集訓練出可用的目標識別網(wǎng)絡,實驗結(jié)果表明,其幀率為156 f/s,mAP@0.5為99.10%,精度為90.11%,召回率為99.22%,達到本文需求的目標識別要求。
(2)通過實際實驗,驗證了使用標準卡爾曼濾波配合匈牙利算法實現(xiàn)SORT目標追蹤為劃線計數(shù)分配ID方式的可行性。
(3)針對標準卡爾曼濾波預測效果不佳導致計數(shù)精度較差的問題,本文提出了改進卡爾曼濾波模型。通過仿真和實際實驗發(fā)現(xiàn),基于本文模型的計數(shù)最高精度為99.71%,平均精度為95.55%,均高于使用標準卡爾曼濾波預測模型。因此,相比于標準卡爾曼濾波模型,本文提出的模型更適用于黑水虻幼蟲劃線計數(shù)系統(tǒng)。