王 萍,侯巖松,許海洋*,張 偉
(1.青島農(nóng)業(yè)大學(xué) 理學(xué)與信息科學(xué)學(xué)院,山東 青島 264300;2.中國勞動關(guān)系學(xué)院 應(yīng)用技術(shù)學(xué)院,北京 100048)
【研究意義】豬肉是我國主要的肉類消費品,豬肉食品的安全供應(yīng)關(guān)系到國計民生。據(jù)國家統(tǒng)計局數(shù)據(jù)顯示,2021年我國的豬肉產(chǎn)量5 296萬t,增長28.8%[1],豬肉產(chǎn)量仍占統(tǒng)計肉類產(chǎn)量的59%。生豬產(chǎn)業(yè)的發(fā)展直接影響國民健康和經(jīng)濟發(fā)展,為保障我國豬肉供應(yīng),應(yīng)提高國內(nèi)生豬的養(yǎng)殖效率。母豬往往是養(yǎng)殖場的核心資產(chǎn),擔任繁育仔豬的職責,因此,其行為及健康受到高度重視。目前,養(yǎng)殖場利用環(huán)境控制技術(shù)實現(xiàn)了對畜舍通風(fēng)率、溫度、濕度和有害氣體等參數(shù)的動態(tài)調(diào)整,但對畜舍中動物行為的監(jiān)測與識別卻仍缺乏有效技術(shù)措施。母豬的體態(tài)行為可能受到骨骼和內(nèi)臟疾病的影響,跛行是經(jīng)產(chǎn)母豬淘汰的主要原因。豬的躺臥姿勢也是其是否健康的表現(xiàn),如豬“犬坐式”姿勢表明其腹部疼痛,而四肢伸展、側(cè)臥則表明其比較舒適。由于肢體的運動和視覺受腦部神經(jīng)的控制,一些腦部疾病和失明現(xiàn)象的發(fā)生也與運動相關(guān)聯(lián),如因鏈球菌感染而導(dǎo)致的跛行或原地轉(zhuǎn)圈行為。目前對生豬尤其是母豬行為的觀察方法已由人工觀察向電子測量、視頻監(jiān)測和聲音監(jiān)測等方向發(fā)展。數(shù)字圖像處理技術(shù)通過對豬姿態(tài)、輪廓數(shù)據(jù)的計算,輔以運動的行為參數(shù),用于判斷豬形體姿態(tài)和行為趨勢,該方法實時、客觀,但易受到養(yǎng)殖場光照條件、視角及遮擋的影響。光照引起的環(huán)境變化增加了豬的體態(tài)識別難度,且算法易受背景顏色等因素的干擾,因此,研究如何有效地提取豬只表征并對其體態(tài)進行識別,對客觀反映母豬的生理狀態(tài),有效預(yù)防母豬疾病具有現(xiàn)實意義。【前人研究進展】2015年,NASIRAHMADI等[2]利用機器視覺自動監(jiān)測豬的躺臥行為和個體間的距離,提高了識別的準確性。為避免傳感器監(jiān)測的應(yīng)激反應(yīng),HANSEN等[3]將VGG卷積神經(jīng)網(wǎng)絡(luò)用于豬臉的識別中,以期實現(xiàn)非侵入性測量。楊阿慶等[4]研究提出基于全卷積網(wǎng)絡(luò)的哺乳母豬圖像分割算法,實現(xiàn)了豬舍場景下哺乳母豬準確、快速分割。薛月菊等[5]在ZF網(wǎng)絡(luò)中引入殘差結(jié)構(gòu),提出了改進Faster R-CNN的哺乳母豬姿態(tài)識別算法,提高了識別的精度和速度。高云等[6]的研究優(yōu)化了Mask R-CNN網(wǎng)絡(luò)的深度和寬度,進行群豬圖像的實例分割,實現(xiàn)單個豬只的分辨和定位。劉龍申等[7]的研究利用顏色和面積圖像特征的運動目標檢測方法,實現(xiàn)對第一頭新生仔豬的圖像識別算法,識別率達100%。目前,可使用機器視覺[8]監(jiān)測豬只飲水行為,安裝光電傳感器監(jiān)測母豬的站立或躺臥姿勢,綜合判斷母豬分娩時間[9]。國內(nèi)也有企業(yè)聯(lián)合高校開展監(jiān)控母豬分娩后仔豬的行為姿勢,來判斷其分娩的仔豬數(shù)、仔豬出生時間間隔、產(chǎn)程等方面的研究[10]。VGG是較為流行的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),其以較深的網(wǎng)絡(luò)結(jié)構(gòu)、較小的卷積核和池化采樣域,獲得更多圖像特征的同時控制參數(shù)數(shù)量,避免計算量過多和網(wǎng)絡(luò)結(jié)構(gòu)過于復(fù)雜。而VGG16簡化了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),適用于遷移學(xué)習(xí),其包含13個卷積層和3個全連接層,在實際應(yīng)用中可將第一個全連接層改為7×7的卷積網(wǎng)絡(luò),后面2個全連接層改為1×1的卷積網(wǎng)絡(luò),使得整個VGG變成全卷積網(wǎng)絡(luò)(FCN)?!狙芯壳腥朦c】關(guān)于母豬分割的研究多集于硬分割,即將圖片的像素分成多個類別。如果是前背景分割,則分2個類別,一類代表前景,一類代表背景,屬于分類任務(wù),分割的二值性(即0和1)導(dǎo)致前景和背景周圍出現(xiàn)嚴格邊界,圖像融合后的視覺效果不佳。圖像對應(yīng)像素點的顏色不僅是由前景本身顏色決定,而是前背景顏色融合的結(jié)果。目前,有關(guān)用軟分割分離母豬圖像前景和背景的研究鮮見報道?!緮M解決的關(guān)鍵問題】基于改進全卷積網(wǎng)絡(luò)(FCN)的母豬體態(tài)識別算法,構(gòu)建FCN訓(xùn)練模型,采用自適應(yīng)學(xué)習(xí)率進行訓(xùn)練,識別臨產(chǎn)母豬體態(tài),以期為客觀反映母豬生理狀態(tài)和有效預(yù)防母豬疾病提供參考。
試驗數(shù)據(jù)來源于青島農(nóng)業(yè)大學(xué)試驗豬場,為獲取不同體態(tài)的臨產(chǎn)母豬圖像,于2020年4月至2021年6月分5個批次進行圖像采集(圖1)。采集設(shè)備為安裝在豬舍頂部的監(jiān)控攝像頭,每間豬舍包含1頭待產(chǎn)母豬,獲取的視頻質(zhì)量為576 p和720 p。
圖1 臨產(chǎn)母豬體態(tài)視頻圖像Fig.1 Video image of parturient sow
使用OpenCV-Python從獲取的視頻中逐幀提取圖像,通過人工篩選和圖像自動標注技術(shù)批量生成1 000張掩膜圖像,制作臨產(chǎn)母豬體態(tài)分類數(shù)據(jù)集(表1)。該數(shù)據(jù)集包含臨產(chǎn)母豬常見的5種體態(tài),分別為踱步、躺臥、俯臥、蹲坐和站立,每種體態(tài)不少于100張圖像。使用Tensor Flow將圖像統(tǒng)一調(diào)整為224 px×224 px圖片,并進行圖像歸一化處理,使數(shù)據(jù)分布在0~1,加快模型的訓(xùn)練速度。通過數(shù)據(jù)增強對圖像進行隨機裁剪、隨機反轉(zhuǎn)和隨機亮度擴充數(shù)據(jù)集,提高模型的魯棒性。擴充后的數(shù)據(jù)集包含6 000張圖像樣本,按8∶1∶1的比例將其劃分為訓(xùn)練集、測試集和驗證集。
表1 臨產(chǎn)母豬體態(tài)分類圖像數(shù)據(jù)集Table 1 Collection of parturient sows posture image
FCN是圖像分割領(lǐng)域比較成功的算法,FCN將分類網(wǎng)絡(luò)轉(zhuǎn)換成用于分割任務(wù)的網(wǎng)絡(luò)結(jié)構(gòu),并實現(xiàn)了端到端的網(wǎng)絡(luò)訓(xùn)練,成為深度學(xué)習(xí)解決分割問題的基石。盡管分類網(wǎng)絡(luò)可接收任意尺寸的圖片作為輸入,但由于網(wǎng)絡(luò)的最后一層為全連接層,使其丟失了圖像的空間信息。因此,FCN無法直接解決如圖像分割等像素級的稠密任務(wù)估計問題。針對該問題,FCN使用卷積層和池化層代替分類網(wǎng)絡(luò)中的全連接層,使網(wǎng)絡(luò)可適應(yīng)像素級的稠密預(yù)測任務(wù)。研究使用CNN經(jīng)典架構(gòu)VGG16搭建全卷積網(wǎng)絡(luò)(圖2),目的是預(yù)測圖像中的每一個像素所屬類別。
圖2 FCN網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 FCN network structure
1.2.1 卷積層代替全連接層 FCN采用卷積層代替CNN的全連接層,使得網(wǎng)絡(luò)可接收超過規(guī)定尺寸的圖片。FCN的輸入為RGB圖(h×w×3)或灰度圖(h×w×1),利用與全連接層輸入數(shù)據(jù)尺寸相同的卷積核,將VGG16的全連接層替換為卷積層conv6-7。然后在原有的FCN基礎(chǔ)上增添兩層卷積和批標準化,使用1×1的卷積核改變圖像通道數(shù)量,對數(shù)據(jù)進行降維,引入更多的非線性,提高模型的泛化能力。批標準化有助于梯度傳播,提高模型收斂速度,允許使用更大的學(xué)習(xí)率進行訓(xùn)練。最后使用sigmoid進行激活,使得模型輸出歸一化至0~1,輸出圖像的熱力圖。
1.2.2 增加反卷積 由于在卷積和池化過程中特征圖會逐漸變小,為得到和原圖相同大小的稠密像素預(yù)測圖像,需對特征圖進行上采樣。輸入圖像通過VGG16網(wǎng)絡(luò),進行5次卷積和下采樣,輸出的特征圖像變成原圖像大小的1/32。FCN在特征圖后使用轉(zhuǎn)置卷積,通過對特征圖進行上采樣以恢復(fù)原圖像尺寸。
1.2.3 增加跳級結(jié)構(gòu) 若直接對網(wǎng)絡(luò)最后一層pool5輸出的特征圖進行上采樣,輸出的分割圖會丟失很多圖像細節(jié)信息。VGG16通過淺層網(wǎng)絡(luò)提取圖像的局部特征,深層網(wǎng)絡(luò)提取圖像語義特征,直接對最后一層卷積進行32倍上采樣的方式稱為FCN-32s;為融合網(wǎng)絡(luò)更淺層的局部信息,將底層(stride 32)的預(yù)測(FCN-32s)進行2倍的上采樣,并與pool4層(stride 16)進行特征融合,稱為FCN-16s;再將FCN-16s進行2倍的上采樣與pool3層(stride 8)的特征結(jié)合起來,稱為FCN-8S。將網(wǎng)絡(luò)最后一層的預(yù)測(含有更豐富的全局信息)和更淺層的預(yù)測(含有更多的局部細節(jié))結(jié)合,使網(wǎng)絡(luò)可在遵守全局預(yù)測的同時進行局部預(yù)測。
模型訓(xùn)練使用華為云ModelArts平臺的算力:NVIDIA V100 GPU單卡規(guī)格,32 GB顯存[GPU:1*V100(32 GB)|CPU:8核 64 GB],基于TensorFlow2.1框架搭建FCN網(wǎng)絡(luò)模型。語義分割是像素級別的分類,其常用的評價指標為統(tǒng)計像素準確率(Pixel Accuracy,PA):
式中,k表示類別數(shù)量,為便于解釋,假設(shè)共有k+1個類(從L0到Lk,其中包含一個空類或背景);pii代表真正的數(shù)量;pij表示假正和假負,即本屬于類i但是被預(yù)測為類j像素的數(shù)量,計算分類正確的像素占總像素的比例。使用VGG16在TensorFlow封裝好的ImageNet權(quán)重訓(xùn)練FCN分割母豬圖像的前景和背景,用Adam優(yōu)化器的默認學(xué)習(xí)率0.001進行訓(xùn)練。
1.4.1 FCN注意力機制 在計算機視覺中,圖像分類、圖像分割、圖像檢測、視頻處理和生成模型等相關(guān)領(lǐng)域均使用注意力機制。其共同點是利用相關(guān)特征學(xué)習(xí)權(quán)重分布,再把學(xué)習(xí)到的權(quán)重施加到特征上進一步提取相關(guān)特征。研究采用Bottom-up和Top-down結(jié)構(gòu),首先通過一系列的卷積層和池化層,逐漸增大模型的感受野提取圖像語義特征,因為高層卷積所提取的特征激活的Pixel可反映Attention所在區(qū)域,再通過相同數(shù)量的up sample將feature map的尺寸放大到原始圖像大小,并與輸入圖像相融合。其中,up sample通過Transposed Convolution實現(xiàn)。利用Transposed Convolution學(xué)習(xí)參數(shù),將Attention的區(qū)域?qū)?yīng)到輸入圖像的每一個pixel上,稱為Attention mask(map)。Bottom-up和Top-down結(jié)構(gòu)類似于encoder-decoder結(jié)構(gòu),相當于weakly-supervised的定位任務(wù)學(xué)習(xí),因此,這種Attention的添加方式大多應(yīng)用在圖像檢測和圖像分割等監(jiān)督問題上,如FCN。
利用VGG16作為卷積基構(gòu)建FCN,用FCN提取母豬圖像的Attention權(quán)重,再將FCN的輸入和輸出結(jié)合,FCN中每一個pixel的值對應(yīng)原始feature map上每一個pixel權(quán)重,從而增強有意義特征,抑制無意義信息。如圖3所示,將FCN輸入和輸出的feature map進行element-wised乘法,并進行特征融合,進而增加特征的判別性。計算公式:
圖3 FCN注意力機制Fig.3 FCN attention mechanism
H(x)=P(x)×[1+M(x)]
式中,P(x)為FCN的輸入矩陣,M(x)為FCN的輸出矩陣,H(x)為二者點乘相加結(jié)果。當M(x)=0,該層的輸出就等于P(x)。因此,該層輸入不可能比原始P(x)差。
1.4.2 體態(tài)識別模型 采用FCN構(gòu)建母豬體態(tài)多輸出模型(圖4),FCN的卷積基為VGG16(covn1~pool5)。該模型引入注意力機制,使用FCN的卷積基提取圖像特征。通過全局平均池化計算輸入通道特征圖像素的平均值,使用全連接層分別輸出母豬的坐標位置和體態(tài)分類。模型使用自適應(yīng)學(xué)習(xí)率進行訓(xùn)練,為更好地利用計算機資源,分批次進行訓(xùn)練,每批次包含32個訓(xùn)練樣本,訓(xùn)練50輪,通過平均識別準確率和運行速度2個指標對模型進行評價。
圖4 體態(tài)識別模型 Fig.4 Posture recognition model
1) 平均識別準確率。其表示驗證集中分類正確的樣本數(shù)與驗證集總樣本數(shù)之比。計算公式:
式中,A為平均識別準確率,Ns為樣本的類別數(shù)量,Ns=5;Ni為第i類樣本的數(shù)量;Nii為預(yù)測正確的第i類樣本數(shù)量。
2) 運行速度。其是指模型處理一個樣本所花費的時間,是評價模型性能的指標。
1.4.3 試驗步驟 試驗步驟一是模型訓(xùn)練,凍結(jié)模型的卷積層,使用只訓(xùn)練模型最后全連接層的遷移學(xué)習(xí)方法;步驟二是模型微調(diào),解凍VGG16頂部的卷積層,凍結(jié)網(wǎng)絡(luò)的最后3層。
通過模型訓(xùn)練圖像可知(圖5),在模型訓(xùn)練前15輪模型loss和評價指標mae迅速下降,30輪時模型基本完全收斂,且模型在訓(xùn)練集和測試集上的準確率可達100%。
圖5 模型訓(xùn)練結(jié)果Fig.5 Model training result
對模型進行微調(diào),即共同訓(xùn)練新添加的分類器層和部分或全部卷積層,通過微調(diào)基礎(chǔ)模型中高階特征表示,使其與特定任務(wù)更加相關(guān)。此外,剛開始訓(xùn)練的誤差大,為保證卷積層學(xué)習(xí)到的特征不會被破壞,需在分類器訓(xùn)練好后才能微調(diào)卷積基的卷積層。對比微調(diào)前和微調(diào)后模型在驗證集上的測試結(jié)果可看出(圖6),模型的正確率基本維持在100%,loss仍有小范圍下降,表明微調(diào)起一定效果。由于模型在前30輪驗證集上的準確率已達100%,因此,對于模型預(yù)測結(jié)果的提升并不明顯。
圖6 模型微調(diào)結(jié)果 Fig.6 Model fine-tuning result
為測試該研究算法的泛化能力,選擇與訓(xùn)練集和測試集圖像不同的驗證集進行測試。從圖7看出,在不同光照條件下,該模型可有效識別定位母豬的不同體態(tài)(踱步、躺臥、俯臥、蹲坐、站立),具有較強的魯棒性。模型平均識別準確率為97%,說明模型能夠較好地捕捉樣本特征,預(yù)測框IOU為92.56%,運行速度為0.2 s,基本可達實時檢測要求。
圖7 模型預(yù)測效果 Fig.7 Model prediction
在模型預(yù)測時,輸出圖像的熱力圖及母豬的體態(tài)分類和坐標位置,為消除圖像背景對體態(tài)識別的干擾,本研究將模型輸出的熱力圖與輸入圖像融合,進行特征的點乘操作,將圖像的背景像素置為0,目標像素置為1,再次進行預(yù)測,從而降低環(huán)境因素對母豬體態(tài)識別算法的干擾。參考GoogleNet構(gòu)造輔助的分類器,將中間的結(jié)果輸出對中間的結(jié)果進行優(yōu)化。FCN雖精度較高,但參數(shù)量巨大,運算開銷高,在邊緣設(shè)備上難以達到實時檢測的要求。參考LinkNet的網(wǎng)絡(luò)結(jié)構(gòu)進行優(yōu)化,使用更高效的圖像特征提取模塊,并結(jié)合華為云ModelBox開發(fā)框架在RK3568上開發(fā)板上部署更高效AI應(yīng)用,通過ModelBox框架,可快速實現(xiàn)AI推理業(yè)務(wù)的開發(fā),同時增加推理的數(shù)據(jù)吞吐量,降低AI分析耗時。
關(guān)于改進全卷積網(wǎng)絡(luò)注意力機制的實現(xiàn),使用完全訓(xùn)練后的FCN下采樣層權(quán)重提取母豬的表征,再送入全連接層進行母豬體態(tài)分類和位置回歸。模型訓(xùn)練好后轉(zhuǎn)換為onnx格式,使用ModelBox框架進行模型推理,之后可部署到華為云Hilens平臺上。由于數(shù)據(jù)集的標注對于模型的預(yù)測精度影響較大。目前,對于數(shù)據(jù)集的標注還不夠精細,改進后的模型精度仍有待驗證,下一步可增加對比試驗,同時使用ModelBox框架進行推理,提高數(shù)據(jù)的吞吐量。在小規(guī)模數(shù)據(jù)集下,使用圖像增強方法擴充數(shù)據(jù)集,可有效提高模型的平均識別準確率,解決了小數(shù)據(jù)集容易出現(xiàn)過擬合的問題。目前,模型識別的速度較慢,難以部署在移動和邊緣設(shè)備上,后續(xù)將考慮對模型進行壓縮,研究輕量級的卷積神經(jīng)網(wǎng)絡(luò)模型,進一步提高模型實用價值。
通過VGG16構(gòu)建FCN分割母豬圖像,并引入注意力機制進行母豬的體態(tài)識別和定位,使用遷移學(xué)習(xí)和微調(diào)模型的方法進行模型訓(xùn)練結(jié)果顯示,訓(xùn)練前15輪模型loss和評價指標mae迅速下降,30輪時模型基本完全收斂,且模型在訓(xùn)練集和測試集上的準確率可達100%;模型微調(diào)后loss和mae仍有小范圍下降,分類準確率基本維持在100%。不同光照條件下該模型可有效識別和定位母豬不同體態(tài),具有較強魯棒性,模型平均識別準確率為97%,且能較好地捕捉樣本特征,預(yù)測框IOU為92.56%,運行速度為0.2 s,基本可實現(xiàn)實時檢測要求。表明,該方法可在光照條件欠佳的豬舍環(huán)境中有效識別母豬體態(tài),實現(xiàn)對臨產(chǎn)母豬的實時監(jiān)測。