王 萍,侯巖松,許海洋*,張 偉
(1.青島農業大學 理學與信息科學學院,山東 青島 264300;2.中國勞動關系學院 應用技術學院,北京 100048)
【研究意義】豬肉是我國主要的肉類消費品,豬肉食品的安全供應關系到國計民生。據國家統計局數據顯示,2021年我國的豬肉產量5 296萬t,增長28.8%[1],豬肉產量仍占統計肉類產量的59%。生豬產業的發展直接影響國民健康和經濟發展,為保障我國豬肉供應,應提高國內生豬的養殖效率。母豬往往是養殖場的核心資產,擔任繁育仔豬的職責,因此,其行為及健康受到高度重視。目前,養殖場利用環境控制技術實現了對畜舍通風率、溫度、濕度和有害氣體等參數的動態調整,但對畜舍中動物行為的監測與識別卻仍缺乏有效技術措施。母豬的體態行為可能受到骨骼和內臟疾病的影響,跛行是經產母豬淘汰的主要原因。豬的躺臥姿勢也是其是否健康的表現,如豬“犬坐式”姿勢表明其腹部疼痛,而四肢伸展、側臥則表明其比較舒適。由于肢體的運動和視覺受腦部神經的控制,一些腦部疾病和失明現象的發生也與運動相關聯,如因鏈球菌感染而導致的跛行或原地轉圈行為。目前對生豬尤其是母豬行為的觀察方法已由人工觀察向電子測量、視頻監測和聲音監測等方向發展。數字圖像處理技術通過對豬姿態、輪廓數據的計算,輔以運動的行為參數,用于判斷豬形體姿態和行為趨勢,該方法實時、客觀,但易受到養殖場光照條件、視角及遮擋的影響。光照引起的環境變化增加了豬的體態識別難度,且算法易受背景顏色等因素的干擾,因此,研究如何有效地提取豬只表征并對其體態進行識別,對客觀反映母豬的生理狀態,有效預防母豬疾病具有現實意義?!厩叭搜芯窟M展】2015年,NASIRAHMADI等[2]利用機器視覺自動監測豬的躺臥行為和個體間的距離,提高了識別的準確性。為避免傳感器監測的應激反應,HANSEN等[3]將VGG卷積神經網絡用于豬臉的識別中,以期實現非侵入性測量。楊阿慶等[4]研究提出基于全卷積網絡的哺乳母豬圖像分割算法,實現了豬舍場景下哺乳母豬準確、快速分割。薛月菊等[5]在ZF網絡中引入殘差結構,提出了改進Faster R-CNN的哺乳母豬姿態識別算法,提高了識別的精度和速度。高云等[6]的研究優化了Mask R-CNN網絡的深度和寬度,進行群豬圖像的實例分割,實現單個豬只的分辨和定位。劉龍申等[7]的研究利用顏色和面積圖像特征的運動目標檢測方法,實現對第一頭新生仔豬的圖像識別算法,識別率達100%。目前,可使用機器視覺[8]監測豬只飲水行為,安裝光電傳感器監測母豬的站立或躺臥姿勢,綜合判斷母豬分娩時間[9]。國內也有企業聯合高校開展監控母豬分娩后仔豬的行為姿勢,來判斷其分娩的仔豬數、仔豬出生時間間隔、產程等方面的研究[10]。VGG是較為流行的卷積神經網絡架構,其以較深的網絡結構、較小的卷積核和池化采樣域,獲得更多圖像特征的同時控制參數數量,避免計算量過多和網絡結構過于復雜。而VGG16簡化了神經網絡結構,適用于遷移學習,其包含13個卷積層和3個全連接層,在實際應用中可將第一個全連接層改為7×7的卷積網絡,后面2個全連接層改為1×1的卷積網絡,使得整個VGG變成全卷積網絡(FCN)。【研究切入點】關于母豬分割的研究多集于硬分割,即將圖片的像素分成多個類別。如果是前背景分割,則分2個類別,一類代表前景,一類代表背景,屬于分類任務,分割的二值性(即0和1)導致前景和背景周圍出現嚴格邊界,圖像融合后的視覺效果不佳。圖像對應像素點的顏色不僅是由前景本身顏色決定,而是前背景顏色融合的結果。目前,有關用軟分割分離母豬圖像前景和背景的研究鮮見報道。【擬解決的關鍵問題】基于改進全卷積網絡(FCN)的母豬體態識別算法,構建FCN訓練模型,采用自適應學習率進行訓練,識別臨產母豬體態,以期為客觀反映母豬生理狀態和有效預防母豬疾病提供參考。
試驗數據來源于青島農業大學試驗豬場,為獲取不同體態的臨產母豬圖像,于2020年4月至2021年6月分5個批次進行圖像采集(圖1)。采集設備為安裝在豬舍頂部的監控攝像頭,每間豬舍包含1頭待產母豬,獲取的視頻質量為576 p和720 p。

圖1 臨產母豬體態視頻圖像Fig.1 Video image of parturient sow
使用OpenCV-Python從獲取的視頻中逐幀提取圖像,通過人工篩選和圖像自動標注技術批量生成1 000張掩膜圖像,制作臨產母豬體態分類數據集(表1)。該數據集包含臨產母豬常見的5種體態,分別為踱步、躺臥、俯臥、蹲坐和站立,每種體態不少于100張圖像。使用Tensor Flow將圖像統一調整為224 px×224 px圖片,并進行圖像歸一化處理,使數據分布在0~1,加快模型的訓練速度。通過數據增強對圖像進行隨機裁剪、隨機反轉和隨機亮度擴充數據集,提高模型的魯棒性。擴充后的數據集包含6 000張圖像樣本,按8∶1∶1的比例將其劃分為訓練集、測試集和驗證集。

表1 臨產母豬體態分類圖像數據集Table 1 Collection of parturient sows posture image
FCN是圖像分割領域比較成功的算法,FCN將分類網絡轉換成用于分割任務的網絡結構,并實現了端到端的網絡訓練,成為深度學習解決分割問題的基石。盡管分類網絡可接收任意尺寸的圖片作為輸入,但由于網絡的最后一層為全連接層,使其丟失了圖像的空間信息。因此,FCN無法直接解決如圖像分割等像素級的稠密任務估計問題。針對該問題,FCN使用卷積層和池化層代替分類網絡中的全連接層,使網絡可適應像素級的稠密預測任務。研究使用CNN經典架構VGG16搭建全卷積網絡(圖2),目的是預測圖像中的每一個像素所屬類別。

圖2 FCN網絡結構Fig.2 FCN network structure
1.2.1 卷積層代替全連接層 FCN采用卷積層代替CNN的全連接層,使得網絡可接收超過規定尺寸的圖片。FCN的輸入為RGB圖(h×w×3)或灰度圖(h×w×1),利用與全連接層輸入數據尺寸相同的卷積核,將VGG16的全連接層替換為卷積層conv6-7。然后在原有的FCN基礎上增添兩層卷積和批標準化,使用1×1的卷積核改變圖像通道數量,對數據進行降維,引入更多的非線性,提高模型的泛化能力。批標準化有助于梯度傳播,提高模型收斂速度,允許使用更大的學習率進行訓練。最后使用sigmoid進行激活,使得模型輸出歸一化至0~1,輸出圖像的熱力圖。
1.2.2 增加反卷積 由于在卷積和池化過程中特征圖會逐漸變小,為得到和原圖相同大小的稠密像素預測圖像,需對特征圖進行上采樣。輸入圖像通過VGG16網絡,進行5次卷積和下采樣,輸出的特征圖像變成原圖像大小的1/32。FCN在特征圖后使用轉置卷積,通過對特征圖進行上采樣以恢復原圖像尺寸。
1.2.3 增加跳級結構 若直接對網絡最后一層pool5輸出的特征圖進行上采樣,輸出的分割圖會丟失很多圖像細節信息。VGG16通過淺層網絡提取圖像的局部特征,深層網絡提取圖像語義特征,直接對最后一層卷積進行32倍上采樣的方式稱為FCN-32s;為融合網絡更淺層的局部信息,將底層(stride 32)的預測(FCN-32s)進行2倍的上采樣,并與pool4層(stride 16)進行特征融合,稱為FCN-16s;再將FCN-16s進行2倍的上采樣與pool3層(stride 8)的特征結合起來,稱為FCN-8S。將網絡最后一層的預測(含有更豐富的全局信息)和更淺層的預測(含有更多的局部細節)結合,使網絡可在遵守全局預測的同時進行局部預測。
模型訓練使用華為云ModelArts平臺的算力:NVIDIA V100 GPU單卡規格,32 GB顯存[GPU:1*V100(32 GB)|CPU:8核 64 GB],基于TensorFlow2.1框架搭建FCN網絡模型。語義分割是像素級別的分類,其常用的評價指標為統計像素準確率(Pixel Accuracy,PA):
式中,k表示類別數量,為便于解釋,假設共有k+1個類(從L0到Lk,其中包含一個空類或背景);pii代表真正的數量;pij表示假正和假負,即本屬于類i但是被預測為類j像素的數量,計算分類正確的像素占總像素的比例。使用VGG16在TensorFlow封裝好的ImageNet權重訓練FCN分割母豬圖像的前景和背景,用Adam優化器的默認學習率0.001進行訓練。
1.4.1 FCN注意力機制 在計算機視覺中,圖像分類、圖像分割、圖像檢測、視頻處理和生成模型等相關領域均使用注意力機制。其共同點是利用相關特征學習權重分布,再把學習到的權重施加到特征上進一步提取相關特征。研究采用Bottom-up和Top-down結構,首先通過一系列的卷積層和池化層,逐漸增大模型的感受野提取圖像語義特征,因為高層卷積所提取的特征激活的Pixel可反映Attention所在區域,再通過相同數量的up sample將feature map的尺寸放大到原始圖像大小,并與輸入圖像相融合。其中,up sample通過Transposed Convolution實現。利用Transposed Convolution學習參數,將Attention的區域對應到輸入圖像的每一個pixel上,稱為Attention mask(map)。Bottom-up和Top-down結構類似于encoder-decoder結構,相當于weakly-supervised的定位任務學習,因此,這種Attention的添加方式大多應用在圖像檢測和圖像分割等監督問題上,如FCN。
利用VGG16作為卷積基構建FCN,用FCN提取母豬圖像的Attention權重,再將FCN的輸入和輸出結合,FCN中每一個pixel的值對應原始feature map上每一個pixel權重,從而增強有意義特征,抑制無意義信息。如圖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)為二者點乘相加結果。當M(x)=0,該層的輸出就等于P(x)。因此,該層輸入不可能比原始P(x)差。
1.4.2 體態識別模型 采用FCN構建母豬體態多輸出模型(圖4),FCN的卷積基為VGG16(covn1~pool5)。該模型引入注意力機制,使用FCN的卷積基提取圖像特征。通過全局平均池化計算輸入通道特征圖像素的平均值,使用全連接層分別輸出母豬的坐標位置和體態分類。模型使用自適應學習率進行訓練,為更好地利用計算機資源,分批次進行訓練,每批次包含32個訓練樣本,訓練50輪,通過平均識別準確率和運行速度2個指標對模型進行評價。

圖4 體態識別模型 Fig.4 Posture recognition model
1) 平均識別準確率。其表示驗證集中分類正確的樣本數與驗證集總樣本數之比。計算公式:
式中,A為平均識別準確率,Ns為樣本的類別數量,Ns=5;Ni為第i類樣本的數量;Nii為預測正確的第i類樣本數量。
2) 運行速度。其是指模型處理一個樣本所花費的時間,是評價模型性能的指標。
1.4.3 試驗步驟 試驗步驟一是模型訓練,凍結模型的卷積層,使用只訓練模型最后全連接層的遷移學習方法;步驟二是模型微調,解凍VGG16頂部的卷積層,凍結網絡的最后3層。
通過模型訓練圖像可知(圖5),在模型訓練前15輪模型loss和評價指標mae迅速下降,30輪時模型基本完全收斂,且模型在訓練集和測試集上的準確率可達100%。

圖5 模型訓練結果Fig.5 Model training result
對模型進行微調,即共同訓練新添加的分類器層和部分或全部卷積層,通過微調基礎模型中高階特征表示,使其與特定任務更加相關。此外,剛開始訓練的誤差大,為保證卷積層學習到的特征不會被破壞,需在分類器訓練好后才能微調卷積基的卷積層。對比微調前和微調后模型在驗證集上的測試結果可看出(圖6),模型的正確率基本維持在100%,loss仍有小范圍下降,表明微調起一定效果。由于模型在前30輪驗證集上的準確率已達100%,因此,對于模型預測結果的提升并不明顯。

圖6 模型微調結果 Fig.6 Model fine-tuning result
為測試該研究算法的泛化能力,選擇與訓練集和測試集圖像不同的驗證集進行測試。從圖7看出,在不同光照條件下,該模型可有效識別定位母豬的不同體態(踱步、躺臥、俯臥、蹲坐、站立),具有較強的魯棒性。模型平均識別準確率為97%,說明模型能夠較好地捕捉樣本特征,預測框IOU為92.56%,運行速度為0.2 s,基本可達實時檢測要求。

圖7 模型預測效果 Fig.7 Model prediction
在模型預測時,輸出圖像的熱力圖及母豬的體態分類和坐標位置,為消除圖像背景對體態識別的干擾,本研究將模型輸出的熱力圖與輸入圖像融合,進行特征的點乘操作,將圖像的背景像素置為0,目標像素置為1,再次進行預測,從而降低環境因素對母豬體態識別算法的干擾。參考GoogleNet構造輔助的分類器,將中間的結果輸出對中間的結果進行優化。FCN雖精度較高,但參數量巨大,運算開銷高,在邊緣設備上難以達到實時檢測的要求。參考LinkNet的網絡結構進行優化,使用更高效的圖像特征提取模塊,并結合華為云ModelBox開發框架在RK3568上開發板上部署更高效AI應用,通過ModelBox框架,可快速實現AI推理業務的開發,同時增加推理的數據吞吐量,降低AI分析耗時。
關于改進全卷積網絡注意力機制的實現,使用完全訓練后的FCN下采樣層權重提取母豬的表征,再送入全連接層進行母豬體態分類和位置回歸。模型訓練好后轉換為onnx格式,使用ModelBox框架進行模型推理,之后可部署到華為云Hilens平臺上。由于數據集的標注對于模型的預測精度影響較大。目前,對于數據集的標注還不夠精細,改進后的模型精度仍有待驗證,下一步可增加對比試驗,同時使用ModelBox框架進行推理,提高數據的吞吐量。在小規模數據集下,使用圖像增強方法擴充數據集,可有效提高模型的平均識別準確率,解決了小數據集容易出現過擬合的問題。目前,模型識別的速度較慢,難以部署在移動和邊緣設備上,后續將考慮對模型進行壓縮,研究輕量級的卷積神經網絡模型,進一步提高模型實用價值。
通過VGG16構建FCN分割母豬圖像,并引入注意力機制進行母豬的體態識別和定位,使用遷移學習和微調模型的方法進行模型訓練結果顯示,訓練前15輪模型loss和評價指標mae迅速下降,30輪時模型基本完全收斂,且模型在訓練集和測試集上的準確率可達100%;模型微調后loss和mae仍有小范圍下降,分類準確率基本維持在100%。不同光照條件下該模型可有效識別和定位母豬不同體態,具有較強魯棒性,模型平均識別準確率為97%,且能較好地捕捉樣本特征,預測框IOU為92.56%,運行速度為0.2 s,基本可實現實時檢測要求。表明,該方法可在光照條件欠佳的豬舍環境中有效識別母豬體態,實現對臨產母豬的實時監測。