孫東來 王繼超 陳科 孫士尉 劉昕彤 周聞天
摘要:為了提高養(yǎng)殖場(chǎng)豬目標(biāo)檢測(cè)的檢出率和實(shí)時(shí)性,提出一種從特征提取骨干網(wǎng)絡(luò)和特征金字塔網(wǎng)絡(luò)這2個(gè)方面對(duì)YOLOv3算法進(jìn)行改進(jìn)的豬目標(biāo)檢測(cè)算法(Ghost-YOLOv3-2),并與經(jīng)典YOLOv3、Ghost-YOLOv3、YOLOv3-2 等3種算法進(jìn)行對(duì)比研究。試驗(yàn)結(jié)果表明,特征提取骨干網(wǎng)絡(luò)的殘差單元中引入影子塊,可以在保留原有信息容量的同時(shí)減少計(jì)算量,提高網(wǎng)絡(luò)速度;特征金字塔網(wǎng)絡(luò)融合低層細(xì)粒度信息與高層語義信息,將輸出層改為2尺度,可以進(jìn)一步提高模型的表達(dá)能力與網(wǎng)絡(luò)的實(shí)時(shí)性;改進(jìn)的Ghost-YOLOv3-2算法在豬目標(biāo)檢測(cè)中平均精度(AP)達(dá)到88.03%,較YOLOv3算法提高5.2%;速度達(dá)到23.61 f/s,較YOLOv3算法提高34.6%,所提算法對(duì)豬檢測(cè)的檢出率和實(shí)時(shí)性有一定的提高。
關(guān)鍵詞:豬目標(biāo)檢測(cè);Ghost-YOLOv3-2;深度學(xué)習(xí);特征提取;檢出率;實(shí)時(shí)性
中圖分類號(hào): S126;TP18? 文獻(xiàn)標(biāo)志碼: A
文章編號(hào):1002-1302(2022)07-0189-07
收稿日期:2021-06-28
基金項(xiàng)目:國家自然科學(xué)基金(編號(hào):61773242);河北省教育廳青年基金(編號(hào):QN2021228);河北省滄州市重點(diǎn)研發(fā)計(jì)劃指導(dǎo)項(xiàng)目(編號(hào):204102002);河北水利電力學(xué)院基本科研業(yè)務(wù)費(fèi)專項(xiàng)。
作者簡(jiǎn)介:孫東來(1990—),男,河北滄州人,碩士,助教,研究方向?yàn)樯疃葘W(xué)習(xí)及目標(biāo)檢測(cè)。E-mail:598333985@qq.com。
通信作者:王繼超,碩士,助教,研究方向?yàn)樯疃葘W(xué)習(xí)及智能優(yōu)化算法。E-mail:491366271@qq.com。
隨著養(yǎng)殖業(yè)的規(guī)?;腿斯ぶ悄艿呐d起,實(shí)現(xiàn)養(yǎng)殖業(yè)的智能化與信息化已經(jīng)成為目前的研究熱點(diǎn),而豬養(yǎng)殖智能化是實(shí)現(xiàn)養(yǎng)殖業(yè)智能化最為關(guān)鍵的一步。在現(xiàn)階段大規(guī)模養(yǎng)殖場(chǎng)中,對(duì)于病豬的前期征兆和異常行為都是依靠人工觀察來完成的,不僅勞動(dòng)強(qiáng)度大,而且檢測(cè)不及時(shí)[1]。實(shí)時(shí)、連續(xù)、準(zhǔn)確地監(jiān)測(cè)豬進(jìn)食、飲水狀況,對(duì)預(yù)防豬疾病、提高養(yǎng)殖福利具有重要意義[2]。因此,建立智能養(yǎng)殖系統(tǒng),對(duì)豬的日常行為進(jìn)行觀察統(tǒng)計(jì)并對(duì)異常行為報(bào)警,可以極大提高檢測(cè)效率,降低勞動(dòng)成本[3]。其中,豬的目標(biāo)檢測(cè)十分關(guān)鍵,對(duì)后續(xù)的個(gè)體軌跡追蹤以及病態(tài)檢測(cè)等具有重要意義。目前,豬養(yǎng)殖系統(tǒng)最為成熟的是阿里云與特驅(qū)集團(tuán)聯(lián)合建立的“AI+養(yǎng)殖業(yè)”項(xiàng)目,但此項(xiàng)目中對(duì)豬目標(biāo)檢測(cè)設(shè)備要求較高,只適用超大規(guī)模的豬養(yǎng)殖場(chǎng),對(duì)中小型豬養(yǎng)殖場(chǎng)沒有借鑒作用。
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺領(lǐng)域的主要研究?jī)?nèi)容,長期以來受到廣泛關(guān)注。傳統(tǒng)目標(biāo)檢測(cè)領(lǐng)域使用的區(qū)域選擇策略時(shí)間復(fù)雜度高、冗余窗口多且效果差,得到的特征數(shù)據(jù)對(duì)于目標(biāo)變化缺乏魯棒性,所以逐漸被基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法所取代[4]?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為2類:第1類為通過分類區(qū)域建議來檢測(cè)目標(biāo)算法,如區(qū)域卷積神經(jīng)網(wǎng)絡(luò)[5]、快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)[6]、更快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)[7]。這類算法是將目標(biāo)檢測(cè)分為2步,首先利用滑動(dòng)窗法在圖片上獲得候選區(qū)域,然后提取候選區(qū)域的特征向量,利用分類器的評(píng)分結(jié)果判別候選區(qū)域的目標(biāo)類別[8];第2類為基于回歸方法的一步式深度學(xué)習(xí)目標(biāo)檢測(cè)算法,這類算法不需要進(jìn)行候選區(qū)域提取,比較典型的代表是SSD[9]、YOLO[10-12]。其中,YOLOv3是在YOLOv2基礎(chǔ)上采用新的激活函數(shù)和多尺度訓(xùn)練等方法,進(jìn)一步提高了檢測(cè)速度[13]。Redmon等的研究表明,在標(biāo)準(zhǔn)數(shù)據(jù)集上,YOLOv3無論在檢測(cè)速度還是精度上都優(yōu)于SSD算法[12]。但是,YOLOv3目標(biāo)檢測(cè)算法還主要存在3個(gè)問題:一是由于卷積神經(jīng)網(wǎng)絡(luò)的復(fù)雜性導(dǎo)致需要耗費(fèi)較多的計(jì)算機(jī)資源才能實(shí)現(xiàn)實(shí)時(shí)檢測(cè)的需求;二是面對(duì)目標(biāo)出現(xiàn)大幅度抖動(dòng)、快速移動(dòng)、消失等情況時(shí),目標(biāo)檢測(cè)算法的精確性和魯棒性面臨巨大的挑戰(zhàn)[14];三是在某些特定場(chǎng)景下,YOLOv3算法不能針對(duì)某一目標(biāo)尺度進(jìn)行調(diào)整,從而使檢測(cè)準(zhǔn)確率下降,達(dá)不到特定的需求?;潞5忍岢隽艘环NBR-YOLOv3目標(biāo)檢測(cè)算法,解決了目標(biāo)尺寸差異較大時(shí)檢測(cè)精度低、漏檢率高的問題[15];王一婷等提出一種在同一場(chǎng)景下大尺度目標(biāo)的識(shí)別和定位方法[16]。
針對(duì)現(xiàn)階段豬智能養(yǎng)殖系統(tǒng)目標(biāo)檢測(cè)對(duì)設(shè)備要求高、普適性差的問題,本研究對(duì)YOLOv3算法進(jìn)行改進(jìn),提出了一種可以實(shí)時(shí)準(zhǔn)確地進(jìn)行中大尺度的豬目標(biāo)檢測(cè)算法(Ghost-YOLOv3-2),同時(shí)易于在邊緣設(shè)備上部署,適用于中小型的豬養(yǎng)殖場(chǎng)。主要工作如下:(1)構(gòu)建豬數(shù)據(jù)集,取材于3處中小型豬養(yǎng)殖場(chǎng)約500只豬,共計(jì)2 400張照片。(2)針對(duì)YOLOv3算法豬檢測(cè)實(shí)時(shí)性差的問題,參考2020年IEEE國際計(jì)算機(jī)視覺與模式識(shí)別會(huì)議(CVPR)中提出的GhostNet[17],借鑒其核心思想對(duì)特征提取骨干網(wǎng)絡(luò)進(jìn)行改進(jìn),即將影子塊引入Darknet-53網(wǎng)絡(luò)的殘差單元中,生成部分“影子”信息,代替原有算法中大量無用的計(jì)算,使計(jì)算量明顯減少,大幅提高網(wǎng)絡(luò)速度,得到Ghost-YOLOv3算法。(3)針對(duì)Ghost-YOLOv3算法檢測(cè)準(zhǔn)確率低且存在較高漏檢率的問題,本研究對(duì)特征金字塔網(wǎng)絡(luò)進(jìn)行改進(jìn),即去掉小目標(biāo)尺寸,將低層細(xì)粒度信息與特征金字塔中信息進(jìn)行融合得到中尺度特征,在進(jìn)一步提速的同時(shí)確保算法準(zhǔn)確率,最終得到 Ghost-YOLOv3-2算法。
1 YOLOv3網(wǎng)絡(luò)介紹
1.1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv3網(wǎng)絡(luò)主要包括特征提取模塊、特征金字塔模塊和分支預(yù)測(cè)模塊3個(gè)部分。特征提取模塊采用的是Darknet-53網(wǎng)絡(luò),此網(wǎng)絡(luò)包含53個(gè)卷積層,并引入殘差結(jié)構(gòu),當(dāng)輸入圖片像素尺寸為416×416時(shí),輸出3個(gè)尺度的特征度,大小分別為13×13、26×26、52×52,將3個(gè)不同尺度的特征圖輸入FPN模塊,此模塊包含3個(gè)預(yù)測(cè)分支結(jié)構(gòu),依次為大尺寸、中等尺寸、小尺寸目標(biāo)的檢測(cè)特征信息[18]。模塊通過自頂向下的特征流,將來自高層預(yù)測(cè)分支中包含強(qiáng)語義特征信息融入到淺層特征中,為淺層預(yù)測(cè)分支提供更強(qiáng)的語義特征信息。最終將多類信息進(jìn)行融合,得到模型的3個(gè)輸出。
1.2 損失函數(shù)組成
YOLOv3網(wǎng)絡(luò)的損失函數(shù)(Loss)由3個(gè)部分組成,包括目標(biāo)誤差( L? box)、置信度的誤差( L? conf)和類別誤差( L? cls)。
Loss=L? box+ L? conf+ L? cis。(1)
其中:目標(biāo)誤差損失使用均方誤差進(jìn)行計(jì)算,首先計(jì)算各預(yù)測(cè)區(qū)域與對(duì)應(yīng)真實(shí)區(qū)域間的交并比(IOU),公式如下:
IOU=Area(A)∩Area(B)Area(A)∪Area(B)。(2)
式中:Area(A)表示真實(shí)區(qū)域面積;Area(B) 表示預(yù)測(cè)區(qū)域面積。
通過預(yù)先設(shè)定好的IOU閾值對(duì)預(yù)測(cè)面積進(jìn)行篩選,篩選出IOU值大于閾值的區(qū)域,計(jì)算篩選后的區(qū)域( L? box):
L? box= λ? coord∑ S2i=0∑Bj=01obj i,j[(x i-x^ i)2+(y i-y^ i)2+(w i-w^ i)2+(h i-h^ i)2]。(3)
式中:λ? coord表示目標(biāo)誤差系數(shù); S2表示輸出尺度,即13×13、26×26、52×52;B表示每個(gè)網(wǎng)格所預(yù)測(cè)的邊界框數(shù),個(gè);1obj i,j表示判斷邊界框里有無目標(biāo),有為1,無則為0;x i、y i、w i、h i分別表示預(yù)測(cè)框的中心點(diǎn)橫坐標(biāo)、縱坐標(biāo)、寬、高;x^ i、y^ i、w^ i、h^ i分別表示標(biāo)注框的中心點(diǎn)橫坐標(biāo)、縱坐標(biāo)、寬、高。
置信度誤差(L? con)使用交叉熵進(jìn)行計(jì)算,公式如下:
L? conf=-∑ S2i=0∑Bj =01obj? i,jc^ i( ln ?c i)+(1-c^ i) ln (1-c i)-λ? noobj∑ S2i=0∑Bj =01noobj? i,jc^ i (ln ?c i)+(1-c^ i) ln (1-c i)。(4)
式中:λ? noobj表示懲罰權(quán)重系數(shù);1noobj? i,j表示網(wǎng)格i的第j 個(gè)box和目標(biāo)box的IOU值不是最大值; c i和 c^ i分別表示預(yù)測(cè)框和標(biāo)注框的置信度。
類別誤差(L cis)同樣使用交叉熵進(jìn)行計(jì)算,公式如下:
L cis=-∑S2i=0∑Bj=0{1obj i,jp^ i(c)[ ln ?p i(c)]}+[1-p^ i i(c)]{ ln [1-p i(c)]}。(5)
式中:p i(c)和p^ i(c)分別表示預(yù)測(cè)框概率和標(biāo)注框概率。
2 Ghost-YOLOv3-2算法的構(gòu)建
針對(duì)YOLOv3算法對(duì)中大尺度目標(biāo)豬檢測(cè)存在的實(shí)時(shí)性有待提高和漏檢率高的問題,本研究從特征提取骨干網(wǎng)絡(luò)和特征金字塔網(wǎng)絡(luò)2個(gè)方面對(duì)YOLOv3算法進(jìn)行改進(jìn),得到Ghost-YOLOv3-2算法,改進(jìn)后網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
2.1 特征提取骨干網(wǎng)絡(luò)改進(jìn)
YOLOv3使用Darknet-53作為特征提取骨干網(wǎng)絡(luò),在網(wǎng)絡(luò)中引入23個(gè)殘差模塊,每個(gè)殘差模塊首先使用步長為1、大小為1×1的卷積核進(jìn)行信息壓縮,輸出通道數(shù)為輸入通道數(shù)的一半,然后使用步長為1、大小為3×3的卷積核進(jìn)行特征提取,最后將2次卷積后的特征與殘差單元輸入特征按位置相加,得到新的特征。雖然引入殘差模塊可以使網(wǎng)絡(luò)提取更深層次的特征并且避免了梯度離散和梯度爆炸的問題,但是模型的參數(shù)量也隨之急劇增大,對(duì)模型的實(shí)時(shí)性能有很大的影響。本研究通過分析殘差單元內(nèi)的特征圖發(fā)現(xiàn),使用感受野較大的 3×3 卷積核進(jìn)行卷積操作后存在較多的信息冗余。如圖2所示,對(duì)Darknet-53第1個(gè)殘差單元第2次卷積后的特征圖進(jìn)行可視化,可以看到在生成的特征圖中存在較多相似程度很高的特征圖對(duì),其中1個(gè)特征圖可以看作是另外1個(gè)特征圖的影子,而使用一定尺寸的單通道濾波器對(duì)其中1個(gè)特征圖進(jìn)行線性變換即可得到另外1個(gè)影子特征圖。因此,本研究將影子塊[17]引入Darknet-53的殘差單元中,用來生成影子特征圖,在保證原有特征信息量不變的基礎(chǔ)上降低網(wǎng)絡(luò)的參數(shù)量,提高網(wǎng)絡(luò)的實(shí)時(shí)性。
圖3為原版Darknet-53的殘差單元結(jié)構(gòu)圖,其中包含2個(gè)卷積塊,每個(gè)卷積塊由卷積層、線性變換層和非飽和激活層組成,卷積塊中卷積層的參數(shù)量( S? 1)計(jì)算公式為:
S 1=c×h′×w′×n×k×k。(6)
式中:c表示輸入特征圖通道數(shù);h′、w′分別表示卷積操作輸出的特征圖高、寬;n表示輸出特征圖的通道數(shù);k表示濾波器大小;k×k 表示濾波核大小。
如圖4所示,使用影子塊替換第2個(gè)卷積塊,影子塊首先進(jìn)行普通卷積操作,然后使用深度可分離卷積對(duì)普通卷積得到的特征圖進(jìn)行線性化操作,生成的特征圖與輸入特征圖進(jìn)行堆疊得到最終特征圖,影子塊中卷積層的參數(shù)量( S? 2)計(jì)算公式為:
S 2=c×h′×w′×n2×k×k+n2×h′×w′×k×k。 (7)
利用影子塊生成與普通卷積塊相同數(shù)量的特征圖,可以輕松地替換原有的殘差單元,以減少計(jì)算成本,帶來內(nèi)存和計(jì)算量的收益。卷積塊參數(shù)壓縮比( r c )可以計(jì)算為:
r c=c×h′×w′×n×k×kc×h′×w′×n2×k×k+n2×h′×w′×k×k。(8)
由公式(8)可知,卷積塊參數(shù)壓縮比約為2。從特征提取骨干網(wǎng)絡(luò)浮點(diǎn)運(yùn)算次數(shù)角度對(duì)模型進(jìn)行空間復(fù)雜度對(duì)比,YOLOv3、Ghost-YOLOv3-2浮點(diǎn)運(yùn)算次數(shù)(FLOPS)分別為81.7、30.9億。結(jié)果表明,在特征提取骨干網(wǎng)絡(luò)中引入影子塊可以有效減少浮點(diǎn)運(yùn)算次數(shù),提升模型運(yùn)行的速度。
2.2 特征金字塔網(wǎng)絡(luò)改進(jìn)
特征提取骨干網(wǎng)絡(luò)中既有淺層的細(xì)粒度信息又有深層的語義信息,YOLOv3采用特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)對(duì)淺層特征和深層特征進(jìn)行信息融合,經(jīng)過信息壓縮和信息提取操作得到13×13、26×26、52×52等3個(gè)尺度輸出,分別對(duì)應(yīng)檢測(cè)大目標(biāo)、中等目標(biāo)和小目標(biāo)。本研究檢測(cè)的養(yǎng)豬場(chǎng)豬普遍具有中等、大尺度的特點(diǎn),因此去掉檢測(cè)小目標(biāo)的尺度,只保留中等、大目標(biāo)尺度。應(yīng)用場(chǎng)景中的豬多為中等尺度目標(biāo),為了降低中等尺度目標(biāo)的漏檢率,提高目標(biāo)檢測(cè)性能,將低層細(xì)粒度信息與特征金字塔中信息進(jìn)行融合得到中尺度特征。如圖5所示,卷積集合交替使用1×1和3×3大小的卷積核進(jìn)行卷積操作,其中1×1卷積操作為信息壓縮,3×3卷積操作為信息提取。特征提取骨干網(wǎng)絡(luò)第23個(gè)殘差塊輸出的特征圖經(jīng)過卷積集合后送入輸出層,得到13×13的大尺度輸出。第23個(gè)殘差塊的特征圖經(jīng)過卷積集合后進(jìn)行上采樣操作與第19個(gè)殘差塊的特征圖進(jìn)行堆疊,卷積集合對(duì)堆疊的特征圖進(jìn)行信息壓縮和信息提取后與第11個(gè)殘差塊輸出經(jīng)下采樣后的特征圖進(jìn)行堆疊,然后再次經(jīng)過卷積集合后送入輸出層得到26×26的中等尺度輸出。改進(jìn)后的特征金字塔網(wǎng)絡(luò)加入淺層細(xì)粒度信息,增加了信息的豐富程度,可以提高對(duì)中大目標(biāo)的檢測(cè)能力。
3 試驗(yàn)結(jié)果與分析
本研究試驗(yàn)環(huán)境如下:Intel Core i5-10400F CPU,16 GB內(nèi)存,NVIDIA GeForce RTX 2070 GPU,TensorFlow版本為2.1.0,TensorBoard版本為2.1.1,CUDA版本為10.2,CUDNN版本為7.6.5,試驗(yàn)操作系統(tǒng)為Ubuntu 20.10,使用python作為程序設(shè)計(jì)語言。
3.1 試驗(yàn)數(shù)據(jù)集及訓(xùn)練模型
目前在豬目標(biāo)檢測(cè)領(lǐng)域公開的數(shù)據(jù)集較少且質(zhì)量較低,因此自行構(gòu)建了豬樣本數(shù)據(jù)集,數(shù)據(jù)集取景于河北省海興縣趙毛陶鎮(zhèn)3處中小型養(yǎng)豬場(chǎng),共包含2 400張豬樣本圖像。最后得到的豬數(shù)據(jù)集(圖6),使用LabelImg打標(biāo)簽工具進(jìn)行標(biāo)注。本研究將樣本圖像按6 ∶3 ∶1比例劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。在訓(xùn)練階段,應(yīng)用隨機(jī)梯度下降對(duì)模型參數(shù)進(jìn)行調(diào)整,設(shè)置初始學(xué)習(xí)率為0.000 5,批量尺寸為8,試驗(yàn)中迭代次數(shù)為150。
3.2 對(duì)比試驗(yàn)
本研究分別對(duì)經(jīng)典YOLOv3算法、2尺度YOLOv3算法YOLOv3-2、引入影子塊的3尺度YOLOv3算法Ghost-YOLOv3及本研究最終改進(jìn)的Ghost-YOLOv3-2算法進(jìn)行訓(xùn)練,訓(xùn)練過程中對(duì)算法的指標(biāo)進(jìn)行動(dòng)態(tài)記錄,平均損失的變化趨勢(shì)如圖7 所示,引入影子塊的2尺度YOLOv3算法 Ghost-YOLOv3-2 在第50個(gè)epoch收斂,平均損失值為5.86,與其他2種算法相比,收斂速度最快且收斂后的平均損失為4種算法中最低。
試驗(yàn)采用目標(biāo)檢測(cè)3種常見指標(biāo)即精確度(precision)、召回率(recall)和平均精確度(average precision,簡(jiǎn)稱AP)作為算法性能定量評(píng)價(jià)標(biāo)準(zhǔn)。精確度是指所有檢測(cè)到的目標(biāo)中正樣本的比例,其公式如下:
precision=TPTP+FP。(8)
式中:TP表示檢測(cè)出的正樣本數(shù)量;FP表示檢測(cè)出的負(fù)樣本數(shù)量;FN 表示沒有被檢出的正樣本數(shù)量。
召回率是指所有目標(biāo)中被正確檢測(cè)出來的比例,其公式如下:
recall=TPTP+FN。 (9)
平均精確度(AP)是不同置信度評(píng)價(jià)標(biāo)準(zhǔn)下精確度對(duì)召回率的積分,其公式如下:
AP=∫1 0p(r) d r。(10)
式中: p表示精確度;r 表示召回率。
將4種檢測(cè)模型訓(xùn)練完成后,將豬數(shù)據(jù)集中的測(cè)試集用于檢測(cè),4種模型檢測(cè)結(jié)果繪制成為精確度-召回率(PR)曲線(圖8)。
在豬檢測(cè)數(shù)據(jù)集上對(duì)最終改進(jìn)算法、原版YOLOv3算法及其他改進(jìn)算法進(jìn)行測(cè)試,性能測(cè)試結(jié)果如表1所示。在數(shù)據(jù)集與超參數(shù)相同的情況下,提出的改進(jìn)算法Ghost-YOLOv3-2與YOLOv3算法相比,目標(biāo)檢測(cè)平均精度提高5.2百分點(diǎn),權(quán)重參數(shù)減少26.37%,實(shí)時(shí)性(幀率)由17.54 f/s變?yōu)?3.61 f/s,提升了34.61%;與引入影子塊的3尺度Ghost-YOLOv3算法相比,平均精度提高6.0百分點(diǎn),實(shí)時(shí)性提高3.2%;與2尺度YOLOv3算法(YOLOv3-2)相比,雖然平均精度下降0.17百分點(diǎn),但實(shí)時(shí)性有了大幅度提高,達(dá)到17.8%。
3.3 檢測(cè)結(jié)果
如圖9-a、圖9-b所示,融合多層信息并改為2尺度的YOLOv3-2與經(jīng)典YOLOv3算法相比,豬檢出數(shù)目由3只提升到4只,且對(duì)于YOLOv3算法未檢出的豬檢測(cè)準(zhǔn)確度能達(dá)到99.40%。由圖9-c、圖9-d可以看出,只加了Ghost模塊的Ghost-YOLOv3算法漏檢率偏高,達(dá)到40%,而2尺度的Ghost-YOLOv3-2算法能檢測(cè)照片上的所有豬,且準(zhǔn)確率較高。
4 結(jié)論與討論
本研究提出了一種改進(jìn)YOLOv3的豬目標(biāo)檢測(cè)算法,首先使用聚類算法對(duì)錨點(diǎn)尺寸進(jìn)行優(yōu)化,然后使用引入影子塊的特征提取骨干網(wǎng)絡(luò)進(jìn)行特征提取,最后通過改進(jìn)的特征金字塔網(wǎng)絡(luò)實(shí)現(xiàn)2尺度目標(biāo)輸出。
利用普通卷積方法生成部分特征圖,然后利用深度可分離卷積對(duì)特征圖進(jìn)行線性變換得到影子特征圖,可以在保留原有信息量的基礎(chǔ)上有效降低參數(shù)量,提高模型實(shí)時(shí)性;將淺層細(xì)粒度信息加入特征金字塔中,并將輸出改為2尺度,可以豐富特征圖信息量,降低模型漏檢率,提高目標(biāo)檢測(cè)精度。在相同的條件下,宦海等提出的BR-YOLOv3算法平均檢測(cè)精度為88.82%[15],與本研究的檢測(cè)結(jié)果相近,但其速度為16.68 f/s,低于本研究結(jié)果,原因是宦海等利用空洞卷積,構(gòu)建多層并行的空洞視野感受模塊,提高了模型的表達(dá)能力,但是忽略了模型的運(yùn)算速度。王一婷等提出的同一場(chǎng)景下超大目標(biāo)尺度差異的目標(biāo)檢測(cè)方法對(duì)于中大尺度豬目標(biāo)檢測(cè),平均檢測(cè)精度為85.24%,速度為 19.66 f/s[16],均低于本研究結(jié)果,原因是王一婷等引入的動(dòng)態(tài)IOU可以動(dòng)態(tài)調(diào)整閾值,解決了樣本尺度不均衡的問題,但在固定場(chǎng)景下如養(yǎng)殖場(chǎng),豬的目標(biāo)檢測(cè)尺度相對(duì)固定為中大尺度,IOU的調(diào)整對(duì)檢測(cè)準(zhǔn)確率提升效果不大,并且在檢測(cè)速度方面也并未改進(jìn)。
本研究提出的Ghost-YOLOv3-2算法可以部署在嵌入式的邊緣檢測(cè)設(shè)備上,造價(jià)不高,適用于中小型智能豬養(yǎng)殖場(chǎng),也可以為后續(xù)的豬軌跡追蹤及健康狀況評(píng)價(jià)提供有力的數(shù)據(jù)支撐。由于所提方法在對(duì)豬嚴(yán)重遮擋情況下檢測(cè)具有一定的漏檢率,下一步將結(jié)合輪廓檢測(cè)的方法進(jìn)行深入研究。
參考文獻(xiàn):
[1]黨亞男,王 芳,田建艷,等. 面向豬的姿態(tài)識(shí)別的特征優(yōu)選方法研究[J]. 江蘇農(nóng)業(yè)科學(xué),2016,44(3):448-451.
[2]薛佳俐,楊曙明. 生豬福利養(yǎng)殖系統(tǒng)的研究進(jìn)展[J]. 農(nóng)產(chǎn)品質(zhì)量與安全,2020(2):64-69.
[3]李菊霞,李艷文,牛 帆,等. 基于YOLOv4的豬只飲食行為檢測(cè)方法[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào),2021,52(3):251-256.
[4]宋偉先. 基于深度學(xué)習(xí)的豬只目標(biāo)檢測(cè)及狀態(tài)分析[D]. 哈爾濱:東北農(nóng)業(yè)大學(xué),2019.
[5]Girshick R,Donahue J,Darrell T,et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,Columbus,2014:580-587.
[6]Girshick R.Fast R-CNN[C]//Proceedings of IEEE International Conference on Computer Vision. Santiago,2015:1440-1448.
[7]Ren S,He K,Girshick R,et al. Faster R-CNN:towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence,2017,39(6):1137-1149.
[8]柳長源,王 琪, 畢曉君. 多目標(biāo)小尺度車輛目標(biāo)檢測(cè)方法的研究[J]. 控制與決策,2021,36(11):1-6.
[9]Liu W,Anguelov D,Erhan D,et al. SSD:single shot multibox detector[C]//European Conference on Computer Vision. The Netherlands:Springer,2016:21-37.
[10]Redmon J,Divvala S,Girshick R,et al. You only look once:unified,real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
[11]Redmon J,F(xiàn)arhadi A.YOLO9000:better,faster,stronger[C]//IEEE Conference on Computer Vision & Pattern Recognition,2017:6517-6525.
[12]Redmon J,F(xiàn)arhadi A.YOLOv3:an incremental improvement[Z/OL]. (2018-04-08)[2021-06-16]. https://arxiv.org/abs/1804.02767
[13]曾鏡源,洪添勝,楊 洲. 基于實(shí)例分割的柚子姿態(tài)識(shí)別與定位研究[J]. 河南農(nóng)業(yè)大學(xué)學(xué)報(bào),2021,55(2):287-294.
[14]Howard A G,Zhu M,Chen B,et al. MobileNets:efficient convolutional neural networks for mobile vision applications[C]//IEEE Conference on Computer Vision and Pattern Recognition.Honolulu,2017:1-9.
[15]宦 海,陳逸飛,張 琳,等. 一種改進(jìn)的BR-YOLOv3目標(biāo)檢測(cè)網(wǎng)絡(luò)[J]. 計(jì)算機(jī)工程,2021,47(10):186-193.
[16]王一婷,張 柯,李 捷,等. 同一場(chǎng)景下超大尺度差異物體的識(shí)別和定位方法[J]. 計(jì)算機(jī)應(yīng)用,2020,40(12):3520-3525.
[17]Han K,Wang Y H,Tian Q,et al. GhostNet:more features from cheap operations[C]//2020 IEEE Conference on Computer Vision and Pattern Recognition. Seattle,2020.
[18]Lin T Y,Dollár P,Girshick R,et al. Feature pyramid networks for object detection[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu,2017.