許志強,沈明霞*,劉龍申,孫玉文,鄭荷花,張偉
(1.南京農(nóng)業(yè)大學工學院/江蘇省智能化農(nóng)業(yè)裝備重點實驗室,江蘇 南京 210031;2.新希望六合股份有限公司,山東 青島 266100)
肉雞是我國僅次于豬肉的第二大肉類消費品[1],但在集約化、規(guī)模化養(yǎng)殖條件下,肉雞腿病的發(fā)生率也呈上升趨勢,不同養(yǎng)殖場肉雞腿病的發(fā)生率有較大差異,但整體腿病發(fā)生率達到2.07%[2];而在一些飼養(yǎng)管理不好的養(yǎng)殖場腿病的發(fā)病率可高達5%~6%[3],造成了嚴重的經(jīng)濟損失。目前,肉雞腿病主要以人工檢測為主,耗時耗力[4]。因此,研究一種能夠準確識別肉雞腿部疾病的自動化檢測方法具有重要意義。
關(guān)于肉雞腿部疾病檢測方法的研究,國內(nèi)外多以Kestin等[5]的肉雞步態(tài)評分標準為參照進行跛行研究。何燦隆等[6]通過使用無線運動腳環(huán)檢測肉雞行走的有效數(shù)據(jù)點來判斷肉雞的跛行程度,其建立的二分類模型準確率為93.88%。Aydin等[7]通過3D視覺相機驗證了肉雞躺下的潛伏期和步態(tài)得分之間呈顯著負相關(guān)。N??s等[8]通過分析肉雞步態(tài)的視頻流來計算肉雞的速度和加速度,從而進行步態(tài)評分預測。Shen等[9]通過紅外熱圖像提取肉雞的頭部溫度,進而分析肉雞群的溫度,識別精度達91.3%。LokeshBabu等[10]通過拍攝牛蹄表面的紅外熱圖像觀察溫度變化,證明紅外熱圖像可用于奶牛跛行的早期檢測。目前,國內(nèi)外鮮有文獻報道紅外熱圖像在肉雞腿部異常檢測的研究。
本文基于隨機森林分類模型,從白羽肉種雞的紅外熱圖像中提取腿部溫度、身體質(zhì)心高度、身體前傾角、身體偏轉(zhuǎn)角等特征指標,通過多特征融合綜合判定肉雞腿部異常情況。
試驗于2019年12月7日至15日在山東省煙臺市新希望六和肉種雞二場進行,共選取白羽肉種雞(科寶)354只,平均日齡為40周(白羽肉種雞在64周齡淘汰)。試驗時雞舍內(nèi)環(huán)境溫度(18±0.2)℃,時間為每天13:30—17:00。試驗前將木質(zhì)步行通道放入雞舍環(huán)境2 d,以使肉雞適應試驗環(huán)境,消除試驗時的環(huán)境應激性。根據(jù)何燦隆等[6]的改進型肉雞步態(tài)分類標準,本試驗將肉雞步態(tài)分為正常、輕微異常、中度異常、嚴重異常4個評級,并給出不同步態(tài)評級下選取的肉雞數(shù)量(表1)。由于嚴重異常肉雞已失去行走能力,本文不做探究。
表1 肉雞步態(tài)分類標準Table 1 Gait classification standard for broilers
FLIR TAU2640紅外熱像儀機芯:測溫范圍-40~80 ℃,測量精度±0.1 ℃,熱靈敏度不大于0.05 ℃,圖像分辨率320×240,像素間距17 μm,成像時間小于0.5 s。
ZG-7020電子溫度計:溫度測量范圍-50~70 ℃,測量精度±0.1 ℃,溫度分辨率0.1 ℃。
試驗裝置由木質(zhì)步行通道、紅外機芯組成的特制平臺(圖1),步行通道長120 cm、寬50 cm、高30 cm,背景墻與步行道等長,高60 cm,與步行道垂直放置。正對背景墻100 cm處固定放置1臺紅外機芯,用于抓拍肉雞目標。在步行通道的盡頭為30 cm×30 cm的出口,并通向雞群和日常采食區(qū)。電子溫度計用于記錄當時環(huán)境的溫度條件。
圖1 紅外圖像采集示意圖Fig.1 Schematic diagram of infrared image acquisition
將單只肉雞放置在步行通道的開始端,由于肉雞的趨同性行為,以及僅有步行道終點一個方向可以通向雞群和日常采食區(qū),所以大多數(shù)時間肉雞可以沿直線路徑自然走到通道盡頭。對于個別行走意愿不強烈的肉雞個體,進行輕微驅(qū)趕后采集,但在行走過程中不予干預。
當目標肉雞出現(xiàn)在鏡頭內(nèi)時進行連續(xù)3幀的圖像抓拍(紅外機芯成像時間小于0.5 s,且自然狀態(tài)下肉雞行走較為緩慢)。為了避免肉雞動態(tài)行走時抓拍的圖像模糊,以及偶發(fā)應激性導致的異常數(shù)據(jù)影響,每只雞需要在步道上完成3次圖像抓拍,從中選擇1次步態(tài)相對自然且成像清晰的數(shù)據(jù)記錄并以此作為最終的樣本數(shù)據(jù)。
使用紅外熱圖像分析軟件SmartView 4.3對肉雞腿部樣本的溫度數(shù)據(jù)進行分析統(tǒng)計。分析過程如圖2所示。
圖2 肉雞腿部溫度分析Fig.2 Analysis of leg temperature in broilers
表2為部分數(shù)據(jù)統(tǒng)計結(jié)果。最終確定肉雞腿病存在著高溫異常和低溫異常,且正常溫度和異常溫度之間差異比較明顯,可以作為肉雞腿部異常識別的重要特征。
表2 肉雞腿部最大溫度數(shù)據(jù)統(tǒng)計(部分)Table 2 Statistics of maximum temperature data of broiler legs(part)
使用紅外熱圖像分析軟件SmartView 4.3將源圖像導出為JPG格式,以及導出包含有紅外熱圖像中每個像素點溫度數(shù)據(jù)的CSV文件。
2.1.1 數(shù)據(jù)集制作1)數(shù)據(jù)來源:本試驗共采集紅外熱圖像1 062張,剔除無效數(shù)據(jù)后,得到有效圖像980張。
2)數(shù)據(jù)標注:使用開源工具LabelImg對肉雞腿部區(qū)域進行人工標注,圖片標注后會生成后綴為.xml的同名文件,該文件記錄了標注框的位置和目標類別等信息。
3)劃分數(shù)據(jù)集:為了更好地優(yōu)化模型參數(shù)和提高模型性能,將標注好的980幅圖像按照8∶1∶1進行劃分[11],即將數(shù)據(jù)集總體看成10份,其中8份作為訓練集訓練深度神經(jīng)網(wǎng)絡(luò)模型,保證訓練集中數(shù)據(jù)量充分,增強模型的識別能力。另外2份數(shù)據(jù)分別作為驗證集和測試集,前者用于訓練過程中驗證模型的有效性和調(diào)整網(wǎng)絡(luò)超參數(shù),以獲得最佳效果的模型;后者用于測試模型的泛化能力。劃分后得到訓練集784張,驗證集98張,測試集98張。
4)數(shù)據(jù)集格式化:將劃分好的數(shù)據(jù)集制作成PASCAL VOC標準格式數(shù)據(jù)集,用于模型訓練和預測。
2.1.2 模型訓練與測試YOLO v3(You only look once v3)[12]是基于深度神經(jīng)網(wǎng)絡(luò)的目標檢測模型,該模型采用類殘差網(wǎng)絡(luò)構(gòu)成的Darknet-53作為基礎(chǔ)網(wǎng)絡(luò),并且融合特征金字塔網(wǎng)絡(luò),改善目標檢測的性能,尤其適合小目標的檢測[13],具有精度高、速度快等優(yōu)點。因此,從目標檢測的精度和效率綜合考慮,本文選用YOLO v3模型檢測肉雞腿部區(qū)域。
本次模型訓練最大迭代次數(shù)為20 000;采用batch值為64的mini-batch隨機梯度下降法訓練;學習策略為步進型,初始學習率為0.001,沖量為0.9,衰減因子為0.000 5。
2.1.3 模型評價本文采用查準率(P)和查全率(R)對識別結(jié)果進行評價,計算公式如下:
(1)
式中:TP為真正樣本(真陽性);FP為假正樣本(假陽性);FN為假負樣本(假陰性)。
通過上述YOLO v3深度神經(jīng)網(wǎng)絡(luò)訓練得到最終的目標檢測模型,測試集中的圖像檢測結(jié)構(gòu)如圖3所示。模型對測試集的98張圖像實測得到查準率和查全率分別為98.43%和100.00%。
圖3 YOLO v3目標檢測結(jié)構(gòu)圖Fig.3 YOLO v3 target detection structure diagram
在得到肉雞腿部的預測框之后,需要輸出預測框的頂點坐標,根據(jù)左上頂點和右下頂點在CSV文件中讀取對應范圍內(nèi)最大值,即腿部最大溫度。
YOLO v3通過提取不同尺寸的特征圖,如13×13、26×26、52×52,將輸入圖像分成對應個數(shù)的網(wǎng)絡(luò)柵格,每個網(wǎng)絡(luò)柵格都會被分配3個先驗框,其中交并比(intersect over union,IOU)[14]最大的邊框用來預測目標。預測邊框的輸出公式[15]為:
(2)
式中:tx、ty、tw、th為模型的預測輸出;cx、cy為網(wǎng)絡(luò)柵格的坐標;pw、ph為預測前邊框的尺寸;bx、by、bw、bh為預測框的中心坐標和寬、高尺寸。本文中測試圖片尺寸為320×240,肉雞腿部預測邊框的中心坐標為(145,184),寬為134,高為83,從而得到邊框左上頂點坐標為(78,143),右下頂點坐標為(212,226)。
對于有炎癥病變的腿部跛行(如跗關(guān)節(jié)腫脹、腿部關(guān)節(jié)腫大)能夠監(jiān)測到溫度變化,而對于跛行但非炎癥病變(如脛骨遠端和趾骨近端彎曲)的腿部異常則無法監(jiān)測到溫度變化,僅僅通過提取溫度特征不能有效識別腿部異常。因此,本文還將提取質(zhì)心高度、前傾角、偏轉(zhuǎn)角等姿態(tài)特征,通過多特征融合的方式綜合判斷肉雞腿部異常。
肉雞姿態(tài)特征的提取基于二值圖像,在二值化之前需要將原圖像轉(zhuǎn)換到其他顏色空間,如HSV、Lab、RGB等。本文采用RGB顏色空間,其中R通道更利于肉雞目標和背景的分割,對R通道的灰度圖進行中值濾波,模板大小為5×5,以去除椒鹽噪點;通過OTSU自適應閾值分割算法得到二值化圖像;經(jīng)過形態(tài)學開、閉運算(開運算和閉運算的結(jié)構(gòu)元素形狀均為橢圓,結(jié)構(gòu)大小分別為13×13和11×11),可以去除小連通域和填充孔洞,實現(xiàn)完整的二值圖像提取,如圖4所示。
獲取目標連通域質(zhì)心和輪廓邊界矩形是提取質(zhì)心高度特征的前提。本文選用零階矩和一階矩的方法計算肉雞二值圖像的質(zhì)心。零階矩M00以及一階矩M01、M10的計算公式[16]為:
(3)
式中:V(i,j)為坐標點(i,j)的像素值。
(4)
質(zhì)心坐標可表示為:
(5)
式中:xi、yi分別表示像素點橫、縱坐標;pi表示該點的像素值。
得到質(zhì)心坐標之后需要確定肉雞輪廓的直邊界矩形,然后計算質(zhì)心到直邊界矩形底邊的垂直距離,如圖4-e所示。其中,直邊界矩形是通過對輪廓上所有點進行積分運算而得到的1個粗略特征。對于圖像函數(shù)f(x,y),其p+q階幾何矩和中心距定義如下:
(6)
(7)
除此之外,還計算了直線AB的傾斜角,即肉雞身體偏轉(zhuǎn)角度ARol。已知點A(x1,y1)和點B(x2,y2),則ARol計算公式如下:
(8)
利用上述方法對980個有效樣本圖像的肉雞腿部最大溫度(TLeg)、肉雞身體質(zhì)心高度(HGra)、肉雞身體前傾角度(ACro)和肉雞身體偏轉(zhuǎn)角度(ARol)這4個特征進行提取,并將特征數(shù)據(jù)繪制成箱線圖,如圖5所示。通過箱線圖可以直觀了解到不同腿部異常等級(abnormal grade)肉雞的不同特征分布范圍情況。對于特征TLeg,正常等級的分布范圍最小,與其他等級之間有明顯的差異,而輕微異常和中度異常重合較多。對于特征HGra和ARol,中度異常等級要明顯區(qū)分于其他等級,各等級之間有較好的區(qū)分性,總體上呈現(xiàn)異常等級越高則特征值越小的特點。對于特征ACro,各等級之間重合部分較多,但分布范圍上限各不相同,有一定的區(qū)分性。
圖5 特征數(shù)據(jù)箱線分布圖Fig.5 Characteristic data box line distribution map0. 正常 Normal;1. 輕微異常 Slight anomaly;2. 中度異常 Moderate anomaly.
皮爾森相關(guān)系數(shù)是用來反映2個變量之間相似程度的統(tǒng)計量,在機器學習中可以用來計算各特征變量和異常等級之間的相似度,即判斷所提取的特征變量和異常等級之間是正相關(guān)、負相關(guān)還是沒有相關(guān)性。對于變量X=[x1,x2,…,xn]T和Y=[y1,y2,…,yn]T,其皮爾森相關(guān)系數(shù)(r)計算公式[17]為:
(9)
如表3所示:本文計算了TLeg、HGra、ACro、ARol這4個特征變量和異常等級之間的皮爾森相關(guān)系數(shù)。通過分析可知:HGra分別與異常等級、ARol呈極強相關(guān),而與TLeg、ACro呈中等程度相關(guān);TLeg與異常等級呈強相關(guān),而與ACro呈弱相關(guān);ARol分別與異常等級、ACro呈強相關(guān),而與TLeg呈中等程度相關(guān)。總的來看,提取的4個特征變量,除了ACro與異常等級之間呈中等程度相關(guān)外,其余特征變量皆與異常等級呈強相關(guān)或以上,因此,可以將這4個特征變量作為分類模型的訓練參數(shù)輸入。
表3 不同特征變量和異常等級的皮爾森相關(guān)系數(shù)Table 3 Pearson correlation coefficients of different
經(jīng)過上述特征分析后,本文將選擇TLeg、HGra、ACro、ARol這4個特征變量作為輸入?yún)?shù)進行分類模型訓練。
隨機森林(randomforest,RF)算法是Breiman[18]于2001年提出的一種分類和預測算法,可以很好地預測多達幾千個解釋變量的作用[19],在運算量沒有顯著提高的情況下提高了預測精度。隨機森林的生成過程如圖6所示。
圖6 隨機森林結(jié)構(gòu)圖Fig.6 Random forest structure map
隨機森林進行特征選擇的方式有信息增益、信息增益率、基尼系數(shù),本文選用基尼系數(shù)(Gini)作為決策樹中根節(jié)點劃分的依據(jù)。Gini系數(shù)選擇的標準為每個子節(jié)點達到最高的純度,即落在子節(jié)點中的所有觀察都屬于同一個分類,此時基尼系數(shù)最小,純度最高。對于樣本集合D,其Gini系數(shù)(不確定性)的計算公式為:
(10)
式中:Gini(D)的取值范圍為[0,1];N為樣本中的類別總數(shù),本文中N=4;pi為樣本屬于第i類的概率。
每棵CART決策樹在遍歷每個特征屬性的所有可能分割點時,本文測試屬性集合A={TLeg,HGra,ACro,ARol},若使用測試屬性A=TLeg,將樣本集合D二元劃分D1(滿足A=TLeg)和D2(不滿足A=TLeg),則樣本集合D經(jīng)過屬性A=TLeg分割后的基尼系數(shù)為:
(11)
通過遍歷屬性集合A得到每個分裂屬性的Gini系數(shù),選擇分裂后Gini系數(shù)最小的屬性作為最優(yōu)劃分特征,即:
A*=argminGini(D,A)
(12)
5.2.1 數(shù)據(jù)劃分隨機森林屬于Bagging集成算法,采用Bootstrap方法從訓練數(shù)據(jù)集中有放回地抽取樣本[20],每次采樣都會產(chǎn)生袋外數(shù)據(jù)(out of bag,OOB),OOB是一種可以取代測試集的誤差估計方法[21],可用于訓練過程中的模型驗證。因此,在隨機森林算法中不需要再進行交叉驗證來獲取測試集誤差的無偏估計。
本次試驗共采集有效紅外熱圖像980張,通過特征提取形成980條記錄,每條記錄由5列組成,前4列為特征變量,分別對應肉雞腿部最大溫度(TLeg)、身體質(zhì)心高度(HGra)、身體前傾角度(ACro)、身體偏轉(zhuǎn)角度(ARol),第5列為異常等級,用0(正常)、1(輕微異常)、2(中度異常)表示。為保證分類模型的識別能力以及對外部數(shù)據(jù)的檢測精度,將數(shù)據(jù)集劃分為7∶3,即686條記錄作為訓練集(包括OOB),另外294條記錄作為測試集。測試集是模型“從未見過”的數(shù)據(jù),可用于評判模型在新數(shù)據(jù)集上的泛化性能。數(shù)據(jù)分布見表4。
表4 訓練集與測試集的數(shù)據(jù)劃分Table 4 Data partition of train set and test set
5.2.2 訓練結(jié)果本文使用隨機森林模型對訓練集先進行兩兩特征組合訓練,模型訓練分類效果如圖7所示。其中TLeg和HGra組合訓練效果最佳,OOB得分為0.95,測試集準確率為91.13%,均為最高;而ACro和ARol的組合訓練效果最差,OOB得分為0.69,測試集準確率為73.41%;其他特征組合的測試集準確率均在85%以下。
圖7 特征組合訓練分類效果圖Fig.7 Classification effect map of feature combination training
為了找到最優(yōu)的特征訓練組合,本文又使用隨機森林對4個特征變量進行同時訓練,模型在準確率(Accuracy,A)、查準率(Precision,P)、召回率(Recall,R)以及F1得分上都取得了較好的效果(表5)。其中,F1得分是對查準率和召回率的調(diào)和平均,計算公式如下:
(13)
表5 模型總體準確率以及各類別準確率Table 5 The overall accuracy of the model and the accuracy of various categories
根據(jù)模型訓練的結(jié)果可知,隨機森林模型在肉雞腿部異常等級分類中表現(xiàn)較好,各類別準確率分別達到了97.46%、91.13%和94.93%,總體準確率為96.16%。為了進一步驗證隨機森林模型是本研究中性能最優(yōu)的模型,對常用的5種分類器模型進行了ROC曲線(receiver operating characteristic curve)[22]對比。
ROC曲線以FPR(假正類率)為橫軸,以TPR(真正類率)為縱軸,通過不斷調(diào)整分類器閾值獲得坐標軸上一組不同的(FPR,TPR)點,將點連接成線即形成分類器的ROC曲線,AUC值為ROC曲線包裹的面積,可以作為評價分類器性能的指標[23]。
如圖8所示:本文對比了梯度下降樹(GBDT)、邏輯回歸(LR)、隨機森林(RF)、支持向量機(SVM)和鄰近算法(KNN)5種常用的分類模型算法,根據(jù)AUC值大小可知,RF要優(yōu)于其他模型。
圖8 5種常用分類器ROC曲線對比Fig.8 Comparison of receiver operating characteristic curves of five commonly used classifiers GBDT:梯度提升決策樹 Gradient boosting decision tree;LR:邏輯回歸Logistic regression;RF:隨機森林 Random forest;SVM:支持向量機 Support vector machine;KNN:K最近鄰 K-nearest neighbor.
1)通過紅外熱圖像可以提取肉雞腿部異常時的溫度特征,而對于非炎癥類病變的腿病肉雞可以結(jié)合姿態(tài)特征來綜合判斷是否發(fā)生腿部異常。
2)基于YOLO v3和隨機森林建立了肉雞腿部異常自動檢測模型,該模型以肉雞腿部最大溫度、身體質(zhì)心高度、身體前傾角、身體偏轉(zhuǎn)角為特征輸入,對正常、輕微異常、中度異常3個類別的測試集準確率依次達到了97.46%、91.13%、94.93%,總體準確率為96.16%。
3)下一階段將針對不同日齡、不同品種以及不同環(huán)境等情況下的肉雞腿部異常檢測模型進行研究,并嘗試更多的目標檢測模型以及選擇器模型,以進一步完善基于紅外熱圖像的肉雞腿部異常自動檢測方法。