孫云濤 ,何秀文 ,黃 巍 ,彭興鵬 ,羅世林 ,劉仁鑫
(江西農(nóng)業(yè)大學(xué)工學(xué)院,江西 南昌 330045)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,“機(jī)器視覺”與“深度學(xué)習(xí)”的概念開始在各個(gè)行業(yè)掀起浪潮。近年來(lái),動(dòng)物福利成為國(guó)內(nèi)、國(guó)際的熱議話題[1],因此生豬養(yǎng)殖也開始朝著“智能養(yǎng)豬”方向發(fā)展,由此產(chǎn)生了精細(xì)畜牧業(yè)[2]這一養(yǎng)殖概念。在現(xiàn)代化大規(guī)模養(yǎng)豬場(chǎng)中,機(jī)器視覺已經(jīng)開始運(yùn)用于各個(gè)方面,在體重預(yù)測(cè)、豬只在欄內(nèi)狀況、豬只出欄盤點(diǎn)等方面都有不錯(cuò)的發(fā)揮。如今大部分豬舍對(duì)豬只數(shù)量的盤點(diǎn)仍舊依靠飼養(yǎng)員人工進(jìn)行,這對(duì)飼養(yǎng)員的眼力要求十分高。在進(jìn)行大規(guī)模盤點(diǎn)時(shí),大量生豬數(shù)據(jù)的匯總可能會(huì)導(dǎo)致飼養(yǎng)員出現(xiàn)計(jì)算錯(cuò)誤,并且傳統(tǒng)的計(jì)數(shù)方式需要耗費(fèi)大量的時(shí)間和人力去進(jìn)行統(tǒng)計(jì)。利用語(yǔ)義分割對(duì)豬欄中的豬進(jìn)行計(jì)數(shù),不僅耗時(shí)短,不需要過(guò)多的飼養(yǎng)員一個(gè)一個(gè)欄進(jìn)行計(jì)數(shù),大大降低了時(shí)間和人工成本,提高了養(yǎng)豬場(chǎng)的經(jīng)濟(jì)效益;而且減少了飼養(yǎng)員與豬只的直接接觸,更滿足“動(dòng)物福利化”的養(yǎng)殖需求。
在計(jì)算機(jī)視覺中,語(yǔ)義分割是一個(gè)十分重要的方向。隨著全卷積神經(jīng)網(wǎng)絡(luò)(CNN)[3]的提出,傳統(tǒng)的圖像分割方法逐漸被諸如FCN、U-Net、DeepLab等高效率的語(yǔ)義分割方法所替代。本文針對(duì)群豬圖像使用了DeepLab系列分割方法。
DeepLab V3+[4]網(wǎng)絡(luò)模型屬于DeepLab系列之一,是在DeepLab V3 模型的基礎(chǔ)上進(jìn)行了升級(jí),相較于V3,V3+模型將整個(gè)V3 網(wǎng)絡(luò)作為編碼器,并且將編碼器所得的特征圖提取出來(lái)對(duì)其進(jìn)行多次卷積和上采樣操作,最后得到預(yù)測(cè)值。其原理如圖1所示。
圖1 DeepLab V3+原理圖
DeepLab V3+的解碼器對(duì)編碼器得到的特征圖分別進(jìn)行1×1 的卷積,將主干網(wǎng)絡(luò)Xception 的特征層進(jìn)行1×1 的卷積操作來(lái)改變?cè)型ǖ罃?shù),再進(jìn)行4 倍的上采樣得到新特征圖,與之前1×1 卷積得到的特征圖融合并進(jìn)行一次3×3 卷積和4 倍上采樣,最終獲得預(yù)測(cè)值。
DeepLab V3+作為DeepLab 系列最新的網(wǎng)絡(luò)模型,在語(yǔ)義分割方面已經(jīng)可以達(dá)到比較高的精度,但其使用的Xception 主干網(wǎng)絡(luò)在運(yùn)行時(shí)會(huì)消耗大量的顯存,并且運(yùn)行速度慢,會(huì)耗費(fèi)大量的時(shí)間。
在豬欄監(jiān)控豬只行為時(shí),需要準(zhǔn)確快速地反映豬只當(dāng)前狀態(tài),因此Xception[5]主干網(wǎng)絡(luò)精度足夠但響應(yīng)速度還不夠快。于是本文引入了更輕量級(jí)的網(wǎng)絡(luò)Mobilenet V2,該網(wǎng)絡(luò)使用輕量級(jí)depthwise卷積[6]來(lái)過(guò)濾中間擴(kuò)張層的特征,去除了窄層中的非線性激活函數(shù)[7],由此提升了運(yùn)行速度。
1.3.1 混合注意力機(jī)制
將通道注意力與空間注意力互相串聯(lián)或者并聯(lián)組合后得到混合注意力機(jī)制[8],由于其更注重獲取通道維度和空間維度上的特征,因此可以靈活應(yīng)用于卷積神經(jīng)網(wǎng)絡(luò)以提高其表達(dá)能力。其工作原理如圖2所示。
圖2 CBAM原理圖
其公式如式(1)、式(2)所示:
其中,F(xiàn)'為一維通道圖,F(xiàn)''為二維空間圖,F(xiàn)∈RC×H×W,Mc∈RC×1×1,Ms∈R1×H×W。
1.3.2 通道注意力機(jī)制
人類在捕捉較為顯眼的特征時(shí),注意力起到了極其重要的作用。近年來(lái),注意力機(jī)制不斷被研究人員加入到卷積神經(jīng)網(wǎng)絡(luò)中,用來(lái)加強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像特征的提取精度。通道注意力機(jī)制[8]是通過(guò)組合通道圖中的特征來(lái)選擇有所關(guān)聯(lián)的通道圖。其原理如圖3所示。
圖3 CAM原理圖
運(yùn)行步驟如下:將特征圖F(H×W×C)輸入,H為特征圖的高度,W為特征圖的寬度,C為特征圖的通道數(shù)。將F進(jìn)行全局最大池化和全局平均池化,得到Fmax和Favg,二者相加后將得到的結(jié)果輸入MLP(雙層神經(jīng)網(wǎng)絡(luò)),經(jīng)過(guò)Sigmoid 函數(shù)計(jì)算得到Mc,對(duì)原始F進(jìn)行復(fù)制操作得到Fe,將Mc與Fe相乘,最終得到所需要的輸出特征圖。計(jì)算公式如式(3)、式(4)所示:
其中,W0為第一層網(wǎng)絡(luò),W1為第二層網(wǎng)絡(luò),W0∈RC/r×C,W1∈RC×C/r,σ為Sigmoid函數(shù),F(xiàn)ed為最終輸出圖。
1.3.3 空間注意力機(jī)制
在卷積神經(jīng)網(wǎng)絡(luò)中,圖像特征在網(wǎng)絡(luò)的不同階段有著不同的表現(xiàn)能力[9]。由于圖片中含有大量的背景特征信息,在很大程度上影響了圖像的分割精度;將直接獲取的低級(jí)特征作為輸入圖,也會(huì)對(duì)圖像的分割精度造成影響??臻g注意力機(jī)制[8]可以有效地解決這一問(wèn)題,空間注意力機(jī)制可以利用高級(jí)特征將大量的無(wú)用的背景特征濾去,使神經(jīng)網(wǎng)絡(luò)更聚焦于目標(biāo)區(qū)域特征,有助于獲得更高的精度效果。
其工作步驟如下:空間注意力機(jī)制得到輸入值F后,將其進(jìn)行最大池化和平均池化,將得到的兩個(gè)層拼接并進(jìn)行卷積得到Fc,接著對(duì)Fc進(jìn)行Sigmoid 函數(shù)處理得到最終圖。其運(yùn)行原理圖如圖4 所示。
圖4 SAM原理圖
其公式如式(5)所示:
其中,k設(shè)置為7,σ為Sigmoid 函數(shù),Ms(F)為最終輸出。
最終模型原理圖如圖5 所示。
圖5 改進(jìn)后DeepLab V3+原理圖
本文試驗(yàn)所使用的CPU 為Intel(R) Core(TM)i7-9700F,內(nèi)存8 GB,GPU 為NVIDIA GeForce RT X 2 0 7 0 S U P E R,內(nèi)存1 2 G B,開發(fā)環(huán)境為Tensorflow2.2.0,Cuda10.1,python3.7。
目前能找到的關(guān)于豬的數(shù)據(jù)集都是單只,不符合本文試驗(yàn)要求。因此,本試驗(yàn)的所有數(shù)據(jù)均來(lái)自江西省九江市瑞昌市洪一鄉(xiāng)綠色巨農(nóng)養(yǎng)殖場(chǎng),使用海康威視攝像頭,將攝像頭置于豬欄上方,拍攝豬只活動(dòng)視頻,并將視頻剪輯成圖片,篩選清晰的原始圖片共640張。
本文試驗(yàn)采用的數(shù)據(jù)集格式為j s o n,利用Labelme 標(biāo)注工具對(duì)豬只進(jìn)行標(biāo)注,豬欄構(gòu)成簡(jiǎn)單,因此只有“pig”一個(gè)標(biāo)簽文件,如圖6 所示。利用程序獲取標(biāo)簽文件的png 格式圖,如圖7 所示。將數(shù)據(jù)集以7∶3的比例分為訓(xùn)練集與驗(yàn)證集。
圖6 標(biāo)簽文件
圖7 png文件
為防止過(guò)擬合訓(xùn)練,提高模型的分割精度,同時(shí)也為了增加圖片數(shù)量,對(duì)原始數(shù)據(jù)集進(jìn)行高斯濾波、亮度處理、隨機(jī)裁剪、隨機(jī)翻轉(zhuǎn)等操作,進(jìn)行數(shù)據(jù)加強(qiáng),圖像數(shù)量擴(kuò)充為1 920 張。由于標(biāo)簽文件只有“pig”一個(gè)類別,因此在訓(xùn)練時(shí)將DeepLab V3+模型中的類別更改為2,包含“pig”以及“background”。損失函數(shù)為交叉熵?fù)p失函數(shù)(Cross Entropy Loss),如式(6)所示;Freeze_Epoch=50,batch_size 為6,UnFreeze_Epoch=100,batch_size為3。
式中,N為batch_size數(shù)值,m為樣本數(shù)量。
語(yǔ)義分割常用的評(píng)價(jià)指標(biāo)為交并比(Intersection over Union, IoU)、平均交并比(Mean Intersection over Union, MIoU)、像素準(zhǔn)確率(Pixel Accuracy, PA)、類別像素準(zhǔn)確率(Class Pixel Accuracy, CPA)、類別平均像素準(zhǔn)確率(Mean Pixel Accuracy, MPA)[10]。
其中,pij指本是i類卻被預(yù)測(cè)為j類的像素?cái)?shù)量,pji相反;pii為預(yù)測(cè)正確的像素?cái)?shù)量。
分別對(duì)原始模型以及改進(jìn)后的模型進(jìn)行比對(duì),如圖8、圖9所示。
圖8 Loss對(duì)比圖
圖9 MIoU對(duì)比圖
由圖8 和圖9 可知,將Xception 作為主干網(wǎng)絡(luò)的模型在訓(xùn)練損失值以及平均交并比(MIoU)的評(píng)估中均優(yōu)于改進(jìn)后的模型,加入注意力機(jī)制后的V2+SE模型優(yōu)于V2模型。具體參數(shù)如表1所示。
表1 各模型指標(biāo)比對(duì)圖
從表1 可以看出,在精度上,改進(jìn)后的V2 模型稍弱于原始模型,加入注意力機(jī)制后的模型又優(yōu)于V2 模型0.48%而弱于原始模型2.97%,但在響應(yīng)速度上,改進(jìn)后的模型速度提升了38.77%。在分割效果上,三個(gè)模型的差距并不是很大,具體如圖10所示。
圖10 各模型分割效果對(duì)比圖
豬只是好動(dòng)的,在豬舍中會(huì)經(jīng)常性移動(dòng),所以需要快速地捕捉豬只圖像并進(jìn)行分割,因此在保持一定精度的前提下,響應(yīng)速度是十分重要的指標(biāo)。改進(jìn)后的模型犧牲了小部分的精度,大大提高了分割速度,而犧牲的精度并不會(huì)大幅度影響分割效果。
1)提出了利用Mobilenet V2 主干網(wǎng)絡(luò)代替Xception 主干網(wǎng)絡(luò)的改進(jìn)模型,并進(jìn)一步提出將通道注意力機(jī)制運(yùn)用于低級(jí)特征的提取以及將空間注意力機(jī)制運(yùn)用于高級(jí)特征的提取。
2)去養(yǎng)豬場(chǎng)實(shí)地采集了數(shù)據(jù)并利用Labelme 標(biāo)注軟件制作了屬于自己的數(shù)據(jù)集,分別利用原始模型和改進(jìn)后的模型進(jìn)行了三次試驗(yàn)。結(jié)果顯示,相較于原始模型,改進(jìn)后的模型精度略有下降,但是響應(yīng)速度大幅提升,滿足了豬舍監(jiān)控分割速度快的需求。