達(dá)措 李蕾
(西藏大學(xué)信息科學(xué)技術(shù)學(xué)院 西藏 拉薩 850000)
隨著科學(xué)技術(shù)的發(fā)展西藏各地區(qū)的生活水平和醫(yī)療等各方面得到了很大的改善,但西藏的畜牧業(yè)產(chǎn)業(yè)還依然存在著很多困難,沒有做到全面的智能化到目前大部分工作仍然需要依靠人工來實(shí)施。西藏那曲是西藏畜牧業(yè)大區(qū),大部分以放牧為生因受自然條件惡劣,高海拔等因素以及牦牛特有的抗寒和生存能力強(qiáng)的特點(diǎn),牦牛是牧區(qū)的主要牲畜。然而在牧區(qū)存在牲畜的種類和數(shù)量多原因,在進(jìn)行家畜的辨別或計(jì)數(shù)時(shí)存在誤認(rèn)、數(shù)錯(cuò)、耗費(fèi)時(shí)間長以及需要較多的人手等各種問題。目前基于深度學(xué)習(xí)的目標(biāo)檢測主流框架可以分為兩類:一類是基于two-stage的方法,比如RCNN,F(xiàn)ast RCNN,F(xiàn)aster RCNN。另一類是one-stage的目標(biāo)檢測框架,例如YOLO系列和SSD等。本文用darknet-53為框架的YOLOv3模型作為牦牛目標(biāo)檢測的模型,將牦牛和其他牛類以及牧區(qū)的其他牲畜區(qū)分開來,從而達(dá)到只檢測牦牛的效果[1]。
深度學(xué)習(xí)(Deep Learning)是一種表示學(xué)習(xí)方法,它具有強(qiáng)大的數(shù)據(jù)表征能力[2]。更通俗地理解深度學(xué)習(xí)是學(xué)習(xí)樣本數(shù)據(jù)中的特征以及數(shù)據(jù)的內(nèi)在規(guī)律來從未知到已知去探索和思考以及推理、計(jì)算的一個(gè)過程。它是起源于人工智能和機(jī)器學(xué)習(xí),深度學(xué)習(xí)在發(fā)展期間曾經(jīng)歷過兩次低谷時(shí)期分別是:(1969-1986,1998-2006)。Hinton等[3]在2006年提出了以深度信念網(wǎng)絡(luò)為代表的深度學(xué)習(xí)方法,深度學(xué)習(xí)迅速發(fā)展了起來,并且在圖像分類和語音識別上有了重大突破[4-5]深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)是模擬人類的大腦機(jī)制而成它是模仿人的視覺和思考能力來解釋大量的數(shù)據(jù)和圖像進(jìn)行識別和分類。神經(jīng)網(wǎng)絡(luò)需要大量的數(shù)據(jù)進(jìn)行訓(xùn)練,才能具有基本的技能。
將輸入到網(wǎng)絡(luò)的圖像劃分為S×S的網(wǎng)格?;具^程如圖1所示。
YOLOv3算法是2018年Redmon等人在YOLOv2保留了原有的算法基礎(chǔ)上提出,它使用了全卷積網(wǎng)絡(luò)并且網(wǎng)絡(luò)結(jié)構(gòu)中無全連接層和池化層。是當(dāng)下主流的一種快速目標(biāo)檢測算法。主要引入了多尺度特征融合,通常輸入YOLOv3網(wǎng)絡(luò)的圖像大小為416×416最后輸出的特征圖有13×13、26×26、52×52的三個(gè)不同尺度的輸出。并且在COCO數(shù)據(jù)集上已經(jīng)能檢測出80種類。
由于設(shè)備的欠缺此次實(shí)驗(yàn)用的數(shù)據(jù)拍攝工具為Android手機(jī),采集圖片的存儲(chǔ)格式為jpg格式。采集的數(shù)據(jù)將分成三種部分A組數(shù)據(jù)是牦牛在牛圈里時(shí)進(jìn)行的拍攝,背景較為統(tǒng)一且拍攝距離近更有利用個(gè)體識別1807幅圖。B組是牦牛在山上或草原上時(shí)進(jìn)行的拍攝,有遠(yuǎn)近距離和拍攝背景不同的影響,同時(shí)也受到牛群密集而造成的遮擋現(xiàn)象,共有1466幅圖。C組是在一張圖像中有牦牛與其他牦牛一起的數(shù)據(jù),因那曲地區(qū)班戈縣沒有犏牛和黃牛及其他牛類的原因,C組的數(shù)據(jù)是通過網(wǎng)上爬蟲的方法獲取,再次經(jīng)過人工篩選和處理將牦牛與其他牛類放在一起作為干擾數(shù)據(jù),共有118幅圖。
實(shí)驗(yàn)設(shè)備配置為ubuntu18.04操作系統(tǒng),顯卡為NVIDIA GeForce RTX 3070,深度學(xué)習(xí)框架為darknet-53,CPU為Inteli7-10700。
3.3.1 數(shù)據(jù)標(biāo)注軟件
使用精靈標(biāo)注軟件對數(shù)據(jù)進(jìn)行標(biāo)注,它是一款有多種數(shù)據(jù)導(dǎo)出的輸出方式有的數(shù)據(jù)標(biāo)注軟件,支持XML、JSON、MongoDB、pascal-voc格式的輸出。本文使用的輸出方式為XML。
3.3.2 數(shù)據(jù)的劃分
將數(shù)據(jù)份為訓(xùn)練集和測試集,A組訓(xùn)練集共有1195幅圖,測試集共有612幅圖。B組訓(xùn)練集共有975幅圖,測試集共有491幅圖。A+B+C組訓(xùn)練集共有2578幅圖,測試集共有813幅圖。
3.3.3 評價(jià)指標(biāo)
目標(biāo)檢測常用的評價(jià)指標(biāo)有各類平均精確率M A P(m e a n average precision)、類內(nèi)平均精確率AP (average precision)、精確率P (precision)、召回率R(recall)等。本文章計(jì)算P、R、MAP值對模型進(jìn)行評估,其各指標(biāo)的計(jì)算公式如下:
其中精確率P是針對于預(yù)測數(shù)據(jù)的準(zhǔn)確結(jié)果而言的,它是表示在數(shù)據(jù)集中預(yù)測為正例的樣本有多少是真正的正樣本。它有兩種不同的情況:TP(true positives)是正類預(yù)測結(jié)果也是正類,即真正類。 FP(false positives)是負(fù)類預(yù)測結(jié)果為正類,即假正類是誤報(bào)結(jié)果。召回率R是針對數(shù)據(jù)的原樣本結(jié)果而言,它是表示在原樣本中的正例有多少是被預(yù)測正確的。也同樣有兩種情況:TP(true positives)是表示原樣本為正類預(yù)測結(jié)果也是正類,即真正類。FN(false negatives)是表示原樣本為正類而預(yù)測結(jié)果是負(fù)類,即假負(fù)類是漏報(bào)結(jié)果。
MAP是PR曲線的定積分,面積取值范圍內(nèi)面積越大說明算法準(zhǔn)確度越高。
使用不同數(shù)據(jù)集訓(xùn)練網(wǎng)絡(luò)將MAP(mean average precision)值進(jìn)行對比,如表1所示,結(jié)果顯示A組測試效果為最差不能很好地檢測出遠(yuǎn)距離的牦牛而且不能將牦牛與其他牛類區(qū)分。B組雖然可以很好地檢測出遠(yuǎn)距離牦牛以及背景復(fù)雜的牦牛,但仍不能區(qū)分牦牛與其他牛類。A+B+C組檢測效果最佳,且能很好地區(qū)分牦牛與黃牛、水牛、奶牛等但由于犏牛的特征與牦牛極為相似模型還不能完全的將牦牛與犏牛區(qū)分開來。此實(shí)驗(yàn)說明訓(xùn)練數(shù)據(jù)不能太過于統(tǒng)一化模型需要加入干擾數(shù)據(jù)更有利用應(yīng)用在真實(shí)場景中。
表1 不同數(shù)據(jù)集上的MAP值
圖2為A組圖像是牦牛在牛圈場景下拍的示例圖檢測效果,圖3為B組圖像是在山上遠(yuǎn)距離拍的示例圖檢測效果,圖4為C組圖像是將牦牛與其他牛類和牲畜的示例圖檢測效果,圖5是為了驗(yàn)證牦牛檢測效果的實(shí)際準(zhǔn)確度,從網(wǎng)上爬蟲一些數(shù)據(jù)隨機(jī)挑選進(jìn)行的測試效果,在圖5中第二張圖上的牛均為犏牛,因此模型未檢測出牦牛。
由于犏牛與牦牛特征差異微小及采集數(shù)據(jù)的地方?jīng)]有犏牛等因素的存在,收集到的牦牛與犏牛一起的圖像數(shù)據(jù)有限,因此現(xiàn)模型還不能完全的區(qū)分出牦牛與犏牛的差別,還仍存在部分誤檢的情況。針對這種問題我們還需要增強(qiáng)數(shù)據(jù)收集或嘗試去訓(xùn)練別的模型來解決現(xiàn)存在的問題。
通過實(shí)驗(yàn)得知牦牛目標(biāo)檢測在YOLOv3模型上能達(dá)到90%以上的準(zhǔn)確的率,由此可見YOLOv3能夠滿足高效,快速的牦牛檢測需求并達(dá)到視覺檢測的效果。為西藏牧區(qū)養(yǎng)殖業(yè)的信息化應(yīng)用起到了很大的作用也驗(yàn)證了目標(biāo)檢測與識別技術(shù)在牧區(qū)養(yǎng)殖業(yè)中的應(yīng)用有具大的前景;同時(shí)進(jìn)一步研究牦牛的計(jì)數(shù)和進(jìn)行個(gè)體識別以及行為分析也提供了方法支撐。