畢 松,張 潞
(北方工業大學電氣與控制工程學院,北京 100044)
近年來,隨著我國的城鎮化的發展,農業從業人口大幅度下降,同時隨著我國人口老齡化日益嚴重,農業勞動成本快速上升,農業用工供給不足和成本上升成為困擾農業發展的重要因素。我國柑橘種植面積和柑橘產量位居世界第一[1],柑橘田間生產作業過程中采摘工序是生產過程中勞動力需求最大的一個環節,占整個生產過程勞動力需求的50%到70%[2]。我國目前柑橘采摘仍以人工操作為主,使用智能采摘裝備代替人工進行采摘,將能解決柑橘生產過程中的勞動力不足問題,同時在水果實時采摘、提高采摘品質、提高水果的市場競爭力等方面具有重要意義。因此,柑橘自動化采摘技術的研究勢在必行。
果實采摘點識別技術是自動采摘的基礎,采摘點識別的準確性決定了自動采摘設備的采摘準確性和穩定性。眾多研究者依靠圖像顏色通道分割變換成RGB、HSV、YUV等后,再對圖像執行去噪、閾值分割,區域腐蝕、膨脹,輪廓提取、分析等方法,結合果實顏色、外形、紋理等特征,提取出限定果實區域[3][5]。但由于柑橘生長的非結構化自然環境中,存在光照變化,亮斑陰影,枝條、枝葉與果實之間任意遮擋等干擾因素,使圖像中柑橘果實的特征存在較大的不確定性,難以提取出涵蓋自然環境所有干擾因素情形下的柑橘果實特征。因此上述傳統視覺特征分析的識別方法難以應對自然環境中存在大量干擾情況的柑橘采摘點信息獲取問題。
近年來自基于卷積神經網絡的模型結構具有深層次、特征表達能力強的特點,能夠自主學習當前任務所需要的多層次特征[6],比傳統方法具有更強的魯棒性,更大范圍的適用性。文獻[7]中基于Darknet19設計的柑橘識別方法,在自然環境的不同場景下均有很好的識別效果。文獻[8]通過改進YOLOv3識別算法實現對柑橘果實和枝條枝葉等障礙物的識別,對果實識別準確率為91.9%。
本文針對自然環境中柑橘果實采摘點識別獲取問題,設計了基于卷積神經網絡和特征識別的自然環境中柑橘果實采摘點識別獲取方法,并對采收季的成熟柑橘果實進行了數據測試。
基于卷積神經網絡、全卷積網絡和特征識別的柑橘果實采摘點識別方法主要由識別預處理模塊、識別模塊、分割預處理模塊、分割模塊和采摘點識別模塊組成,算法結構如圖1所示。

圖1 自然環境下柑橘采摘點識別算法結構
識別預處理模塊將對相機拍攝的原始圖像進行色彩調節、縮放和降噪操作,根據相機參數調整圖像色彩到正常范圍,縮放至416×416像素以適配柑橘識別模塊的輸入端,并對圖片進行濾波降噪操作,去除由于相機感光硬件所帶來的噪點問題。
識別模塊分為基于卷積神經網絡的柑橘果實識別網絡模型,包括圖像特征提取模塊、Anchor生成器模塊、預測處理模塊三部分。圖像特征提取器基于darknet19網絡結構構建,共19個卷積計算層和5個池化層,該模塊對原始圖像進行卷積池化操作,提取出圖像的13×13網格深度特征圖。Anchor生成器通過RPNs生成Anchor boxes對圖像特征提取器輸出的深度特征圖進行識別框預測,通過K-means均值維度聚類的方法獲得Anchor boxes的長寬和比例,K是均值維度聚類算法將樣本集劃分類別的數量,實驗得出K值為5的時候識別框預測準確率最高。預測處理模塊將圖像特征提取器輸出的特征圖中每個網格中分別以Anchor boxes的比例預測出5個識別框(Bounding Boxes),每個識別框中預測出5個值,分別是tx,ty,tw,th,to,其中前四個變量為目標網格坐標偏移值,to為預測置信度,網格坐標偏移值與Anchorboxes的中心坐標和寬高參數xa,ya,wa,ha有式(1)計算關系

(1)
基于上式得到目標網格預測參數結合該網格在原始圖像左上角像素坐標距離(cx,cy) 和該網格對應Anchorboxes的高和寬(pw,ph) ,由式(2)得。

(2)
其中σ(t)為sigmoid激活函數,將數據范圍約束在[0,1]之間,bx,by,bw,bh,score即所識別到的柑橘果實在圖像中的位置、識別框大小和識別率結果。
分割預處理模塊分為圖像剪切、圖像填補和圖像大小調整三個步驟。在識別模塊輸出結果后,根據柑橘識別框的參數對原圖像進行裁剪,這樣能夠去除無柑橘區域帶來的干擾和負荷。由于柑橘目標識別網絡可能因為枝葉遮擋、果實遮擋等干擾,識別出柑橘的識別框不為正方形,因此通過圖像填補算法,其根據識別框的寬度和高度差值,使用黑色對其短邊方向進行補全,最后通過將圖像調整至224×224分辨率,傳入柑橘果實分割模塊。
分割模塊基于U型全卷積神經網絡的語義分割模型設計,其結構分為特征編碼器模塊和特征解碼器模塊兩部分。分割預處理模塊處理后柑橘識別框圖片傳入柑橘分割模塊,特征編碼器模塊使用卷積層和池化層對柑橘圖像進行4次下采樣計算,每次下采樣中卷積計算前后圖片大小相同,經過四次下采樣后的特征圖縮小16倍。然后特征解碼器通過卷積層和反卷積層對高維特征圖進行上采樣計算,反卷積采用了補零的步長為2的卷積核構造的2×2反卷積結構,以保證上下采樣前后的對稱,四次下采樣前的卷積層輸出都拼接融合到了對稱的上采樣反卷積后的卷積輸入位置。最后將224×224×32的上一卷積層輸出通過一個1×1的卷層輸出為一張特征熱Heatmap圖,即每個像素點對應柑橘類的得分,越接近1即為柑橘,接近0即為背景,將該特征熱圖通過Softmax二值化后得到柑橘有效像素區域分割特征圖。
柑橘果實為類圓形,經過柑橘分割模塊得到的柑橘有效像素區域分割特征圖為單個完整果實的部分區域。柑橘采摘點獲取模塊通過Hough變換圓檢測的方法擬合出果實的完整區域,找到質心,從而得到果實準確的采摘點位置。
為了保證能夠涵蓋自然環境下普遍存在的干擾信息,因此選擇了不同時間段和天氣進行了數據采集。采集地點為:廣西合浦利添果園,拍攝時間為2018.12.17 12:40-14:00晴天正午、2018.12.17 16:30-17:30晴天傍晚和2018.12.20 14:00-15:00陰天下午。所使用的圖像采集相機型號為大恒圖像的MER-230-168U3C彩色相機,焦距為8mm,分辨率為1200×1200像素。對所采集的圖像進行了縮放處理縮放大416×416像素大小,并進行了人工挑選,選出包含不同程度的光照變化、光斑陰影覆蓋、枝葉枝條果實間任意遮擋的圖片共計1000張,將其按照8:1:1的比例分成訓練集、驗證集和測試集,并將800張訓練集圖片進行了人工標記。
識別模塊訓練數據集中一共標記柑橘果實2160個,標記情況及數量詳情如表1所示,數據集樣本如圖2所示。

表1 柑橘識別數據集標記情況

圖2 識別數據集部分樣本
柑橘分割模塊的訓練數據集從識別模塊訓練數據集選取100張圖像,為使得柑橘數據集具有較好的抗干擾性和均衡性,包含了存在光照亮斑陰影、枝條枝葉遮擋等干擾的果實像素點,通過分割預處理模塊處理后,以人工標記的方式對柑橘像素進行標注,共標注了1912268個像素點。標注后得到的柑橘果實區域像素描述文件中描述了屬于果實的像素在圖像中的區域位置信息,將其數據以Mask圖像形式可視化后,柑橘果實區域像素數據集部分樣本,如圖3所示。

圖3 柑橘分割數據集可視化部分樣本
識別模塊網絡模型通過預測數值與標記數值進行比較得出模型的損失函數如式(3)所示



(3)

由于所采集的柑橘樣本數據集有限,直接用來訓練網絡容易發生過擬合現象,使得模型網絡的學習與識別能力受限。本文通過遷移學習方法,使用Yolov2方法[9]中對ImageNet數據集預訓練權重對柑橘識別網絡模型進行訓練。
模型訓練參數如表2所示,學習動量為0.9,初識學習率為0.001,采用步進式更新學習率的方法,模型總迭代訓練2000次,其中1~1000次迭代訓練中,使用初始學習率,1000~2000次迭代訓練中,使用精細學習率,每輪次訓練圖像數為8張,每訓練迭代100次保存一次權重參數文件。

表2 網絡模型訓練參數
柑橘識別網絡模型在2000次訓練過程中,迭代次數與損失率關系曲線如圖4所示,可見損失率隨著迭代次數增加而不斷下降,直到訓練到1500次左右之后平均損失不在減小,穩定在9.1左右。

圖4 迭代次數與損失率關系曲線
迭代過程中得到的權重文件所計算出的平均準確率mAP( mean average precision)曲線如圖5所示,柑橘識別網絡模型訓練后的平均準確率位88.7%。

圖5 柑橘識別模型mAP曲線
分割模塊網絡訓練損失由網絡最后輸出分割特征圖與標注圖像計算獲得,該損失用于度量預測值與實際值之間的概率距離,計算方法如下式

(5)
其中n為Batch size即一次訓練循環所用到的圖片數量,p為網絡預測值,y為輸出期望值。損失函數通過Adadelta[10]的梯度優化方法進行優化,其在第t次參數θt更新方法如下式

(6)
θt+1=θt+Δθt
(7)
其中gt為梯度參數,其均方根(Root mean squared,RMS)為

(8)

(9)
在Adadelta優化方法中不需要設置學習速率,省去了手動調整學習速率的訓練成本。
柑橘分割數據按照9:1的比例分為訓練集和驗證集,經過對柑橘分割網絡的100個批次訓練后,訓練集和驗證集的損失曲線如圖5所示。

圖5 柑橘分割網絡損失曲線
上圖曲線可以看出,在訓練30輪時果實分割網絡模型的泛化能力較強,之后訓練集損失下降緩慢,在驗證集上的損失逐漸升高,網絡出現過擬合的情況。因此本文選擇30次的參數作為分割模塊的模型權重。
Hough變換圓檢測方法通過在Hough參數空間中對圓的半徑和圓心坐標進行投票,然后在累加器矩陣中選擇局部最大值來生成候選圓,該過程計算量巨大,合理的參數將能提高Hough變換的效率。
候選圓半徑范圍用ro=rmax-rmin表示,圓心坐標范圍xo∈(0,w),yo∈(0,h),其中rmax和rmin分別為候選圓的半徑的最大值和最小值,w和h為分別為候選圓輪廓的寬度和高度范圍。根據柑橘識別和分割模塊輸出的單個柑橘果實有效像素區域的長寬,可以確定柑橘果實的候選圓半徑和圓心距離的搜索范圍:
rmax=1.5max(w,h)
(10)

(11)
distmin=min(w,h)
(12)
其中參數1.5為實驗統計得出,使用參數優化后的Hough變換對分割出的柑橘果實圖像進行圓檢測的結果如圖6所示。

圖6 Hough變換柑橘果實擬合
本文所設計的柑橘采摘點識別算法運行平臺硬件環境為AMD-R5 3600 CPU,Nvidia GTX1660S GPU,16G內存。使用3.1節中所采集的100張包含自然環境中干擾情況的柑橘圖像測試集對本文的柑橘采摘點識別方法進行了測試,測試集中共有487個柑橘果實,經過本文方法處理后,識別出423個有效柑橘果實采摘點,識別準確率為86.8%,部分實驗結果如圖7所示。

圖7 實驗結果
圖7(a)中的柑橘果實存在光照不均、亮斑陰影、枝條枝葉遮擋、背景復雜情況。經過本文柑橘識別算法處理后,如圖7(b),表面高亮過曝、存在亮暗斑和枝葉遮擋的果實均被有效識別,框選出了果實可見區域。需要指出的是背景中的柑橘果實,距離過遠,不在采摘考慮范圍內,識別算法將其忽略。識別出的果實區域圖像分別經過預處理模塊和分割模塊處理后,分割結果整合結果如圖7(d),可見在存在光照和遮擋影響情況下,分割模塊獲得了除高光過曝導致像素信息丟失之外的合理預測結果,還原了圖片中柑橘的輪廓。圖7(e)為分割結果分別經過Hough變換圓檢測后繪制出的柑橘果實完整輪廓彌補了識別結果中被遮擋果實不完整的現象,所獲得的柑橘采摘點如圖7(f)所示,結果更接近真實果實采摘點。
1)設計的基于卷積神經網絡、改進型全卷積神經網絡和Hough變換圓檢測的柑橘果實采摘點識別方法對自然環境下存在的光照變化、亮斑陰影、枝條枝葉果實間任意遮擋等干擾條件下柑橘果實采摘點識別效果良好,魯棒性高。
2)本方法有效的識別自然環境中柑橘并分割出果實有效區域,識別出柑橘真實采摘點信息,識別準確率均值達到了86.8%,為柑橘自動采摘技術中的果實采摘點識別提供了理論基礎和技術支持。