孫嘉燚,蒼巖
哈爾濱工程大學 信息與通信工程學院,黑龍江 哈爾濱 150001
近年來,深度學習技術在各行各業(yè)掀起了一股熱潮,在農業(yè)領域也得到了廣泛的應用[1-9]。在規(guī)?;?、現代化豬場中,養(yǎng)殖人員越來越重視豬場的智能化養(yǎng)殖,這不僅能提高養(yǎng)殖效益,而且能降低豬只感染疾病的風險。尤其是在新冠肺炎和非洲豬瘟雙疫情的影響下,越來越多的養(yǎng)殖戶開始關注智能化生物安全問題。智能化管理通常需要對生豬的個體建立養(yǎng)殖檔案,生豬的個體識別研究變得日益重要。將多目標追蹤技術應用到生豬個體識別中,不僅可以減少養(yǎng)殖人員與豬只的接觸,提高生物安全級別,同時還可以節(jié)省人力資源消耗,提高生產效益。Ahrendt 等[10]設計了一種實時的計算機視覺系統,能夠減輕養(yǎng)殖人員識別和定位豬只的工作量。Jung 等[11]將人工智能與物聯網相結合,設計了一個新型監(jiān)控系統,對豬只的跟蹤精度能達到77%左右。Mittek 等[12]使用深度圖像連續(xù)跟蹤豬只,替代了傳統的人工觀察方法。Sun 等[13]提出了一種多通道色彩特征自適應融合算法,利用豬只的輪廓信息更新豬的目標尺度,王海濤等[14]對靜止的豬只目標消失問題和豬只交錯產生的丟失目標問題進行了深入探究,肖德琴等[15]提出了一種基于視頻追蹤的豬只運動信息檢測方法。
本文基于改進的Faster R-CNN 網絡,提出了一個豬只身份個體識別網絡,實現了基于視頻數據的多豬只身份識別,有助于智能化管理。同時,減少了養(yǎng)殖從業(yè)人員與豬只的接觸,增強了生物防疫的安全性。
多目標追蹤是一項以目標檢測為基礎的技術,隨著近幾年來目標檢測技術越來越成熟、完善,與之相應的多目標追蹤技術也得到了快速發(fā)展。本文所提出的豬只個體識別網絡以Faster RCNN[16]為目標檢測器,再以豬只個體識別網絡進行個體識別,結構如圖1 所示。
圖1 豬只個體識別網絡結構
Faster R-CNN 是一個非常經典的目標檢測算法,其骨干特征提取網絡采用的是VGG16[17]。本文應用背景比較特殊,圖片中食槽的顏色、外觀與灰色豬只非常的相近,容易造成誤檢。為了取得更好的豬只檢測結果,在特征提取部分采用ResNet50[18]來替代VGG16。本文的目標分類總數為1,即只對豬只進行分類。目標檢測網絡結構如圖2 所示。
圖2 目標檢測網絡結構
ResNet50 網絡解決了神經網絡的退化問題,能夠提取更深的特征,多個ResNet 殘差塊組成特征提取的骨干網絡,其結構如圖3 所示。
圖3 中x為原始圖像,W(x)為 對x做映射操作,F(x)為 對x經過三層卷積后做的特征提取,H(x)為這2 部分的相加后的結果圖像,其中每一層的激活函數采用f(x)=relu,其計算公式為
圖3 ResNet 殘差塊結構
如果F(x)和x的維度相同,則可以直接進行相加,其中W為恒等映射操作,即W(x)=x。如果F(x)和x的維度不同,則W代表1 ×1的卷積操作,把x的維度進行調整,使之和F(x)的維度一致,最后再進行相加。正是基于這種特殊結構,ResNet50網絡的層數可以設計足夠深,特征提取效果好于VGG16,針對豬只的特征提取也達到了更好的結果。最終ResNet50 網絡整體結構如表1 所示。
表1 ResNet50 網絡結構
表1 中1×1、3×3、1×1 代表上文所說的殘差塊結構,每個殘差塊有3 層卷積核。Conv2_x 有3 層殘差塊,Conv3_x 有4 層殘差塊,Conv4_x 有6 層殘差塊,Conv5_x 有3 層殘差塊,從Conv2_x 一直到Conv5_x 一共有16 個殘差塊,所以一共有16×3=48層卷積核,再加上Conv1 和最后一層的平均池化一共50 層。
圖4 是ResNet50 每一層輸出的可視化結果。
圖4 可視化結果
圖5 是VGG16 作為特征提取網絡產生的效果圖,圖6 是ResNet50 作為特征提取網絡產生的效果圖,提取不同幀進行對比,VGG16 會把食槽(圖片中用圓圈圈出來的部分),誤檢測成豬只,而ResNet50 則可以抑制這種情況。
圖5 VGG16 效果
圖6 ResNet50 效果
本文提出的個體識別網絡分別對如下3 種情況進行了研究:
1)沒有豬只消失,沒有豬只出現。
對于這種情況,本文直接將上一幀的檢測框輸入到豬只個體識別網絡的感興趣區(qū)域結構,預測當前幀目標檢測框的位置與得分。豬只軌跡示意圖如圖7 所示。
圖7 豬只軌跡示意
以一只豬為例,Bt-1代 表第t-1幀的檢測框,Bt代表第t幀的檢測框,圖片中t-1代 表第t-1幀,t代表第t幀。我們直接把第t-1幀的檢測框作為第t幀的感興趣區(qū)域,之后預測第t幀目標檢測框的位置與得分。
2)豬只被遮擋后再出現。
對于這種情況,本文使用身份重識別網絡,將豬只被遮擋之前的特征圖和被遮擋之后的特征圖做對比,如果它們的歐氏距離小于閾值,則被認為是同一目標,恢復被遮擋的身份ID。將ResNet50 作為身份重識別網絡,提取目標的特征圖。其可視化結果如圖8 所示。
圖8 遮擋再出現可視化結果
3)新目標的出現
對于這種情況,計算正常目標檢測得到的檢測框位置與感興趣區(qū)域得到的檢測框位置的交并比(intersection over union,IoU),如果IoU 小于閾值,則被認為是新目標。
IoU 是目標檢測中常用的一個概念,代表目標檢測器產生的候選框和物體真值框的交并比,本文利用它來判定是否出現新目標,具體定義說明如圖9 所示。
圖9 IoU 計算過程
圖9 中黃色區(qū)域代表候選框和物體真值框相交的面積,藍色區(qū)域代表候選框和物體真值框相并的面積,IoU 的最大值為1,最小值為0。
豬只個體識別網絡整體流程圖如圖10 所示。
2.1.1 數據集的采集
目前,對于多豬只個體識別這方面的研究還很少,沒有相應的公開數據集,所以本實驗仿照MOT16[19]數據集的格式制作了關于豬只的數據集。數據采集使用小米智能攝像機云臺版,用此設備來對豬只進行監(jiān)控與視頻錄制,以便于后面切割視頻制作數據集。根據豬場的環(huán)境與豬只的生活習性,經過反復的實驗對比,數據集的采集分為2 個時間段,分別是早上7:00~9:30 和中午11:00~13:00,共18 段視頻,每段視頻時間30 s~2 min不等。數據集原圖效果如圖11 所示。
圖11 豬只數據集原圖效果
2.1.2 豬只數據集的預處理與標簽制作
本文把采集完的18 段豬只視頻數據做了如下預處理,分為訓練集和測試集。訓練集共16 段視頻,采用1 秒2 幀的間隔進行數據提取,總計4 040 幀;測試集共2 段視頻,采用1 秒5 幀的間隔進行數據提取,總計392 幀。另外,為了減少旁邊豬欄對實驗結果造成的干擾,本文對所有圖片進行了掩膜處理,將原圖與黑色掩膜進行相加,最終的數據集效果如圖12 所示。
圖12 預處理后豬只數據集圖片效果
本文使用Darklabel 標簽工具進行標簽制作,訓練集總共制作了4 040 張標簽圖片,其標簽圖片如圖13 所示。
圖13 標簽圖片效果
本文的實驗設備參數如下:Ubuntu 18.04,顯卡為GTX 1080Ti,顯存11GB,CPU 為i7-8700K,內存16 GB。
訓練參數如下:輸入圖片分辨率大小為1 280×720,權重更新選擇隨機梯度下降方法,動量值為0.9,學習率初始值為0.001,每10 個epoch 學習率縮小10 倍,共81 個epoch。
算法參數如下:目標檢測閾值為0.7,目標檢測IoU 閾值為0.5,保持個體識別存活閾值為0.8,個體識別IoU 閾值為0.6,最大特征保存數為10,外觀相似度閾值為1 000。
網絡訓練的損失函數L曲線如圖14 所示。
圖14 損失函數曲線
本文使用2.1.2 節(jié)制作的4 040 張標簽進行訓練,然后使用測試集的2 段視頻進行測試,這2 段視頻的選取分別從時間長短、豬只遮擋情況這兩方面進行考慮,包含了豬只運動的絕大部分情況。圖15 與圖16 分別是視頻1 與視頻2 的豬只個體識別的結果。
圖15 視頻1 豬只個體識別結果
圖16 視頻2 豬只個體識別結果
視頻1 中豬只檢測結果良好,沒有遮擋情況,在豬只之間距離比較近的時候,豬只身份ID 仍然追蹤穩(wěn)定,個體識別效果良好。
視頻2 中在第100 幀和第140 幀的時候,每頭豬都能很好地檢測出來;在第170 幀的時候0 號豬只遮擋了2 號與4 號豬只;在第200 幀的時候0 號豬只走開,2 號與4 號豬只恢復了原本自己的身份ID,個體識別效果良好。
這2 段視頻的豬只個體識別評價指標如表2所示。
表2 豬只個體評價結果
從表2 可以看出:視頻1 與視頻2 的MOTA值高于95%,視頻1 的MOTP 值為6.4%,視頻2 的MOTP 值為15.4%,這兩段視頻均沒有產生身份轉換問題,各項評價指標均達到了一個理想的數值,特別是在視頻2 中,豬只被完全遮擋以后再出現時,仍然能恢復原來的身份ID,這進一步驗證了本文算法的有效性。
本文就基于多目標追蹤方法的豬只個體識別算法進行了研究。在目標檢測階段使用改進的Faster R-CNN 算法,把VGG16 特征提取網絡替換為ResNet50,之后使用豬只個體識別網絡來進行個體識別。實驗結果表明:無論是在豬只之間距離比較近的時候,還是在豬只被完全遮擋的情況下,豬只之間都沒有發(fā)生身份轉換的問題;MOTA值均在95% 以上;MOTP 值均在16% 以下;身份轉換次數較少,在進行身份識別的時候性能穩(wěn)定。實驗結果和理論分析說明了文中模型、方法的有效性。