劉 坤,楊懷卿,楊 華,胡志偉,孟 珂
(1 山西農(nóng)業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,山西 太谷 030801; 2 呂梁學(xué)院 城鄉(xiāng)規(guī)劃系,山西 呂梁 033001)
隨著生豬養(yǎng)殖規(guī)模的擴(kuò)大,養(yǎng)殖密度的不斷增加,生豬感染病患風(fēng)險(xiǎn)也大大增加,對群養(yǎng)生豬健康狀況監(jiān)測,直接關(guān)系到豬場的經(jīng)濟(jì)效益。豬只行為富含多種生物學(xué)信息,對其進(jìn)行精確快速檢測可有助于發(fā)現(xiàn)生豬異常行為,及時(shí)采取相應(yīng)措施,降低疾病發(fā)生率?;跈C(jī)器視覺的圖像分析技術(shù)可為群養(yǎng)生豬提供低成本、非接觸式的監(jiān)控方法。但生豬粘連、雜物遮擋等客觀因素給豬只個(gè)體研究帶來較大挑戰(zhàn),對其進(jìn)行有效分割是實(shí)現(xiàn)群豬視覺跟蹤及監(jiān)測的關(guān)鍵步驟。
基于機(jī)器視覺的多種方法在生豬個(gè)體分割領(lǐng)域已取得較多研究成果。傳統(tǒng)分割方法主要分為靜態(tài)分割[1-2]與動態(tài)分割[3-4]兩大類。但其依賴于人工篩選的顏色、形狀、紋理等形態(tài)學(xué)特征,在真實(shí)養(yǎng)殖場景下,關(guān)照強(qiáng)度、雜物遮擋、生豬粘連等因素給高質(zhì)量圖像獲取帶來較大挑戰(zhàn)。而基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)對圖像特征具有強(qiáng)大的表征能力[5-6],其已在生豬姿態(tài)檢測[7-9]、目標(biāo)檢測[10-12]、目標(biāo)跟蹤[13-14]、行為識別[15-16]、個(gè)體計(jì)數(shù)[17]等領(lǐng)域取得較大進(jìn)展。在生豬目標(biāo)分割領(lǐng)域,基于CNN的全卷積網(wǎng)絡(luò)(Fully convolutional network,F(xiàn)CN)[18]通過反卷積層替代全連接層的方式,能有效保留圖像空間維度信息,實(shí)現(xiàn)對其像素級分割。楊阿慶等[19]以Visual geometry group 16(VGG16)[20]為基礎(chǔ)網(wǎng)絡(luò),構(gòu)建深層抽象特征與淺層細(xì)節(jié)特征融合并執(zhí)行上采樣8倍跳躍式FCN結(jié)構(gòu)對哺乳母豬圖像進(jìn)行分割;Yang等[21]利用哺育行為的時(shí)空信息,通過FCN準(zhǔn)確分割母豬,并通過母豬的幾何特性和仔豬長度動態(tài)計(jì)算乳房區(qū)域,以自動識別哺育行為;Yang等[22]提出了一種將FCN和Ostu閾值相結(jié)合的分階段方法,從俯視圖上分割母豬圖像;Psota等[23]引入了一種新的數(shù)據(jù)集和方法,用于對群養(yǎng)環(huán)境的生豬個(gè)體進(jìn)行分割,并使用FCN檢測豬只的位置和方向;胡志偉等[24]基于VGG16與UNET[25]相結(jié)合的全卷積神經(jīng)網(wǎng)絡(luò)模型對單只生豬個(gè)體進(jìn)行分割。但上述基于FCN的分割方法只能將生豬個(gè)體與環(huán)境信息有效分離,卻無法分割出同一類物體中的不同個(gè)體,不適用于分割群養(yǎng)豬中的粘連豬個(gè)體。實(shí)例分割主要用于分割同類物體中的不同個(gè)體,即可將同一張圖像中的生豬個(gè)體分離開來。由He等[26]提出的Mask R-CNN可用于對圖像進(jìn)行高精度實(shí)例級分割,并已在柑橘樹枝[27]、稻飛虱[28]等個(gè)體領(lǐng)域得到應(yīng)用,在生豬個(gè)體研究領(lǐng)域,李丹等[29]基于Mask R-CNN構(gòu)建豬只分割網(wǎng)絡(luò)模型,分別實(shí)現(xiàn)94%的分割準(zhǔn)確率與94.5%的爬跨行為識別準(zhǔn)確率;高云等[30]基于Mask R-CNN提出PigNet網(wǎng)絡(luò)對粘連生豬個(gè)體進(jìn)行實(shí)例級分割。但上述基于Mask R-CNN的方法只是將Mask R-CNN模型應(yīng)用于生豬研究領(lǐng)域,并未進(jìn)行實(shí)質(zhì)性模型結(jié)構(gòu)調(diào)整,而在生豬群養(yǎng)環(huán)境中,粘連生豬個(gè)體在豬體、豬鼻等細(xì)節(jié)部位存在差異性,若能使模型強(qiáng)化不同生豬區(qū)別性部位則可更好地提升分割邊緣精度。注意力機(jī)制的出現(xiàn)可有效解決該問題,其在處理信息時(shí)只關(guān)注部分利于實(shí)例分割的區(qū)域信息,抑制次要信息以提升模型效果,并已在開放領(lǐng)域的圖像分類[31]、圖像分割[32]、目標(biāo)檢測[33]等任務(wù)中得到較大應(yīng)用,因此探討將其應(yīng)用于豬舍場景下群養(yǎng)生豬實(shí)例分割成為可能。
基于此,本文提出一種基于深度卷積網(wǎng)絡(luò)的非接觸、低成本的群養(yǎng)生豬實(shí)例分割新方法,該方法結(jié)合不同骨干網(wǎng)絡(luò)特征提取結(jié)果與Mask R-CNN、Cascade mask R-CNN任務(wù)分割網(wǎng)絡(luò)進(jìn)行端到端訓(xùn)練,將不同循環(huán)殘差注意力(Recurrent residual attention, RRA)模塊融入任務(wù)網(wǎng)絡(luò)中,在真實(shí)養(yǎng)殖場景下,能實(shí)現(xiàn)對深度分離、高度粘連、雜物遮擋等不同條件生豬個(gè)體高精度分割,以期為生豬身份識別與行為分析等提供模型支撐。
數(shù)據(jù)采集自山西省汾陽市冀村鎮(zhèn)東宋家莊村與山西農(nóng)業(yè)大學(xué)實(shí)驗(yàn)動物管理中心,分別于2019年6月1日09:00—14:00(晴,光照強(qiáng)烈)與2019年10月13日 10:30—12:00(多云,光照偏弱)進(jìn)行2次采集。為檢驗(yàn)?zāi)P蛯Σ煌贩N生豬個(gè)體的分割性能,選取大白、長白以及杜克混養(yǎng)豬作為拍攝對象,2個(gè)豬場豬欄大小分別為3.5 m×2.5 m×1.0 m和4.0 m×2.7 m×1.0 m,每欄生豬數(shù)量3~8只不等,選取其中8欄日齡20~105 d的群養(yǎng)生豬共計(jì)45 頭作為試驗(yàn)對象。與傳統(tǒng)采用固定鏡頭俯視視角拍攝方式不同,采用平視方式進(jìn)行數(shù)據(jù)采集更能有效獲取到生豬的臉部、腿部等關(guān)鍵部位信息,這些部位更有利于生豬的精細(xì)分割,且此方式采集的數(shù)據(jù)更適用于移動端場景,為此本文采用鏡頭不固定的平視視角數(shù)據(jù)采集方式,采用佳能700D防抖動攝像頭進(jìn)行拍攝,鏡頭距離生豬個(gè)體0.3~3.0 m不等,采集到不同大小及個(gè)體粘連、豬欄遮擋等不同場景數(shù)據(jù),共拍攝得到多段時(shí)長為35 s~64 min的視頻,每欄選取2段時(shí)長超過30 min的視頻作為真實(shí)試驗(yàn)數(shù)據(jù)源以保證數(shù)據(jù)的連續(xù)性,對視頻數(shù)據(jù)每隔25幀進(jìn)行切割處理,得到1 920×1 080分辨率大小圖片,為適應(yīng)模型輸入,對其按照寬高比2∶1進(jìn)行分辨率大小調(diào)整,對邊緣采用白色像素值進(jìn)行填充,最終分辨率大小調(diào)整為2 048×1 024,并采用LabelMe (http://labelme.csail.mit.edu/Release3.0/)進(jìn)行試驗(yàn)數(shù)據(jù)標(biāo)注。
對調(diào)整分辨率后的數(shù)據(jù)做如下預(yù)處理操作以獲得群養(yǎng)生豬實(shí)例分割數(shù)據(jù)集,數(shù)據(jù)展示及其處理過程如圖1所示:
圖1 數(shù)據(jù)集展示及預(yù)處理Fig. 1 Dataset display and preprocessing
1)為減少模型運(yùn)算量,降低訓(xùn)練顯存占用率,對2 048×1 024圖片與標(biāo)注結(jié)果進(jìn)行整體放縮操作,共得到1 917張512×256分辨率大小圖片,如圖1b中①所示。
2)為豐富數(shù)據(jù)集,提升模型魯棒性,對步驟1)得到的圖片進(jìn)行數(shù)據(jù)增強(qiáng)操作。僅執(zhí)行改變亮度、加入高斯噪聲2種增強(qiáng)操作,以50%的概率隨機(jī)執(zhí)行2種增強(qiáng)中的1~2種變換,每張圖片生成1張?jiān)鰪?qiáng)圖片,隨機(jī)改變亮度值在0.8~1.2之間,大于1表示調(diào)暗,小于1表示調(diào)亮,其過程如圖1b中②所示。
經(jīng)上述處理后共獲得標(biāo)注圖片3 834張,將其劃分為訓(xùn)練集、驗(yàn)證集與測試集,其中訓(xùn)練集2 490張,測試集864張,驗(yàn)證集480張。
Mask R-CNN是在Faster R-CNN[34]基礎(chǔ)上改進(jìn)而來的,其由5部分構(gòu)成,分別是特征提取部件(又稱為骨干網(wǎng)絡(luò),如ResNet[6]系列網(wǎng)絡(luò))、特征金字塔網(wǎng)絡(luò)(Feature pyramid network, FPN)、區(qū)域提交網(wǎng)絡(luò)(Region proposal network, RPN)、感興趣區(qū)域?qū)R層(Region of interest align, ROIAlign)以及功能型輸出,其模型結(jié)構(gòu)如圖2a所示,其中骨干網(wǎng)絡(luò)主要用于對輸入圖像進(jìn)行特征提?。籉PN用于對骨干網(wǎng)絡(luò)不同階段輸出的不同大小特征圖進(jìn)行金字塔信息融合,以實(shí)現(xiàn)對大小差異較大的目標(biāo)均能做到較好地分割;RPN[34]主要用于提取候選區(qū)域,其能提取出可能感興趣的信息但無法確定信息所屬的真正類別,RPN所提取的區(qū)域信息可用于對FPN特征圖信息進(jìn)行引導(dǎo);采用ROIAlign對RPN所截取的不同大小特征圖進(jìn)行尺度歸一化,以作為后續(xù)功能型部件的輸入;功能型部件由對目標(biāo)個(gè)體進(jìn)行分類的全連接網(wǎng)絡(luò)以及對目標(biāo)個(gè)體進(jìn)行分割的全卷積網(wǎng)絡(luò)組成。
圖2 Mask R-CNN與Cascade mask R-CNN模型對比圖Fig. 2 Mask R-CNN and Cascade mask R-CNN model comparison chart
Cascade mask R-CNN網(wǎng)絡(luò)是由Cai等[35]提出,其是在Mask R-CNN基礎(chǔ)上改進(jìn)得到的,核心模型結(jié)構(gòu)如圖2b所示。與Mask R-CNN使用單一頭部網(wǎng)絡(luò)(即圖2a中的H1)進(jìn)行預(yù)測不同的是,Cascade mask R-CNN通過串行級聯(lián)多個(gè)頭部網(wǎng)絡(luò)以達(dá)到不斷優(yōu)化預(yù)測的目的(即圖2b中的H1、H2、H3),前一個(gè)頭部網(wǎng)絡(luò)的輸出作為后一個(gè)頭部網(wǎng)絡(luò)的輸入,且不同頭部網(wǎng)絡(luò)采用不同大小交并比(Intersection over union,IOU)[36]閾值以確定預(yù)測結(jié)果中的正負(fù)樣本,位置越靠后的頭部網(wǎng)絡(luò)其采用的IOU閾值越大,如圖2b中①~③IOU閾值分別對應(yīng)為0.5、0.6與0.7。Cascade mask R-CNN由于采用多閾值頭部網(wǎng)絡(luò)的級聯(lián)結(jié)構(gòu),級聯(lián)順序按照閾值由小到大排列,不斷修正目標(biāo)位置及其像素點(diǎn)區(qū)域,避免了傳統(tǒng)單一網(wǎng)絡(luò)因?yàn)殚撝翟O(shè)置誤差所帶來的性能損失問題。
常規(guī)卷積網(wǎng)絡(luò)在特征提取過程中,其低階提取特征語義信息欠缺,但目標(biāo)位置準(zhǔn)確,高階特征語義信息豐富,但目標(biāo)位置粗糙。FPN引入圖像金字塔思想,能夠考慮多種感受野信息,進(jìn)而提取不同尺度特征,對高低階特征進(jìn)行有效融合,針對尺度較大或者較小的目標(biāo)均有較強(qiáng)的識別效果,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3a所示,包括自底向上(Bottom-up)、自頂向下(Top-down)以及階段輸出(Stage-output)三大組件,對于Bottom-up組件,其實(shí)際為骨干網(wǎng)絡(luò)不同階段的輸出(如ResNet網(wǎng)絡(luò)),經(jīng)過每1次0.5倍(0.5×)下采樣操作后,特征圖分辨率大小降低一半,而對于Top-down組件,每經(jīng)過2倍(2×)上采樣操作后,特征圖大小增為原來的2倍,并將上述上采樣結(jié)果與對應(yīng)層級的Bottom-up組件進(jìn)行線性相加,得到相應(yīng)層級的Stage-output輸出。但傳統(tǒng)FPN結(jié)構(gòu)中不同尺度特征圖間僅通過簡單線性疊加的方式完成特征融合,忽視了不同層級分支間的非線性關(guān)聯(lián)關(guān)系,注意力機(jī)制可提升利于任務(wù)相關(guān)的區(qū)域部位權(quán)重,抑制次要信息,進(jìn)而提升模型效果,將其引入FPN結(jié)構(gòu)中的高低階特征融合中,勢必將改善模型分割結(jié)果,本文結(jié)合FPN與注意力思想,提出加入RRA模塊的FPN,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3b所示,RRA模塊如圖3c所示。
RRA模塊由循環(huán)殘差簇(Recurrent residual cluster, RRC)和注意力組件塊(Attention component block, ACB) 2個(gè)部分構(gòu)成,分別如圖3c中①②所示。RRC簇中的詳細(xì)操作如圖3d所示,對于輸入特征,其通過執(zhí)行3×3大小卷積操作并將操作結(jié)果與輸入特征進(jìn)行殘差融合形成循環(huán)殘差模塊(Recurrent residual block, RRB),進(jìn)而捕獲輸入特征的長距離依賴信息,為探究RRC內(nèi)部RRB塊數(shù)量對試驗(yàn)效果影響以尋找最適用于群養(yǎng)生豬實(shí)例分割的RRC簇,構(gòu)建包含有N個(gè)RRB塊的RRC簇記為 R RCN,其內(nèi)部為N個(gè)RRB塊經(jīng)過循環(huán)級聯(lián)方式堆疊以實(shí)現(xiàn)多重長距離信息獲?。籄CB塊用于對RRC簇獲取的高低階特征融合進(jìn)行注意力權(quán)重圖計(jì)算,其分別對高低階特征執(zhí)行1×1大小卷積操作并將各自操作結(jié)果進(jìn)行線性疊加,利用ReLU激活函數(shù)對疊加結(jié)果實(shí)現(xiàn)非線性化,此外,為進(jìn)一步改善融合效果以擴(kuò)大其注意力信息捕捉區(qū)域,對ReLU非線性操作后的結(jié)果拼接1×1大小卷積運(yùn)算,并使用Sigmoid激活函數(shù)對其運(yùn)算結(jié)果進(jìn)行歸一化以獲取注意力結(jié)果圖Att,并將Att與RRA模塊輸入的高低階特征進(jìn)行按位相乘操作,以對模塊輸入特征進(jìn)行深度篩選,兩大組件通過級聯(lián)方式組合可用于捕捉語義與目標(biāo)位置間的顯著性依賴關(guān)系。上述RRA操作過程如式(1)~式(7)所示。
圖3 傳統(tǒng)FPN與加入RRA模塊的FPN對比結(jié)構(gòu)圖Fig. 3 Comparative structure diagram of traditional FPN and FPN added with RRA module
式中,F(xiàn)h與Fl分別表示RRA模塊高階與低階特征輸入,分別對應(yīng)于FPN結(jié)構(gòu)中的同層Top-down與Bottom-up模塊,F(xiàn)h′與Fl′分別表示經(jīng)過2次RRC操作后高低階特征對應(yīng)的輸出,F(xiàn)h′′與Fl′′分別表示經(jīng)過RRA模塊輸入與經(jīng)過RRC簇處理后的輸出結(jié)果間的融合特征,C onvsize×size(I)表示對I(例如Fh′′)執(zhí)行卷積核大小為size×size(如1×1或者3×3)的卷積操作,其中I可以是任意特征圖,σ1與 σ2分別表示ReLU與Sigmoid激活函數(shù),Att表示經(jīng)過ACB塊處理后獲取的注意力結(jié)果圖,將其與RRA模塊輸入進(jìn)行按位相乘得到最終RRA模塊輸出結(jié)果Output,F(xiàn)rrc表示RRC簇的特征輸入。
試驗(yàn)運(yùn)行平臺配置為16 GB Tesla V100 GPU,系統(tǒng)為Ubuntu16.04,采用PyTorch框架進(jìn)行模型代碼編寫。1個(gè)批次訓(xùn)練8張圖片,遍歷完全部訓(xùn)練集數(shù)據(jù)稱為1輪迭代,試驗(yàn)中設(shè)置迭代輪數(shù)為50。圖像分辨率大小為512×256,數(shù)據(jù)集增強(qiáng)前的大小為1 917,數(shù)據(jù)增強(qiáng)后總數(shù)據(jù)集大小為3 834,將其劃分為訓(xùn)練集、驗(yàn)證集和測試集,其中訓(xùn)練集大小為2 490,測試集大小為864,驗(yàn)證集大小為480。采用隨機(jī)梯度下降(Stochastic gradient descent, SGD)作為優(yōu)化器,優(yōu)化器基礎(chǔ)學(xué)習(xí)率超參數(shù)設(shè)置為0.005~0.030(“4.3”節(jié)會針對不同學(xué)習(xí)率大小進(jìn)行對比試驗(yàn)),為加速模型收斂避免其陷入局部最優(yōu)解或者跳過最優(yōu)解,設(shè)置正則化權(quán)值衰減系數(shù)(Weight decay)為0.000 1,設(shè)置動量因子(Momentum)為0.9。在圖像輸入網(wǎng)絡(luò)前,對3個(gè)通道分別進(jìn)行歸一化處理,其均值分別為123.675、116.280和103.530,方差分別為58.395、57.120和57.375。模型訓(xùn)練中僅對符合閾值約束條件的目標(biāo)框內(nèi)部生豬個(gè)體進(jìn)行分割損失值計(jì)算,對于Mask R-CNN任務(wù)網(wǎng)絡(luò),IOU和Score閾值均設(shè)置為0.5,對于Cascade mask R-CNN任務(wù)網(wǎng)絡(luò),參考自Cai等[35]關(guān)于Cascade R-CNN的論文,其3個(gè)級聯(lián)網(wǎng)絡(luò)IOU閾值分別設(shè)置為0.5、0.6和0.7、Score閾值設(shè)置為0.5。模型測試中采用COCO(http://mscoco.org/)指標(biāo)進(jìn)行模型優(yōu)劣評價(jià)。
模型采用實(shí)例分割領(lǐng)域公認(rèn)的平均精度(Average precision,AP)作為評價(jià)標(biāo)準(zhǔn),以衡量模型對群養(yǎng)環(huán)境下生豬分割能力。AP為精確率-召回率曲線下方面積,其計(jì)算方法如式(8)~(10)所示。
式中,P表示精確率,R表示召回率,TP表示模型預(yù)測為生豬個(gè)體區(qū)域且實(shí)際為生豬個(gè)體區(qū)域的樣本數(shù)量,F(xiàn)P表示模型預(yù)測為生豬個(gè)體區(qū)域但實(shí)際不為生豬個(gè)體區(qū)域的樣本數(shù),F(xiàn)N表示預(yù)測為雜質(zhì)背景區(qū)域但實(shí)際為生豬個(gè)體區(qū)域的樣本數(shù)量。
考慮到選用不同的IOU閾值直接影響TP與假陽值FP給AP指標(biāo)值帶來波動,與COCO指標(biāo)定義相同,選用 0.50、0.75、0.50~0.95(其中 0.50~0.95以0.05大小步長選取10個(gè)數(shù))3種IOU閾值分別記為AP0.50、AP0.75、AP0.50-0.95以衡量不同條件下模型分割預(yù)測情況。同時(shí)考慮到本文生豬數(shù)據(jù)通過移動攝像頭拍攝得到,攝像頭與生豬個(gè)體距離不一帶來生豬個(gè)體占圖像比重大小差異問題,將生豬大小分為小目標(biāo)(生豬個(gè)體所占區(qū)域面積≤322)、中等目標(biāo)(322<生豬個(gè)體所占區(qū)域面積≤962)與大目標(biāo)(生豬個(gè)體所占區(qū)域面積>962),并在IOU值為0.50~0.95間單獨(dú)計(jì)算大目標(biāo)下的AP指標(biāo)值,記為AP0.50-0.95-large。
骨干網(wǎng)絡(luò)作為多種任務(wù)模型的共享結(jié)構(gòu),常被用于特征提取操作,為探究不同骨干網(wǎng)絡(luò)對不同任務(wù)網(wǎng)絡(luò)的群養(yǎng)生豬實(shí)例分割性能影響情況,選取常見的ResNet[6]衍生版本(ResNet50和ResNet101)作為骨干網(wǎng)絡(luò)進(jìn)行特征提取,將提取結(jié)果分別作為Mask R-CNN與Cascade mask R-CNN任務(wù)網(wǎng)絡(luò)輸入,并計(jì)算其在測試集上的各個(gè)分割A(yù)P指標(biāo)值(表1)。
試驗(yàn)結(jié)果表明,相同骨干網(wǎng)絡(luò)對Mask RCNN與Cascade Mask R-CNN任務(wù)網(wǎng)絡(luò)群養(yǎng)生豬分割效果不一。以ResNet50作為骨干網(wǎng)絡(luò),選用Mask R-CNN比Cascade mask R-CNN作為任務(wù)網(wǎng)絡(luò)在 AP0.50、AP0.75、AP0.50-0.95和 AP0.50-0.95-large指標(biāo)上分別提升4.3%、3.5%、2.2%和2.2%。而將ResNet101作為骨干網(wǎng)絡(luò)條件下,選用Cascade mask R-CNN 比 Mask R-CNN 在 AP0.50、AP0.75、AP0.50-0.95和AP0.50-0.95-large指標(biāo)上分別提升17.4%、29.4%、17.3%和18.0%。可知,在選用不同骨干網(wǎng)絡(luò)情況下,Mask R-CNN與Cascade mask R-CNN任務(wù)網(wǎng)絡(luò)的性能狀況呈現(xiàn)不同趨勢,雖從網(wǎng)絡(luò)自身結(jié)構(gòu)上Cascade mask R-CNN通過級聯(lián)多種IOU閾值輸出結(jié)果理論上可獲得更佳效果,但在骨干網(wǎng)絡(luò)較淺的情況下,其效果卻弱于Mask R-CNN。
表1 不同骨干網(wǎng)絡(luò)下不同任務(wù)網(wǎng)絡(luò)分割的平均精度(AP)1)Table 1 Average precision(AP) for different task networks under different backbone networks
在相同任務(wù)網(wǎng)絡(luò)條件下,選用ResNet50作為骨干網(wǎng)絡(luò),其預(yù)測AP指標(biāo)值均優(yōu)于ResNet101。以Cascade mask R-CNN為例,選用ResNet50作為骨干網(wǎng)絡(luò)比ResNet101在各個(gè)AP指標(biāo)上提升0.8%~3.7%,ResNet50骨干網(wǎng)絡(luò)相較于ResNet101其深度更淺,理論上其特征提取能力弱于后者,但深層網(wǎng)絡(luò)可能會帶來梯度消失問題,導(dǎo)致反向傳播過程中無法將梯度有效傳回,且在本文群養(yǎng)生豬環(huán)境下,圖像中僅存在生豬個(gè)體單類別信息以及豬欄、雜物等可控信息,選用較淺的ResNet50網(wǎng)絡(luò)在一定程度上能夠提取到合理的圖像特征,此外,選用較淺的ResNet50,其模型體積較小,訓(xùn)練也更為省時(shí)。
4.2.1 不同RRA模塊對任務(wù)網(wǎng)絡(luò)分割A(yù)P值的影響 為了能對群養(yǎng)環(huán)境中粘連生豬個(gè)體的豬體、豬鼻等細(xì)節(jié)部位差異性特征進(jìn)行強(qiáng)化,以更好地提升分割邊緣精度,有效將粘連生豬個(gè)體分離,避免光照、雜質(zhì)等信息對分割效果的影響,本文構(gòu)建了包含不同RRB塊數(shù)的RRA循環(huán)殘差注意力模塊,將其嵌入Mask R-CNN與Cascade mask R-CNN兩大任務(wù)網(wǎng)絡(luò)中,并計(jì)算其在測試集上的分割A(yù)P指標(biāo)值。表2表示不同骨干網(wǎng)絡(luò)在引入不同數(shù)量循環(huán)殘差注意力模塊的任務(wù)網(wǎng)絡(luò)上的分割A(yù)P指標(biāo)值,其試驗(yàn)環(huán)境中選取的學(xué)習(xí)率大小為0.02。
試驗(yàn)結(jié)果表明, 在相同骨干網(wǎng)絡(luò)條件下,加入RRA與未加入任何RRA模塊的任務(wù)網(wǎng)絡(luò)相比,其一般能提升分割預(yù)測AP值,即使在加入1個(gè)RRA模塊后的部分試驗(yàn)?zāi)P拖鲁霈F(xiàn)輕微的AP值降低現(xiàn)象(如Mask R-CNN-ResNet50在加入1個(gè)RRA模塊后,其在AP0.50、AP0.75指標(biāo)上與未加入RRA模塊相比降低2.5%和0.8%),但其仍能產(chǎn)生有競爭力的分割結(jié)果。加入2~4個(gè)RRA模塊的任務(wù)網(wǎng)絡(luò)中,在相同骨干網(wǎng)絡(luò)條件下與未加入RRA模塊的任務(wù)網(wǎng)絡(luò)相比,均能帶來大幅度的AP值提升,以ResNet101為骨干網(wǎng)絡(luò)、Cascade mask R-CNN為任務(wù)網(wǎng)絡(luò)為例,在加入2~4個(gè)RRA模塊后,與未加入RRA模塊相比,在AP0.50和AP0.75指標(biāo)上分別提升3.9%~5.1%和11.4%~13.0%,證明RRA模塊有利于群養(yǎng)環(huán)境下的生豬目標(biāo)分割,這是因?yàn)镽RA模塊在FPN中的高低階特性融合中引入注意力信息,對特征圖中的每一點(diǎn)施以權(quán)重以對特征圖信息進(jìn)行重校準(zhǔn),有效激活諸如豬鼻、豬耳等利于分割的部位信息,抑制諸如豬糞、豬欄等雜質(zhì)信息,改善了生豬分割部位準(zhǔn)確性及分割邊緣完整性。
表2 引入不同循環(huán)殘差注意力(RRA)模塊任務(wù)網(wǎng)絡(luò)分割的平均精度(AP)1)Table 2 Average precision (AP) of task network segmentation with different recurrent residual attention (RRA) modules
在相同骨干網(wǎng)絡(luò)條件下,加入不同RRA模塊的任務(wù)網(wǎng)絡(luò)其性能表現(xiàn)有較大差異。隨著添加RRA模塊中RRC簇中RRB塊數(shù)的增加,各個(gè)骨干網(wǎng)絡(luò)條件下的任務(wù)網(wǎng)絡(luò)AP指標(biāo)值均出現(xiàn)先增加后減小的現(xiàn)象,且在骨干網(wǎng)絡(luò)固定時(shí),加入2個(gè)RRA模塊的任務(wù)網(wǎng)絡(luò)均取得最佳AP值。以ResNet50作為骨干網(wǎng)絡(luò)為例,將2個(gè)RRA模塊加入Cascade mask R-CNN 任務(wù)網(wǎng)絡(luò)中,其 AP0.50、AP0.75、AP0.50-0.95和AP0.75指標(biāo)值分別達(dá)到0.874、0.767、0.631和0.654,比加入4個(gè)RRA模塊在各個(gè)指標(biāo)上分別提升1.0%、2.2%、1.7%和1.5%,說明并非加入越深的RRA模塊對生豬的分割越有效,加入較淺的RRA模塊(如1個(gè)模塊)其循環(huán)殘差注意力信息并未完全捕獲所有有效豬體部位信息,而加入過深的RRA模塊極易使模型出現(xiàn)過擬合,因此在實(shí)際融合RRA模塊時(shí)以2~3層為宜。
4.2.2 不同RRA模塊對任務(wù)網(wǎng)絡(luò)分割結(jié)果可視化 為探究加入不同層級RRA模塊的Cascade mask RCNN與Mask R-CNN模型在測試集上的預(yù)測情況,選用ResNet50作為骨干網(wǎng)絡(luò)分別在2個(gè)任務(wù)網(wǎng)絡(luò)上對部分分割結(jié)果進(jìn)行可視化(圖4)。
圖4 加入不同循環(huán)殘差注意力(RRA)模塊的Cascade mask R-CNN與Mask R-CNN模型測試集預(yù)測結(jié)果可視化展示Fig. 4 Visual display of prediction results of Cascade mask R-CNN and Mask R-CNN model test sets with different recurrent residual attention(RRA) modules
如圖4所示,與未加入RRA模塊相比,Cascade mask R-CNN與Mask R-CNN模型在加入RRA模塊后一般(加入1個(gè)RRA模塊的例外)均能帶來預(yù)測效果的提升,尤其是加入2個(gè)RRA模塊,與相同條件下加入其他數(shù)量模塊的模型相比均能取得最佳的分割效果。此外,在加入相同模塊條件下,與Cascade mask R-CNN相比,Mask R-CNN分割邊緣更為精細(xì)、分割結(jié)果更為精確。對于偏離鏡頭的生豬個(gè)體,如編號①的個(gè)體,除Mask R-CNN-ResNet50+2個(gè)RRA模塊與Mask R-CNN-ResNet50+3個(gè)RRA模塊這2種模型外,其余模型均未能對其進(jìn)行分割,這可能是因?yàn)榫幪枹俚纳i個(gè)體距離鏡頭較遠(yuǎn),其臉部區(qū)域未在鏡頭捕捉范圍內(nèi),使得模型無法準(zhǔn)確判斷其是否屬于生豬個(gè)體部位。而對于編號⑥的個(gè)體,所有模型均未能對其進(jìn)行有效分割,這是因?yàn)榫幪枹匏幬恢霉饩€過于薄弱,同時(shí)其頭部位置處遮擋嚴(yán)重,即使肉眼觀看圖片對其是否是生豬個(gè)體也會存在誤判,在本文后續(xù)研究工作中將著重解決這種多復(fù)雜條件下不存在臉部區(qū)域、光線昏暗無法辨識等場景生豬實(shí)例分割準(zhǔn)確度提升問題。
為進(jìn)一步探究在任務(wù)網(wǎng)絡(luò)中加入不同層級RRA模塊的模型在不同場景下的魯棒性能,將生豬測試集分為深度分離、高度粘連、雜物遮擋3種場景,采用表現(xiàn)性能最佳的模型Mask R-CNNResNet50,可視化展示在加入不同RRA模塊后的分割效果如圖5所示。
從圖5中可知,3種場景下,加入2個(gè)RRA模塊的Mask R-CNN-ResNet50均能取得最佳的分割效果。對于深度分離場景中編號①的生豬個(gè)體,其因?yàn)榫嚯x鏡頭較遠(yuǎn)、豬舍光照條件較差,且被其他生豬個(gè)體部分遮擋,導(dǎo)致除加入2個(gè)RRA模塊的模型外其余模型均未能將其從群養(yǎng)環(huán)境中分離出來,但加入2個(gè)RRA模塊的模型仍能將其部分部位分割出來,這是因?yàn)楹线m層級的RRA模塊能對有效生豬部位給予一定關(guān)注度,提升豬體部位的分割權(quán)重,將其與非豬體部位信息進(jìn)行區(qū)別化對待,提升了分割的精準(zhǔn)度;對于加入2個(gè)與3個(gè)RRA模塊的模型在高度分離與雜物遮擋場景下的分割結(jié)果較為接近,但加入2個(gè)RRA模塊的模型分割邊緣更為圓潤,如雜物遮擋場景下編號為⑤的生豬個(gè)體,加入2個(gè)RRA模塊后的模型對豬耳分割部位更為精細(xì)完整??紤]到上述不同場景中加入2個(gè)RRA模塊的Mask R-CNN-ResNet50模型能夠取得最好的分割性能,實(shí)際中可將其作為群養(yǎng)生豬分割的參考模型。
圖5 加入不同循環(huán)殘差注意力(RRA)模塊的Mask R-CNN-ResNet50模型對不同場景數(shù)據(jù)分割可視化展示Fig. 5 Visualization of the segmentation of different scene data using the Mask R-CNN-ResNet50 model added with different recurrent residual attention(RRA) modules
本文在Mask R-CNN與Cascade mask RCNN兩大任務(wù)網(wǎng)絡(luò)中引入循環(huán)殘差注意力信息,研究不同骨干網(wǎng)絡(luò)對任務(wù)網(wǎng)絡(luò)、包含不同數(shù)量的循環(huán)殘差塊的注意力模塊對分割性能的影響,并對不同群養(yǎng)場景生豬分割結(jié)果進(jìn)行可視化展示,主要結(jié)論如下:
1)不同骨干網(wǎng)絡(luò)對Mask R-CNN與Cascade mask R-CNN等任務(wù)網(wǎng)絡(luò)生豬分割效果具有一定影響。選用ResNet50為骨干網(wǎng)絡(luò),Mask R-CNN為任務(wù)網(wǎng)絡(luò)能夠取得最佳分割結(jié)果。
2)加入帶有不同數(shù)量循環(huán)殘差塊的RRA模塊對模型的提升幅度有所差異。加入2個(gè)RRA模塊后對各個(gè)任務(wù)模型的提升效果最為明顯,且隨著RRA內(nèi)部循環(huán)殘差塊數(shù)量的增加,任務(wù)模型各個(gè)預(yù)測分割A(yù)P指標(biāo)值均出現(xiàn)先增加后減小的現(xiàn)象,說明并非循環(huán)殘差塊數(shù)量越多,其對應(yīng)模型特征提取能力越強(qiáng)。
3)對比加入不同數(shù)量循環(huán)殘差塊的RRA模塊后的Mask R-CNN-ResNet50模型,其在深度分離、高度粘連、雜物遮擋等群養(yǎng)場景下預(yù)測可視化結(jié)果表明,加入2個(gè)RRA模塊后的分割效果最佳,加入1個(gè)RRA模塊的效果最差。