趙新龍 顧臻奇 李 軍
(1.浙江理工大學信息科學與工程學院, 杭州 310018; 2.臺州學院智能制造學院, 臺州 318000)
黑水虻幼蟲又稱“鳳凰蟲”,是一種全世界廣泛分布的資源昆蟲,其以禽畜糞便、生活廢棄物為食,而其本身蛋白質、脂肪含量較高,能用于生產高價值的動物蛋白飼料,在全世界范圍內被大量用于廚余垃圾、牲畜糞便等有機廢物的無害化處理[1-2]。有機廢物轉化效率受其生物密度影響,為達到效率的最大化,需要找到幼蟲密度與有機廢物處理速度之間的關系,因此需要對黑水虻幼蟲進行計數[3]。
過去常使用人工計數方式,近幾年,隨著機器視覺的廣泛應用,基于機器視覺的目標計數成為一大研究方向。而黑水虻幼蟲這類目標具有繁殖迅速、生物量巨大的特性,人工計數方式費時費力,所以基于機器視覺的目標計數方式有巨大的應用價值。在目前研究中,基于機器學習的檢測計數有兩種主要的實現方式:第1種為通過獲得包含需求計數目標的圖像數據集,將圖像中的所有目標統計出來;第2種根據被識別目標的運動學特性實現計數。第2種方式自上而下需要經過目標識別和目標追蹤兩個過程,經過大量研究成果總結,第1種方式主要研究問題為:對大密度和重疊導致大量信息丟失的目標進行目標識別[4-6]。第2種方式主要研究的問題為實現目標識別后的目標追蹤任務[7]。兩種計數方式應用場景不同,各有優劣:第1種方式以張璐等[8]對魚群計數的研究為例,優點在于算法邏輯簡單,但現實應用中存在圖像過大導致處理速度下降的缺點。針對上述問題,本文主要進行第2種方式的研究。
關于目標識別,在應用于黑水虻幼蟲的情境下,本文需要克服兩個困難:飼料背景對幼蟲目標的干擾以及幼蟲聚集的情況。普通算法提取特征單一,無法考慮多維特征,但深度學習算法可以提取多維度特征,為此類情況的解決提供了方法。其中,基于卷積神經網絡(Convolutional neural network,CNN)建立的目標識別算法,在農業采摘機械、光伏設備缺陷檢測、各種機器人視覺中被大量應用[9-13]。文獻[14]在研究Faster R-CNN(更快速區域卷積神經網絡)檢測方面的研究過程中,對比了YOLO網絡和Faster R-CNN網絡處理速度,相同條件下YOLO網絡擁有比Fast R-CNN快一個數量級的速度優勢。文獻[15]通過改進YOLO v3網絡提高了其對小目標檢測的敏感性,使目標推理精度提高2.36%,達到92.43%。文獻[16]使用YOLO v3-tiny,為YOLO系列中結構最簡單的網絡,識別農田中的障礙物,精度和召回率也分別達到95.5%和93.7%。最近,隨著Yolo系列新網絡模型YOLO v6和YOLO v7的推出,目標檢測技術的研究和應用又取得了新的突破[17-19]。其中,文獻[20]證明了改進后的YOLO v7在小目標檢測方面優于其他模型的效果。綜上所述,YOLO網絡在目標識別的大量實際應用場景有較好的精度表現,對小目標具有很好的靈敏度,再加之其運行速度快,對應文中黑水虻幼蟲個體目標小、數量多的特點,作為本研究的目標識別部分算法能達到較好的效果。
多目標追蹤(Multiple object tracking,MOT)主要需要解決目標形態尺度變化、目標遮擋消失、重新出現后再次追蹤這三大問題。由于其在實際應用中巨大的價值,在全世界有大量研究者,且提出了許多不同的方法解決這個問題,主要可以分為3種方向:基于排序算法(Simple online and realtime tracking,SORT)和DeepSORT的先檢測后追蹤的方式[21-24];基于JDE和CenterTrack的檢測和追蹤結合的方式;基于TransTrack和TrackFormer的注意力機制的方式[25-26]。本文采用第1種目標追蹤方式,其中SORT適用于處理高密度目標的情況,而DeepSORT是在SORT基礎上發展而來的算法,它將深度學習技術應用于目標跟蹤中,適用于需要進行多目標跟蹤以及在遮擋和交叉行人等情況下進行目標追蹤的應用場景。然而,針對黑水虻幼蟲計數應用,其目標追蹤在傳送帶上無遮擋,且由于幼蟲密度高導致計數速率要求高,因此SORT算法更加適合當前的應用情況。文獻[27]構建了標準SORT算法,在使用較小計算量的情況下,精度與最先進在線追蹤器相當,同時,追蹤器更新頻率達到260 Hz,為本文目標追蹤實現提供了思路。
本文完成硬件平臺搭建,根據硬件設備建立數據集。自上而下實現基于YOLO v5s深度學習網絡黑水虻幼蟲的目標識別任務和基于標準SORT目標追蹤算法,結合兩種算法實現上文的第2種計數方式。在目標識別算法方面,本文通過對比YOLO v5s與其他網絡的性能差異,提供選擇YOLO v5s的依據;在目標追蹤方面,針對原始SORT算法目標追蹤不穩定導致的計數精度不足問題,本文結合卡爾曼濾波原理,改進SORT目標追蹤模型,通過仿真和應用實驗,論證改進SORT模型在幼蟲計數系統應用上的優越性。
1.1.1硬件平臺搭建
為收集數據需要,設計并制造如圖1所示設備,設備主要由上料機構、傳輸機構、相機支架機構、支撐機構等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實驗數據收集
使用上述設備獲取5段黑水虻幼蟲計數視頻作為本文計數結果測試數據集。另外,分別通過上述設備和手機拍攝的方式獲取各50幅共100幅包含目標的圖像作為訓練集,構成中等規模的訓練集用于YOLO v5s網絡訓練。
為實現幼蟲計數目標,需要研究基于YOLO v5s的目標識別、基于SORT的目標追蹤和程序實現3個部分,各部分包含功能如圖2所示。系統中首先使用YOLO v5s實現目標識別,再通過SORT算法實現被識別目標的身份標識號(Identity document,ID)指派,同一個ID目標分別有兩幀畫面在劃線兩側則計數值增加,圖3為劃線計數邏輯示意圖。

圖3 劃線計數示意圖
1.2.1基于YOLO v5s的目標識別實現
YOLO v5s是YOLO v5網絡中深度最小的網絡,該網絡在本文硬件配置情況下運行速度能夠達到156 f/s,目標識別的精度也能達到預期需求。YOLO v5s[28]網絡主要由Backbone、Neck、Detect網絡組成,圖4為其網絡結構圖。Backbone由一系列卷積神經網絡組成以提取圖像特征,其第1層Focus層能減少模型的計算量,加快訓練速度。Neck是一系列圖像特征混合組合的特征聚合層,將Backbone層傳輸來的特征降維排列,然后將輸出的特征圖傳輸到Detect層。Detect層主要用于模型的最終檢測,對上一層輸出的特征圖應用錨框,輸出一個向量,包含被識別的目標位置、執行度以及類別,有76×76、38×38、19×19共3種尺寸的輸出,分別用于對大、中、小3種尺度目標的識別,需提升對更小物體的敏感性可減少19×19輸出層的大小。

圖4 YOLO v5s網絡基本結構
1.2.2基于SORT的目標追蹤實現
圖5為目標追蹤算法實現過程的示意圖。主要流程為:首先,獲得Ti幀中目標位置;然后,使用卡爾曼濾波獲得Ti幀目標在Ti+1幀時預測位置,如圖5中Ti+1時刻的彩色框所示,Ti+1時刻灰色目標為實際目標位置;最后,獲得預測位置(彩色)與實際位置(灰色)的交并比(Intersection over union,IOU),通過匈牙利算法以上述交并比取非為代價矩陣得到前后兩幀目標之間的對應關系。在主程序中實現過程:先通過目標識別算法獲得包含[x1, y1, x2, y2, cls]5個特征的列表,然后將列表輸入SORT算法后返回[x1, y1, x2, y2, ID]列表,如前后兩幀中相同ID的目標為同一目標。

圖5 SORT算法追蹤示意圖
(1)標準卡爾曼濾波跟蹤模型實現
在SORT算法中使用標準卡爾曼濾波模型,其狀態量公式為
(1)
式中x——目標框長軸中心位置
y——目標框寬軸中心位置
s——目標框面積
r——目標框長寬比


X——狀態向量
使用通用運動學模型離散化后得到
(2)
式中F——狀態轉移矩陣
Xk-1——第k-1時刻的狀態向量
Xk——第k時刻的狀態向量
觀測量為卡爾曼預測輸出結果,只需要狀態量中前4個變量,得到卡爾曼濾波觀測方程為
(3)
式中H——觀測矩陣
Zk——第k時刻的觀測向量
(2)交并比計算實現
兩個目標框交集面積與并集面積的比值可以用于評定兩個目標框重合的程度,即
(4)
式中A(C)——目標框C面積
A(G)——識別框G面積
Iou(C,G)——目標框C與識別框G的交并比
重合度與IOU的關系如圖6所示。

圖6 交并比計算示意圖
(3)使用匈牙利算法解決ID指派問題
在卡爾曼濾波器正常工作的前提下,預測框與目標框的重合度越高,則IOU越大;反之,重合度越低,則IOU越小。匈牙利算法能夠解決n×m維矩陣的最小代價匹配問題,使用MIOU作為匈牙利算法的代價矩陣,來匹配目標框和與其IOU最小的追蹤框,實現兩個框之間的最高重合度匹配。交并比矩陣MIOU為
MIOU=

(5)
式中Iou(dn,tm)——第n個目標框和第m個識別框的交并比
1.2.3改進卡爾曼濾波模型設計
圖7為同時考慮運動模型預測位置和實際識別位置獲得真實位置k的示意圖。對于運動模型預測來說,本文假設真實位置k出現在預測位置xk周圍空間的概率滿足高斯分布,因此加入滿足高斯分布的噪聲w。同時,本文認為實際檢測位置受幀率不穩定、識別框抖動干擾而不穩定,也需要引入滿足高斯分布的噪聲u。運動模型預測位置xk與實際識別位置Zk兩者高斯分布的重合部分就是真實位置k出現位置的分布區域,且滿足高斯分布,如圖中灰線所示。噪聲w和u滿足高斯分布

圖7 可能位置概率圖
(6)
式中N(0,Q)——均值為0、協方差為Q的正態分布
N(0,R)——均值為0、協方差為R的正態分布
p(w)——w噪聲概率
p(u)——u噪聲概率
根據卡爾曼濾波原理,每個預測循環中進行的濾波器更新公式為
(7)
式中A——狀態轉移矩陣
Pk-1——第k-1時刻的狀態估計誤差協方差矩陣
Pk——第k時刻的狀態估計誤差協方差矩陣
P′k——第k時刻的協方差矩陣計算過渡矩陣
Q——系統噪聲協方差矩陣
R——測量噪聲協方差矩陣
Kk——第k時刻的卡爾曼增益
下一幀位置更新公式為
xk+1=Ak+vt
(8)
式中xk+1——第k+1時刻的運動模型預測位置
針對實際應用中面對的勻速直線運動情況,傳統的卡爾曼濾波模型可以綜合考慮多維的運動變量來預測目標,但對于當前的應用對象,引入其他維度的預測信息只會對IOU產生負面影響,從而降低ID指派成功率。因此,本文建立一維運動模型,將狀態轉移矩陣A設置為1,將觀測矩陣H設置為1,從而提高了卡爾曼濾波的目標追蹤效果。
此外,隨著傳送帶運動速度的增加,目標可能僅在畫面中出現2、3幀,因此需要提高卡爾曼濾波器的響應速度。Q、R、P矩陣分別描述系統狀態的隨機擾動、觀測值的噪聲和狀態估計誤差的不確定性,降低這些矩陣的值可以提高濾波器對觀測值的信任程度,從而使預測框更快地追蹤上目標框。但在實際應用中,除了需要滿足快速性外,當目標框的位置跳動較大時,卡爾曼濾波的輸出也不能過于接近觀測值。因此,需要通過實驗和仿真確定一個折中的值,使預測框既能快速跟上目標框,又不會受到過多目標框位置跳動的影響。本文最終將Q、R、P的初值分別設置為10、10、800。
在當前實驗應用的前提下,假定配置環境相同且使用相同訓練參數,YOLO v5s和其他網絡模型的訓練結果如表1(表中mAP@0.5表示IOU重疊閾值大于0.5的識別對象的平均精度)所示,本文使用的YOLO v5s網絡經過訓練后運行幀率達到156 f/s,mAP@0.5為99.10%,精度(Precision,P)為90.11%,召回率(Recall,R)為99.22%。對于真實應用場景中的圖像,選取3種YOLO網絡模型進行推理,并對其效果進行比較,結果如圖8所示。

表1 不同網絡模型實驗結果對比

圖8 不同YOLO模型應用效果對比
由表1和圖8可知YOLO系列的網絡性能優于Faster-R CNN;另一方面,即使YOLO v5s精度低于其他兩個YOLO網絡,但其幀率、mAP@0.5和召回率卻高于其他兩個網絡。在幀率方面,由于本文提出的計數方法需要應用于工業現場,實時性要求高,因此YOLO v5s具有更大的優勢。在召回率方面,由于目標識別過程中無法被召回而丟失的個數將為計數過程引入絕對誤差,因此YOLO v5s具有更高的召回率。在精度和mAP@0.5方面,其他兩個網絡的該值低于YOLO v5s,但它們全部識別目標的平均精度高于YOLO v5s,說明它們在訓練后賦予了過高的精度于IOU重疊閾值較低的個體,這表明模型的泛化能力較差。這與當前應用條件下訓練集數量過少,以及YOLO v6s和YOLO v7模型相對于YOLO v5s模型更加復雜有關。從圖8的實際應用效果比較中,也可以得出這一結論。綜上所述,在當前應用條件下,相比其他網絡模型,YOLO v5s網絡具有更好的應用效果。
為了直觀顯示追蹤效果,假設目標運動的真實運動模型為從零點位置以速度3 834像素/s勻速運動,步長選擇視頻幀率的倒數1/71 s。由于實際應用的需求,需要在較少個步長內追上識別框,因此在仿真實驗中只需仿真20個循環。同時,相機拍攝為離散情況,導致物體出現第一幀不在坐標原點,因此,在仿真的第9個循環開始加入卡爾曼濾波追蹤。
圖9a為預測開始之后預測位置、真實位置、加入干擾的觀測位置隨時間的變化,圖9b為預測位置與真實位置的差值,可以看到,預測能快速逼近真實位置,誤差像素能穩定在系統正常運行允許的區間內。

圖9 仿真實驗結果
將通過仿真的改進卡爾曼濾波模型應用于SORT算法中,實際黑水虻幼蟲目標追蹤效果如圖10所示,其中紅色為預測框,綠色為目標框。可見改進卡爾曼濾波模型實際追蹤效果達到仿真預期:預測框能快速跟上目標框,同時在第k+2幀追蹤目標位置發生跳變的情況下,自動進行誤差補償,在長時間內保持了穩定的追蹤效果。

圖10 改進卡爾曼濾波預測效果
使用同樣的YOLO v5s目標識別網絡,將匈牙利算法的3個參數同樣設置為max_age=1、min_hits=0、iou_threshold=0.1。由于上料密度會改變料的堆積、并排等情況,導致目標識別準確度下降影響精度,因此,采集5段測試用數據集,包含不同上料密度情況,對比本文方法與基于標準SORT算法的劃線計數算法計數精度,具體結果如表2、3所示。

表2 YOLO v5s+標準SORT計數方式實驗結果

表3 YOLO v5s+改進SORT計數方式實驗結果
本文采用視頻中包含幼蟲目標的有效幀總數來定量判斷實際上料密度,由于上料總數不變,有效幀越多,則單位幀平均幼蟲數量越少,上料密度越小;反之,有效幀越少,則單位幀平均幼蟲數量越多,上料密度越大。由表2、3可知,較大密度上料的計數精度往往差于較小密度上料的計數精度。同時,使用本文改進卡爾曼濾波的SORT目標追蹤計數方式不論大密度或是小密度上料的計數精度都高于標準SORT目標追蹤計數方式。本方法計數最高精度達到99.71%,平均精度達到95.55%,滿足系統設計要求。
(1)針對黑水虻幼蟲目標識別過程中需要克服的飼料與幼蟲混合的干擾以及幼蟲堆料,本文對比多種目標識別模型效果,最終選用YOLO v5s深度學習網絡提取圖像多尺度特征,使用中型規模的數據集訓練出可用的目標識別網絡,實驗結果表明,其幀率為156 f/s,mAP@0.5為99.10%,精度為90.11%,召回率為99.22%,達到本文需求的目標識別要求。
(2)通過實際實驗,驗證了使用標準卡爾曼濾波配合匈牙利算法實現SORT目標追蹤為劃線計數分配ID方式的可行性。
(3)針對標準卡爾曼濾波預測效果不佳導致計數精度較差的問題,本文提出了改進卡爾曼濾波模型。通過仿真和實際實驗發現,基于本文模型的計數最高精度為99.71%,平均精度為95.55%,均高于使用標準卡爾曼濾波預測模型。因此,相比于標準卡爾曼濾波模型,本文提出的模型更適用于黑水虻幼蟲劃線計數系統。