拉毛杰 安見(jiàn)才讓
摘 ?要: 目前,青藏高原地區(qū)有多種放牧管理方式,但因家庭勞動(dòng)力、草場(chǎng)規(guī)模、種群品種數(shù)量等因素存在著一定的局限性。因此,本文將深度學(xué)習(xí)技術(shù)引入畜牧業(yè)動(dòng)物圖像識(shí)別中,還通過(guò)數(shù)據(jù)增強(qiáng)技術(shù)對(duì)原始圖像進(jìn)行了平移、旋轉(zhuǎn)、翻轉(zhuǎn)、縮放等操作,建立了青藏高原地區(qū)常見(jiàn)的畜牧業(yè)動(dòng)物圖像數(shù)據(jù)集。設(shè)計(jì)了卷積神經(jīng)網(wǎng)絡(luò)模型并實(shí)現(xiàn)了圖像識(shí)別和統(tǒng)計(jì)。實(shí)驗(yàn)表明,該方法對(duì)畜牧業(yè)動(dòng)物圖像的識(shí)別率達(dá)到87.89%。
關(guān)鍵詞: 卷積神經(jīng)網(wǎng)絡(luò);畜牧業(yè)動(dòng)物圖像識(shí)別;數(shù)據(jù)集
中圖分類號(hào): TP391. 41 ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.08.013
本文著錄格式:拉毛杰,安見(jiàn)才讓. 基于卷積神經(jīng)網(wǎng)絡(luò)的畜牧業(yè)動(dòng)物圖像識(shí)別研究[J]. 軟件,2020,41(08):43-45
【Abstract】: At present, there are multiple grazing management methods in the Qinghai-Tibet Plateau, but there are certain limitations due to factors such as family labor, pasture size, and number of species. Therefore, this paper introduces deep learning technology into animal husbandry animal image recognition, and also uses data enhancement technology to translate, rotate, flip, and zoom the original image, and establishes a common animal husbandry animal image data set in the Qinghai-Tibet Plateau. A convolutional neural network model is designed and image recognition and statistics are realized. Experiments show that the method has a recognition rate of 87.12% for animal images in animal husbandry.
【Key words】: Convolutional neural network; Animal husbandry animal image recognition; Data set
0 ?引言
當(dāng)前畜牧產(chǎn)業(yè)正在經(jīng)歷從傳統(tǒng)的粗放型養(yǎng)殖農(nóng)牧業(yè)模式逐步向現(xiàn)代集約化精準(zhǔn)養(yǎng)殖模式轉(zhuǎn)變。通過(guò)機(jī)械智能地對(duì)某一畜牧養(yǎng)殖環(huán)境進(jìn)行物種檢測(cè),從而掌握每戶畜牧情況,不僅消除了管理人員野外考察的危險(xiǎn),而且更加方便了放牧的管理。但是,目前還沒(méi)有一種專門針對(duì)青藏高原畜牧業(yè)動(dòng)物圖像識(shí)別與統(tǒng)計(jì)的軟件。因此,本文結(jié)合青藏高原特有的地理環(huán)境和畜牧業(yè)動(dòng)物特性建立了自然環(huán)境下的識(shí)別模型。并在此基礎(chǔ)上構(gòu)建了畜牧業(yè)動(dòng)物圖像自動(dòng)識(shí)別統(tǒng)計(jì)的方 ?法,為應(yīng)用深度學(xué)習(xí)技術(shù)進(jìn)行科學(xué)合理放牧提供方法 ?支撐。
1 ?數(shù)據(jù)預(yù)處理
深度學(xué)習(xí)模型訓(xùn)練,需要大量的畜牧業(yè)動(dòng)物圖像數(shù)據(jù)。如果訓(xùn)練的圖像數(shù)據(jù)過(guò)少或者圖像質(zhì)量太差,導(dǎo)致模型很容易產(chǎn)生過(guò)擬合現(xiàn)象,從而在測(cè)試集上準(zhǔn)確率降低。因此,數(shù)據(jù)訓(xùn)練前,首先要到農(nóng)牧區(qū)進(jìn)行大量采集不同季節(jié)的動(dòng)物圖像,然后將逐一進(jìn)行篩選,命名和格式統(tǒng)一。最后用標(biāo)注工具進(jìn)行標(biāo)注建立數(shù)據(jù)集。
1.1 ?圖像采集
為了確保圖像數(shù)據(jù)足夠多且具有廣泛性,主要的圖像來(lái)源為青海省內(nèi)主要的牧區(qū),還有通過(guò)互聯(lián)網(wǎng)自媒體和搜索引擎采集畜牧業(yè)動(dòng)物圖像,數(shù)據(jù)圖像包括青藏高原地區(qū)常見(jiàn)的3類畜牧動(dòng)物圖像。使用Cannon EOS 700D相機(jī)和OPPO R15型智能手機(jī)拍攝畜牧業(yè)動(dòng)物圖像,由于采集圖像時(shí)由不同的人進(jìn)行拍攝,圖像的質(zhì)量、角度、像素和格式等存在一定的差異,為了方便圖片讀入和后續(xù)處理,對(duì)所有收集的圖像數(shù)據(jù)采用人工進(jìn)行檢查,將不清晰的劣質(zhì)圖像和重復(fù)數(shù)據(jù)進(jìn)行刪除,以確保數(shù)據(jù)中不存在劣質(zhì)和重復(fù)的圖像。
1.2 ?數(shù)據(jù)增強(qiáng)
采用深度學(xué)習(xí)的方法要用到大量的圖像數(shù)據(jù),比如,AlexNet網(wǎng)絡(luò)多年能夠取得巨大的成功,其中圖片圖像增強(qiáng)功不可沒(méi)[1]。但是,采集回來(lái)的圖像經(jīng)過(guò)篩選后,圖像的數(shù)量明顯下降了,每類動(dòng)物有1700張圖像,共計(jì)5100多張。其中訓(xùn)練畜牧業(yè)動(dòng)物圖像識(shí)別模型需要大約1500多張,顯然這樣規(guī)模的數(shù)據(jù)集不算太大,為了提高畜牧業(yè)動(dòng)物圖像識(shí)別模型的性能和魯棒性,本文采用數(shù)據(jù)增強(qiáng)技術(shù)。數(shù)據(jù)增強(qiáng)技術(shù)包括:
(1)旋轉(zhuǎn):旋轉(zhuǎn)操作是在原始圖像上按順時(shí)針或者逆時(shí)針的方向上選取一定的角度旋轉(zhuǎn)生成的圖像。
(2)平移:平移操作就是將原始圖像沿著x軸或者y軸的方向平行移動(dòng),平移平移方式有水平平移和垂直偏移。
(3)縮放:縮放操作就是將原始圖像在水平或者垂直或者兩邊方向上同時(shí)放大或者縮小,生成新的圖像[2]。
(4)翻轉(zhuǎn):翻轉(zhuǎn)操作就是將原始圖像的中心坐標(biāo)為基準(zhǔn)進(jìn)行翻轉(zhuǎn),翻轉(zhuǎn)方式有水平翻轉(zhuǎn)和垂直翻轉(zhuǎn)。
(5)添加噪聲:噪聲操作就是隨機(jī)的將白色和黑色的點(diǎn)鋪滿整個(gè)圖像,可以讓高頻特征失真,降低其模型的影響。
通過(guò)數(shù)據(jù)增強(qiáng)技術(shù),最終的圖像數(shù)為6050張。
1.3 ?數(shù)據(jù)標(biāo)注
深度學(xué)習(xí)中的網(wǎng)絡(luò)通常要結(jié)合標(biāo)注文件和圖像中的信息才能夠網(wǎng)絡(luò)的訓(xùn)練,本節(jié)將使用LabelImage標(biāo)注工具,對(duì)畜牧業(yè)動(dòng)物圖像進(jìn)行人工標(biāo)注,圖像標(biāo)注過(guò)程如圖1所示。
2 ?基于YOLOv3的青藏高原畜牧業(yè)動(dòng)物圖像識(shí)別模型
2.1 ?YOLOv3算法
2018年YOLOv3問(wèn)世以來(lái)就得到了計(jì)算機(jī)視覺(jué)領(lǐng)域研究人員的青睞,YOLOv3不僅繼承了YOLOv2的速度的優(yōu)勢(shì),還增加算法的精度,尤其是對(duì)小目標(biāo)的檢測(cè)效果非常好。YOLOv3的大體算法流程為,(1)輸入圖像到Darknet-53網(wǎng)絡(luò)進(jìn)行特征提取,(2)利用多尺度融合進(jìn)行預(yù)測(cè)類別和邊界框,(3)通過(guò)NMS算法清除類別置信度低的候選框,(4)采用二分類交叉熵作為損失函數(shù)計(jì)算分類概率和坐標(biāo)誤差。
2.2 ?Darknet-53網(wǎng)絡(luò)
YOLOv3采用53層的全卷積結(jié)構(gòu),這個(gè)網(wǎng)絡(luò)是在Darknet-19的基礎(chǔ)上疊加殘差單元而成的。在前向傳播過(guò)程中,采用卷積核的步長(zhǎng)來(lái)變換張量的尺寸,當(dāng)卷積的步長(zhǎng)為2時(shí),每次的卷積過(guò)后,圖像的邊長(zhǎng)比原圖像縮小1/2。從Darknet-53的結(jié)構(gòu)上看,卷積的步長(zhǎng)為2的總共有5次,經(jīng)過(guò)5次的卷積步長(zhǎng)為2的操作,特征圖縮小為原來(lái)的1/32。所以網(wǎng)絡(luò)輸入圖像的大小為32的倍數(shù),取為416*416。
在YOLOv3的整體結(jié)構(gòu)中沒(méi)有池化層和全連接層。Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)中采用了residual結(jié)構(gòu),residual可以很好地控制梯度問(wèn)題,不會(huì)出現(xiàn)梯度爆炸或者消失的狀態(tài)。因此使用Darknet-53網(wǎng)絡(luò)精度會(huì)明顯得到提升。
2.3 ?殘差結(jié)構(gòu)
本文Darknet-53中采用了殘差跳躍方式,以便能夠成功訓(xùn)練成千上百個(gè)網(wǎng)絡(luò)層,且錯(cuò)誤率不會(huì)因此而提升,緩解了在深度神經(jīng)網(wǎng)絡(luò)中增加深度帶來(lái)的梯度消失問(wèn)題。殘差中的1×1卷積,減少了每次卷積的信號(hào)通道數(shù)量從而減少了參數(shù)個(gè)數(shù),降低了計(jì)算量[3]。殘差網(wǎng)絡(luò)和普通的卷積神經(jīng)網(wǎng)絡(luò)的區(qū)別在于,殘差網(wǎng)絡(luò)引入了捷徑連接,構(gòu)造了殘差模塊。殘差模塊中捷徑連接一般會(huì)跨越2-3層,本文Darknet-53中采用2層的殘差模塊,其跳過(guò)兩個(gè)卷積層,如圖3所示。
2.4 ?多尺度預(yù)測(cè)
當(dāng)YOLOv3中輸入一張416*416尺寸的圖像時(shí),圖像會(huì)分成S*S網(wǎng)格,在Darknet-53得到特征圖的基礎(chǔ)上,與DBL上采樣進(jìn)行張量拼接后BDL和卷積層操作進(jìn)行三次支路預(yù)測(cè),預(yù)測(cè)輸出的大小為y1:(13*13),y2:(26*26),y3:(52*52)。每一個(gè)預(yù)測(cè)階段每個(gè)網(wǎng)格都會(huì)預(yù)測(cè)3個(gè)邊界框和相應(yīng)的置信度,每個(gè)預(yù)測(cè)的邊界框都會(huì)產(chǎn)生5個(gè)值,分別是邊界框的中心坐標(biāo)x,y,寬高坐標(biāo)w,h以及置信度confidence,即x,y,w,h,confidence。其confidence的計(jì)算方式公式(1):
Confidence = pr(object)*IOU ? ? ? ? ? ? ?(1)
其中,pr(object)表示預(yù)測(cè)網(wǎng)格中是否有目標(biāo),如果真實(shí)框(ground truth)與邊界框(bounding box)的重疊度比其他的邊界框都要好,則Pr(object)=1。如果bounding box不是最好的,但確實(shí)與真實(shí)框(ground truth)的重疊度超過(guò)了設(shè)定的閾值0.5,則Pr(object)=0。IOU表示真實(shí)框(ground truth)和邊界框(bounding box)的交集與并集的比。
2.5 ?類別預(yù)測(cè)
在YOLOv3中預(yù)測(cè)邊界框(bounding box)時(shí)除了產(chǎn)生x,y,w,h,confidence五個(gè)值外,還會(huì)對(duì)每個(gè)網(wǎng)格預(yù)測(cè)C個(gè)類別概率Pr(Classi|Object)。但softmax分類器只能將一個(gè)目標(biāo)分配給一個(gè)類別標(biāo)簽??墒窃诙囝悇e的大數(shù)據(jù)集中,一個(gè)目標(biāo)可能有多個(gè)類別標(biāo)簽,因此YOLOv3將單標(biāo)簽softmax分類器替換為多個(gè)獨(dú)立的logistic分類器,且準(zhǔn)確率不下降。例如,在一個(gè)數(shù)據(jù)集的類別標(biāo)簽中有sheep和animal兩個(gè)類別,待檢測(cè)的照片中有一個(gè)sheep目標(biāo),那么在檢測(cè)結(jié)果中同時(shí)要有類別標(biāo)簽animal和 sheep,這就是多標(biāo)簽分類。當(dāng)網(wǎng)絡(luò)模型訓(xùn)練完進(jìn)行測(cè)試時(shí),邊界框的類別概率乘以con-fidence的值得到邊界框的類別置信度,如公式2所示。
Logistic多標(biāo)簽分類器主要采用的是sigmoid函數(shù),該函數(shù)可以將輸入控制在0—1的范圍內(nèi),因此當(dāng)一張照片經(jīng)過(guò)特征提取后某一類別經(jīng)過(guò)sigmoid函數(shù)約束后大于閾值0.5,那么該bounding box(邊界框)的目標(biāo)就屬于該類別。
2.6 ?青藏高原畜牧業(yè)動(dòng)物圖像識(shí)別中目標(biāo)個(gè)數(shù)的 ?統(tǒng)計(jì)
待檢測(cè)圖像通過(guò)訓(xùn)練的網(wǎng)絡(luò)模型進(jìn)行識(shí)別,在識(shí)別過(guò)程中檢測(cè)到的候選框進(jìn)行置信度計(jì)算,刪除置信度不夠的候選框,保留置信度高的候選框,之后保留到的候選框?qū)?yīng)上類別標(biāo)簽計(jì)數(shù)器累加相應(yīng)的類別個(gè)數(shù),最后輸出sum和各類別的個(gè)數(shù)統(tǒng)計(jì),如所示。
3 ?實(shí)驗(yàn)結(jié)果與分析
3.1 ?實(shí)驗(yàn)環(huán)境
本文實(shí)驗(yàn)環(huán)境為Windows server2012 PyCharm,使用Python為編程語(yǔ)言,同時(shí)搭載NVIDIA GeForce RTX2080Ti-11G型號(hào)的GPU和64G內(nèi)存,還配置Inter(R)core(TM)i7-8700K 的CPU和512G固態(tài)/4T硬盤。軟件配置為深度學(xué)習(xí)框架TensorFlow1.14.0、Keras2.1.5和Opencv3.4.0。
3.2 ?實(shí)驗(yàn)數(shù)據(jù)
為了驗(yàn)證本文建立的YOLOv3模型對(duì)畜牧業(yè)動(dòng)物圖像識(shí)別的健壯性和準(zhǔn)確率,實(shí)驗(yàn)隨機(jī)抽取各類別177張作為測(cè)試集,共計(jì)531張,采用mAP值作為評(píng)價(jià)指標(biāo)。
3.3 ?實(shí)驗(yàn)結(jié)果
如表1所示,對(duì)測(cè)試集531幅畜牧業(yè)動(dòng)物圖像進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果表明,Darknet-53網(wǎng)絡(luò)模型的mAP為87.89%。
對(duì)測(cè)試集中60張畜牧業(yè)動(dòng)物圖像識(shí)別計(jì)數(shù)的統(tǒng)計(jì)結(jié)果如表2所示,60張圖像人工統(tǒng)計(jì)為387個(gè)目標(biāo)動(dòng)物,YOLOv3模型檢出335個(gè)目標(biāo)動(dòng)物,統(tǒng)計(jì)識(shí)別準(zhǔn)確率為94.6%,即一旦被YOLOv3模型檢出為目標(biāo)動(dòng)物,正確統(tǒng)計(jì)的準(zhǔn)確率將達(dá)到94.6%,表中漏檢率為13.4%,誤檢率為4.7%。
4 ?結(jié)論
本文基于YOLOv3算法的Darknet-53框架構(gòu)建了網(wǎng)絡(luò)模型,實(shí)現(xiàn)了畜牧業(yè)動(dòng)物圖像采集、上傳、存儲(chǔ)、識(shí)別分析和結(jié)果統(tǒng)計(jì)與顯示的一體化功能,實(shí)驗(yàn)表明,YOLOv3模型對(duì)畜牧業(yè)動(dòng)物圖像識(shí)別具有良好的健壯性,識(shí)別和統(tǒng)計(jì)的準(zhǔn)確率較高。但對(duì)于多個(gè)重疊的畜牧業(yè)動(dòng)物圖像識(shí)別率較低,則需要進(jìn)一步結(jié)合形狀學(xué)習(xí)和主動(dòng)輪廓模型等圖像模型算法來(lái)實(shí)現(xiàn)[4-5]。在下一步學(xué)習(xí)過(guò)程中,由于目前在應(yīng)用深度學(xué)習(xí)模型方面,研究熱點(diǎn)主要集中于構(gòu)建高準(zhǔn)確率的識(shí)別模型[6],所以在原有算法的基礎(chǔ)上進(jìn)行適當(dāng)?shù)母倪M(jìn),提高模型的泛化能力和魯棒性。
參考文獻(xiàn)
[1] 王奧光. 基于深度學(xué)習(xí)圖像識(shí)別的研究及應(yīng)用[D]. 電子科技大學(xué), 2018.
[2] 付永欽. 基于深度學(xué)習(xí)的蛇類圖像分類研究[D]. 浙江大學(xué), 2019.
[3] 王毅恒, 徐德章, 基于YOLOv3算法的農(nóng)場(chǎng)環(huán)境下奶牛目標(biāo)識(shí)別[J]. 廣東石油化工學(xué)院學(xué)報(bào), 2019, 29(4).
[4] Hanmuda E, Glavin M, Jones E. A survey of image processing techniques for plant extraction and segmentation in the field[J]. Computer and Electronics in Agriculture, 2016, 125: 184-199.
[5] DeChant C, Wiesner-Hanks T, Chen S, et al. Automated Identtification of Northern leaf Blight-Infected Maize Plants from Field Imagery Using Deep Learning[J]. Phytopathology, 2017, 107: 1462-1432.
[6] 岑冠軍, 華俊達(dá)等. 基于深度學(xué)習(xí)的芒果圖像在線識(shí)別與統(tǒng)計(jì)方法的研究[J]. 熱帶作物學(xué)報(bào), 2019.
[7] 張翠平, 蘇光大, 人臉識(shí)別技術(shù)綜述[J], 中國(guó)圖像圖形學(xué)報(bào)(A版), 2000, 5(11): 885-894.
[8] 趙凱旋, 何東健. 基于卷積神經(jīng)網(wǎng)絡(luò)的奶牛個(gè)體身份識(shí)別方法[J]. 農(nóng)業(yè)工程學(xué)報(bào), 2015(5): 181-187.
[9] 劉杰鑫, 姜波, 何東健等. 基于高斯混合模型與 CNN 的奶牛個(gè)體識(shí)別方法研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2018(10): 159-164.
[10] 廖威, 鄭立華, 李民贊, 孫紅, 楊瑋. 基于隨機(jī)森立算法的自然光照條件下綠色蘋果識(shí)別[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào), 2017, 48(增刊): 86-91.