張立杰 周舒驊 李 娜 張延強 陳廣毅 高 笑
(河北農(nóng)業(yè)大學(xué)機(jī)電工程學(xué)院, 保定 071001)
隨著科技的發(fā)展,水果自動化分級設(shè)備日益完善,視覺識別系統(tǒng)作為水果自動化分級設(shè)備的一部分,其目標(biāo)檢測的速度與分級準(zhǔn)確率對水果自動化分級的工作效率和工作時長有較大影響。穩(wěn)定快速的水果識別分級視覺系統(tǒng)可以讓水果自動化分級設(shè)備長時間穩(wěn)定而快速的工作,壓縮勞動成本,提高生產(chǎn)效率。高精度且高效率的蘋果定位分級算法對提高農(nóng)業(yè)生產(chǎn)力有較大的應(yīng)用價值和現(xiàn)實意義。
目前水果視覺定位與分級方面的研究已經(jīng)取得了一定的進(jìn)展[1]。李先鋒等[2]通過D-S證據(jù)理論進(jìn)行決策級融合,對蘋果形狀和顏色進(jìn)行分級,分級正確率達(dá)93.75%。夏卿等[3]提出基于粒子群優(yōu)化 (Particle swarm optimization, PSO) 改進(jìn)算法的最小二乘向量機(jī) (LS-SVM) 的蘋果分級方法,分級準(zhǔn)確率達(dá)到96%。相比于常規(guī)方法,深度卷積神經(jīng)網(wǎng)絡(luò)在蘋果識別領(lǐng)域顯現(xiàn)出巨大的優(yōu)越性[4-8],卷積神經(jīng)網(wǎng)絡(luò)由于其對目標(biāo)高維特征的提取,使得對各等級蘋果的快速在線識別變成可能。何進(jìn)榮等[9]提出了基于多卷積神經(jīng)網(wǎng)絡(luò)融合DXNet模型的蘋果外部品質(zhì)分級方法,分級準(zhǔn)確率達(dá)到97.84%。目前的目標(biāo)檢測與分類卷積神經(jīng)網(wǎng)絡(luò)主要分為兩種,一種是基于區(qū)域預(yù)測的目標(biāo)檢測算法,典型的算法有RCNN[10]、Fast R-CNN[11]和Faster R-CNN[12-13],稱為兩步法 (Two-stage) 目標(biāo)檢測,核心思想是先獲得建議區(qū)域然后在當(dāng)前區(qū)域內(nèi)進(jìn)行分類。另一種方法是無區(qū)域預(yù)測的目標(biāo)檢測算法,典型算法有YOLO[14-15]、SSD[16],稱為一步法 (One-stage) 目標(biāo)檢測,核心思想是用單一的卷積神經(jīng)網(wǎng)絡(luò)直接使用整幅圖像來預(yù)測目標(biāo)的位置及其種類。
本文提出用改進(jìn)型SSD算法來實現(xiàn)蘋果自動化高速分級與定位,在不影響精度的情況下壓縮網(wǎng)絡(luò)規(guī)模來加快檢測速度[17-21],在不同的輸入層條件下分別進(jìn)行網(wǎng)絡(luò)的識別實驗,以驗證不同輸入層對檢測精度的影響,在相同輸入層條件下進(jìn)行網(wǎng)絡(luò)的檢測實驗,以檢測網(wǎng)絡(luò)的效果,并實驗驗證實時性。
實驗所用蘋果均為產(chǎn)自陜西省洛川市的紅富士蘋果,圖像采集使用蘋果自動化分級設(shè)備中的視覺采集裝置,其具有LED補光燈,通過ZED雙目立體相機(jī)采集蘋果頂部的RGB圖像與深度圖像。根據(jù)表1中的各項指標(biāo)將蘋果分為特等果、一等果、二等果、等外果4個等級,分別采集人工分級后蘋果頂部的RGB圖像與其對應(yīng)的深度圖像。
表1 蘋果等級分級標(biāo)準(zhǔn)Tab.1 Apple classification standard
表2 基于改進(jìn)型SSD的蘋果定位分級結(jié)果Tab.2 Apple positioning and grading results based on improved SSD
表3 不同目標(biāo)檢測網(wǎng)絡(luò)識別性能對比Tab.3 Performance comparison of various target detection networks
表4 不同果實數(shù)目條件下各等級蘋果分級精確率Tab.4 Classification accuracy of apples of different grades under different fruit numbers
表5 4種算法對不同數(shù)量蘋果圖像的實驗結(jié)果Tab.5 Experimental results of four algorithms for images with different numbers of apples
4種等級蘋果頂部的RGB圖像與深度圖像如圖1所示,蘋果均頂部朝上,并隨機(jī)地分布在傳送帶上,RGB圖像中蘋果的形狀特征清晰,并與綠色的傳送帶形成鮮明對比,深度圖像中蘋果表面的深度信息完整,與傳送帶形成明顯的距離差。
圖1 4種等級蘋果的RGB圖像與深度圖像Fig.1 Four levels of apple’s RGB image and depth image
如果僅使用蘋果頂部的RGB圖像對蘋果進(jìn)行分級,只能通過蘋果的果徑特征對蘋果進(jìn)行分類。為了對蘋果的果形特征進(jìn)行分級,一般需要同時采集蘋果的側(cè)面RGB圖像獲取蘋果縱徑來計算果形系數(shù),對于這種隨機(jī)分布在傳送帶上的蘋果,無法對其側(cè)面圖像進(jìn)行獲取,因此無法對其果徑與果形進(jìn)行綜合分級操作。
因此本文考慮用RGB圖像與深度圖像進(jìn)行特征融合后的圖像,通過卷積神經(jīng)網(wǎng)絡(luò)來提取蘋果特征,采用端到端的整體訓(xùn)練讓神經(jīng)網(wǎng)絡(luò)自適應(yīng)地學(xué)習(xí)不同等級蘋果的特征,實現(xiàn)對隨機(jī)分布在傳送帶上蘋果的識別和分級。
SSD算法是目前為止最先進(jìn)的目標(biāo)檢測方案之一,它能夠在一幅圖像中同時檢測和分類對象。
1.2.1基于SSD算法的蘋果識別分級
本文提出的基于改進(jìn)型SSD算法的蘋果定位與分級方法能夠定位并分級視頻中的蘋果并返回其坐標(biāo)與對應(yīng)等級。不同于區(qū)域預(yù)測的目標(biāo)檢測算法 (Faster R-CNN),SSD算法通過單個卷積神經(jīng)網(wǎng)絡(luò)檢測整個圖像回歸目標(biāo)的類別和位置,SSD算法采用CNN直接來進(jìn)行檢測,而不是像YOLO那樣在全連接層之后進(jìn)行檢測。為讓卷積神經(jīng)網(wǎng)絡(luò)遍歷整幅圖像后能夠得到固定格式的預(yù)測尺寸,首先將圖像調(diào)整為固定尺寸300像素×300像素,再分成6種不同尺寸的網(wǎng)格;然后在這些網(wǎng)格上面的每一個點構(gòu)造6個不同尺度的默認(rèn)框 (Default boxes),分別進(jìn)行檢測和分類,生成多個初步符合條件的默認(rèn)框;最后,將不同尺寸網(wǎng)格獲得的默認(rèn)框結(jié)合起來,經(jīng)過非極大抑制 (Non-maximum suppression, NMS) 方法過濾掉一部分重疊或者不正確的默認(rèn)框,生成最終檢測結(jié)果,具體包含5個預(yù)測參數(shù):代表目標(biāo)坐標(biāo)x、y,目標(biāo)外包矩形的寬度w和高度h,用來通過閾值對預(yù)測結(jié)果進(jìn)行取舍的置信度。
1.2.2神經(jīng)網(wǎng)絡(luò)改進(jìn)設(shè)計
原SSD算法卷積層主要由VGG-Base、Extra-Layers、Pred-Layers 3部分組成。VGG-Base作為基礎(chǔ)框架用來提取圖像的特征,Extra-Layers對VGG的feature做進(jìn)一步處理,增加算法對圖像的感受野,使得Extra-Layers得到的特征圖承載更多抽象信息。待預(yù)測的特征圖由6種特征圖組成,最終通過Pred-Layer得到6種特征圖預(yù)測框的坐標(biāo)、置信度、類別信息。為了提高算法的檢測效率,運用一種深度可分離卷積塊替代VGG-Base中的標(biāo)準(zhǔn)卷積以減小算法數(shù)據(jù)量和算法檢測所用時間。同時本文對蘋果的分級條件是蘋果的果徑和果形這兩個因素,并且僅通過蘋果的頂部圖像進(jìn)行分級,需要引入與蘋果縱徑相關(guān)的圖像信息,所以對輸入層進(jìn)行修改,同時輸入RGB圖像與深度圖像。深度圖像與RGB圖像通道融合,將RGB圖像的3個通道進(jìn)行分離并去除對目標(biāo)檢測影響最小的通道,使用深度圖代替去除的通道將融合后的三通道圖像作為輸入層輸入網(wǎng)絡(luò)進(jìn)行檢測[22],通道融合過程如圖2所示。融合后的圖像包含2個顏色通道和1個深度通道,其中深度通道用于引入深度信息實現(xiàn)對縱徑的預(yù)測,由于ZED雙目立體相機(jī)與傳送帶之間的距離是固定的,所以深度圖中可以通過蘋果頂部深度特征來預(yù)測蘋果縱徑。而結(jié)合保留的GB兩個通道所具備的顏色與果徑特征可以通過卷積神經(jīng)網(wǎng)絡(luò)對蘋果的位置與等級進(jìn)行綜合預(yù)測。
圖2 輸入層信息融合過程示意圖Fig.2 Schematic of input layer information fusion process
本文設(shè)計的神經(jīng)網(wǎng)絡(luò)使用1層卷積核為3×3、步長為2的標(biāo)準(zhǔn)卷積對輸入層的圖像進(jìn)行初步特征提取,輸出為150×150×64,繼續(xù)用13層深度可分離卷積塊對圖像特征進(jìn)行提取,最后輸出為19×19×1 024,深度可分離卷積塊的結(jié)構(gòu)如圖3所示。首先,逐通道卷積(Depthwise convolution) 分別對每個輸入通道進(jìn)行3×3卷積,并對其進(jìn)行歸一化,使用ReLU函數(shù)進(jìn)行激活。然后,逐點卷積(Pointwise convolution) 進(jìn)行1×1卷積,以調(diào)整輸出通道數(shù),使深度可分離卷積塊與標(biāo)準(zhǔn)卷積具有相同的輸出維度,同樣進(jìn)行歸一化并使用ReLU函數(shù)進(jìn)行激活[23-24]。接著使用4層標(biāo)準(zhǔn)卷積繼續(xù)進(jìn)行特征提取,最后輸出張量為1×1×16。分別將輸出張量為38×38×256、19×19×1 024、10×10×512、5×5×256、3×3×256、1×1×256的6個特征層上的每個像素映射到輸入圖像上產(chǎn)生若干個默認(rèn)框,然后對每個默認(rèn)框進(jìn)行分類和回歸,該分類和回歸操作是通過3×3×n×(classes+4)的卷積操作完成的。其中n代表6個特征層上每個像素生成的默認(rèn)框數(shù)量,在大小為38×38、3×3、1×1的特征層上數(shù)量為4,其余3個特征層上數(shù)量為6;classes為類別數(shù)量,本文設(shè)置為4。對每個默認(rèn)框逐級分類和回歸后進(jìn)行非極大抑制操作,即得出目標(biāo)檢測結(jié)果。具體結(jié)構(gòu)如圖4所示。
圖3 深度可分離卷積塊Fig.3 Depthwise separable convolution
圖4 算法框架圖Fig.4 Algorithm frame diagram
表6 4種算法對使用不同硬件的檢測速度Tab.6 Four algorithms for detection speed by using different hardwares
1.2.3SSD算法損失函數(shù)
SSD算法的損失函數(shù)包含兩部分,分別為對目標(biāo)位置進(jìn)行預(yù)測的位置誤差(Localization loss, loc)與對目標(biāo)分類進(jìn)行預(yù)測的置信度誤差(Confidence loss, conf)的加權(quán)和,分別采用Smooth loss和Softmax loss進(jìn)行計算,總的系統(tǒng)損失計算式為
(1)
式中r——預(yù)測框與真實框的匹配結(jié)果,如果匹配則設(shè)為1,不匹配設(shè)為0
c——Softmax函數(shù)對每一個類別的置信度
l——預(yù)測標(biāo)簽框
g——實際標(biāo)簽框
N——默認(rèn)框數(shù)量
Lconf、Lloc——類別置信損失函數(shù)和位置損失函數(shù)
α——加權(quán)系數(shù),設(shè)置分類損失和位置損失的比例
損失函數(shù)會遍歷所有默認(rèn)框,如果默認(rèn)框與真實框的標(biāo)簽匹配,就對損失函數(shù)進(jìn)行計算,否則損失函數(shù)值為0。
1.2.4預(yù)測過程
預(yù)測過程是對于每個預(yù)測框,首先根據(jù)類別置信度確定其類別(置信度最大者)與置信度,并濾除屬于背景的預(yù)測框。然后根據(jù)置信度閾值過濾掉閾值較低的預(yù)測框。對留下的預(yù)測框進(jìn)行解碼,根據(jù)默認(rèn)框得到其真實的位置參數(shù)。最后進(jìn)行NMS,過濾掉那些重疊度較大的預(yù)測框。最后剩余的預(yù)測框就是檢測結(jié)果。
分級設(shè)備如圖5所示,蘋果是頂部朝上并隨機(jī)排列的,通過傳送帶送入分級設(shè)備然后進(jìn)行分級。在實際應(yīng)用中設(shè)備運行是按照以下過程:將蘋果頂部朝上隨機(jī)放在傳送帶上→輸送蘋果進(jìn)入分級框→ZED雙目立體相機(jī)圖像采集→改進(jìn)型SSD網(wǎng)絡(luò)識別與分級→Delta機(jī)器人分揀。
圖5 系統(tǒng)的硬件結(jié)構(gòu)Fig.5 Hardware structure of system1.傳送帶 2.蘋果 3.視覺采集箱 4.ZED雙目立體相機(jī) 5.Delta機(jī)器人 6.工作站
采集得到的蘋果圖像為2 624幅,其中特等果圖像480幅,一等果圖像1 024幅,二等果圖像558幅,等外果圖像562幅。其中2 362幅圖像用來訓(xùn)練算法,262幅圖像用來驗證算法,比例約為9∶1。
本文中所有的訓(xùn)練和測試均在同一臺工作站進(jìn)行,工作站的主要配置為Intel Core (TM) i7-11700k CPU@3.6 GHz、8 GB的GPU GeForce RTX 3060 Ti和16 GB的運行內(nèi)存。所有程序均是由Python語言編寫并調(diào)用CUDA、Cudnn、OpenCV、Tensorflow 1.15、Keras 2.3.1庫并在Ubuntu 20.04系統(tǒng)下運行,訓(xùn)練和測試算法時分別單獨使用CPU和GPU。
訓(xùn)練時采用16個樣本作為一個處理單元,每次更新權(quán)值時用BN (Batch normalization) 進(jìn)行正則化,并且在每層中加入丟棄層 (Dropout),以保持每層和提取特征的相互獨立,其丟棄比例為0.5,動量 (Momentum) 設(shè)置為0.937,權(quán)值衰減 (Decay) 設(shè)置為5×10-4,優(yōu)化器 (Optimizer) 選用Adam,最大學(xué)習(xí)率 (Max learning rate) 設(shè)置為 0.002,最小學(xué)習(xí)率 (Min learning rate) 設(shè)置為2×10-5,學(xué)習(xí)率衰減遵循余弦退火 (Cosine annealing),實際計算式為
(2)
式中ηt——學(xué)習(xí)率
i——訓(xùn)練運行次數(shù)
Tcur——當(dāng)前迭代周期(Epoch)數(shù)
Ti——迭代周期總數(shù)
選取經(jīng)人工分級的不同等級蘋果圖像計算每個像素點對應(yīng)的深度值獲取深度圖,分辨率與RGB圖像相同。將RGB圖像的GB通道提取出來并將深度圖像與其重新組合得到DGB圖像作為訓(xùn)練圖像。為了更精準(zhǔn)地對DGB圖像中的蘋果進(jìn)行標(biāo)注,首先使用LabelImg對RGB圖像中的蘋果位置進(jìn)行準(zhǔn)確標(biāo)注,標(biāo)注信息采用PASCAL VOC數(shù)據(jù)集的格式進(jìn)行保存,其中包含目標(biāo)蘋果的類別信息和外包邊框。然后將RGB圖像替換為DGB圖像,其中DGB圖像的蘋果位置和等級與RGB圖像中的完全相同。接著進(jìn)行歸一化處理,將目標(biāo)的實際數(shù)據(jù)除以圖像的寬度和高度,得到的數(shù)據(jù)都在0~1的范圍之內(nèi),使得訓(xùn)練時能夠更快地讀取數(shù)據(jù),并且能夠訓(xùn)練不同尺寸的圖像,其具體格式為5個參數(shù)作一組數(shù)據(jù),分別包含index(類別的序列),x(目標(biāo)中心的x坐標(biāo)),y(目標(biāo)中心的y坐標(biāo)),w(目標(biāo)的寬),h(目標(biāo)的高)。各參數(shù)的計算公式為
(3)
式中xmax、ymax——邊框右下角坐標(biāo)值
xmin、ymin——邊框左上角坐標(biāo)值
wi、hi——圖像寬和高
深度學(xué)習(xí)需要大量的數(shù)據(jù)進(jìn)行訓(xùn)練,2 600幅圖像數(shù)據(jù)量較少。訓(xùn)練前對數(shù)據(jù)進(jìn)行數(shù)據(jù)增強來增加數(shù)據(jù),其中旋轉(zhuǎn)角度的變化范圍從45°到315°,并對其進(jìn)行鏡像,最終生成了11 200幅圖像以供訓(xùn)練使用。
最終算法一共訓(xùn)練700個迭代周期(Epoch),每個迭代周期進(jìn)行467次訓(xùn)練 (Iteration),訓(xùn)練共使用了7 840 000幅圖像(在11 200幅圖像中隨機(jī)抽取并重復(fù)使用),其訓(xùn)練的損失值 (Loss) 變化圖如圖6所示,可以看出算法在前50個迭代周期中迅速擬合,Loss值快速變小,在200個迭代周期后逐漸穩(wěn)定,只有稍許振蕩。
圖6 網(wǎng)絡(luò)訓(xùn)練損失曲線Fig.6 Network training loss curve
在訓(xùn)練中,平均每隔10個迭代周期輸出一次權(quán)值 (Weights),算法性能并不是迭代的次數(shù)越多越好,過多的訓(xùn)練可能導(dǎo)致過擬合,所以需要對訓(xùn)練出來的權(quán)值進(jìn)行測試和評估。
本文采用客觀評價標(biāo)準(zhǔn)來評估蘋果識別與分級系統(tǒng),使用精確率 (Precision)、召回率 (Recall) 和平均精度均值 (Mean average precision, mAP) 來評估算法。并且為算法找出合適的閾值 (Threshold),通過算法預(yù)測的置信度來選擇合適的目標(biāo)。
首先找到mAP最高的權(quán)值文件,以篩選出整體性能足夠高的權(quán)值。然后在單獨找出的權(quán)值中不斷地調(diào)整閾值,衡量精確率、召回率和平均精度,使之能按照自身需求去檢測當(dāng)前環(huán)境下的蘋果。
如果閾值選擇不合適下,會出現(xiàn)如圖7所示結(jié)果,當(dāng)閾值過低時會出現(xiàn)誤識別與重復(fù)識別,當(dāng)閾值過高時會漏識別。
圖7 閾值對檢測的影響Fig.7 Impact of threshold on detection
算法訓(xùn)練好后需要對其性能進(jìn)行評估以找到最優(yōu)權(quán)值,用mAP評估算法的整體性能,然后在mAP最高的權(quán)值中通過對比不同閾值下精確率、召回率和mAP的變化選擇最優(yōu)閾值。之后對不同輸入層下的蘋果識別與分級效果進(jìn)行實驗,并與其他算法進(jìn)行比較。
在本文的實驗中,對4種不同的輸入層組合分別進(jìn)行訓(xùn)練,每種輸入層訓(xùn)練迭代700個迭代周期,每10個迭代周期輸出一次權(quán)值,所以每種輸入層得到70個權(quán)值,需要在這70個權(quán)值中找出一個mAP最高的輸入層組合。計算出來的實驗結(jié)果如圖8所示。
從圖8中可以看出,當(dāng)?shù)芷跀?shù)分別達(dá)到400、500、400、300時輸入層分別為RGB、RGD、DGB、RDB的算法mAP已經(jīng)穩(wěn)定,不再發(fā)生變化,其中輸入層組合為DGB時mAP總體大于其它輸入層組合,mAP最大為98.37%,此為本文選用的權(quán)值。
算法預(yù)測出目標(biāo)的置信度后需要使用預(yù)設(shè)的閾值對其進(jìn)行篩選。通過調(diào)整置信度閾值,比較衡量算法在不同閾值下對測試集中4個等級蘋果識別與分級的精確率、召回率、F1值和mAP的變化,結(jié)合自動化分級設(shè)備對蘋果進(jìn)行分級的實際需求,確定算法的最佳閾值。經(jīng)實驗測試,不同置信度閾值下算法的精確率、召回率、F1值、mAP曲線如圖9所示。
圖9 不同閾值下參數(shù)的變化Fig.9 Changes in various parameters at different thresholds
對于面向自動化分級設(shè)備的蘋果等級,需要對傳送帶識別區(qū)內(nèi)的蘋果進(jìn)行實時識別,同時對識別到的蘋果進(jìn)行分級,因而在算法識別的精確率和召回率之間需要優(yōu)先考慮精確率。另一方面,在選擇閾值時需要輔助參考用于評估算法綜合性能的指標(biāo)F1值和mAP,其能同時兼顧精確率和召回率。
由圖9可知,當(dāng)置信度小于0.8時,識別精確率較低,不足90%;當(dāng)置信度閾值高于0.8時,識別算法的mAP降低至90%以下;因而綜合考慮算法的識別精確率與mAP,當(dāng)置信度為0.8時,算法的性能表現(xiàn)最好,此時算法的精確率、召回率、F1值、mAP分別為94.89%、93.68%、94.28%和98.37%。
3.3.1蘋果等級識別結(jié)果與分析
為了驗證所設(shè)計的蘋果等級識別算法的性能,對該算法在測試集圖像上的識別結(jié)果進(jìn)行進(jìn)一步分析。測試集262幅圖像中共有1 348個蘋果目標(biāo),其中特等果、一等果、二等果、等外果的數(shù)量分別為243、503、284、318個。
算法的具體識別結(jié)果如表2所示,可以看出,針對特等、一等、二等、等外果,本文所提出的算法對其識別的精確率及F1值分別為95.00%、99.69%、99.51%、99.28%及92.00%、97.00%、92.00%、96.00%,總體的識別精確率、召回率、mAP(4個等級蘋果的平均精度)及F1值均在90%以上,分別為94.89%、93.68%、98.37%、94.25%,滿足蘋果識別分級的精度要求。
3.3.2不同目標(biāo)檢測算法識別結(jié)果對比
為了進(jìn)一步分析所提出的蘋果定位與分級算法的性能,將改進(jìn)型SSD算法與原SSD、Faster R-CNN、YOLO v5算法在測試集圖像上進(jìn)行了識別結(jié)果對比。以mAP、平均識別耗時等作為評價指標(biāo),各算法的識別結(jié)果、算法體積(存儲空間占用量)及參數(shù)數(shù)量如表3所示。
由表3可以看出,本文提出的改進(jìn)型SSD算法的mAP僅比原SSD算法降低0.31個百分點,與Faster R-CNN、YOLO v5[25-28]算法相比分別高1.76、10.73個百分點。針對算法的識別耗時,本文提出的改進(jìn)型SSD算法在測試集上單幅圖像平均識別時間可達(dá)5.60 ms(177.5 f/s),能夠滿足實時高速識別的要求,比原SSD算法檢測耗時減少49.73%,與Faster R-CNN、YOLO v5算法相比分別減少91.60%、52.66%。另一方面還可以看出,本文所提出算法的存儲空間占用量為27.51 MB,為原SSD算法的43.64%,說明所提出的網(wǎng)絡(luò)在保證精度的同時有效地實現(xiàn)了網(wǎng)絡(luò)的輕量化。
3.3.3不同果實數(shù)目下各等級蘋果的分級精確率對比實驗
因為在實際分級過程中蘋果數(shù)量在不斷變化,為驗證改進(jìn)前后在不同果實數(shù)目條件下不同等級蘋果的分級情況,因此設(shè)置改進(jìn)前后網(wǎng)絡(luò)對不同果實數(shù)目條件下各等級蘋果的分級精確率進(jìn)行對比實驗,分別對4個等級的蘋果設(shè)置單個蘋果、多個蘋果和密集蘋果,對比改進(jìn)前后的識別精確率。
實驗中測試集共有300幅圖像,其中根據(jù)圖像所包含蘋果數(shù)量為單個、2~10個以及10個以上3種,每種數(shù)量的圖像均包含4種等級的蘋果圖像各25幅,每幅圖像中只包含一個等級的蘋果,將不同數(shù)目的蘋果分別使用改進(jìn)前后的SSD算法進(jìn)行識別,對比不同果實數(shù)目下各等級蘋果的分級精確率,其最終結(jié)果如表4所示。
從表4可以看出,不同數(shù)目果實條件下,各等級蘋果的分級精確率均高于95%,且改進(jìn)后的算法與原SSD算法相比,精確率僅有略微降低,最大相差僅2.13個百分點,完全滿足蘋果分級要求。
3.3.4隨機(jī)分布條件下不同果實數(shù)目的對比實驗
在自動化分級設(shè)備運行過程中,隨著蘋果的隨機(jī)上料,進(jìn)入視覺采集區(qū)域的蘋果數(shù)量與等級會隨機(jī)變化,數(shù)目較多時識別難度將會增大。因此設(shè)置不同數(shù)目下隨機(jī)分布蘋果檢測的對比實驗,分別分單個蘋果、多個蘋果和密集蘋果,對比4種算法在不同數(shù)目蘋果下隨機(jī)分布蘋果的檢測性能,檢測效果如圖10所示。
圖10 4種算法對不同數(shù)量蘋果的檢測效果Fig.10 Detection effect of four algorithms on different numbers of apples
實驗測試集共320幅圖像,包含2 030個蘋果,按照果實數(shù)量分為3類,其中單個蘋果80幅圖像包含80個蘋果,多個蘋果186幅圖像,包含1 302個蘋果,密集蘋果54幅圖像包含648個蘋果。每類隨機(jī)抽取30幅圖像作為實驗測試集,用4種不同的算法進(jìn)行檢測,計算出mAP。重復(fù)以上步驟3次,取平均值,最后將3類結(jié)果取平均得到綜合效果,其最終結(jié)果如表5所示。
從表5可以看出,改進(jìn)型SSD算法mAP僅比原SSD算法降低0.09個百分點,且均高于其余2個算法,蘋果數(shù)量越少,mAP越高,數(shù)量由1增加到10以下時mAP下降不多。但是遇到密集蘋果時,mAP降低近10個百分點,因為密集蘋果的圖像中蘋果尺寸不一,導(dǎo)致有些蘋果沒有被識別,同時因為卷積神經(jīng)網(wǎng)絡(luò)本身固有的特性,不斷地卷積會在深層網(wǎng)絡(luò)中丟失高分辨率時小目標(biāo)的特征,而Faster R-CNN是基于區(qū)域推薦的算法,在RPN網(wǎng)絡(luò)輸出矩形候選區(qū)域時就已丟失了小目標(biāo)區(qū)域,進(jìn)行分類并輸出預(yù)測結(jié)果時自然不會出現(xiàn)小蘋果。但是改進(jìn)型SSD在淺層網(wǎng)絡(luò)中提取出特征用于定位與分類,并輸出更小的柵格預(yù)測結(jié)果,降低了深層卷積對小目標(biāo)的影響,因此在密集蘋果上mAP高出Faster R-CNN 1.33個百分點。而YOLO v5雖定位準(zhǔn)確度很高,但在遇到多個蘋果和密集蘋果時分類準(zhǔn)確率很低,會錯誤識別蘋果的等級。從綜合結(jié)果來看,改進(jìn)型SSD算法能夠勝任不同數(shù)目蘋果的檢測。
為了驗證改進(jìn)型SSD在檢測速度上的優(yōu)勢,對4種算法分別在使用GPU與CPU的情況下的檢測速度進(jìn)行測試,統(tǒng)計結(jié)果如表6所示。
由于4種算法在做卷積運算前需要對圖像進(jìn)行縮放到固定尺寸,所以不同分辨率圖像在本文算法下檢測時間的差異只與縮放過程所用的時間有關(guān),其余流程并沒有區(qū)別。本文實驗測試用的圖像尺寸均為1 920像素×1 080像素,考慮到蘋果識別與分級系統(tǒng)是搭載在蘋果分級設(shè)備的工作站中,有的工作站只有CPU,為了減少硬件成本,需要在單CPU的情況下運行,所以分別在GPU和CPU下進(jìn)行了測試,檢測的精度沒有變化,CPU檢測時長較GPU長。
在GPU下算法檢測200幅圖像用時1.18 s,在CPU下檢測200幅圖像耗時3.19 s,即為175.17 f/s和62.64 f/s,每幅圖像平均檢測時間為5.71 ms和15.96 ms,與原SSD算法相比檢測用時分別減少39.45%和78.28%。該檢測速度能夠滿足自動化分級設(shè)備的實時且高速分揀需求。
(1)針對蘋果果徑與果形自動化分級,提出了基于改進(jìn)型SSD算法的蘋果識別與分級方法。實驗表明該算法的檢測精度高、速度快,選用的網(wǎng)絡(luò)在真實環(huán)境下進(jìn)行檢測,在GPU和CPU下每幅圖像的平均檢測時間分別達(dá)到5.71 ms和15.96 ms,即檢測視頻的幀率分別達(dá)到175.17 f/s和62.64 f/s,召回率、精確率、mAP和F1值分別達(dá)到93.68%、94.89%、98.37%和94.25%。
(2)針對自動化分級設(shè)備上高速識別環(huán)境,提出用改進(jìn)型SSD網(wǎng)絡(luò)定位并分級蘋果,與原SSD算法相比mAP僅下降0.31個百分點,檢測用時減少49.73%,算法體積壓縮至原SSD算法的43.64%。
(3)對比了在不同輸入層組合下的檢測結(jié)果,當(dāng)使用DGB圖像組合作為輸入層時,其mAP總體高于其他3種輸入層組合,且僅使用帶有顏色信息的圖像作為輸入層時,其mAP明顯低于引入深度信息后的輸入層組合。
(4)對比了改進(jìn)型SSD網(wǎng)絡(luò)與原SSD網(wǎng)絡(luò)在不同果實數(shù)量下,對各等級蘋果的分級準(zhǔn)確率,其分級準(zhǔn)確率與原SSD網(wǎng)絡(luò)相差不大,準(zhǔn)確率均在95%以上,分級準(zhǔn)確率最多僅比原SSD算法下降2.13個百分點,滿足蘋果分級要求。
(5)對比了原SSD、Faster R-CNN、YOLO v5和改進(jìn)型SSD在不同蘋果數(shù)目下隨機(jī)分布蘋果的檢測結(jié)果,其mAP總體比Faster R-CNN高1.10個百分點,比YOLO v5高10.29個百分點,并且在密集蘋果的圖像檢測中,改進(jìn)型SSD的mAP比Faster R-CNN 高1.33個百分點,比YOLO v5高14.23個百分點,本文算法檢測精度優(yōu)勢更為明顯。
(6)由于深度學(xué)習(xí)需要大量的計算能力,在實際使用中還需要考慮功耗和穩(wěn)定的問題,因此對比了原SSD、Faster R-CNN、YOLO v5算法和改進(jìn)型SSD算法分別在使用GPU與CPU的硬件條件下的檢測速度。與原SSD算法相比,本文所提出的改進(jìn)算法檢測用時在硬件為GPU和CPU時分別減少39.45%和78.28%。與Faster R-CNN、YOLO v5算法相比,無論是GPU還是CPU下檢測用時均大幅減少,且檢測精度也高于這2種算法。