高芳征,湯文俊,陳光明,黃家才
(1. 南京工程學(xué)院自動(dòng)化學(xué)院,南京市,211167; 2. 南京農(nóng)業(yè)大學(xué),南京市,210031;3. 江蘇省智能化農(nóng)業(yè)裝備重點(diǎn)實(shí)驗(yàn)室,南京市,210031)
隨著科技發(fā)展的不斷進(jìn)步,機(jī)器人具備了高級(jí)認(rèn)知水平,并在農(nóng)產(chǎn)品生產(chǎn)的不同階段發(fā)揮重要作用,如在農(nóng)作物生長(zhǎng)階段的病蟲害識(shí)別與農(nóng)藥噴灑、在成熟階段的果實(shí)識(shí)別與采摘等[1]。作為農(nóng)業(yè)采摘機(jī)器人的重要組成部分,機(jī)器視覺系統(tǒng)的自主識(shí)別是實(shí)現(xiàn)采摘自動(dòng)化的關(guān)鍵步驟,其檢測(cè)速度、準(zhǔn)確率以及魯棒性是制約采摘機(jī)器人工作穩(wěn)定性和效率的重要因素[2-3]。因此,開展農(nóng)業(yè)采摘機(jī)器人在復(fù)雜環(huán)境下的快速識(shí)別算法研究,實(shí)現(xiàn)采摘目標(biāo)的穩(wěn)定、快速、準(zhǔn)確檢測(cè)滿足農(nóng)業(yè)生產(chǎn)需求,對(duì)農(nóng)業(yè)現(xiàn)代化和自動(dòng)化發(fā)展具有重要應(yīng)用價(jià)值和現(xiàn)實(shí)意義[4]。
目前國(guó)內(nèi)外在農(nóng)產(chǎn)品檢測(cè)方面的研究已經(jīng)取得一定的進(jìn)展。Hamuda等[5]通過添加由卡爾曼濾波和匈牙利算法組成的目標(biāo)跟蹤算法,擴(kuò)展了基于顏色、空間和形狀分析的組合檢測(cè)算法,提高識(shí)別農(nóng)作物的準(zhǔn)確度。但其研究主要是面向無套種作物情況,圖像背景為相對(duì)簡(jiǎn)單的土壤環(huán)境,使得該方法不適用于存在遮擋密集分布的農(nóng)產(chǎn)品檢測(cè)。Linker等[6]提出了一種自然光照下的蘋果檢測(cè)方法,它利用顏色和平滑度檢測(cè)出一組概率較高的蘋果像素,形成一個(gè)“種子區(qū)域”,然后根據(jù)“種子面積”和蘋果模型之間的符合比來確定該區(qū)域是否包含一個(gè)蘋果。該方法雖然可以有效地檢測(cè)出包含蘋果的區(qū)域,但在蘋果分布密集、重疊較大的情況下會(huì)產(chǎn)生較大的誤差。特別需要指出的是,這些算法都是針對(duì)特定場(chǎng)景的基于傳統(tǒng)圖像處理的目標(biāo)檢測(cè)方法研究,存在環(huán)境依賴性強(qiáng)、魯棒性差的缺點(diǎn),無法滿足復(fù)雜場(chǎng)景下的農(nóng)業(yè)采摘機(jī)器人工作需求。
另一方面,隨著深度學(xué)習(xí)算法的發(fā)展與成熟,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法已成為當(dāng)下研究的熱點(diǎn)[7]。目前主流的深度學(xué)習(xí)目標(biāo)檢測(cè)算法主要有兩種:一種是基于Regional proposal(區(qū)域建議)的Two-stage(雙階段)方法,它需要先產(chǎn)生目標(biāo)候選框(即目標(biāo)位置),然后對(duì)候選框做分類與回歸,其代表算法為包括Fast-RCNN[8]和Faster-RCNN[9]等的RCNN(Region-CNN,區(qū)域卷積神經(jīng)網(wǎng)絡(luò))系列算法。另一種是無區(qū)域建議的One-stage(單階段)方法,它主要通過使用一個(gè)CNN直接預(yù)測(cè)不同目標(biāo)的類別與位置,其代表算法有YOLO系列算法[10]和SSD算法[11]。與Two-stage方法相比,One-stage在檢測(cè)速度優(yōu)勢(shì)明顯。研究表明,畫面達(dá)到24幀每秒的速度,人眼可認(rèn)為是連續(xù)的,而YOLO算法可實(shí)現(xiàn)每秒45幀以上的運(yùn)算速度,滿足農(nóng)業(yè)采摘機(jī)器人工作的實(shí)時(shí)性要求[12]。
因此研究基于YOLO的農(nóng)產(chǎn)品識(shí)別算法對(duì)農(nóng)業(yè)采摘機(jī)器人快速高效作業(yè)具有重要意義。
近年,針對(duì)光照波動(dòng)、復(fù)雜背景、果實(shí)和枝葉重疊等不同環(huán)境下的蘋果檢測(cè)需求,Tian等[13]提出一種改進(jìn)的YOLOv3模型并應(yīng)用于實(shí)際環(huán)境的果園檢測(cè)。趙德安等[14]為提高蘋果采摘機(jī)器人的工作效率和環(huán)境適應(yīng)性,使其能全天候不同光線環(huán)境下對(duì)遮擋、粘連和套袋等多種情況下的果實(shí)進(jìn)行識(shí)別定位,提出了基于YOLOv3深度卷積神經(jīng)網(wǎng)絡(luò)的蘋果定位方法,在保證效率與準(zhǔn)確率的情況下實(shí)現(xiàn)復(fù)雜環(huán)境下蘋果的檢測(cè)。劉芳等[15]為實(shí)現(xiàn)溫室環(huán)境下農(nóng)業(yè)采摘機(jī)器人對(duì)番茄果實(shí)的快速、精確識(shí)別,提出一種改進(jìn)型多尺度YOLO算法(IMS-YOLO),對(duì)YOLO網(wǎng)絡(luò)模型進(jìn)行篩選和改進(jìn),設(shè)計(jì)一種含有殘差模塊的darknet-20主干網(wǎng)絡(luò),同時(shí)融合多尺度檢測(cè)模塊,構(gòu)建一種復(fù)雜環(huán)境下番茄果實(shí)快速識(shí)別網(wǎng)絡(luò)模型,提升番茄果實(shí)檢測(cè)速度和精度。薛月菊等[16]針對(duì)果園場(chǎng)景下,由于光照的多樣性、背景的復(fù)雜性及芒果與樹葉顏色的高度相似性,特別是樹葉和枝干對(duì)果實(shí)遮擋及果實(shí)重疊等問題,提出果園場(chǎng)景下未成熟芒果的改進(jìn)YOLOv2檢測(cè)方法,通過設(shè)計(jì)新的帶密集連接的Tiny-yolo網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)網(wǎng)絡(luò)多層特征的復(fù)用和融合,提高檢測(cè)精度。
受上述文獻(xiàn)啟發(fā),針對(duì)應(yīng)用于西紅柿采摘機(jī)器人上的成熟果實(shí)識(shí)別算法需要滿足高準(zhǔn)確性和強(qiáng)魯棒性這一實(shí)際需求,本文基于經(jīng)典的YOLOv3目標(biāo)檢測(cè)算法模型進(jìn)行輕量化改進(jìn),并對(duì)激活函數(shù)、錨框的聚類、非極大值抑制和損失函數(shù)進(jìn)行優(yōu)化,在不影響檢測(cè)準(zhǔn)確度的情況下,使神經(jīng)網(wǎng)絡(luò)模型能夠更方便地部署到西紅柿采摘機(jī)器人的嵌入式控制器上。
在使用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征時(shí),增加網(wǎng)絡(luò)深度雖然在一定程度上會(huì)提高目標(biāo)檢測(cè)準(zhǔn)確度,但參數(shù)的增多也意味著檢測(cè)時(shí)間的增加。主流特征提取網(wǎng)絡(luò)有AlexNet[17]、VGGNet[18-19]和ResNet[20]等。在AlexNet網(wǎng)絡(luò)中,增加了Relu非線性激活函數(shù),增強(qiáng)了模型的非線性表達(dá)能力,提出了通過數(shù)據(jù)增強(qiáng)來提高模型的泛化能力,還增加了Dropout層防止過擬合,證明了使用很小的卷積核(3×3)并增加網(wǎng)絡(luò)的深度可以有效提升模型的效果。3個(gè)3×3卷積層堆疊可以擁有與7×7卷積核同樣大小的感受野,但參數(shù)量卻小得多,大大縮短了計(jì)算時(shí)間,并且小的卷積層比大的有更多的非線性變換,使得卷積神經(jīng)網(wǎng)絡(luò)對(duì)特征的學(xué)習(xí)能力更強(qiáng)。這些貢獻(xiàn)都為后來的VGGNet等特征提取網(wǎng)絡(luò)研究提供了借鑒。隨著網(wǎng)絡(luò)越深,獲取的信息越多,特征也越豐富,但實(shí)驗(yàn)表明優(yōu)化效果反而越差,這是由于網(wǎng)絡(luò)的加深會(huì)造成梯度爆炸和梯度消失的問題[21]。為了讓更深的網(wǎng)絡(luò)也能訓(xùn)練出很好的效果,He等[22]提出一種新的網(wǎng)絡(luò)結(jié)構(gòu)—ResNet,采用殘差學(xué)習(xí)的思想,在普通的卷積過程中加入了一個(gè)恒等映射,將輸入直接連接到后面的層,這種結(jié)構(gòu)也被稱為shortcut(短接)或者skip connections(跳躍連接)。與VGG相比,其參數(shù)量少得多,因?yàn)镽esNet采用平均池化層來代替VGG中的全連接層,其通過學(xué)習(xí)殘差映射,緩解了梯度消失的問題,且訓(xùn)練效率更高。此后的圖像分類、檢測(cè)與分割等任務(wù)也大規(guī)模使用ResNet網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò)[23]。
YOLOv3的主干特征提取網(wǎng)絡(luò)Darknet53正是借鑒了ResNet網(wǎng)絡(luò)結(jié)構(gòu)的思想,并且去掉了最后的平均池化層(Average pooling layer)、全連接層(Full connection layer)以及Softmax,僅使用一個(gè)1×1的卷積核來檢測(cè)目標(biāo)特征。本文鑒于提取西紅柿成熟果實(shí)特征較為單一,為了簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu),減少計(jì)算資源的占用,在Darknet-53 backbone(主干網(wǎng)絡(luò))基礎(chǔ)上進(jìn)行輕量化改進(jìn),在不影響特征提取準(zhǔn)確性的前提下,提高檢測(cè)識(shí)別算法運(yùn)行的效率。改進(jìn)前與改進(jìn)后的主干網(wǎng)絡(luò)對(duì)比如圖1所示。
(a) 改進(jìn)前網(wǎng)絡(luò)結(jié)構(gòu) (b) 改進(jìn)后網(wǎng)絡(luò)結(jié)構(gòu)
基于輕量化改進(jìn)后的特征提取主干網(wǎng)絡(luò),通過上采樣構(gòu)建特征金字塔,實(shí)現(xiàn)多尺度特征融合,得到三種不同尺度的特征圖,如圖2所示。輸入圖像尺寸為416×416,多尺度特征融合網(wǎng)絡(luò)的特征圖尺寸分別為52×52、26×26和13×13。輕量化網(wǎng)絡(luò)在模型大小和檢測(cè)速度上具有優(yōu)勢(shì),適合應(yīng)用在計(jì)算性能有限的嵌入式設(shè)備上。
圖2 多尺度特征圖網(wǎng)絡(luò)結(jié)構(gòu)
常用的ReLU激活函數(shù)是將所有的負(fù)值都設(shè)為0,而YOLOv3中采用的Leaky ReLU激活函數(shù)則是給所有負(fù)值都賦予一個(gè)非零斜率,對(duì)小于0的輸入部分的反應(yīng)有所變化,減輕了ReLU的稀疏性,有效緩解ReLU導(dǎo)致神經(jīng)元死亡的問題。Leaky ReLU激活函數(shù)的公式如式(1)所示。
(1)
式中:ai——斜率;
xi——輸入。
由于Leaky ReLU有了負(fù)數(shù)的輸出,導(dǎo)致其非線性程度不強(qiáng),Mish激活函數(shù)公式如式(2)所示。
Mish=x×tanh(ln(1+ex))
(2)
Mish激活函數(shù)與Leaky ReLU激活函數(shù)的曲線對(duì)比如圖3所示。
(a) Leaky ReLU激活函數(shù)曲線圖
Mish激活函數(shù)是一種自正則的非單調(diào)神經(jīng)激活函數(shù)。從圖3中可以看出,相比于Leaky ReLU激活函數(shù),Mish激活函數(shù)平滑的曲線允許更好的信息深入神經(jīng)網(wǎng)絡(luò),從而得到更好的準(zhǔn)確性和泛化性。
YOLOv3采用K-means聚類方法,基于VOC2012數(shù)據(jù)集的20類目標(biāo)生成9個(gè)錨框(anchor boxes)來預(yù)測(cè)bounding box(預(yù)測(cè)框),準(zhǔn)確率為67.2%。由于VOC數(shù)據(jù)集的檢測(cè)目標(biāo)尺度差距過大,如果直接將上述九個(gè)錨框(用yolo-anchors來表示)用于西紅柿數(shù)據(jù)集的訓(xùn)練,其中部分anchor的尺度并不合理。所以本文基于自己采集并標(biāo)注的數(shù)據(jù)集來聚類用于西紅柿成熟果實(shí)檢測(cè)的錨框(用tomato-anchors來表示),目的是提高bounding box的檢出率。在本文標(biāo)注好的數(shù)據(jù)集上使用K-means聚類可視化如圖4所示。
圖4 K-means聚類可視化圖
yolo-anchors的九個(gè)錨框的尺度分別為(10,13)、(16,30)、(33,23)、(30,61)、(62,45)、(59,119)、(116,90)、(156,198)和(373,326),在本文西紅柿果實(shí)數(shù)據(jù)集中經(jīng)過聚類算法之后的九個(gè)錨框tomato-anchors,尺度分別為(53,55)、(87,85)、(97,136)、(115,108)、(122,75)、(137,136)、(169,161)、(203,210)和(283,290)。yolo-anchors和tomato-anchors的對(duì)比如圖5所示。
(a) yolo-anchors
從圖5中可以看出,tomato-anchors的尺度比yolo-anchors更接近于西紅柿果實(shí)的真實(shí)尺度。經(jīng)過聚類之后,tomato-anchors的準(zhǔn)確率為82.63%,相比于yolo-anchors的67.2%,提高了15.43%,即試驗(yàn)結(jié)果證明了本文所提重新聚類錨框的方法的必要性和有效性。
YOLOv3中的IoU(Intersection over Union, 交并比)是衡量預(yù)測(cè)框和真實(shí)框的重合程度。計(jì)算IoU的目的主要用于NMS(非極大值抑制),因?yàn)轭A(yù)測(cè)框并非全部正確,因此需要將置信度大于設(shè)定閾值(一般為0.5)的預(yù)測(cè)框提取出來。IoU計(jì)算公式如式(3)所示。
(3)
式中:S∩——預(yù)測(cè)框與真實(shí)框的交集;
S∪——預(yù)測(cè)框與真實(shí)框的并集。
本文采用CIoU代替IoU,將目標(biāo)與錨框之間的重疊率、尺度、距離以及懲罰項(xiàng)(預(yù)測(cè)框長(zhǎng)寬比擬合目標(biāo)框的長(zhǎng)寬比)都考慮進(jìn)去,使得目標(biāo)框回歸變得更加穩(wěn)定,不會(huì)出現(xiàn)訓(xùn)練過程中發(fā)散的問題。CIoU的計(jì)算公式如式(4)所示。
(4)
式中:p2(b,bgt)——預(yù)測(cè)框和真實(shí)框的中心點(diǎn)的歐式距離;
b——bounding box(預(yù)測(cè)框);
bgt——ground truth(真實(shí)框);
c——能夠同時(shí)包含預(yù)測(cè)框和真實(shí)框的最小閉包區(qū)域的對(duì)角線距離。
α是權(quán)重函數(shù),ν是度量寬高比的一致性,其計(jì)算公式如式(5)、式(6)所示。
(5)
(6)
式中:wgt——真實(shí)框的寬;
hgt——真實(shí)框的高;
w——預(yù)測(cè)框的寬;
h——預(yù)測(cè)框的高。
YOLOv3的loss(損失函數(shù))計(jì)算公式如式(7)所示。損失函數(shù)由三部分組成,分別是邊界框損失lxy+lwh、類別損失lclasses以及置信度損失lconfidence,誤差計(jì)算均采用了均方差算法。
loss=lxy+lwh+lclasses+lconfidence
(7)
式中:λcoord——平衡各項(xiàng)損失的比重而設(shè)定的權(quán)重參數(shù),為5;
λnoobj——平衡各項(xiàng)損失的比重而設(shè)定的權(quán)重參數(shù),為0.5;
s——網(wǎng)格單元;
B——邊界框;
obj——含有目標(biāo);
noobj——不含目標(biāo);
真實(shí)框的中心坐標(biāo)寬高;
預(yù)測(cè)框的中心坐標(biāo)和寬高。
為了使損失函數(shù)的計(jì)算更加精確,本文改進(jìn)類別損失函數(shù),使用交叉熵算法來計(jì)算分類誤差,改進(jìn)后的類別損失函數(shù)如式(8)所示。
(8)
將改進(jìn)后的lclasses替換掉原來的類別損失函數(shù),即可得到改進(jìn)后的損失函數(shù)。
西紅柿成熟果實(shí)快速識(shí)別模型的訓(xùn)練流程見圖6。
圖6 西紅柿果實(shí)快速識(shí)別模型訓(xùn)練流程
原始西紅柿圖像經(jīng)過數(shù)據(jù)預(yù)處理,包括不同程度的飽和度、曝光度和色調(diào)處理,不同程度的旋轉(zhuǎn)、翻轉(zhuǎn)和鏡像處理,目的是增加樣本的多樣性,最終生成訓(xùn)練集和驗(yàn)證集。之后將圖像喂給卷積神經(jīng)網(wǎng)絡(luò)來提取特征,吐出西紅柿的目標(biāo)檢測(cè)框,包含類別與置信度。通過不斷迭代訓(xùn)練使損失函數(shù)最小,不斷優(yōu)化參數(shù),最終得到西紅柿成熟果實(shí)快速識(shí)別模型。具體算法流程如圖7所示。
圖7 訓(xùn)練階段和檢測(cè)階段具體算法流程圖
本文的訓(xùn)練平臺(tái)主要配置為:AMD R5 CPU@3.00GHz、4GB獨(dú)顯GTX1650 GPU和16GB的運(yùn)行內(nèi)存。所有程序由Python語言編寫,調(diào)用CUDA、CUDNN、OpenCV庫并在Win10系統(tǒng)下運(yùn)行。訓(xùn)練超參數(shù)設(shè)置如下:動(dòng)量(Momentum)設(shè)置為0.9,權(quán)值衰減(Decay)設(shè)置為0.000 5,飽和度(Saturation)和曝光度(Exposure)都設(shè)置為1.5,初始學(xué)習(xí)率(Learning Rate)設(shè)置為0.001。
圖像采集通過奧比中光(ORBBEC)Astro Pro 3D結(jié)構(gòu)光深度相機(jī)完成。該相機(jī)在1 m內(nèi)的像素精度可達(dá)±3 mm,分辨率/幀率為640×480/30 fps。
本文的西紅柿成熟果實(shí)檢測(cè)在西紅柿采摘機(jī)器人平臺(tái)上進(jìn)行。其上搭載了NVIDIA Jetson Nano嵌入式控制器,主要配置為:四核ARM A57 CPU@1.43 GHz和4GB顯存的128核Maxwell GPU@921 MHz。嵌入式控制器上安裝了Ubuntu Linux操作系統(tǒng)。
本文中數(shù)據(jù)集的來源主要有:農(nóng)業(yè)園實(shí)地拍攝、網(wǎng)絡(luò)爬取和開源數(shù)據(jù)集。為增加樣本多樣性,降低模型過擬合的概率,采集的數(shù)據(jù)集樣本中包含西紅柿果實(shí)數(shù)量、密集程度以及遮擋程度不同的情況,還包含暗光、側(cè)光、順光和逆光的情況,共1 000幅圖像。在采集到足夠的樣本之后,需要對(duì)圖像做人工標(biāo)注,使用開源圖像標(biāo)注工具labelImg,采用PASCAL VOC的圖像數(shù)據(jù)標(biāo)注格式,將西紅柿的最小外接矩形框作為ground truth,以獲取準(zhǔn)確的數(shù)據(jù)參數(shù),包括西紅柿目標(biāo)框的標(biāo)簽、左上角坐標(biāo)、寬和高,每一幅圖像的數(shù)據(jù)參數(shù)保存在對(duì)應(yīng)的XML文件中。西紅柿成熟果實(shí)數(shù)據(jù)集部分代表性樣本如圖8所示。
圖8 西紅柿成熟果實(shí)數(shù)據(jù)集部分代表性樣本
果園中的西紅柿在不同光照強(qiáng)度下的顏色差異較大,為了改善樣本分布不均衡的情況,采用不同的飽和度、曝光度和色調(diào)對(duì)圖像進(jìn)行隨機(jī)處理來豐富數(shù)據(jù)集,還采用水平翻轉(zhuǎn)和正負(fù)15°旋轉(zhuǎn),以及灰度處理、濾波處理、模糊處理等方法來擴(kuò)充數(shù)據(jù)集,部分標(biāo)志性樣本如圖9所示。最終將樣本圖像增加至2 000幅,其中訓(xùn)練集80%,驗(yàn)證集10%,測(cè)試集10%。
圖9 數(shù)據(jù)預(yù)處理后部分代表性樣本
為了驗(yàn)證本文算法模型輕量化改進(jìn)的有效性,計(jì)算輕量化改進(jìn)前后模型各層網(wǎng)絡(luò)參數(shù)量,如表1和表2所示。其中n表示該層網(wǎng)絡(luò)模塊重復(fù)使用的次數(shù),params表示該層網(wǎng)絡(luò)模塊的參數(shù)量,module表示該層網(wǎng)絡(luò)模塊的名稱。由表1和表2可知,改進(jìn)前參數(shù)總量為32 124 643,輕量化改進(jìn)之后參數(shù)總量為25 137 856,下降約21.75%,實(shí)現(xiàn)了對(duì)YOLOv3的輕量化改進(jìn),更適合在硬件條件和運(yùn)算能力有限的嵌入式平臺(tái)使用。
表1 輕量化改進(jìn)前模型的參數(shù)量Tab. 1 Parameter number of model before lightweight improvement
表2 輕量化改進(jìn)后模型的參數(shù)量Tab. 2 Parameter number of model after lightweight improvement
本文使用開源人工神經(jīng)網(wǎng)絡(luò)庫Keras進(jìn)行深度學(xué)習(xí)模型的搭建、訓(xùn)練與評(píng)估,訓(xùn)練誤差曲線可以監(jiān)測(cè)損失函數(shù)的變化趨勢(shì),判斷模型訓(xùn)練的程度。對(duì)訓(xùn)練集和驗(yàn)證集進(jìn)行約100次迭代訓(xùn)練后,使用可視化工具TensorBoard查看誤差曲線,如圖10所示。
圖10 訓(xùn)練誤差曲線
圖10中橙色曲線代表訓(xùn)練集的誤差曲線,藍(lán)色曲線代表驗(yàn)證集的誤差曲線。可以看出,前5次迭代網(wǎng)絡(luò)快速收斂,10次迭代后損失函數(shù)趨于穩(wěn)定,在訓(xùn)練到12輪之后,loss降到了30以下,之后一直趨于平穩(wěn)。
在訓(xùn)練完成之后,需要對(duì)模型的性能進(jìn)行評(píng)估。本文選用的模型性能評(píng)價(jià)指標(biāo)主要包括準(zhǔn)確率(Precision)、召回率(Recall)、F1評(píng)分、平均檢測(cè)精度mAP。
將置信度大于閾值的預(yù)測(cè)框定義為正樣本,反之則為負(fù)樣本。將正樣本中與ground truth的交并比(CIoU)大于閾值的樣本視為TP(True Positives),反之視為FP(False Positives),負(fù)樣本中存在實(shí)際為正樣本的視為FN(False Negatives)。準(zhǔn)確率和召回率計(jì)算公式如式(9)、式(10)所示。
(9)
(10)
式中:P——準(zhǔn)確率,分類器認(rèn)為是正類并且確實(shí)是正類的部分占所有分類器認(rèn)為是正類的比例;
R——召回率,分類器認(rèn)為是正類并且確實(shí)是正類的部分占所有確實(shí)是正類的比例;
TP——分類器認(rèn)為是正樣本而且確實(shí)是正樣本的例子;
FP——分類器認(rèn)為是正樣本但實(shí)際上不是正樣本的例子;
FN——分類器認(rèn)為是負(fù)樣本但實(shí)際上不是負(fù)樣本的例子。
F1是分類的一個(gè)衡量指標(biāo),用精確度和召回率的平均數(shù)來計(jì)算,公式如式(11)所示。
(11)
AP事實(shí)上指的是,利用不同的Precision和Recall點(diǎn)的組合,繪制出來的曲線與x軸圍成的面積。當(dāng)取不同的置信度,可以獲得不同的Precision和Recall,當(dāng)所取置信度足夠密集的時(shí)候,便可以通過上述面積來求AP值。mAP就是所有的類的AP值求平均,計(jì)算公式如式(12)所示。
(12)
將閾值(score_threshold)設(shè)為0.5,經(jīng)過訓(xùn)練之后,得到的P、R、F1、mAP曲線如圖11所示。從圖11中可以看出,訓(xùn)練后得到西紅柿成熟果實(shí)識(shí)別模型的準(zhǔn)確率為92.11%,召回率為86.21,F1評(píng)分為0.89,平均檢測(cè)精度為84.58%。
(a) Precision曲線
為驗(yàn)證本文改進(jìn)算法模型的有效性,采用YOLOv3、YOLOv4和YOLOv4-tiny算法模型在本文西紅柿成熟果實(shí)數(shù)據(jù)集上進(jìn)行訓(xùn)練并識(shí)別作為對(duì)比試驗(yàn),結(jié)果如表3所示。
表3 本文改進(jìn)算法模型與其他經(jīng)典算法模型的對(duì)比Tab. 3 Comparation of the improved model in this paper with other classical models
從表3可以看出,本文改進(jìn)算法模型的P、R、F1和mAP均高于其他三種模型,雖然在fps指標(biāo)上略低于YOLOv4-tiny,但也完全滿足實(shí)時(shí)性要求,能夠?qū)崿F(xiàn)西紅柿成熟果實(shí)的快速識(shí)別,且YOLOv4-tiny的檢測(cè)準(zhǔn)確度較低,所以本文改進(jìn)算法模型的綜合表現(xiàn)優(yōu)于其他三種模型。
為進(jìn)一步驗(yàn)證模型的有效性、魯棒性,實(shí)際情況中需要在不同條件下進(jìn)行檢測(cè)識(shí)別,本文在不同密集程度下、不同光照條件下和不同遮擋程度下分別進(jìn)行西紅柿成熟果實(shí)的檢測(cè)識(shí)別。
3.6.1 不同密集程度下的西紅柿識(shí)別效果
西紅柿生長(zhǎng)姿態(tài)各異,且密集程度差距大,在西紅柿采摘機(jī)器人實(shí)際進(jìn)行采摘的過程中,隨著相機(jī)距離西紅柿的距離變化,西紅柿的數(shù)目也隨之改變。當(dāng)西紅柿數(shù)目較少、尺寸較大且較為稀疏時(shí),作為識(shí)別對(duì)象較為清晰完整,識(shí)別難度低;但在西紅柿數(shù)量較多、尺寸較小且較為密集分布時(shí),識(shí)別難度會(huì)增大。因此本文設(shè)置不同數(shù)量和密集程度的西紅柿果實(shí)檢測(cè)識(shí)別,分別在一幅圖像里識(shí)別2個(gè)、3個(gè)、4個(gè)及更多個(gè)西紅柿。最終識(shí)別效果如圖12所示。
從圖12中可以看出,在遮擋程度不嚴(yán)重的情況下,不管西紅柿是稀疏還是稠密的狀態(tài),模型的檢測(cè)效果都很好,能夠準(zhǔn)確地識(shí)別出圖像視野中西紅柿成熟果實(shí)的數(shù)量。
3.6.2 不同光照條件下的西紅柿識(shí)別效果
在西紅柿采摘機(jī)器人的實(shí)際工作中,光照條件并不像實(shí)驗(yàn)室中一成不變,這對(duì)檢測(cè)識(shí)別算法模型的要求更高。為驗(yàn)證模型對(duì)于不同光照條件下西紅柿成熟果實(shí)檢測(cè)識(shí)別的魯棒性,本文選取不同光照條件拍攝的西紅柿果實(shí)圖像測(cè)試,其中包括暗光、側(cè)光、逆光與順光的情況。最終識(shí)別效果如圖13所示。
圖13 不同光照條件下的西紅柿識(shí)別效果
從圖13中可以看出,西紅柿在側(cè)光的條件下,表面光照強(qiáng)度均勻,特征明顯,檢測(cè)難度較小;暗光和逆光時(shí),西紅柿果實(shí)和枝葉的區(qū)分度明顯降低,給檢測(cè)識(shí)別帶來了很大的難度;順光時(shí),表面光照較強(qiáng),紋理特征不明顯,檢測(cè)難度增大。本文算法模型在不同光照環(huán)境下對(duì)西紅柿成熟果實(shí)的檢測(cè)識(shí)別均表現(xiàn)出良好的效果,即算法模型的魯棒性較強(qiáng)。
3.6.3 不同遮擋程度下的西紅柿識(shí)別效果
農(nóng)業(yè)園中西紅柿存在著不同程度的遮擋問題,包括果實(shí)之間的遮擋和枝葉對(duì)果實(shí)的遮擋等,都會(huì)對(duì)西紅柿檢測(cè)識(shí)別產(chǎn)生一定影響。本文針對(duì)性的在測(cè)試集中加入西紅柿之間互相遮擋及西紅柿被枝葉遮擋情況下的圖像,最終識(shí)別效果如圖14所示。
圖14 不同遮擋程度下的西紅柿識(shí)別效果
從圖14中可以看出,在遮擋程度不是很嚴(yán)重的情況下,即西紅柿果實(shí)能夠有超過一半的部分出現(xiàn)在相機(jī)視野中,依然能夠?qū)⑵錂z測(cè)出來。
3.6.4 西紅柿成熟果實(shí)檢出率與檢準(zhǔn)率
本文識(shí)別對(duì)象為西紅柿成熟果實(shí),但實(shí)際場(chǎng)景中包含未成熟果實(shí)。為進(jìn)一步驗(yàn)證本文算法模型對(duì)未成熟和成熟西紅柿果實(shí)檢測(cè)的準(zhǔn)確性和魯棒性,選取數(shù)據(jù)集中同時(shí)包含成熟和未成熟西紅柿果實(shí)的圖像,識(shí)別效果如圖15所示。
圖15 成熟和未成熟西紅柿果實(shí)識(shí)別效果
從圖15中可以看出,本文算法模型對(duì)成熟和未成熟的西紅柿果實(shí)具有較強(qiáng)的區(qū)分度。西紅柿成熟果實(shí)的實(shí)際檢出率和檢準(zhǔn)率,結(jié)果如圖16所示。
(a) 驗(yàn)證集中正確標(biāo)注的西紅柿成熟果實(shí)樣本個(gè)數(shù)
從圖16中可以看出,驗(yàn)證集中包含了203個(gè)正確標(biāo)注的成熟西紅柿果實(shí)樣本,正確檢測(cè)175個(gè),錯(cuò)誤檢測(cè)15個(gè)。由此可以得到檢出率為93.6%,檢準(zhǔn)率為92.1%,都超過了90%,基本滿足實(shí)際應(yīng)用的需求。
1) 針對(duì)復(fù)雜環(huán)境下西紅柿采摘機(jī)器人識(shí)別算法的實(shí)際應(yīng)用需求,本文基于經(jīng)典的YOLOv3目標(biāo)檢測(cè)算法進(jìn)行模型輕量化改進(jìn),降低推理計(jì)算對(duì)硬件性能需求,便于嵌入式控制器硬件部署。同時(shí)也對(duì)激活函數(shù)、錨框的聚類、非極大值抑制和損失函數(shù)進(jìn)行優(yōu)化設(shè)計(jì),提高了檢測(cè)識(shí)別算法的運(yùn)行效率,實(shí)現(xiàn)了算法在不犧牲檢測(cè)精度前提下的網(wǎng)絡(luò)模型輕量化,減少計(jì)算量和功耗,提升系統(tǒng)穩(wěn)定性,為西紅柿采摘機(jī)器人的產(chǎn)業(yè)化應(yīng)用提供了方法與途徑。
2) 訓(xùn)練后得到西紅柿成熟果實(shí)識(shí)別模型的準(zhǔn)確率為92.11%,召回率為86.21,F1評(píng)分為0.89,平均檢測(cè)精度為84.58%。