燕紅文,劉振宇,崔清亮,胡志偉
(1. 山西農業大學信息科學與工程學院,太谷 030801;2. 山西農業大學工學院,太谷 030801)
隨著生豬養殖模式規模化、集約化發展,現有豬場養殖環境監測與控制系統多基于傳感器獲取豬舍溫度、濕度、光照強度等外界環境信息間接評測生豬個體狀況,而生豬自身行為如飲食、站爬姿態等包含豐富的生物學信息,可用于生豬營養與健康評估,而對生豬個體研究的關鍵步驟和難點是將其從群養環境中檢測出來。但在實際養殖環境中,生豬黏連、雜物遮擋等客觀因素給多目標生豬個體檢測帶來較大挑戰,迫切需要高效準確的檢測算法進行生豬行為分析、個體識別、計數等,進而提升豬場經濟效益[1-2]。
基于深度學習的卷積神經網絡CNN(Convolutional Neural Network)對圖像特征具有強大的表征能力[3-4],已在生豬圖像分割[5-8]、行為識別[9-10]、姿態檢測[11]、身份鑒定[12]等方面取得較多成果,在目標檢測領域同樣表現出優越性能[13-15]。基于CNN 的目標檢測包括基于區域[16-19]與基于回歸2 大類,基于回歸思想的算法有YOLOV1、YOLOV2、YOLOV3 等系列[20-23],其將檢測目標位置視作回歸問題,在提升檢測精度的同時保證了檢測速度,適用于實際生產環境中,并已被用于蘋果[24]、芒果[25]、柑橘[26]、夜間野兔[27]等對象的檢測。在生豬個體檢測方面,沈明霞等[28]針對仔豬個體較小、易黏連和雜物遮擋等現象,提出基于YOLOV3 的初生仔豬目標識別方法,燕紅文等[29]在Tiny-YOLO 網絡的基礎上將通道注意力和空間注意力引入特征提取過程中,對群養生豬臉部進行高精度檢測。但上述基于YOLO 網絡的系列研究在特征提取過程中僅通過簡單疊加方式構建卷積池化模塊,未考慮池化操作前后不同大小特征圖之間的信息交互問題。金字塔結構[30]可在像素級別提取不同尺度特征并行考慮多種感受野信息,對多種尺寸目標均有較好檢測效果,并已在圖像分割領域得到成熟應用[31-33],但金字塔結構中不同尺度特征圖間僅通過簡單線性疊加方式實現信息融合,忽視了不同層級分支間的非線性關聯,受燕紅文等[29]研究工作啟發,注意力機制可通過僅關注利于任務實現的區域信息,抑制次要信息以提升模型效果,可用于高低階特征圖的非線性信息融合[34-36],因而探討將注意力機制引入金字塔結構中并構建群養環境多目標生豬檢測模型成為可能。
基于此,本文提出一種基于Tiny-YOLO 模型的非接觸、多目標群養生豬檢測算法,該方法結合特征金字塔注意力構建多種深度FPA 模塊,將其嵌入Tiny-YOLO 模型中進行端到端訓練,并研究不同超參數對模型檢測效果影響,實現對無黏連無遮擋、無黏連有遮擋、有黏連無遮擋以及有黏連有遮擋等不同場景下群養生豬的高精度檢測,以期為生豬身份識別和行為分析等提供模型支撐。
數據采集自山西省汾陽市冀村鎮東宋家莊村與山西農業大學實驗動物管理中心,分別于2019 年6 月1 日9:00-14:00(晴,光照強烈)與2019 年10 月13 日10:30- 12:00(多云,光照偏弱)進行2 次采集,為檢驗模型對不同品種生豬的檢測性能,選取大白、長白及杜洛克混養品種豬作為拍攝對象,2 個豬場豬欄大小分別為3.5 m×2.5 m×1 m 和4 m×2.7 m×1 m,每欄生豬數量3~8只不等,選取其中8 欄日齡20~105 d 的群養生豬共計45 頭作為試驗對象。
對生豬進行目標檢測、個體行為分析等研究通常將攝像頭固定于養殖欄頂部,采用俯視視角采集圖片或視頻[6,8-11,28],這種固定鏡頭和俯視視角的采集方式對其他視角的信息獲取有限,而其他視角如平視可采集到生豬面部信息,更有利于對生豬進行目標檢測等相關研究,且傳統采集方式與模型的移動端拓展應用并不十分契合,為此,本研究嘗試采用平視視角、鏡頭位置不固定的數據采集方式。試驗采用佳能700D 防抖攝像頭進行移動拍攝,鏡頭距離生豬個體0.3~3 m 不等,采集到不同大小的生豬個體和部分生豬黏連、欄桿遮擋、生豬互相遮擋等場景,共拍攝得到時長為35 s~64 min 的多段視頻,每欄選取2 段拍攝時長超過30 min 的視頻以保證數據源本身的連續性。相較于傳統的鏡頭固定、俯視視角采集方式,本采集方式有2 個優勢:易于采集到富含生物特征信息的生豬面部圖像,可為生豬目標檢測、個體識別、跟蹤提供一種新的數據采集方案;適用于模型的移動端拓展應用,可為開發移動端模型提供數據采集參考方案。
對獲取的視頻做如下預處理以得到群養生豬多目標檢測數據集:
1)對采集視頻每間隔25 幀進行切割處理,得到分辨率1 920×1 080 大小的圖片,為適應后續模型輸入,對其邊緣添加黑色像素使圖像寬高比為2∶1,最終分辨率調整為2 048×1 024,并采用labelImg 作為生豬個體標注工具。如圖1a~圖1b。
2)為降低模型顯存占用率,減少運算量,加速模型訓練速度,對步驟1)獲取的圖片及其標注結果分別進行整體放縮及坐標變換操作,得到2 727 張分辨率512×256大小的圖片。如圖1b~1c 所示。
3)為豐富數據集、提升模型泛化能力,對步驟2)處理的圖片進行數據增強操作,每張圖片以50%的概率值執行改變亮度、加入高斯噪聲以及翻轉180°生成0~2 張增強圖片,其中亮度修改閾值為0.8~1.2,大于1 表示調暗,小于1 表示調亮。
經上述處理后共獲得標注圖片4 102 張,按照通用數據集劃分策略[37],以14∶3∶3 比例將數據集劃分為訓練集、驗證集與測試集,其中訓練集包括2 872 張圖片,驗證集和測試集各包含615 張圖片。數據處理過程及效果如圖1 所示。

圖1 數據處理過程及效果 Fig.1 Data processing process and effects
YOLO 是由Redmon 等[20-22]提出的目標檢測系列模型,包括YOLOV1、YOLOV2 和 YOLOV3 三大類。Tiny-YOLO 作為輕量化的YOLOV3,融合了最新的特征金字塔網絡(Feature Pyramid Networks,FPN)[38]和全卷積網絡(Fully Convolutional Networks,FCN)[39]技術,使用邏輯回歸(Logistic Regression)對方框置信度進行回歸,同時提出了跨尺度預測,并使用二元交叉熵損失(Binary Cross-Entropy Loss)進行類別預測,可更好地用于處理多標簽任務,模型結構更簡單,檢測精度更高,速度更快。
Tiny-YOLO 模型的網絡結構如圖2 所示。該模型主要由卷積層與池化層堆疊構成。模型輸入分辨率大小為512×256×3,由于不同種類目標在原始圖像中所占比例差異較大,Tiny-YOLO 引入多尺度特征提取模塊以保證對不同大小目標均具有較強的檢測性能,因而在2 個檢測尺度S 上(S 取16×8 與32×16)進行物體類別劃分,每個卷積或上采樣操作下方的數字代表對應操作的通道數量,其輸出如圖2 中①②所示,①和②分別表示獲得不同尺度特征圖2 種操作,其中①的S 取值16×8,原因在于獲取到①對應輸出時,中途對輸入512×256×3 大小圖像進行了5 次下采樣操作,每次下采樣操作均使特征圖長度與寬度的分辨率降低一半,其最終特征圖大小為16×8,②的S 取值32×16,對輸入圖像經過4 次下采樣獲得。通過將輸入圖像分成S 大小單元格,每個單元格的神經元負責檢測落入該單元格的對象,并執行一系列3×3和1×1 卷積、池化以及上采樣操作后分2 路得到①與②的特征圖,每經過一次卷積和池化操作后,特征圖分辨率縮減一半,對應特征圖數目增大1 倍。引入非極大值抑制(Non Maximum Suppression,NMS)[40]剔除①與②的冗余檢測框以保證對于每個目標均有唯一檢測框,使預測位置信息更為準確,置信度更高。但Tiny-YOLO 模型在特征提取過程中,對于①與②多尺度特征圖的獲取僅通過簡單的卷積池化層堆疊完成,使用不同池化層數量將使得輸出特征圖大小不一,截取不同池化層結果將獲得不同尺度大小的輸出,但這種方式忽視了高低維特征自身具有很強的特征篩選能力,簡單抽取其作為后續輸出勢必浪費部分重要信息,若能對已抽取的特征圖進行特征重校準,自動學習提取生豬個體部位有益信息,抑制諸如豬欄、豬糞等干擾因素的影響,可進一步提升生豬個體部位抽取精度。

圖2 Tiny-YOLO 模型結構圖 Fig.2 Tiny-YOLO model structure diagram
經典Tiny-YOLO 模型通過卷積層與池化層層疊方式構建,在特征提取過程中未充分考慮不同尺度大小卷積層的獲取特征圖間的相互關系,而金字塔結構可從像素級提取不同尺度特征,并行考慮多種感受野信息,對尺寸較大或者較小的目標均有較強識別效果。但傳統金字塔結構中不同尺度特征圖間僅通過簡單線性疊加完成信息融合,忽視了不同層級分支間的非線性關系。注意力機制可提取不同層級的非線性信息,通過僅關注利于任務實現的區域信息,抑制次要信息以提升模型效果,可用于高低階特征圖的非線性信息融合。Zhao 等[36]將特征金字塔注意力(Feature Pyramid Attention,FPA)引入圖像分割領域,并取得不錯的效果,受其啟發,本文結合金字塔與注意力思想,提出適用于目標檢測領域的FPA模塊,本文FPA 模塊相較于Zhao 等提出的FPA 模塊進行2 點改進:為減少卷積運算量加快模型訓練速度并綜合考慮目標檢測任務特點,去除原始FPA模塊中的Global Pooling 分支;構建1~4 多種層級FPA 模塊以深入探討層級數對模型性能提升程度影響,本文FPA 模塊如圖3所示。

圖3 FPA-4 特征金字塔注意力模塊 Fig.3 FPA-4 feature pyramid attention module
特征金字塔注意力模塊通過U 型結構融合多種不同尺度特征,包括金字塔特征提取組件簇與注意力特征融合組件簇2 大部分,如圖3 虛線框部分所示,其中左側虛線框表示金字塔特征提取,右側虛線框表示注意力特征融合。金字塔特征提取組件簇共包括4層,層內執行3×3大小卷積操作進行多次特征提取,層間通過步長為2×2的池化下采樣操作互連以逐步減小特征圖分辨率大小,經金字塔特征提取組件處理后分別獲得4 種不同尺度的特征圖,且不同尺度特征圖數量不相同。為了充分融合金字塔特征提取組件所獲取的特征學習結果,引入注意力特征融合組件塊,該組件塊通過層級方式構建,從上至下分別采用3×3、5×5、7×7 和9×9 卷積核進行相應層級特征提取,將上一層特征選擇結果經步長為2×2 的上采樣操作生成注意力權重圖與當前層對應卷積核大小的深層卷積操作結果疊加進行重校準,經該處理后,特征明顯區域將得到有效加強,層與層間相連逐步集成不同尺度信息,從而能夠更精確地合并上下層特征間的相鄰尺度特征。為避免金字塔特征提取與融合過程對原始輸入特征圖帶來的誤判,對原始特征圖經1×1 大小卷積操作后與上述金字塔特征融合模塊操作結果進行線性疊加獲得FPA 模塊并輸出。以上FPA 模塊操作過程如式(1)~式(4)所示。
相較于醫院院區間的信息共享,區域衛生信息共享需要克服不同醫院在區域醫療體系中由于角色與定位不同帶來的共建共享障礙。醫聯體通常由一所綜合強的醫院牽頭,通過簽署協議將一定區域內的三級醫院與二級醫院、社區醫院等組成的一個醫療聯合體,構建分級醫療、急慢分治、雙向轉診的診療模式,促進分工協作,合理整合資源,實現信息共享[20]。

式中Input 與Output 分別表示FPA 模塊的輸入與輸出,Inputi表示第i 層金字塔特征提取組件輸入,從上至下其層數逐次增加,Convsize×size(I)表示對I 進行size×size 卷積核大小的卷積操作(如Conv1×1(Input)表示對Input 進行1×1 卷積核大小的卷積操作),size 表示卷積核的長或寬尺度大小,本文設置其長寬尺度相等,Up(I) 表示對I 進行長寬步長分別為2 的上采樣操作以恢復特征圖分辨率大小,Down(I) 表示對I 進行長寬步長分別為2 的下采樣操作以降低特征圖分辨率大小,fpa(i)表示第i 層金字塔特征提取組件與對應注意力特征融合組件的融合輸出。為探究最適用于群養生豬多目標檢測FPA 模塊,分別構建1~4 層FPA 結構,并命名為FPA-1、FPA-2、FPA-3和FPA-4,其區別僅在于FPA 模塊中金字塔特征提取組件與注意力特征融合組件內層數數量N 不同,N 取值為1~4,取1 表示FPA 中金字塔特征提取組件與注意力特征融合組件僅包含圖3 中的最上面一層,N 取2~4 時以此類推,k(i)表示第i 層注意力特征融合組件卷積操作的卷積核大小,其值與當前所處層數相關。FPA 模塊中不同金字塔分支將特征映射為不同子區域,不同尺度特征圖具有差異化的感受野范圍,通過聚合基于不同區域語義內容,挖掘全局上下文信息,有層次對先驗結構進行多尺度融合,使得最終輸出特征圖融合全局先驗信息以達到強化特征提取目的。
試驗運行平臺為16GB Tesla V100 GPU,系統為Ubuntu16.04,采用keras 框架進行模型代碼編寫。將數據集劃分為訓練集、驗證集和測試集3 部分,其中訓練集大小為2 872,驗證集與測試集大小均為615,采用批訓練方式對YOLOV3 和Tiny-YOLO 模型在訓練集與驗證集上進行試驗,一個批次訓練32 張圖片,遍歷全部訓練集數據稱為1 輪迭代,試驗中設置迭代輪數為200,模型均采用與Redmon 等[22]一致的loss 損失函數,采用自適應矩陣估計算法(Adaptive moment estimation,Adam)進行模型最優參數值選取。為使模型能夠檢測出不同大小的生豬個體,引入錨框(Anchor box)[17]思想,anchor 給出目標寬高的預設初始值,其常用于對目標個體大小進行粗判以避免模型在訓練過程中盲目進行目標位置與目標尺度學習,可通過K-means 等算法在訓練開始前獲得,在訓練過程中可通過降低真實寬高與初始寬高的相對偏移量的回歸任務操作以對目標寬高大小預測更為精確。YOLOV3 系列模型采用K-means 算法共生成9 個錨框,其大小分別為(34,52)、(53,63)、(59,90)、(67,40)、(84,155)、(92,62)、(96,107)、(137,84)和(167,122),其中坐標(X,Y)分別表示錨框的寬和高,前3 個錨點框用于檢測較小生豬個體,中間3 個錨點框用于檢測中等大小生豬個體,后3 個錨點框適用于檢測較大的生豬個體。Tiny-YOLO 模型共生成2 種不同大小的潛在錨框,每種包含3 個錨框,最終獲得6 個錨框信息值,其大小分別為(35,54)、(56,82)、(65,44)、(85,136)、(96,63)和(145,106),其中前3 個錨點適用于檢測較小生豬個體,后3 個適用于檢測較大生豬個體。計算mAP 指標時,采用與PASCAL VOC2012 一致的指標定義方式[41],設置檢測框與手動標注框的IOU 閾值超過某一數值且類別預測置信度score超過某一數值的情況下為檢測正確[42],為研究不同IOU與score 數值對模型預測結果影響,分別固定score 閾值為0.5,分析IOU 閾值選取0.2、0.35、0.5、0.65 和0.8模型預測指標結果,固定IOU 閾值為0.5,分析score 閾值選取0.5、0.6、0.7、0.8 和0.9 的預測結果。
采用精確率Precision、召回率Recall、F1 值以及平均檢測精度mAP(mean Average Precision)作為評價指標,檢測精度表示Precision-Recall 曲線下方面積,mAP指模型對生豬目標所有類別的檢測精度平均值,實時性采用每秒傳輸幀數(Frames Per Second,FPS)作為評價指標,其值越大,模型實時性越佳,Precision、Recall、F1 及mAP 定義如式(5)~式(8)所示。

式中TP(True Positive)表示模型預測為生豬目標框且實際也為生豬目標的檢測框數量,FP(False Postive)表示模型預測為生豬目標框但實際并不為生豬目標的檢測框數量,FN(False Negative)表示預測為背景但實際為生豬個體框的樣本數量,式(8)中r 表示積分變量用于求解0~1 之間Precision·Recall 的乘積積分值。
4.1.1 模型檢測精度與實時性
表1 為YOLOV3 與Tiny-YOLO 模型加入不同深度特征金字塔注意力模塊FPA 后在測試集上的Precision、Recall、F1、mAP、FPS 預測指標情況,不同模型采用相同的訓練超參數,測試時設置score 閾值為0.5,IOU 閾值為0.35,預測分數大于0.5 且交并比大于0.35 時視為預測正確,每種模型均設計不加入FPA 模塊與加入深度為1~4 的FPA 模塊5 種對比試驗,以驗證不同深度特征金字塔注意力模塊的有效性,尋找最適于群養生豬多目標檢測的模型。
試驗結果表明:1)Tiny-YOLO 模型加入FPA 前后Precision、Recall、F1 以及mAP 值均優于加入相同模塊的YOLOV3 模型。加入FPA-3 的Tiny-YOLO 模型mAP較加入相同模塊的 YOLOV3 提高 8.4 個百分點,Precision、Recall 與F1 值分別提高了1.04、7.93 和5.09個百分點。效果最好的FPA-2-YOLOV3 模型各項指標仍低于未加入任何FPA 模塊的Tiny-YOLO 模型,后者比前者的Recall、F1 和mAP 分別提高1.9、0.21 和1.5個百分點,與YOLOV3 模型相比,基于Tiny-YOLO 的模型性能較佳,因而后續選取Tiny-YOLO 模型進行深入研究。

表1 超參數score 和IOU 為0.5 和0.35 時的模型預測結果 Table 1 Prediction results of the models with hyperparameter score and IOU values of 0.5 and 0.35
3)不同深度FPA 模塊對Tiny-YOLO 模型檢測性能提升幅度有所差異。加入FPA-3 模塊的Recall、F1 和mAP較Tiny-YOLO 模型提高了3.75、2.59 和4.11 個百分點,與加入FPA-4 模塊的模型相比,Precision、Recall、F1 及mAP 分別提升0.73、2.76、1.88 和3 個百分點。此外,模型性能并未隨著所加FPA 模塊深度的增加而有所提升,可見,并非加入越深的FPA 模型就越能提取更佳的有效特征,這可能是因為一定深度的FPA 模塊已經完全能夠學習到較全的生豬個體信息,引入過多的注意力信息反而弱化了注意力區域的激活值。在Tiny-YOLO 模型組試驗中,FPA-3-Tiny-YOLO 的Precision 雖未取得最優,但仍可達到97.58%,該模型更適用于群養狀態下生豬個體目標信息的有效提取。
4)在預測實時性方面,Tiny-YOLO 和YOLOV3 模型的FPS 值為50.9、29.6,Tiny-YOLO 較YOLOV3 的FPS 提高了21.3,FPA 模塊會使模型運行時長增加,各模型FPS 都有所減小,其中,Tiny-YOLO 模型增加FPA-1后FPS 減少0.2,減少幅度為0.39%,而增加FPA-4 后模塊FPS 值減少7.1,降少幅度為13.95%;YOLOV3 模型增加FPA-1 后FPS 減少1.4,減少幅度為4.73%,而增加FPA-4 后模塊FPS 值減少5.4,減少幅度為18.24%,減少幅度最大, 綜合權衡預測精度與 FPS 值,FPA-3-Tiny-YOLO 可獲得最優檢測性能同時獲得較優FPS 值。當FPS 大于25 時模型對圖像的處理可滿足實時性要求,因而加入FPA 模塊的Tiny-YOLO 模型可用于生豬目標檢測的實際應用中。
4.1.2 模型指標值變化原因
為探究試驗模型預測差異性的深層原因,由式(5)~式(8)可知,預測TP 與FP 值與模型性能直接相關,因而對加入特征金字塔注意力模塊前后模型在測試集上的TP、FP 數值進行分析。TP 與FP 值的獲取需對模型預測結果類別框實施2 步過濾操作,1)以一定數值置信度去除部分低于該值的預測框(試驗設置置信度值為0.5),2)對已通過置信度篩選的預測框依照置信度值進行降序排列,計算最高置信度值預測框與真實框間的IOU 值,若IOU 超過設定閾值(設置IOU 閾值為0.35),則將當前預測框加入TP中,同時將對應生豬個體標注為已檢測,后續對該生豬的預測框將全部列入FP 中,最終統計結果如表2 所示。

表2 試驗模型對生豬目標預測的TP 與FP 值 Table 2 TP and FP values predicted by experimental model for live pig targets
試驗結果表明:TP 值越高,模型越優,由表2 可見,Tiny-YOLO 模型均優于YOLOV3 模型,未加入FPA的Tiny-YOLO 模型TP 值比YOLOV3 多173 個,預測正確類別框個數提升11%,各試驗模型加入FPA 模塊的TP 值均高于未加FPA 模塊模型,在Tiny-YOLO 模型試驗組中,TP 值大小排序為 FPA-3>FPA-1> FPA-2>FPA-4,可見并非隨著FPA 深度增加,對應類別框預測準確率更高;而對于FP 值,該值越小,對應模型越佳,相同試驗條件下,YOLOV3 模型試驗的TP 值較Tiny-YOLO 模型小,Tiny-YOLO 模型的FP 值相較于YOLOV3 模型有一定程度增加,但與TP 指標值增加幅度相比,FP 增加幅度遠低于TP 增加幅度,因而在整體預測性能上更偏向于 TP,以加入 FPA-1 為例,FPA-1-Tiny-YOLO 模型比FPA-1-YOLOV3 模型的TP值高119 個,FP 值高2 個,由FP 增加帶來的性能損失僅占TP增加帶來的性能提升的1.68%,可見Tiny-YOLO模型優于YOLOV3 模型主要是由TP 值提升所引起。對同一組模型,除FPA-3-YOLOV3 外,引入FPA 模塊FP值均有減少,與TP 值增加相結合,使FPA 模塊進一步提升模型性能。
4.2.1 不同IOU 閾值對檢測精度影響
為探討IOU 閾值對模型各指標的影響,選取score閾值為0.5(考慮到數據中生豬部位與背景是一個二分類問題,因而當預測值大于等于0.5 時可認為預測類別正確),以相同試驗條件在測試集上對IOU 閾值分別選取0.2、0.35、0.5、0.65 和0.8 并計算Precision、Recall、F1和mAP 指標,試驗結果如表3 所示。

表3 IOU 取值對加入FPA 模塊的Tiny-YOLO 模型預測性能影響 Table 3 Effects of IOU values on prediction performance of Tiny-YOLO model with FPA module
試驗結果表明:1)隨著IOU 閾值的增大,模型各指標變化差異較大。F1 與mAP 指標先增加后減少,且一般在IOU 值為0.35 時能夠達到最優,FPA-2-Tiny-YOLO 和FPA-3-Tiny-YOLO 模型的mAP 指標雖未取得最佳,但其值仍具有很強競爭力;Recall 值則逐漸增大,這是由于各指標評價的側重點不同造成的,由公式(6)可知,Recall是由TP 與TP+FN 相除所得,實際計算中TP+FN 的值始終為2 106(即測試集上所有生豬數量),隨著IOU 增大TP 值逐漸增大,但這種增大現象在計算Precision 的時候受FP 值的增加而減弱,由公式(5)可知,Precision 是由TP 與TP+FP 的商所得,隨著IOU 增大,FP 值也出現相應增大,因而Precision 值出現一定程度降低,F1 指標變化規律與Precision 一致,表明隨著IOU 閾值的變化,FP 值的波動幅度要遠遠高于TP 值。
2)加入不同FPA 模塊后,各模型在IOU 閾值相同時表現出不同性能。在加入FPA-3 后,各模型在不同IOU 閾值條件下均表現出較強性能,IOU 值選取0.5時FPA-3-Tiny-YOLO 比Tiny-YOLO 模型的F1 和mAP指標提升2.77 和4.19 個百分點,IOU 閾值相同時,模型指標并未隨著添加不同深度的FPA 模塊出現遞增或者遞減現象,說明FPA 模塊的深度對試驗效果并未有規律性影響。綜上,FPA-3 模塊更適用于生豬多目標檢測領域。
4.2.2 不同置信度分數閾值對檢測精度影響
為探討置信度分數閾值對Tiny-YOLO 試驗組模型各指標的影響,選取IOU 閾值為0.35(其在4.2.1 中試驗效果最優),以相同試驗條件在測試集上對score 閾值分別選取0.5、0.6、0.7、0.8 和0.9 并計算Precision、Recall、F1 和mAP 指標,試驗結果如表4 所示。
試驗結果表明:不同score 值對模型各指標值具有一定影響。各模型Recall、F1 和mAP 指標隨著score 增大逐漸減小,以FPA-3-Tiny-YOLO 為例,score 為0.5 時各模型上述三種指標較score 為0.6 時高出3.66、1.82 和3.58個百分點,較score 為0.9 時更是高出19.38、11.53 和19.16個百分點,這是因為隨著score 值的增加,相應預測為生豬個體類別框的數目急劇減少,即TP 數量減少。由公式(6)可知,分母TP+FN 值為常量,分子在減少的情況下對應Recall 指標會減少。
Precision 值則隨著score 值增大逐漸增大,由公式(5)可知,Precison 值由TP 和FP 共同決定,score 增大會使TP 值減小,但相應的FP 值也會減小,而FP減小的幅度要快于TP,因而Precison 會逐漸增大,即在實際中,對生豬目標框預測正確的個數以及將某個非生豬部分預測為生豬個體框的錯誤個數均出現下降情況,且后者下降速度更快,這會導致某些生豬個體被漏檢。
為進一步研究模型在不同場景下的魯棒性,將測試集劃分為無黏連無遮擋、無黏連有遮擋、有黏連無遮擋和有黏連有遮擋4 種情形,上述場景的生豬框個數分別為449、872、458 和327 個,在Tiny-YOLO 模型中加入不同特征金字塔注意力模塊,設置IOU 閾值為0.35,score閾值為0.5,各模型指標試驗結果如表5 所示。
由表5 可知,加入FPA 模塊對不同場景下的多目標生豬個體檢測具有積極作用。在有黏連有遮擋場景下,FPA-3-Tiny-YOLO 模型的Recall、F1 和mAP 指標較Tiny-YOLO 提升6.73、4.34 和7.33 個百分點,其余模型在部分指標上提升幅度不明顯,但其性能一般優于Tiny-YOLO 模型。加入同一模塊的模型在不同場景下指標值相差較大,無黏連無遮擋場景的指標優于其余3 種場景,可見生豬所處場景對模型具有很大挑戰性,場景特征較為簡單時可獲得較好的檢測結果,而場景特征較為復雜則會使模型性能有一定程度降低,且對應不同的場景,加入注意力模塊后的模型總體優于未加入任何注意力信息的Tiny-YOLO 模型(如:FPA-1-Tiny-YOLO、FPA-2-Tiny-YOLO 與FPA-3-Tiny-YOLO三種模型在無黏連無遮擋、無黏連有遮擋與有黏連無遮擋三種場景下其各個預測指標值均優于Tiny-YOLO 模型),說明注意力模塊對于生豬場景變化具有很強的魯棒性;加入不同深度FPA 模塊的模型在不同場景下性能表現不同,FPA-1與FPA-3 分別在有黏連無遮擋與無黏連無遮擋場景下能取得最高mAP 指標值,可見,并非FPA 模塊越深模型性能越好,實際使用中需要綜合考量選取合適深度以獲得最適用于對應場景模型,不同場景下的部分檢測結果見圖4。

表5 Tiny-YOLO 模型在不同場景下的檢測結果 Table 5 Test results of Tiny-YOLO models in different scenes

圖4 加入不同深度FPA 模塊的Tiny-YOLO 模型在多種場景下的預測效果 Fig.4 Prediction effects of Tiny-YOLO model with different depth FPA modules in multiple scenes
由圖4 可見,在無黏連無遮擋和無黏連有遮擋場景下,加入FPA 模塊的模型在有豬欄等雜物遮擋時,仍可提取較完整的生豬個體邊框,生豬預測置信度分數更高,在有黏連無遮擋場景下,FPA-1-Tiny-YOLO 仍能有效檢測到遠離鏡頭且有遮擋的生豬個體,預測結果較完整,而其他模型均有不同程度的錯檢或者漏檢,在有黏連有遮擋場景下,不同模型預測結果差異較大,其中FPA-3-Tiny-YOLO 對遠處黏連生豬個體也能實現精準分離,且對生豬個體預測更為精細,提取效果更佳。
本文在Tiny-YOLO 模型中引入特征金字塔注意力信息,對Tiny-YOLO 模型進行了改進,構建包含不同深度FPA 模塊的多種FPA-Tiny-YOLO 模型,研究不同超參數對模型性能影響,分析各模型對不同群養場景下生豬檢測的性能,主要結論如下:
1)加入多種特征金字塔注意力信息,可使Tiny-YOLO 和YOLOV3 模型精度有不同幅度提升。與YOLOV3 模型相比,Tiny-YOLO 模型具有更高檢測精度,檢測實時性優于加入相同模塊的YOLOV3 模型。
2)不同深度FPA 模塊對Tiny-YOLO 模型指標提升幅度有所差異。在超參數固定情況下,加入FPA-3 注意力模塊的Tiny-YOLO 模型效果最佳,表明并非加入的FPA 模塊越深模型提取特征能力越強,應用中需根據不同場景選擇添加不同深度的FPA 模塊。
3)交并比IOU 和置信度score 的不同閾值對加入不同FPA 模塊的Tiny-YOLO 模型有不同影響。在選定IOU值的情況下,召回率、F1 值和平均檢測精度三個指標隨著score 閾值的增大而減小,在選定score 值的情況下,F1 和mAP 指標隨著IOU 閾值的增大先增加后減少,試驗表明在IOU 閾值為0.35,score 閾值為0.5 時,加入多種層級的FPA模塊的Tiny-YOLO模型各個指標取得最佳值。
4)加入FPA 模塊后對不同場景下的多目標生豬個體檢測均有積極作用,加入FPA-3 模塊的mAP 指標值最佳,表明添加特征金字塔注意力模塊的模型在復雜環境中仍能剔除冗余信息實現高效檢測,對群養生豬目標所處環境具有魯棒性。