?

基于改進YOLO v4的生豬耳根溫度熱紅外視頻檢測方法

2023-03-07 03:31馮彥坤
農業機械學報 2023年2期
關鍵詞:耳根主干頭部

劉 剛 馮彥坤 康 熙

(1.中國農業大學智慧農業系統集成研究教育部重點實驗室,北京 100083;2.中國農業大學農業農村部農業信息獲取技術重點實驗室,北京 100083;3.浙大寧波理工學院計算機與數據工程學院,寧波 315200)

0 引言

隨著生豬規?;B殖程度的不斷提高,生豬疾病已成為制約養豬產業健康發展的一個重要因素[1-2]。體溫作為生豬的一項重要生理參數,可用于生豬疾病的預防和早期診斷[3-4]。此外,體溫也是評估生豬的健康狀況、育種能力和畜禽舍環境的重要依據[5-6]。因此對生豬體溫的準確檢測在規?;B殖中具有重要意義。

生豬體溫測量的傳統方法是人工測量生豬的直腸溫度,這種方法效率低,且易造成生豬的應激反應[7]。隨著傳感器技術的快速發展,一些學者開展了基于溫度傳感器的生豬體溫檢測技術研究,將溫度傳感器植入生豬體內,這種方式能獲取準確的體溫數據,但成本較高,且對生豬損害較大[8]。近年來,紅外熱成像技術作為一種無接觸式體表溫度測量方法,已經被廣泛用于畜禽的體溫檢測和疾病診斷等研究領域[9]。一些研究人員利用熱像儀獲取生豬不同部位的體表溫度,并建立各部位溫度與直腸溫度之間的回歸模型,表明生豬耳根溫度和直腸溫度顯著相關[10-11]。

在利用紅外熱成像技術獲取生豬體表溫度的研究中,需要獲取生豬感興趣區域(Region of interest,ROI)溫度,采用手動標記方式提取生豬ROI溫度效率較低[12-13],一些學者開展了基于圖像處理的生豬ROI溫度自動檢測方法研究。朱偉興等[14]基于改進主動形狀模型檢測生豬耳部輪廓。周麗萍等[15]利用改進Otsu算法檢測有完整生豬耳部的熱紅外圖像。LU等[16]提出一種基于SVM的仔豬耳根溫度檢測方法。上述方法實現了熱紅外圖像中生豬ROI溫度的自動提取,但熱紅外圖像均為人工拍攝,不適合在線檢測。馬麗等[17]選用在線式熱像儀,采集生豬熱紅外視頻數據,利用骨架掃描策略改進FDSST 算法,自動獲取生豬耳根溫度,但該方法對生豬頭部跟蹤精度較低。

隨著深度學習技術的快速發展,深度卷積神經網絡在目標檢測上有了較廣泛的應用。趙海濤[18]提出一種基于U-Net-4網絡的生豬眼睛和耳部區域分割方法。劉勤[19]構建了Faster R-CNN網絡,檢測熱紅外圖像中生豬耳部區域。肖德琴等[20]提出一種基于YOLO v4和形態學的生豬耳部溫度檢測算法,實現了生豬耳部溫度自動監測。然而,視頻中多變的生豬頭部姿態會影響生豬耳根溫度檢測的準確性[21],視頻中的保育期生豬頭部多動,姿態多變,且耳根區域較小,使得生豬頭部和耳根區域的定位精度大大降低,進而影響了生豬耳根溫度的精準檢測。

針對以上問題,本文以俯視圖下的飼喂欄通道中保育期生豬熱紅外視頻為研究對象,提出一種基于改進YOLO v4的生豬耳根溫度檢測方法,實現保育期生豬體溫自動化精準檢測,為生豬體溫異常監測與預警提供技術支撐。

1 試驗數據采集與數據集構建

1.1 試驗數據采集

試驗數據采集于北京市房山區西周各莊養殖場,采集對象為自然穿過飼喂欄通道的保育期生豬,采集時間為2021年7—8月。采集系統如圖1所示,生豬進食前,需要依次通過飼喂欄通道進入采食區,在通道出口處安裝RFID識別器,用于確定視頻中生豬身份。將FLIR-A310型熱像儀安裝在飼喂欄通道中心的上方,熱像儀鏡頭距離飼喂欄1.1 m,以確??梢酝ㄟ^熱像儀拍攝生豬的頭部和耳根,熱像儀通過以太網與計算機通信。由于熱像儀測溫本身存在固有誤差,故將黑體放于飼喂欄通道左側,用于溫度校正。使用HOBO U14-001型智能溫濕度記錄儀,記錄熱像儀安裝處的環境溫度和相對濕度,調整熱像儀的發射率、溫濕度和鏡頭到物體的距離等參數,試驗中豬舍內的平均環境溫度為28.3℃,平均相對濕度為81.6%。熱像儀的發射率設定為0.95,與文獻[16]中對仔豬耳根溫度的研究一致。當系統輸出數據穩定后,對50頭保育期生豬進行熱紅外視頻采集,采集的視頻以SEQ的格式存儲于計算機硬盤中。FLIR-A310型熱像儀的分辨率為320像素×240像素,幀率為10 f/s。

圖1 生豬視頻采集示意圖

為了驗證本文算法對生豬耳根溫度檢測的準確性,使用HD-1500E型接觸式數字表面溫度計人工測量了50頭保育期生豬左、右耳根溫度,人工測量50頭生豬耳根溫度3次,并取3次均值作為耳根溫度真實值,以減少人工測量誤差。由于部分生豬耳標失效,無法和采集系統中錄制的熱紅外視頻數據相對應,最終得到38頭保育期生豬的有效耳根溫度數據。

1.2 數據集構建

從采集的生豬熱紅外視頻中篩選50頭自然行走生豬的視頻,將視頻截取成圖像序列,得到2 000幅包含生豬頭部和耳根的熱紅外圖像,將其按照7∶1∶2的比例劃分為訓練集、驗證集和測試集。

熱像儀測溫是通過用紅外焦平面陣列傳感器檢測被測物體發出的輻射來確定溫度,目標的遮擋會影響目標的溫度測量結果[22]。因此,當生豬在飼喂欄通道行走的過程中,頭部姿態變化引起的耳根遮擋,會影響生豬耳根的被測溫度。為了更準確的獲取生豬耳根溫度,需要區分生豬的頭部姿態,以提取頭部端正姿態下的耳根溫度。本文構建的數據集包含 “pigHead0”、“pigHead1”、“pigEl”和“pigEr” 4個類別,分別為“生豬頭部,姿態歪斜”、“生豬頭部,姿態端正”、生豬左耳根區域、“生豬右耳根區域”。使用LabelImg工具標注圖像中的生豬頭部和耳根所在區域。

2 生豬耳根溫度檢測方法

2.1 YOLO v4 卷積神經網絡

YOLO v4[23]是性能較好的一階段(one-stage)目標檢測算法,選擇CSPDarknet53作為主干網絡,引入SPP(Spatial pyramid pooling)模塊,顯著地增加了感受野;采用PAN(Path aggregation network)替換特征金字塔網絡(Feature pyramid network,FPN)進行多通道特征融合,提高模型檢測精度。此外,進行了Mosaic數據增強、cmBN以及SAT自對抗訓練等方面的改進,提高了YOLO v4模型的準確率和泛化能力。但在進行保育期生豬頭部和耳根區域定位試驗中發現,YOLO v4模型對行走過程中保育期生豬頭部和耳根區域檢測精度低。所以本文對YOLO v4進行改進,提高保育期生豬頭部和耳根區域檢測精度,進而提取更準確耳根溫度。

2.2 YOLO v4網絡改進

2.2.1特征提取網絡改進

YOLO v4采用ResNet作為主干特征提取網絡,ResNet網絡的連接方式是建立前面特征層與后面特征層的短路連接,可表示為

xn=Hn(xn-1)+xn-1

(1)

式中xn——第n層輸出

Hn(·)——非線性轉換函數

這種連接方式有效解決了梯度消失問題,但是在目標檢測期間,隨著網絡深度不斷增加,重要的特征信息在卷積和下采樣過程中可能會丟失,減少了神經網絡的特征圖。

基于上述問題,GAO等[24]提出了DenseNet網絡,DenseNet網絡采用密集連接機制,其中每一層都以前饋模式連接到其他層,第n層能夠從所有先前層x0、x1、…、xn-1的輸入中接收所需的特征信息xn,可表示為

xn=Hn([x0,x1,…,xn-1])

(2)

式中 [x0,x1,…,xn-1]——各層產生的特征圖的拼接

與ResNet網絡相比,DenseNet網絡的連接方式保留了重要的特征映射,能重復利用關鍵特征信息,增強了網絡對重要特征信息的提取能力,有效解決了ResNet網絡中重要特征信息丟失的問題。

針對本文的生豬熱紅外圖像分辨率低和耳根區域小的特點,使用密集連接塊有助于促進神經網絡中的特征傳遞和梯度轉移,并在一定程度上緩解過度擬合。因此,本文在YOLO v4 的CSPDarknet53主干網絡中,通過添加密集連接塊,將兩個殘差塊CSPR8和CSPR4替換為Dense1-CSPR8和Dense2-CSPR4,得到新的主干網絡Dense-CSPDarknet53,用于增強最后兩個特征層S2和S3的特征傳播。此外,SPP模塊與Dense-CSPDarknet53 主干網絡中最后一個殘差塊(CSPR4)緊密集成,進一步增強主干網絡感受野并分離出重要的上下文特征。本文提出的Dense-CSPDarknet53示意圖和相應的網絡參數如圖2所示。

圖2 Dense-CSPDarknet53主干網絡和參數示意圖

從圖2可以看出,本文采用深度網絡替換26×26和13×13下采樣層,傳遞特征圖函數H1對x0、x1、…、xn-1層進行非線性變換,其中每一層xi由64個特征層組成。由此,CSPR8前面的Dense1在分辨率為26×26層上執行特征傳播和層拼接,最終正向傳播特征層為26×26×512。同理,CSPR4前面的Dense2在分辨率為13×13層上執行特征傳播和層拼接,最終正向傳播特征層為13×13×1 024。

在CSPDarknet53主干網絡中引入密集連接塊,確保了在訓練期間,當輸入的圖像被傳輸到較低分辨率層時,后面的特征層從前面的層中獲取特征,從而減少特征損失。此外,不同的低分辨率卷積層可以重用它們之間的特征,提高了特征使用率。

2.2.2特征融合網絡改進

密集連接塊的引入,促進了重要特征重用,提升了網絡對小目標檢測能力,但是隨著殘差塊層數的增加,其中每一層都與之前的所有層相連,會造成層與層之間的互連變得更加復雜。針對這一問題,對YOLO v4頸部的PANet結構進行修改,將PANet結構中組合兩個特征圖的Concat操作替換為Add操作,如圖3所示。YOLO v4中PANet采用Concat操作,通道數變為原來的兩倍,而采用Add操作組合兩個特征圖,通道數不變,修改后的特征融合網絡,縮短了多尺度特征金字塔圖的高、低融合路徑,減少了網絡參數和計算量,提升了模型檢測速度。Add操作相比Concat操作會帶來一定的信息損失,但由于密集連接塊的引入,已經從前層獲取了足夠的特征信息,修改后的模型檢測精度只是略有下降,降低0.52個百分點。

圖3 PANet融合方式

2.2.3激活函數改進

激活函數是神經網絡的關鍵組成部分,針對特定問題選擇合適的激活函數,可以用來提高神經網絡在不同分類任務中的效果。為有效訓練改進YOLO v4模型,提高模型檢測性能,本文在訓練文件中配置了Leaky ReLU、Swish和Mish 3種激活函數。

Leaky ReLU是深度卷積神經網絡中流行的激活函數之一,有效解決了梯度消失問題,并在傳播過程中更新權重,參數α用于解決其前身ReLU帶來的神經元死亡的問題,保證整個訓練過程中梯度不為零,從而提高訓練性能,Leaky ReLU計算公式為

(3)

式中x——神經元輸入

f(x)——神經元輸出

α——梯度調節參數

為了保持負值以穩定網絡梯度流和死亡神經元,進而學習更具表現力的特征,DIGANTA等[25]提出了激活函數Mish,它在[-0.31,∞)范圍內有下界、無上界,有助于消除神經元飽和問題,提高網絡正則化,較Leaky ReLU激活函數更為平滑,具有更好的學習適應能力,其計算公式為

f(x)=xtan(ln(1+ex))

(4)

Swish與Mish類似,具有無上界、有下界、非單調和平滑的特性。非單調性是區分Swish與ReLU的重要依據,且平滑的特性有利于模型的生成和優化,調節訓練參數β可以提高模型檢測性能,其計算公式為

f(x)=xsigmoid(βx)

(5)

將上述3種激活函數與改進模型主干和頸部形成不同組合,并用平均精度均值(mAP)和檢測速度兩個指標對各個組合的性能進行評估,其檢測結果如表1所示。

表1 激活函數檢測性能對比

從表1中可以得出,在改進模型的主干和頸部使用Mish激活函數時,在測試集上的檢測精度最高,但這種組合增加了檢測時間。在改進模型的主干和頸部使用Leaky ReLU激活函數,在測試集上的檢測速度最快,但檢測精度最低。將頸部替換為Leaky ReLU激活函數,提高了檢測速度,但精度也有所下降。由于耳根溫度提取需要更精準的目標檢測模型,本文在改進YOLO v4中,主干網絡Dense-CSPDarkent53和頸部都選擇Mish激活函數,這種組合在測試集上的檢測精度最高。

2.2.4改進YOLO v4網絡

在YOLO v4的基礎上,通過本文的一系列改進,得到了改進YOLO v4(Mish Dense YOLO v4,MD-YOLO v4)網絡,其網絡結構如圖4所示。首先,在YOLO v4主干特征提取網絡CSPDarknet53中添加密集連接塊,同時將SPP模塊集成到主干網絡;其次,在YOLO v4的頸部植入改進的PANet;最后,在改進YOLO v4的主干和頸部使用Mish激活函數。此外,為了在訓練期間獲得更好的準確性,輸入數據集圖像尺寸調整為416像素×416像素,檢測頭大小分別為52×52×27、26×26×27和13×13×27。

圖4 改進YOLO v4網絡結構

2.3 耳根溫度提取方法

利用構建好的生豬熱紅外數據集對改進YOLO v4網絡進行訓練,得到生豬頭部和耳根區域檢測模型,該模型具有從輸入圖像中檢測頭部和耳根矩形框坐標的功能,圖5為檢測結果示例圖。將檢測的生豬耳根的位置坐標映射到熱紅外圖像對應的溫度矩陣,提取耳根區域的溫度矩陣。

圖5 頭部和耳根檢測結果

生豬頭部姿態歪斜會導致耳根區域出現部分或者完全遮擋,從而影響耳根溫度檢測的準確性。因此,為了準確獲取耳根溫度,當生豬通過信息采集通道時,本文分別提取類別為“pigHead1”的圖像中左、右耳根檢測框內的溫度數據,左耳根溫度TL和右耳根溫度TR的計算公式為

(6)

(7)

式中Tl(x,y)——左耳根檢測框溫度矩陣

Tr(x,y)——右耳根檢測框溫度矩陣

Max——矩陣元素最大值函數

N——類別為pigHead1的圖像幀數

為降低輻射率、距離、溫濕度、光照和風速等因素對測溫結果的影響,本文使用黑體對算法提取的耳根溫度進行校準,將校準后的耳根溫度作為本文算法檢測結果。設定黑體發射溫度為T0,根據黑體的位置坐標,提取黑體溫度最大值Tb,測溫誤差e和校準后左、右耳根溫度計算公式為

e=Tb-T0

(8)

Tl=TL-e

(9)

Tr=TR-e

(10)

式中Tl、Tr——校準后左、右耳根溫度

2.4 模型訓練

本文試驗所使用的硬件配置為Intel Core i7-9700k 3.60 GHz,32 GB運行內存,改進YOLO v4模型在NVIDIV GeForce RXT 2070 GPU上進行訓練和測試,顯存為8 GB,運行環境為64 位Windows 10 操作系統。

改進YOLO v4模型在訓練前需要進行參數設置,為了在訓練期間獲得更好的準確性,輸入的數據集圖像尺寸被調整為416像素×416像素,將批量處理尺寸設置為32,訓練共迭代8 000次。調整初始學習率為0.001,并且采用 steps模式更新學習率,在訓練迭代次數達到6 400和7 200時,將學習率分別降低至初始學習率的10%和1%,其他超參數與YOLO v4模型中的原始參數保持一致。

圖6為改進YOLO v4網絡在訓練時的平均損失值隨迭代次數的變化曲線。從圖中可以看到,當網絡迭代超過6 000次后,損失值基本趨于平穩,在0.35附近波動。從參數收斂情況來看,網絡訓練結果理想。

圖6 損失值變化曲線

2.5 評價指標

為客觀衡量改進模型對生豬頭部和耳根的檢測效果,使用準確率(Precision)、召回率(Recall)、平均精度均值(mAP)和每秒檢測幀數(Frames per second,FPS)作為評價指標,來評價檢測模型性能。mAP越高說明檢測精度越高,FPS 越大說明檢測速度越快。

3 結果與討論

3.1 基于MD-YOLO v4的生豬關鍵部位檢測

為驗證MD-YOLO v4用于檢測生豬關鍵部位的準確性和魯棒性,本文將MD-YOLO v4與Faster R-CNN、SSD、YOLO v4、YOLO v5進行對比分析。試驗采用相同生豬熱紅外數據集訓練模型,訓練時盡量保持超參數一致,并采用相同測試集來評價模型性能。5種目標檢測模型在測試集上的檢測效果如圖7所示。從圖中可以看出,5種目標檢測模型對生豬頭部的檢測均有較好的效果,都能準確識別生豬頭部,而對耳根檢測效果差異較大,SSD會出現耳根漏檢的情況,Faster R-CNN存在耳根檢測框重疊問題。

圖7 不同檢測模型效果對比

對上述目標檢測模型檢測生豬頭部和耳根的準確率、召回率、平均精度均值和檢測速度進行統計,結果如表2所示。由表2可知,在5種目標檢測模型中,SSD和Faster R-CNN的平均精度均值分別為66.23%和75.39%,對耳根的平均檢測精度均不到60%,不適用于生豬耳根區域的定位。相比SSD和Faster R-CNN網絡,YOLO v4、YOLO v5和MD-YOLO v4網絡對耳根檢測精度更高,對小尺寸的耳根識別效果更好,其中MD-YOLO v4網絡對耳根檢測最精準。MD-YOLO v4比YOLO v5、YOLO v4的平均精度均值分別增加5.39、6.43個百分點,尤其是提高了對生豬耳根的檢測精度,左、右耳根的平均精度分別達到93.87%和93.54%。與YOLO v4相比,MD-YOLO v4引入密集連接塊、SPP和改進的PANet等操作,增強了圖像特征,通過重復利用淺層特征減少錯誤檢測,提高了對小目標檢測的準確性。在檢測實時性方面,MD-YOLO v4的檢測速度為60.21 f/s,可以滿足實時檢測生豬頭部和耳根的需求。

表2 5種檢測算法性能比較

3.2 生豬耳根溫度

將人工測量的38頭生豬耳根溫度真實值作為評價標準,用于驗證本文方法提取耳根溫度的準確性,生豬左、右耳根溫度真實值和檢測值如圖8所示。統計了每頭生豬左、右耳根溫度真實值和檢測值的絕對誤差、均方根誤差和相對誤差。結果表明,本文方法提取的左耳根溫度和真實值之間的最大絕對誤差為0.5℃,平均絕對誤差為0.26℃,均方根誤差為0.29℃;本文方法提取的右耳根溫度和真實值之間的最大絕對誤差為0.5℃,平均絕對誤差為0.21℃,均方根誤差為0.25℃。左耳根溫度測量的相對誤差最大為1.32%,平均相對誤差為0.68%;右耳根溫度測量的相對誤差最大為1.30%,平均相對誤差為0.55%。

圖8 生豬耳根溫度測量結果

相關研究表明,受外界環境、進食和飲水等因素的影響,生豬體溫正常變化在1℃以內,當生豬體溫變化大于1℃可能發生異常,上升1.5℃以上判為中熱,上升2.5℃以上判為高熱[26]。本文方法檢測的生豬左、右耳根溫度和真實值之間的最大絕對誤差均為0.5℃,平均絕對誤差都在0.3℃以內,該精度可用于生豬體溫異常監測。

4 結論

(1)提出了一種基于改進YOLO v4的生豬關鍵部位檢測模型,實現對保育期生豬頭部和耳根區域精準定位,改進YOLO v4在測試集上的mAP為95.71%,檢測速度為60.21 f/s,與YOLO v5和YOLO v4相比,mAP分別提高5.39個百分點和6.43個百分點。

(2)在YOLO v4主干特征提取網絡中引入密集連接塊,重復利用淺層特征信息,增強了網絡對重要特征信息的提取能力,提升了網絡對小目標檢測效果;在頸部特征融合網絡引入改進PANet,縮短多尺度特征金字塔圖的高、低融合路徑,提升了檢測速度。

(3)通過對生豬耳根區域的精準定位,實現生豬耳根溫度自動提取,以人工測量的38頭生豬耳根溫度真實值為評價標準,評估了本文方法提取耳根溫度的準確性,結果表明,本文方法提取的生豬左、右耳根溫度平均絕對誤差分別為0.26℃和0.21℃,為生豬體溫異常監測提供了研究基礎。

猜你喜歡
耳根主干頭部
抓主干,簡化簡單句
頭部按摩治療老伴失憶
火箭的頭部為什么是圓鈍形?
尋寶記之采折耳根
尋寶記之采折耳根
左主干閉塞的心電圖表現
田間美味折耳根
整合內容 構建高效課堂——開展非線性主干循環活動型單元教學模式
自適應統計迭代重建算法在頭部低劑量CT掃描中的應用
全國主干公路網交通安全監控信息共享平臺構建研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合