燕紅文,劉振宇,崔清亮,胡志偉
(1. 山西農(nóng)業(yè)大學(xué)信息科學(xué)與工程學(xué)院,太谷 030801;2. 山西農(nóng)業(yè)大學(xué)工學(xué)院,太谷 030801)
隨著生豬養(yǎng)殖模式規(guī)?;?、集約化發(fā)展,現(xiàn)有豬場(chǎng)養(yǎng)殖環(huán)境監(jiān)測(cè)與控制系統(tǒng)多基于傳感器獲取豬舍溫度、濕度、光照強(qiáng)度等外界環(huán)境信息間接評(píng)測(cè)生豬個(gè)體狀況,而生豬自身行為如飲食、站爬姿態(tài)等包含豐富的生物學(xué)信息,可用于生豬營(yíng)養(yǎng)與健康評(píng)估,而對(duì)生豬個(gè)體研究的關(guān)鍵步驟和難點(diǎn)是將其從群養(yǎng)環(huán)境中檢測(cè)出來。但在實(shí)際養(yǎng)殖環(huán)境中,生豬黏連、雜物遮擋等客觀因素給多目標(biāo)生豬個(gè)體檢測(cè)帶來較大挑戰(zhàn),迫切需要高效準(zhǔn)確的檢測(cè)算法進(jìn)行生豬行為分析、個(gè)體識(shí)別、計(jì)數(shù)等,進(jìn)而提升豬場(chǎng)經(jīng)濟(jì)效益[1-2]。
基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)對(duì)圖像特征具有強(qiáng)大的表征能力[3-4],已在生豬圖像分割[5-8]、行為識(shí)別[9-10]、姿態(tài)檢測(cè)[11]、身份鑒定[12]等方面取得較多成果,在目標(biāo)檢測(cè)領(lǐng)域同樣表現(xiàn)出優(yōu)越性能[13-15]?;贑NN 的目標(biāo)檢測(cè)包括基于區(qū)域[16-19]與基于回歸2 大類,基于回歸思想的算法有YOLOV1、YOLOV2、YOLOV3 等系列[20-23],其將檢測(cè)目標(biāo)位置視作回歸問題,在提升檢測(cè)精度的同時(shí)保證了檢測(cè)速度,適用于實(shí)際生產(chǎn)環(huán)境中,并已被用于蘋果[24]、芒果[25]、柑橘[26]、夜間野兔[27]等對(duì)象的檢測(cè)。在生豬個(gè)體檢測(cè)方面,沈明霞等[28]針對(duì)仔豬個(gè)體較小、易黏連和雜物遮擋等現(xiàn)象,提出基于YOLOV3 的初生仔豬目標(biāo)識(shí)別方法,燕紅文等[29]在Tiny-YOLO 網(wǎng)絡(luò)的基礎(chǔ)上將通道注意力和空間注意力引入特征提取過程中,對(duì)群養(yǎng)生豬臉部進(jìn)行高精度檢測(cè)。但上述基于YOLO 網(wǎng)絡(luò)的系列研究在特征提取過程中僅通過簡(jiǎn)單疊加方式構(gòu)建卷積池化模塊,未考慮池化操作前后不同大小特征圖之間的信息交互問題。金字塔結(jié)構(gòu)[30]可在像素級(jí)別提取不同尺度特征并行考慮多種感受野信息,對(duì)多種尺寸目標(biāo)均有較好檢測(cè)效果,并已在圖像分割領(lǐng)域得到成熟應(yīng)用[31-33],但金字塔結(jié)構(gòu)中不同尺度特征圖間僅通過簡(jiǎn)單線性疊加方式實(shí)現(xiàn)信息融合,忽視了不同層級(jí)分支間的非線性關(guān)聯(lián),受燕紅文等[29]研究工作啟發(fā),注意力機(jī)制可通過僅關(guān)注利于任務(wù)實(shí)現(xiàn)的區(qū)域信息,抑制次要信息以提升模型效果,可用于高低階特征圖的非線性信息融合[34-36],因而探討將注意力機(jī)制引入金字塔結(jié)構(gòu)中并構(gòu)建群養(yǎng)環(huán)境多目標(biāo)生豬檢測(cè)模型成為可能。
基于此,本文提出一種基于Tiny-YOLO 模型的非接觸、多目標(biāo)群養(yǎng)生豬檢測(cè)算法,該方法結(jié)合特征金字塔注意力構(gòu)建多種深度FPA 模塊,將其嵌入Tiny-YOLO 模型中進(jìn)行端到端訓(xùn)練,并研究不同超參數(shù)對(duì)模型檢測(cè)效果影響,實(shí)現(xiàn)對(duì)無黏連無遮擋、無黏連有遮擋、有黏連無遮擋以及有黏連有遮擋等不同場(chǎng)景下群養(yǎng)生豬的高精度檢測(cè),以期為生豬身份識(shí)別和行為分析等提供模型支撐。
數(shù)據(jù)采集自山西省汾陽(yáng)市冀村鎮(zhèn)東宋家莊村與山西農(nóng)業(yè)大學(xué)實(shí)驗(yàn)動(dòng)物管理中心,分別于2019 年6 月1 日9:00-14:00(晴,光照強(qiáng)烈)與2019 年10 月13 日10:30- 12:00(多云,光照偏弱)進(jìn)行2 次采集,為檢驗(yàn)?zāi)P蛯?duì)不同品種生豬的檢測(cè)性能,選取大白、長(zhǎng)白及杜洛克混養(yǎng)品種豬作為拍攝對(duì)象,2 個(gè)豬場(chǎng)豬欄大小分別為3.5 m×2.5 m×1 m 和4 m×2.7 m×1 m,每欄生豬數(shù)量3~8只不等,選取其中8 欄日齡20~105 d 的群養(yǎng)生豬共計(jì)45 頭作為試驗(yàn)對(duì)象。
對(duì)生豬進(jìn)行目標(biāo)檢測(cè)、個(gè)體行為分析等研究通常將攝像頭固定于養(yǎng)殖欄頂部,采用俯視視角采集圖片或視頻[6,8-11,28],這種固定鏡頭和俯視視角的采集方式對(duì)其他視角的信息獲取有限,而其他視角如平視可采集到生豬面部信息,更有利于對(duì)生豬進(jìn)行目標(biāo)檢測(cè)等相關(guān)研究,且傳統(tǒng)采集方式與模型的移動(dòng)端拓展應(yīng)用并不十分契合,為此,本研究嘗試采用平視視角、鏡頭位置不固定的數(shù)據(jù)采集方式。試驗(yàn)采用佳能700D 防抖攝像頭進(jìn)行移動(dòng)拍攝,鏡頭距離生豬個(gè)體0.3~3 m 不等,采集到不同大小的生豬個(gè)體和部分生豬黏連、欄桿遮擋、生豬互相遮擋等場(chǎng)景,共拍攝得到時(shí)長(zhǎng)為35 s~64 min 的多段視頻,每欄選取2 段拍攝時(shí)長(zhǎng)超過30 min 的視頻以保證數(shù)據(jù)源本身的連續(xù)性。相較于傳統(tǒng)的鏡頭固定、俯視視角采集方式,本采集方式有2 個(gè)優(yōu)勢(shì):易于采集到富含生物特征信息的生豬面部圖像,可為生豬目標(biāo)檢測(cè)、個(gè)體識(shí)別、跟蹤提供一種新的數(shù)據(jù)采集方案;適用于模型的移動(dòng)端拓展應(yīng)用,可為開發(fā)移動(dòng)端模型提供數(shù)據(jù)采集參考方案。
對(duì)獲取的視頻做如下預(yù)處理以得到群養(yǎng)生豬多目標(biāo)檢測(cè)數(shù)據(jù)集:
1)對(duì)采集視頻每間隔25 幀進(jìn)行切割處理,得到分辨率1 920×1 080 大小的圖片,為適應(yīng)后續(xù)模型輸入,對(duì)其邊緣添加黑色像素使圖像寬高比為2∶1,最終分辨率調(diào)整為2 048×1 024,并采用labelImg 作為生豬個(gè)體標(biāo)注工具。如圖1a~圖1b。
2)為降低模型顯存占用率,減少運(yùn)算量,加速模型訓(xùn)練速度,對(duì)步驟1)獲取的圖片及其標(biāo)注結(jié)果分別進(jìn)行整體放縮及坐標(biāo)變換操作,得到2 727 張分辨率512×256大小的圖片。如圖1b~1c 所示。
3)為豐富數(shù)據(jù)集、提升模型泛化能力,對(duì)步驟2)處理的圖片進(jìn)行數(shù)據(jù)增強(qiáng)操作,每張圖片以50%的概率值執(zhí)行改變亮度、加入高斯噪聲以及翻轉(zhuǎn)180°生成0~2 張?jiān)鰪?qiáng)圖片,其中亮度修改閾值為0.8~1.2,大于1 表示調(diào)暗,小于1 表示調(diào)亮。
經(jīng)上述處理后共獲得標(biāo)注圖片4 102 張,按照通用數(shù)據(jù)集劃分策略[37],以14∶3∶3 比例將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集與測(cè)試集,其中訓(xùn)練集包括2 872 張圖片,驗(yàn)證集和測(cè)試集各包含615 張圖片。數(shù)據(jù)處理過程及效果如圖1 所示。
圖1 數(shù)據(jù)處理過程及效果 Fig.1 Data processing process and effects
YOLO 是由Redmon 等[20-22]提出的目標(biāo)檢測(cè)系列模型,包括YOLOV1、YOLOV2 和 YOLOV3 三大類。Tiny-YOLO 作為輕量化的YOLOV3,融合了最新的特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)[38]和全卷積網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN)[39]技術(shù),使用邏輯回歸(Logistic Regression)對(duì)方框置信度進(jìn)行回歸,同時(shí)提出了跨尺度預(yù)測(cè),并使用二元交叉熵?fù)p失(Binary Cross-Entropy Loss)進(jìn)行類別預(yù)測(cè),可更好地用于處理多標(biāo)簽任務(wù),模型結(jié)構(gòu)更簡(jiǎn)單,檢測(cè)精度更高,速度更快。
Tiny-YOLO 模型的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。該模型主要由卷積層與池化層堆疊構(gòu)成。模型輸入分辨率大小為512×256×3,由于不同種類目標(biāo)在原始圖像中所占比例差異較大,Tiny-YOLO 引入多尺度特征提取模塊以保證對(duì)不同大小目標(biāo)均具有較強(qiáng)的檢測(cè)性能,因而在2 個(gè)檢測(cè)尺度S 上(S 取16×8 與32×16)進(jìn)行物體類別劃分,每個(gè)卷積或上采樣操作下方的數(shù)字代表對(duì)應(yīng)操作的通道數(shù)量,其輸出如圖2 中①②所示,①和②分別表示獲得不同尺度特征圖2 種操作,其中①的S 取值16×8,原因在于獲取到①對(duì)應(yīng)輸出時(shí),中途對(duì)輸入512×256×3 大小圖像進(jìn)行了5 次下采樣操作,每次下采樣操作均使特征圖長(zhǎng)度與寬度的分辨率降低一半,其最終特征圖大小為16×8,②的S 取值32×16,對(duì)輸入圖像經(jīng)過4 次下采樣獲得。通過將輸入圖像分成S 大小單元格,每個(gè)單元格的神經(jīng)元負(fù)責(zé)檢測(cè)落入該單元格的對(duì)象,并執(zhí)行一系列3×3和1×1 卷積、池化以及上采樣操作后分2 路得到①與②的特征圖,每經(jīng)過一次卷積和池化操作后,特征圖分辨率縮減一半,對(duì)應(yīng)特征圖數(shù)目增大1 倍。引入非極大值抑制(Non Maximum Suppression,NMS)[40]剔除①與②的冗余檢測(cè)框以保證對(duì)于每個(gè)目標(biāo)均有唯一檢測(cè)框,使預(yù)測(cè)位置信息更為準(zhǔn)確,置信度更高。但Tiny-YOLO 模型在特征提取過程中,對(duì)于①與②多尺度特征圖的獲取僅通過簡(jiǎn)單的卷積池化層堆疊完成,使用不同池化層數(shù)量將使得輸出特征圖大小不一,截取不同池化層結(jié)果將獲得不同尺度大小的輸出,但這種方式忽視了高低維特征自身具有很強(qiáng)的特征篩選能力,簡(jiǎn)單抽取其作為后續(xù)輸出勢(shì)必浪費(fèi)部分重要信息,若能對(duì)已抽取的特征圖進(jìn)行特征重校準(zhǔn),自動(dòng)學(xué)習(xí)提取生豬個(gè)體部位有益信息,抑制諸如豬欄、豬糞等干擾因素的影響,可進(jìn)一步提升生豬個(gè)體部位抽取精度。
圖2 Tiny-YOLO 模型結(jié)構(gòu)圖 Fig.2 Tiny-YOLO model structure diagram
經(jīng)典Tiny-YOLO 模型通過卷積層與池化層層疊方式構(gòu)建,在特征提取過程中未充分考慮不同尺度大小卷積層的獲取特征圖間的相互關(guān)系,而金字塔結(jié)構(gòu)可從像素級(jí)提取不同尺度特征,并行考慮多種感受野信息,對(duì)尺寸較大或者較小的目標(biāo)均有較強(qiáng)識(shí)別效果。但傳統(tǒng)金字塔結(jié)構(gòu)中不同尺度特征圖間僅通過簡(jiǎn)單線性疊加完成信息融合,忽視了不同層級(jí)分支間的非線性關(guān)系。注意力機(jī)制可提取不同層級(jí)的非線性信息,通過僅關(guān)注利于任務(wù)實(shí)現(xiàn)的區(qū)域信息,抑制次要信息以提升模型效果,可用于高低階特征圖的非線性信息融合。Zhao 等[36]將特征金字塔注意力(Feature Pyramid Attention,F(xiàn)PA)引入圖像分割領(lǐng)域,并取得不錯(cuò)的效果,受其啟發(fā),本文結(jié)合金字塔與注意力思想,提出適用于目標(biāo)檢測(cè)領(lǐng)域的FPA模塊,本文FPA 模塊相較于Zhao 等提出的FPA 模塊進(jìn)行2 點(diǎn)改進(jìn):為減少卷積運(yùn)算量加快模型訓(xùn)練速度并綜合考慮目標(biāo)檢測(cè)任務(wù)特點(diǎn),去除原始FPA模塊中的Global Pooling 分支;構(gòu)建1~4 多種層級(jí)FPA 模塊以深入探討層級(jí)數(shù)對(duì)模型性能提升程度影響,本文FPA 模塊如圖3所示。
圖3 FPA-4 特征金字塔注意力模塊 Fig.3 FPA-4 feature pyramid attention module
特征金字塔注意力模塊通過U 型結(jié)構(gòu)融合多種不同尺度特征,包括金字塔特征提取組件簇與注意力特征融合組件簇2 大部分,如圖3 虛線框部分所示,其中左側(cè)虛線框表示金字塔特征提取,右側(cè)虛線框表示注意力特征融合。金字塔特征提取組件簇共包括4層,層內(nèi)執(zhí)行3×3大小卷積操作進(jìn)行多次特征提取,層間通過步長(zhǎng)為2×2的池化下采樣操作互連以逐步減小特征圖分辨率大小,經(jīng)金字塔特征提取組件處理后分別獲得4 種不同尺度的特征圖,且不同尺度特征圖數(shù)量不相同。為了充分融合金字塔特征提取組件所獲取的特征學(xué)習(xí)結(jié)果,引入注意力特征融合組件塊,該組件塊通過層級(jí)方式構(gòu)建,從上至下分別采用3×3、5×5、7×7 和9×9 卷積核進(jìn)行相應(yīng)層級(jí)特征提取,將上一層特征選擇結(jié)果經(jīng)步長(zhǎng)為2×2 的上采樣操作生成注意力權(quán)重圖與當(dāng)前層對(duì)應(yīng)卷積核大小的深層卷積操作結(jié)果疊加進(jìn)行重校準(zhǔn),經(jīng)該處理后,特征明顯區(qū)域?qū)⒌玫接行Ъ訌?qiáng),層與層間相連逐步集成不同尺度信息,從而能夠更精確地合并上下層特征間的相鄰尺度特征。為避免金字塔特征提取與融合過程對(duì)原始輸入特征圖帶來的誤判,對(duì)原始特征圖經(jīng)1×1 大小卷積操作后與上述金字塔特征融合模塊操作結(jié)果進(jìn)行線性疊加獲得FPA 模塊并輸出。以上FPA 模塊操作過程如式(1)~式(4)所示。
相較于醫(yī)院院區(qū)間的信息共享,區(qū)域衛(wèi)生信息共享需要克服不同醫(yī)院在區(qū)域醫(yī)療體系中由于角色與定位不同帶來的共建共享障礙。醫(yī)聯(lián)體通常由一所綜合強(qiáng)的醫(yī)院牽頭,通過簽署協(xié)議將一定區(qū)域內(nèi)的三級(jí)醫(yī)院與二級(jí)醫(yī)院、社區(qū)醫(yī)院等組成的一個(gè)醫(yī)療聯(lián)合體,構(gòu)建分級(jí)醫(yī)療、急慢分治、雙向轉(zhuǎn)診的診療模式,促進(jìn)分工協(xié)作,合理整合資源,實(shí)現(xiàn)信息共享[20]。
式中Input 與Output 分別表示FPA 模塊的輸入與輸出,Inputi表示第i 層金字塔特征提取組件輸入,從上至下其層數(shù)逐次增加,Convsize×size(I)表示對(duì)I 進(jìn)行size×size 卷積核大小的卷積操作(如Conv1×1(Input)表示對(duì)Input 進(jìn)行1×1 卷積核大小的卷積操作),size 表示卷積核的長(zhǎng)或?qū)挸叨却笮。疚脑O(shè)置其長(zhǎng)寬尺度相等,Up(I) 表示對(duì)I 進(jìn)行長(zhǎng)寬步長(zhǎng)分別為2 的上采樣操作以恢復(fù)特征圖分辨率大小,Down(I) 表示對(duì)I 進(jìn)行長(zhǎng)寬步長(zhǎng)分別為2 的下采樣操作以降低特征圖分辨率大小,fpa(i)表示第i 層金字塔特征提取組件與對(duì)應(yīng)注意力特征融合組件的融合輸出。為探究最適用于群養(yǎng)生豬多目標(biāo)檢測(cè)FPA 模塊,分別構(gòu)建1~4 層FPA 結(jié)構(gòu),并命名為FPA-1、FPA-2、FPA-3和FPA-4,其區(qū)別僅在于FPA 模塊中金字塔特征提取組件與注意力特征融合組件內(nèi)層數(shù)數(shù)量N 不同,N 取值為1~4,取1 表示FPA 中金字塔特征提取組件與注意力特征融合組件僅包含圖3 中的最上面一層,N 取2~4 時(shí)以此類推,k(i)表示第i 層注意力特征融合組件卷積操作的卷積核大小,其值與當(dāng)前所處層數(shù)相關(guān)。FPA 模塊中不同金字塔分支將特征映射為不同子區(qū)域,不同尺度特征圖具有差異化的感受野范圍,通過聚合基于不同區(qū)域語(yǔ)義內(nèi)容,挖掘全局上下文信息,有層次對(duì)先驗(yàn)結(jié)構(gòu)進(jìn)行多尺度融合,使得最終輸出特征圖融合全局先驗(yàn)信息以達(dá)到強(qiáng)化特征提取目的。
試驗(yàn)運(yùn)行平臺(tái)為16GB Tesla V100 GPU,系統(tǒng)為Ubuntu16.04,采用keras 框架進(jìn)行模型代碼編寫。將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集3 部分,其中訓(xùn)練集大小為2 872,驗(yàn)證集與測(cè)試集大小均為615,采用批訓(xùn)練方式對(duì)YOLOV3 和Tiny-YOLO 模型在訓(xùn)練集與驗(yàn)證集上進(jìn)行試驗(yàn),一個(gè)批次訓(xùn)練32 張圖片,遍歷全部訓(xùn)練集數(shù)據(jù)稱為1 輪迭代,試驗(yàn)中設(shè)置迭代輪數(shù)為200,模型均采用與Redmon 等[22]一致的loss 損失函數(shù),采用自適應(yīng)矩陣估計(jì)算法(Adaptive moment estimation,Adam)進(jìn)行模型最優(yōu)參數(shù)值選取。為使模型能夠檢測(cè)出不同大小的生豬個(gè)體,引入錨框(Anchor box)[17]思想,anchor 給出目標(biāo)寬高的預(yù)設(shè)初始值,其常用于對(duì)目標(biāo)個(gè)體大小進(jìn)行粗判以避免模型在訓(xùn)練過程中盲目進(jìn)行目標(biāo)位置與目標(biāo)尺度學(xué)習(xí),可通過K-means 等算法在訓(xùn)練開始前獲得,在訓(xùn)練過程中可通過降低真實(shí)寬高與初始寬高的相對(duì)偏移量的回歸任務(wù)操作以對(duì)目標(biāo)寬高大小預(yù)測(cè)更為精確。YOLOV3 系列模型采用K-means 算法共生成9 個(gè)錨框,其大小分別為(34,52)、(53,63)、(59,90)、(67,40)、(84,155)、(92,62)、(96,107)、(137,84)和(167,122),其中坐標(biāo)(X,Y)分別表示錨框的寬和高,前3 個(gè)錨點(diǎn)框用于檢測(cè)較小生豬個(gè)體,中間3 個(gè)錨點(diǎn)框用于檢測(cè)中等大小生豬個(gè)體,后3 個(gè)錨點(diǎn)框適用于檢測(cè)較大的生豬個(gè)體。Tiny-YOLO 模型共生成2 種不同大小的潛在錨框,每種包含3 個(gè)錨框,最終獲得6 個(gè)錨框信息值,其大小分別為(35,54)、(56,82)、(65,44)、(85,136)、(96,63)和(145,106),其中前3 個(gè)錨點(diǎn)適用于檢測(cè)較小生豬個(gè)體,后3 個(gè)適用于檢測(cè)較大生豬個(gè)體。計(jì)算mAP 指標(biāo)時(shí),采用與PASCAL VOC2012 一致的指標(biāo)定義方式[41],設(shè)置檢測(cè)框與手動(dòng)標(biāo)注框的IOU 閾值超過某一數(shù)值且類別預(yù)測(cè)置信度score超過某一數(shù)值的情況下為檢測(cè)正確[42],為研究不同IOU與score 數(shù)值對(duì)模型預(yù)測(cè)結(jié)果影響,分別固定score 閾值為0.5,分析IOU 閾值選取0.2、0.35、0.5、0.65 和0.8模型預(yù)測(cè)指標(biāo)結(jié)果,固定IOU 閾值為0.5,分析score 閾值選取0.5、0.6、0.7、0.8 和0.9 的預(yù)測(cè)結(jié)果。
采用精確率Precision、召回率Recall、F1 值以及平均檢測(cè)精度mAP(mean Average Precision)作為評(píng)價(jià)指標(biāo),檢測(cè)精度表示Precision-Recall 曲線下方面積,mAP指模型對(duì)生豬目標(biāo)所有類別的檢測(cè)精度平均值,實(shí)時(shí)性采用每秒傳輸幀數(shù)(Frames Per Second,F(xiàn)PS)作為評(píng)價(jià)指標(biāo),其值越大,模型實(shí)時(shí)性越佳,Precision、Recall、F1 及mAP 定義如式(5)~式(8)所示。
式中TP(True Positive)表示模型預(yù)測(cè)為生豬目標(biāo)框且實(shí)際也為生豬目標(biāo)的檢測(cè)框數(shù)量,F(xiàn)P(False Postive)表示模型預(yù)測(cè)為生豬目標(biāo)框但實(shí)際并不為生豬目標(biāo)的檢測(cè)框數(shù)量,F(xiàn)N(False Negative)表示預(yù)測(cè)為背景但實(shí)際為生豬個(gè)體框的樣本數(shù)量,式(8)中r 表示積分變量用于求解0~1 之間Precision·Recall 的乘積積分值。
4.1.1 模型檢測(cè)精度與實(shí)時(shí)性
表1 為YOLOV3 與Tiny-YOLO 模型加入不同深度特征金字塔注意力模塊FPA 后在測(cè)試集上的Precision、Recall、F1、mAP、FPS 預(yù)測(cè)指標(biāo)情況,不同模型采用相同的訓(xùn)練超參數(shù),測(cè)試時(shí)設(shè)置score 閾值為0.5,IOU 閾值為0.35,預(yù)測(cè)分?jǐn)?shù)大于0.5 且交并比大于0.35 時(shí)視為預(yù)測(cè)正確,每種模型均設(shè)計(jì)不加入FPA 模塊與加入深度為1~4 的FPA 模塊5 種對(duì)比試驗(yàn),以驗(yàn)證不同深度特征金字塔注意力模塊的有效性,尋找最適于群養(yǎng)生豬多目標(biāo)檢測(cè)的模型。
試驗(yàn)結(jié)果表明:1)Tiny-YOLO 模型加入FPA 前后Precision、Recall、F1 以及mAP 值均優(yōu)于加入相同模塊的YOLOV3 模型。加入FPA-3 的Tiny-YOLO 模型mAP較加入相同模塊的 YOLOV3 提高 8.4 個(gè)百分點(diǎn),Precision、Recall 與F1 值分別提高了1.04、7.93 和5.09個(gè)百分點(diǎn)。效果最好的FPA-2-YOLOV3 模型各項(xiàng)指標(biāo)仍低于未加入任何FPA 模塊的Tiny-YOLO 模型,后者比前者的Recall、F1 和mAP 分別提高1.9、0.21 和1.5個(gè)百分點(diǎn),與YOLOV3 模型相比,基于Tiny-YOLO 的模型性能較佳,因而后續(xù)選取Tiny-YOLO 模型進(jìn)行深入研究。
表1 超參數(shù)score 和IOU 為0.5 和0.35 時(shí)的模型預(yù)測(cè)結(jié)果 Table 1 Prediction results of the models with hyperparameter score and IOU values of 0.5 and 0.35
3)不同深度FPA 模塊對(duì)Tiny-YOLO 模型檢測(cè)性能提升幅度有所差異。加入FPA-3 模塊的Recall、F1 和mAP較Tiny-YOLO 模型提高了3.75、2.59 和4.11 個(gè)百分點(diǎn),與加入FPA-4 模塊的模型相比,Precision、Recall、F1 及mAP 分別提升0.73、2.76、1.88 和3 個(gè)百分點(diǎn)。此外,模型性能并未隨著所加FPA 模塊深度的增加而有所提升,可見,并非加入越深的FPA 模型就越能提取更佳的有效特征,這可能是因?yàn)橐欢ㄉ疃鹊腇PA 模塊已經(jīng)完全能夠?qū)W習(xí)到較全的生豬個(gè)體信息,引入過多的注意力信息反而弱化了注意力區(qū)域的激活值。在Tiny-YOLO 模型組試驗(yàn)中,F(xiàn)PA-3-Tiny-YOLO 的Precision 雖未取得最優(yōu),但仍可達(dá)到97.58%,該模型更適用于群養(yǎng)狀態(tài)下生豬個(gè)體目標(biāo)信息的有效提取。
4)在預(yù)測(cè)實(shí)時(shí)性方面,Tiny-YOLO 和YOLOV3 模型的FPS 值為50.9、29.6,Tiny-YOLO 較YOLOV3 的FPS 提高了21.3,F(xiàn)PA 模塊會(huì)使模型運(yùn)行時(shí)長(zhǎng)增加,各模型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%,減少幅度最大, 綜合權(quán)衡預(yù)測(cè)精度與 FPS 值,F(xiàn)PA-3-Tiny-YOLO 可獲得最優(yōu)檢測(cè)性能同時(shí)獲得較優(yōu)FPS 值。當(dāng)FPS 大于25 時(shí)模型對(duì)圖像的處理可滿足實(shí)時(shí)性要求,因而加入FPA 模塊的Tiny-YOLO 模型可用于生豬目標(biāo)檢測(cè)的實(shí)際應(yīng)用中。
4.1.2 模型指標(biāo)值變化原因
為探究試驗(yàn)?zāi)P皖A(yù)測(cè)差異性的深層原因,由式(5)~式(8)可知,預(yù)測(cè)TP 與FP 值與模型性能直接相關(guān),因而對(duì)加入特征金字塔注意力模塊前后模型在測(cè)試集上的TP、FP 數(shù)值進(jìn)行分析。TP 與FP 值的獲取需對(duì)模型預(yù)測(cè)結(jié)果類別框?qū)嵤? 步過濾操作,1)以一定數(shù)值置信度去除部分低于該值的預(yù)測(cè)框(試驗(yàn)設(shè)置置信度值為0.5),2)對(duì)已通過置信度篩選的預(yù)測(cè)框依照置信度值進(jìn)行降序排列,計(jì)算最高置信度值預(yù)測(cè)框與真實(shí)框間的IOU 值,若IOU 超過設(shè)定閾值(設(shè)置IOU 閾值為0.35),則將當(dāng)前預(yù)測(cè)框加入TP中,同時(shí)將對(duì)應(yīng)生豬個(gè)體標(biāo)注為已檢測(cè),后續(xù)對(duì)該生豬的預(yù)測(cè)框?qū)⑷苛腥隖P 中,最終統(tǒng)計(jì)結(jié)果如表2 所示。
表2 試驗(yàn)?zāi)P蛯?duì)生豬目標(biāo)預(yù)測(cè)的TP 與FP 值 Table 2 TP and FP values predicted by experimental model for live pig targets
試驗(yàn)結(jié)果表明:TP 值越高,模型越優(yōu),由表2 可見,Tiny-YOLO 模型均優(yōu)于YOLOV3 模型,未加入FPA的Tiny-YOLO 模型TP 值比YOLOV3 多173 個(gè),預(yù)測(cè)正確類別框個(gè)數(shù)提升11%,各試驗(yàn)?zāi)P图尤隖PA 模塊的TP 值均高于未加FPA 模塊模型,在Tiny-YOLO 模型試驗(yàn)組中,TP 值大小排序?yàn)?FPA-3>FPA-1> FPA-2>FPA-4,可見并非隨著FPA 深度增加,對(duì)應(yīng)類別框預(yù)測(cè)準(zhǔn)確率更高;而對(duì)于FP 值,該值越小,對(duì)應(yīng)模型越佳,相同試驗(yàn)條件下,YOLOV3 模型試驗(yàn)的TP 值較Tiny-YOLO 模型小,Tiny-YOLO 模型的FP 值相較于YOLOV3 模型有一定程度增加,但與TP 指標(biāo)值增加幅度相比,F(xiàn)P 增加幅度遠(yuǎn)低于TP 增加幅度,因而在整體預(yù)測(cè)性能上更偏向于 TP,以加入 FPA-1 為例,F(xiàn)PA-1-Tiny-YOLO 模型比FPA-1-YOLOV3 模型的TP值高119 個(gè),F(xiàn)P 值高2 個(gè),由FP 增加帶來的性能損失僅占TP增加帶來的性能提升的1.68%,可見Tiny-YOLO模型優(yōu)于YOLOV3 模型主要是由TP 值提升所引起。對(duì)同一組模型,除FPA-3-YOLOV3 外,引入FPA 模塊FP值均有減少,與TP 值增加相結(jié)合,使FPA 模塊進(jìn)一步提升模型性能。
4.2.1 不同IOU 閾值對(duì)檢測(cè)精度影響
為探討IOU 閾值對(duì)模型各指標(biāo)的影響,選取score閾值為0.5(考慮到數(shù)據(jù)中生豬部位與背景是一個(gè)二分類問題,因而當(dāng)預(yù)測(cè)值大于等于0.5 時(shí)可認(rèn)為預(yù)測(cè)類別正確),以相同試驗(yàn)條件在測(cè)試集上對(duì)IOU 閾值分別選取0.2、0.35、0.5、0.65 和0.8 并計(jì)算Precision、Recall、F1和mAP 指標(biāo),試驗(yàn)結(jié)果如表3 所示。
表3 IOU 取值對(duì)加入FPA 模塊的Tiny-YOLO 模型預(yù)測(cè)性能影響 Table 3 Effects of IOU values on prediction performance of Tiny-YOLO model with FPA module
試驗(yàn)結(jié)果表明:1)隨著IOU 閾值的增大,模型各指標(biāo)變化差異較大。F1 與mAP 指標(biāo)先增加后減少,且一般在IOU 值為0.35 時(shí)能夠達(dá)到最優(yōu),F(xiàn)PA-2-Tiny-YOLO 和FPA-3-Tiny-YOLO 模型的mAP 指標(biāo)雖未取得最佳,但其值仍具有很強(qiáng)競(jìng)爭(zhēng)力;Recall 值則逐漸增大,這是由于各指標(biāo)評(píng)價(jià)的側(cè)重點(diǎn)不同造成的,由公式(6)可知,Recall是由TP 與TP+FN 相除所得,實(shí)際計(jì)算中TP+FN 的值始終為2 106(即測(cè)試集上所有生豬數(shù)量),隨著IOU 增大TP 值逐漸增大,但這種增大現(xiàn)象在計(jì)算Precision 的時(shí)候受FP 值的增加而減弱,由公式(5)可知,Precision 是由TP 與TP+FP 的商所得,隨著IOU 增大,F(xiàn)P 值也出現(xiàn)相應(yīng)增大,因而Precision 值出現(xiàn)一定程度降低,F(xiàn)1 指標(biāo)變化規(guī)律與Precision 一致,表明隨著IOU 閾值的變化,F(xiàn)P 值的波動(dòng)幅度要遠(yuǎn)遠(yuǎn)高于TP 值。
2)加入不同F(xiàn)PA 模塊后,各模型在IOU 閾值相同時(shí)表現(xiàn)出不同性能。在加入FPA-3 后,各模型在不同IOU 閾值條件下均表現(xiàn)出較強(qiáng)性能,IOU 值選取0.5時(shí)FPA-3-Tiny-YOLO 比Tiny-YOLO 模型的F1 和mAP指標(biāo)提升2.77 和4.19 個(gè)百分點(diǎn),IOU 閾值相同時(shí),模型指標(biāo)并未隨著添加不同深度的FPA 模塊出現(xiàn)遞增或者遞減現(xiàn)象,說明FPA 模塊的深度對(duì)試驗(yàn)效果并未有規(guī)律性影響。綜上,F(xiàn)PA-3 模塊更適用于生豬多目標(biāo)檢測(cè)領(lǐng)域。
4.2.2 不同置信度分?jǐn)?shù)閾值對(duì)檢測(cè)精度影響
為探討置信度分?jǐn)?shù)閾值對(duì)Tiny-YOLO 試驗(yàn)組模型各指標(biāo)的影響,選取IOU 閾值為0.35(其在4.2.1 中試驗(yàn)效果最優(yōu)),以相同試驗(yàn)條件在測(cè)試集上對(duì)score 閾值分別選取0.5、0.6、0.7、0.8 和0.9 并計(jì)算Precision、Recall、F1 和mAP 指標(biāo),試驗(yàn)結(jié)果如表4 所示。
試驗(yàn)結(jié)果表明:不同score 值對(duì)模型各指標(biāo)值具有一定影響。各模型Recall、F1 和mAP 指標(biāo)隨著score 增大逐漸減小,以FPA-3-Tiny-YOLO 為例,score 為0.5 時(shí)各模型上述三種指標(biāo)較score 為0.6 時(shí)高出3.66、1.82 和3.58個(gè)百分點(diǎn),較score 為0.9 時(shí)更是高出19.38、11.53 和19.16個(gè)百分點(diǎn),這是因?yàn)殡S著score 值的增加,相應(yīng)預(yù)測(cè)為生豬個(gè)體類別框的數(shù)目急劇減少,即TP 數(shù)量減少。由公式(6)可知,分母TP+FN 值為常量,分子在減少的情況下對(duì)應(yīng)Recall 指標(biāo)會(huì)減少。
Precision 值則隨著score 值增大逐漸增大,由公式(5)可知,Precison 值由TP 和FP 共同決定,score 增大會(huì)使TP 值減小,但相應(yīng)的FP 值也會(huì)減小,而FP減小的幅度要快于TP,因而Precison 會(huì)逐漸增大,即在實(shí)際中,對(duì)生豬目標(biāo)框預(yù)測(cè)正確的個(gè)數(shù)以及將某個(gè)非生豬部分預(yù)測(cè)為生豬個(gè)體框的錯(cuò)誤個(gè)數(shù)均出現(xiàn)下降情況,且后者下降速度更快,這會(huì)導(dǎo)致某些生豬個(gè)體被漏檢。
為進(jìn)一步研究模型在不同場(chǎng)景下的魯棒性,將測(cè)試集劃分為無黏連無遮擋、無黏連有遮擋、有黏連無遮擋和有黏連有遮擋4 種情形,上述場(chǎng)景的生豬框個(gè)數(shù)分別為449、872、458 和327 個(gè),在Tiny-YOLO 模型中加入不同特征金字塔注意力模塊,設(shè)置IOU 閾值為0.35,score閾值為0.5,各模型指標(biāo)試驗(yàn)結(jié)果如表5 所示。
由表5 可知,加入FPA 模塊對(duì)不同場(chǎng)景下的多目標(biāo)生豬個(gè)體檢測(cè)具有積極作用。在有黏連有遮擋場(chǎng)景下,F(xiàn)PA-3-Tiny-YOLO 模型的Recall、F1 和mAP 指標(biāo)較Tiny-YOLO 提升6.73、4.34 和7.33 個(gè)百分點(diǎn),其余模型在部分指標(biāo)上提升幅度不明顯,但其性能一般優(yōu)于Tiny-YOLO 模型。加入同一模塊的模型在不同場(chǎng)景下指標(biāo)值相差較大,無黏連無遮擋場(chǎng)景的指標(biāo)優(yōu)于其余3 種場(chǎng)景,可見生豬所處場(chǎng)景對(duì)模型具有很大挑戰(zhàn)性,場(chǎng)景特征較為簡(jiǎn)單時(shí)可獲得較好的檢測(cè)結(jié)果,而場(chǎng)景特征較為復(fù)雜則會(huì)使模型性能有一定程度降低,且對(duì)應(yīng)不同的場(chǎng)景,加入注意力模塊后的模型總體優(yōu)于未加入任何注意力信息的Tiny-YOLO 模型(如:FPA-1-Tiny-YOLO、FPA-2-Tiny-YOLO 與FPA-3-Tiny-YOLO三種模型在無黏連無遮擋、無黏連有遮擋與有黏連無遮擋三種場(chǎng)景下其各個(gè)預(yù)測(cè)指標(biāo)值均優(yōu)于Tiny-YOLO 模型),說明注意力模塊對(duì)于生豬場(chǎng)景變化具有很強(qiáng)的魯棒性;加入不同深度FPA 模塊的模型在不同場(chǎng)景下性能表現(xiàn)不同,F(xiàn)PA-1與FPA-3 分別在有黏連無遮擋與無黏連無遮擋場(chǎng)景下能取得最高mAP 指標(biāo)值,可見,并非FPA 模塊越深模型性能越好,實(shí)際使用中需要綜合考量選取合適深度以獲得最適用于對(duì)應(yīng)場(chǎng)景模型,不同場(chǎng)景下的部分檢測(cè)結(jié)果見圖4。
表5 Tiny-YOLO 模型在不同場(chǎng)景下的檢測(cè)結(jié)果 Table 5 Test results of Tiny-YOLO models in different scenes
圖4 加入不同深度FPA 模塊的Tiny-YOLO 模型在多種場(chǎng)景下的預(yù)測(cè)效果 Fig.4 Prediction effects of Tiny-YOLO model with different depth FPA modules in multiple scenes
由圖4 可見,在無黏連無遮擋和無黏連有遮擋場(chǎng)景下,加入FPA 模塊的模型在有豬欄等雜物遮擋時(shí),仍可提取較完整的生豬個(gè)體邊框,生豬預(yù)測(cè)置信度分?jǐn)?shù)更高,在有黏連無遮擋場(chǎng)景下,F(xiàn)PA-1-Tiny-YOLO 仍能有效檢測(cè)到遠(yuǎn)離鏡頭且有遮擋的生豬個(gè)體,預(yù)測(cè)結(jié)果較完整,而其他模型均有不同程度的錯(cuò)檢或者漏檢,在有黏連有遮擋場(chǎng)景下,不同模型預(yù)測(cè)結(jié)果差異較大,其中FPA-3-Tiny-YOLO 對(duì)遠(yuǎn)處黏連生豬個(gè)體也能實(shí)現(xiàn)精準(zhǔn)分離,且對(duì)生豬個(gè)體預(yù)測(cè)更為精細(xì),提取效果更佳。
本文在Tiny-YOLO 模型中引入特征金字塔注意力信息,對(duì)Tiny-YOLO 模型進(jìn)行了改進(jìn),構(gòu)建包含不同深度FPA 模塊的多種FPA-Tiny-YOLO 模型,研究不同超參數(shù)對(duì)模型性能影響,分析各模型對(duì)不同群養(yǎng)場(chǎng)景下生豬檢測(cè)的性能,主要結(jié)論如下:
1)加入多種特征金字塔注意力信息,可使Tiny-YOLO 和YOLOV3 模型精度有不同幅度提升。與YOLOV3 模型相比,Tiny-YOLO 模型具有更高檢測(cè)精度,檢測(cè)實(shí)時(shí)性優(yōu)于加入相同模塊的YOLOV3 模型。
2)不同深度FPA 模塊對(duì)Tiny-YOLO 模型指標(biāo)提升幅度有所差異。在超參數(shù)固定情況下,加入FPA-3 注意力模塊的Tiny-YOLO 模型效果最佳,表明并非加入的FPA 模塊越深模型提取特征能力越強(qiáng),應(yīng)用中需根據(jù)不同場(chǎng)景選擇添加不同深度的FPA 模塊。
3)交并比IOU 和置信度score 的不同閾值對(duì)加入不同F(xiàn)PA 模塊的Tiny-YOLO 模型有不同影響。在選定IOU值的情況下,召回率、F1 值和平均檢測(cè)精度三個(gè)指標(biāo)隨著score 閾值的增大而減小,在選定score 值的情況下,F(xiàn)1 和mAP 指標(biāo)隨著IOU 閾值的增大先增加后減少,試驗(yàn)表明在IOU 閾值為0.35,score 閾值為0.5 時(shí),加入多種層級(jí)的FPA模塊的Tiny-YOLO模型各個(gè)指標(biāo)取得最佳值。
4)加入FPA 模塊后對(duì)不同場(chǎng)景下的多目標(biāo)生豬個(gè)體檢測(cè)均有積極作用,加入FPA-3 模塊的mAP 指標(biāo)值最佳,表明添加特征金字塔注意力模塊的模型在復(fù)雜環(huán)境中仍能剔除冗余信息實(shí)現(xiàn)高效檢測(cè),對(duì)群養(yǎng)生豬目標(biāo)所處環(huán)境具有魯棒性。