張永飛,裴悅琨*,姜艷超,魏冉,周品志
(1.大連大學遼寧省北斗高精度位置服務技術工程實驗室,遼寧 大連 116622;2.大連大學大連市環(huán)境感知與智能控制重點實驗室,遼寧 大連 116622)
櫻桃的大小反映了其質量水平,櫻桃果梗的有無對保鮮時長至關重要,果梗缺損會導致其內部水分流失,加上其干枯和腐爛,會進一步影響到櫻桃的品質。品質的好壞不僅影響著產品本身的價值,而且直接影響消費者的購買欲望,間接影響果農的經(jīng)濟收入。因此,對櫻桃尺寸和果梗的實時檢測研究很有必要。傳統(tǒng)的櫻桃檢測方法主要是利用人工和機械進行分揀。人工分揀時會因疲憊、個人的主觀意識不同產生誤差,不僅費時費力、效率低,而且會影響分級的質量。采用機械分揀的方法大多是通過設計專門的硬件結構來檢測水果的大小和質量[1],然而這些方法不僅會對櫻桃表面造成損傷,而且分級誤差較大。因此,采用機器視覺技術進行水果的實時檢測分級是實現(xiàn)水果自動化分級進而商品化的關鍵性一步[2-3]。
近些年來,由于機器學習方法的引入,使得水果分級檢測的準確率和檢測速度得到了很大程度的提高[4]。朱堅民等[5]提出一種新的水果特征提取方法,利用該方法使得水果的檢測速度和準確率得到了顯著的提升。張玉華等[6]根據(jù)水果的特征信息進行分類訓練,采用信息融合法將水果內外部特征信息融合,建立基于多傳感器多信息融合的水果分級模型。茍爽等[7]利用草莓R、G、B通道灰度值標準差和平均值作為評價成熟度的特征參數(shù),采用機器學習進行網(wǎng)絡的訓練,分級準確率高于90%。張青等[8]研究了草莓質量和形狀在線分級的問題,采用閾值分割法提取草莓的周長和面積參數(shù),利用多元線性回歸分析建立草莓質量分級模型,質量分級準確率為89.5%,形狀分級正確率為96.7%。余楊[9]針對蘋果自動分級篩選能力低下的問題,提出了一種新的蘋果外觀多特征分級方法,綜合分級方法準確率為95%,處理速度為7幀/s。Momin等[10]基于全局閾值彩色二值化處理圖像算法,采用中值濾波和形態(tài)學分析方法將芒果分為大、中、小3個質量等級。對于草莓形狀尺寸分級,Oo等[11]提出了一種簡單有效的自動估計和分類的圖像處理算法,利用該方法對草莓果實的二維圖像進行直徑、長度和頂點角的估計。結果表明,在沒有花萼遮擋的草莓直徑和長度估計精度分別為94%和93%,有花萼遮擋的草莓直徑和長度估計精度分別為94%和89%。馬本學[12]提出一種利用數(shù)學形態(tài)學方法對香梨果梗進行自動提取的新方法。肖愛玲等[13]采用了基于圖像形態(tài)學的一種快速檢測駿棗果梗方法對駿棗分級系統(tǒng)中果梗有無進行判別,檢測速度平均為0.45 s/個,果梗識別準確率為92.7%,有無果梗誤判率為0。綜上所述,基于對水果形狀、大小和有無果梗的檢測方法,模型比較單一,只針對一種特定的水果適用,在檢測不同類型目標的時候,需要設計不同的對象表征模型,且算法受周邊環(huán)境的影響較大。
由于人工分揀和傳統(tǒng)的圖像處理方法面臨檢測速度和環(huán)境影響的局限性,櫻桃的分級檢測未在工業(yè)現(xiàn)場廣泛應用。目前,卷積神經(jīng)網(wǎng)絡已是圖像處理領域核心算法,由于其強大的特征提取能力已經(jīng)廣泛應用于人臉識別[14-16]、自動駕駛[17-19]、安防[20-23]、食品[24-25]等領域。然而,卷積神經(jīng)網(wǎng)絡目前一般用于分類,用于點的回歸研究較少。因此為了滿足櫻桃分級系統(tǒng)的實際需求,本文提出基于深度學習的關鍵點檢測算法對櫻桃尺寸和有無果梗進行檢測,能夠實現(xiàn)實時檢測,達到更高的準確率和更小的誤檢率,以期提升櫻桃分級檢測的自動化水平。
本文提出的基于深度卷積神經(jīng)網(wǎng)絡的櫻桃大小分級和有無果梗的檢測模型的網(wǎng)絡結構如圖1所示。
圖1 模型結構圖Fig.1 Model structure diagram
網(wǎng)絡結構主要包括輸入層、模塊1、模塊2、全局平均池化和輸出層。模型采用的是全卷積網(wǎng)絡結構,利用反卷積層對最后一卷積層的特征圖進行上采樣,使其恢復到與輸入圖像相同的尺寸,從而可以對每一個像素都產生一個預測,同時保留了原始輸入圖像中的空間信息。網(wǎng)絡輸入為R、G、B三通道圖像(三原色R表示紅色,G表示綠色,B表示藍色,像素大小為416×416),使用深度卷積層自動捕捉櫻桃的關鍵點信息,能夠提取有效信息并提高模型的訓練速度。模塊1中的殘差連接可以增加網(wǎng)絡深度,使得特征映射對輸出的變化更加敏感,模型擁有更強的表達能力;模塊2采用步長為2的卷積層縮小特征圖譜尺寸,使其成為更低維表征;為了對整個網(wǎng)絡在結構上達到正則化、防止過擬合,該模型采用了全局平均池化代替了全連接層,直接剔除了全連接層中黑箱的特征,賦予了每個通道實際的意義?;谔卣魈崛【W(wǎng)絡得到特征向量進行全局平均池化,建立4個分支用于上、下、左、右4個關鍵點坐標的回歸,形成了最終的特征表示,建立端到端的櫻桃關鍵點檢測。
模塊1由2個3×3卷積和1個1×1卷積組成,并采用了殘差連接,如圖2所示。
圖2 殘差連接塊Fig.2 Residual connector block
殘差連接能夠保證網(wǎng)絡的深度,使得特征映射對于特征信息更加敏感,而且又能減緩深層網(wǎng)絡的梯度消失。模塊2由1個3×3卷積和1個1×1卷積組成,無殘差連接,如圖3所示。
圖3 無殘差連接塊Fig.3 Residual-free connector block
3×3卷積步長為2取代池化操作降低特征維度,減少參數(shù)量,提升運算速度。經(jīng)全局平均池化形成最終的特征向量后,由4個分支分別對上、下、左、右4個關鍵點坐標進行回歸,最終分別計算上下兩點之間和左右兩點之間的歐氏距離,通過與設定的閾值進行比較,從而達到分級的目的。在進行關鍵點回歸的同時,分別賦予上(0.2)、下(0.2)、左(0.3)、右(0.3)4個點不同的權重,以著重突出櫻桃大小的檢測比有無果梗的判別更加重要。模塊中采用深度可分離卷積,將逐通道卷積和逐點卷積兩個部分結合起來,用來提取圖像特征,相比常規(guī)的卷積操作,其參數(shù)數(shù)量和運算成本比較低。在卷積之后使用批量歸一化,允許模型使用較大的學習率,減弱對初始化的強依賴性,保持隱藏層中數(shù)值的均值、方差不變,讓數(shù)值更穩(wěn)定。為了在移動端float16的低精度時也能有很好的數(shù)值分辨率,網(wǎng)絡中使用的激活函數(shù)為ReLU6,如圖4所示。
圖4 激活函數(shù)曲線圖Fig.4 Activation function curve
ReLU6定義見公式(1)。
如果對輸出值不加限制,那么輸出范圍就是0到正無窮,而低精度的float16無法精確描述其數(shù)值,帶來精度損失。
試驗硬件設備主要由圖片采集設備、計算機處理單元、輔助照明系統(tǒng)組成,如圖5所示。
圖5 硬件框架圖Fig.5 Hardware block diagram
傳送帶將櫻桃均勻地分散在圖像的采集區(qū)域。圖像采集設備包括Basler(acA2000-50GC)工業(yè)相機、頻閃控制器和激光光電開關,通過頻閃控制器和激光光電開關觸發(fā)相機拍照。計算機處理單元inter(R)Core(TM)i7-1065G7CPU@1.30GHz(8CPUs),-1.5GHz,GPU NVIDIA GeForce MX350運行內存為16 G并配置P0OE千兆網(wǎng)卡。輔助照明系統(tǒng)由發(fā)光二極管(lightemitting diode,LED)光源漫光片和梯臺型光源罩,燈罩上涂有納米漫反射涂料,保證圖像采集區(qū)域的光照強度均勻,避免了櫻桃表面的反射和底部陰影。
櫻桃在傳送帶的作用下勻速向前轉動,當傳送帶經(jīng)過頻閃控制器時,將會觸發(fā)圖像采集設備進行圖像采集,并通過POE千兆網(wǎng)卡傳輸給計算機處理單元進行存儲。首先,將采集的圖像保持長寬比例進行縮放為416×416,剩下部分采用灰色填充。采用圖像質量評價篩選出3 505張櫻桃圖像,對櫻桃果體兩側和果梗首末兩端進行關鍵點坐標標注,如圖6所示。
圖6 櫻桃標注示意圖Fig.6 Schematic diagram of cherry labeling
然后將3 505張具有標注信息的櫻桃圖像數(shù)據(jù)集按照7∶2∶1隨機劃分為訓練集(2 524張)、驗證集(631張)和測試集(350張)。其中,訓練集和驗證集(共3 155張)按照櫻桃尺寸和有無果梗分為大(637張)、中(1 665張)、?。?53張)、有果梗(2 048張)、無果梗(1 107張),測試集(350張)按照櫻桃尺寸和有無果梗分為大(28張)、中(167張)、?。?55張)、有果梗(138張)、無果梗(212張),分布如圖7和圖8所示。
圖7 訓練集、驗證集、測試集櫻桃尺寸分布圖Fig.7 Cherry size distribution of training set,verification set and test set
圖8 訓練集、驗證集、平共處測試集有無果梗分布圖Fig.8 Training set,verification set and test set have no fruit stem distribution
為了緩解梯度爆炸對模型再更新權重的影響,采用Smooth L1損失函數(shù)能夠使距離中心較遠的點和異常值不敏感、可控制梯度的量級在訓練時不容易跑飛,從而解決梯度爆炸的問題。Smooth L1從兩個方面限制梯度:1)當預測值與真實值差別過大時,梯度值不至于過大;2)當預測值與真實值差別過小時,梯度值足夠小。損失函數(shù)見公式(2),其中,x=f(xi)-yi,為真實值和預測值的差值。
櫻桃尺寸大小和有無果梗檢測模型的評價標準采用平均絕對誤差(mean absolute error,MAE),即觀測值與真實值的誤差絕對值的平均值,平均絕對誤差能更好地反映預測值誤差的實際情況,見公式(3)。
式中:fi為預測值;yi為真實值。
模型訓練采用Adam優(yōu)化器,初始學習率為1×104,學習率衰減策略為每2個迭代輪次驗證集損失不再下降時,學習率衰減為原來的一半。在模型訓練初期,使用較大的學習率進行模型優(yōu)化,隨著迭代次數(shù)增加,學習率會逐漸進行減小,保證模型在訓練后期不會有太大的波動,從而更加接近最優(yōu)解。為了防止模型過擬合,在全連接層采用隨機丟棄20%的神經(jīng)元,并采取早停策略,每經(jīng)過5個迭代輪次驗證集損失不再下降,則模型訓練停止,能夠有效緩解過擬合的發(fā)生,在一定程度上達到正則化的效果,從而增強模型的泛化能力。
為驗證本文提出模型對櫻桃大小的檢測和有無果梗判別的檢測效果,選取了經(jīng)典的卷積神經(jīng)網(wǎng)絡模型VGG19、Resnet50作為對比,模型分級檢測效果見表1。
表1 模型分級檢測效果Table 1 Model grading test effect
由表1可知,在350張測試樣本集上測試,本研究提出的模型效果最優(yōu),平均絕對誤差為6.12,網(wǎng)絡具有更強的特征提取能力,檢測精度更高。
模型訓練使用了3 155張櫻桃圖像數(shù)據(jù)訓練模型,訓練集和驗證集損失收斂情況如圖9所示,訓練過程的學習率衰減情況如圖10所示。
圖9 訓練集、驗證集損失函數(shù)曲線圖Fig.9 Loss function curves of training set and verification set
圖10 學習率迭代曲線圖Fig.10 Iterative curve of learning rate
由圖9和圖10曲線圖可知,模型迭代初期,訓練集和驗證集損失迅速降低,模型趨于局部最優(yōu)解,開始收斂緩慢,驗證集損失值出現(xiàn)振蕩,此時學習率衰減策略生效,防止模型收斂結果越過最優(yōu)解,經(jīng)過6次學習率衰減之后,驗證集損失值不再下降,經(jīng)過40個迭代輪次后停止,模型收斂至最優(yōu)解,并且未出現(xiàn)過擬合情況。
針對350張櫻桃圖像的分級檢測結果見表2。
表2 櫻桃分級檢測結果Table 2 cherry grading test results
由表2可知,櫻桃大小檢測準確率為93.14%,有無果梗判定準確率為90.57%。大櫻桃準確分檢的概率為75.00%,平均絕對誤差值為8.094 4;中櫻桃準確分檢的概率為91.02%,平均均方誤差值為6.217 2;小櫻桃準確分檢的概率為98.70%,平均均方誤差值為5.716 2;櫻桃有果梗準確分檢的概率為94.87%,平均均方誤差值為3.071 4;櫻桃無果梗準確分檢的概率為87.78%,平均均方誤差值為6.530 9,其中350個櫻桃批量測試樣本,在線分級檢測總用時10.5 s左右,平均速度約為33個/s,能夠滿足在線檢測的實時性要求。
針對大、中、小3種櫻桃的有無果梗圖像檢測結果如圖11所示。
圖11 櫻桃真實標注與預測結果Fig.11 Real labeling and prediction results of cherry
從圖11中可以看出大櫻桃的分級檢測結果整體偏小,結合表2可知大櫻桃的平均絕對誤差最大,主要是因為工業(yè)相機景深導致櫻桃邊緣像素模糊,其次光源直射櫻桃產生的光斑和陰影對櫻桃關鍵點回歸帶來一定的影響,可通過選擇大景深相機,調整光源照射角度或選擇特定光源來解決。此外,訓練樣本集中大櫻桃所占比例為27.38%,中櫻桃所占比例53.45%,樣本分布不均衡,對大櫻桃的檢測結果偏小,可通過增加大櫻桃樣本數(shù)量和數(shù)據(jù)增強方式優(yōu)化樣本數(shù)據(jù)分布,進一步提升模型效果。模型對小櫻桃的檢測效果較好,主要是由于櫻桃大小匹配相機景深,拍攝圖像質量高,櫻桃邊緣較為清晰。因此,圖像質量對于櫻桃的關鍵點回歸至關重要。
目前,卷積神經(jīng)網(wǎng)絡一般用于分類,用于關鍵點的回歸研究較少,針對櫻桃分級問題,本文提出基于深度學習的關鍵點回歸算法,實現(xiàn)了櫻桃的分級檢測和有無果梗的精確判別,櫻桃大小尺寸檢測準確率為93.14%,有無果梗判定準確率為90.57%,檢測速度為33 fps,在實現(xiàn)高精度的同時,極大地提升了檢測速度,具有很大的實用價值。通過對大、中、小、有無果梗櫻桃的不同情況分析,可通過優(yōu)化圖像采集質量和調整光源等方法進一步改善模型檢測效果。此外,還可通過增加訓練集樣本數(shù)量或圖像增強方法優(yōu)化數(shù)據(jù)分布,建立合理的回歸邏輯,進一步提升櫻桃大小和有無果梗的識別效果,推動櫻桃分級的工業(yè)化應用。