任浩,李麗,盧世博,陳靜姚,張云峰
(1. 西南大學工程技術學院,重慶市,400715; 2. 宜賓西南大學研究院,四川宜賓,644000;3. 重慶祥飛蠶桑有限公司,重慶市,401520)
我國蠶桑產業是漢文化的主體文化,其代表著絲綢文化。為契合“一帶一路”中“一路”絲綢產業的提升,促進鄉村振興、切合國家“十四五”規劃、促使蠶桑產業的快速發展,國家及相關部門出臺了一系列政策文件[1-2],鼓勵因地制宜發展蠶桑等特色產業。蠶桑屬于種植與養殖相結合的產業,由統計數據[3]可知,2021年中國桑蠶繭的產值達367.15億元,較上年增加52.99%。現階段,隨著工業經濟與第三產業的發展促使大量勞動力進入城市,農村桑園留守勞動力老齡化嚴重,蠶桑行業受到打擊。現雖有一些相關機械設備[4],但并未實現智能化,如胡迎春等研發的搖桿式桑葉采摘機、往復式桑葉采摘機、螺旋式桑葉采摘機[5]和楊自棟[6]教授團隊研發的梳刷式電動樹葉采摘收集機,都需要先手動對枝干定位再進行采摘。我國桑樹從伐條后發芽到九月下旬期間,桑葉的生長量占到了總生長量的約85%。在這期間,要進行多次桑葉采摘,并要求采摘桑葉時不能損傷桑樹枝干并保留頂端用于喂養幼蠶的嫩葉。集中大量的桑葉采摘工作要求蠶桑產業由傳統向現代轉變,由人力向智能化轉變[7]。
為實現桑葉采摘機的智能化,首先要實現在復雜自然條件下完成對桑樹枝干的識別。張富貴等[8]通過對RGB圖像分量的分析和閾值處理對果樹進行分割,準確率為79.67%。賀磊盈等[9]通過雙輪廓同步跟蹤方法對無葉核桃樹進行枝干重建,但不適用于桑樹葉片較多的場景。Tabb等[10]通過超像素確定背景低紋理區域再對果樹枝干進行分割,適應于簡單背景。Amatya等[11]通過聚類以及幾何方法實現對櫻桃樹單條枝干的檢測。Majeed等[12]使用卷積神經網絡和Kinect V2相機實現了對蘋果樹無遮擋的主干和分支的分割,精度分別為92%和93%。Shalal等[13]利用相機和激光掃描儀對果樹樹干進行檢測,其檢測精度為96.64%,該方法適應于對較粗的主樹干進行檢測,不適應于桑枝這類較細枝干的識別。Zhang等[14]通過RCNN與擬合的方式對蘋果樹分支進行檢測,其平均召回率與準確率分別為91.5%和85.5%,該方法仍是針對單條無遮擋的枝干。
對于復雜自然條件下桑樹枝干的識別,目前有以下幾處難點:(1)自然條件下室外光照變化較大;(2)桑樹葉片大且多,會遮擋枝干;(3)桑樹分支較多。本文針對以上問題,在自然場景下采集不同時段、不同天氣情況的桑樹圖像,并利用多種圖像處理技術對采集的數據集進行擴展,模擬各類自然場景,再結合深度學習理論,構建出能夠在復雜自然條件下完成對桑樹枝干進行識別的目標檢測模型,并獲取坐標信息,為自主研發的桑葉采摘機實現智能化奠定基礎。
本研究采用的圖像采集設備為Intel Realsense D435i型相機,通過USB3.0接口與電腦連接。相機有效識別范圍為0.105~10 m,分辨率為1 280×800 dpi,幀率為可達90 fps,像元尺寸為3 μm×3 μm,深度學習試驗硬件環境為搭載Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz 2.29GHz+NVIDIA Quadro P4000顯卡的工業計算機,深度學習使用Halcon19.11軟件平臺,圖像處理使用OpenCV軟件庫,技術路線如圖1所示。

圖1 技術路線
桑樹枝干的圖像是從重慶某公司合川桑園采集的,品種為農桑14號,枝干粗約1.2 cm。桑樹在露天環境并排種植便于機械收獲。為了匹配樣本環境的多樣性,在晴天和陰天的不同時段(8:00,13:00,18:00)分別采集圖像。考慮到拍攝角度會影響檢測性能,在圖像采集過程中從多個拍攝角度采集圖像,共1 000張照片,采集的部分圖像如圖2所示。

(a) 晴天

(b) 陰天
由于光線的角度和強度在一天中變化很大,神經網絡處理在一天中不同時間收集的圖像的能力取決于訓練數據集的完整性。為了增強數據的多樣性,提高模型在不同圖像下的識別能力,對收集的圖像進行了鏡像旋轉、鏡像翻轉、色彩增強和同態濾波的圖像處理,處理后的圖像如圖3所示。

(a) 旋轉

(b) 鏡像翻轉

(c) 色彩增強

(d) 同態濾波
2.2.1 圖像旋轉法的數據擴展
考慮到圖像目標檢測任務中存在待測目標多角度問題,將原始圖像進行旋轉和鏡像翻轉的幾何變換操作得到擴展數據,可以使得模型在訓練過程中學習到具有旋轉不變形的特征,處理的圖像數量為1 000張,圖像旋轉的原理如下。
以圖像中心作為旋轉中心,用img.shape獲得圖像的寬度和高度值,除以2即為圖像中心點坐標,這里定義為(x0,y0)、順時針旋轉角度定義為θ,圖像旋轉前坐標定義為(x,y),旋轉后坐標定義為(xa,ya),計算方法見式(1)。
(1)
2.2.2 圖像翻轉法的數據擴展
鏡像翻轉法同樣作為幾何變換中的一種方法,對于模型的訓練有和旋轉法相同的作用,處理的圖像數量為1 000張,鏡像翻轉的原理如下。
將圖像沿垂直中軸線進行軸對稱變換,圖像寬度為w,原像素點(x,y)以垂直中軸線為中心進行左右對換,翻轉后坐標定義為(xb,yb),計算方法見式(2)。
(2)
式中:MAF——鏡像翻轉矩陣。
2.2.3 色彩增強法的數據擴展
不同的照明條件會導致圖像顏色與真實顏色之間出現一定的偏差。在自然環境中的桑樹林中,桑葉經常擋住陽光,這將導致枝干部分光線不足,對圖像進行色彩增強處理可以模擬自然環境下光照不足的影響,提高檢測模型的魯棒性,處理的圖像數量為1 000張,色彩增強的原理如下。
先將圖像分割成RGB三個通道,然后對這些通道分別進行直方圖均衡化,最后合并所有通道,直方圖均衡化可以增加像素之間灰度值差別的動態范圍,從而增強圖像的對比度,計算方法見式(3)。
(3)
式中:sk——當前灰度級經過累積分布函數映射后的值;
N——圖像中像素的總和;
nj——當前灰度級的像素個數;
T——變換函數;
r——待處理圖像的灰度;
pr——概率密度函數;
L——圖像中的灰度級總數。
2.2.4 同態濾波法的數據擴展
同態濾波利用去除乘性噪聲(multiplicative noise),可以同時增加對比度以及標準化亮度,借此達到亮度增強的目的,從而模擬自然環境下光照極強時的情況。
一副圖像可以表示為其照度(illumination)分量和反射(reflectance)分量的乘積,雖然在時域上這兩者是不可分離的,但是經由傅立葉轉換兩者在頻域中可以線性分離。通過分別處理照度和反射率對像元灰度值的影響,達到增強陰影區細節特征的目的,模擬自然環境下光照強烈的情況,處理的圖像數量為1 000張,一個圖像f(x,y)可以根據它的亮度和反射分量的乘積來表示[15]。
f(x,y)=i(x,y)r(x,y)
(4)
式中:i(x,y)——亮度函數;
r(x,y)——反射分量函數。
通過同時壓縮亮度范圍和增強對比度,來消除不均勻照度的影響而又不損失圖像細節,同態濾波流程如圖4所示。

圖4 同態濾波流程圖
具體計算過程如下。
1) 因為該性質是乘性的,所以不能直接使用傅里葉變換對i(x,y)和r(x,y)進行控制,因此先對f(x,y)取對數,分離i(x,y)和r(x,y)。
z(x,y)=lnf(x,y)=lni(x,y)+lnr(x,y)
(5)
2) 取傅里葉變換,得到。
F[z(x,y)]=F[lnf(x,y)]+F[lnr(x,y)]
(6)
變換為Z(u,v)=I(u,v)+R(u,v)
(7)
3) 使用濾波器H(u,v)對Z(u,v)進行濾波,有
S(u,v)=H(u,v)Z(u,v)
=H(u,v)I(u,v)+H(u,v)R(u,v)
(8)
(9)
4) 濾波后,進行反傅里葉變換
i′(x,y)=F-1[H(u,v)I(u,v)]
(10)
r′(x,y)=F-1[H(u,v)R(u,v)]
(11)
5) 取指數,得到最后處理后的圖像g(x,y)。
i0(x,y)=exp[i′(x,y)]
(12)
r0(x,y)=exp[r′(x,y)]
(13)
g(x,y)=i0(x,y)r0(x,y)
(14)
式中:i0(x,y)、r0(x,y)——處理后圖像的照射分量和入射分量。
四種數據擴展方式產生的圖像數量匯總見表1。

表1 由數據擴展產生的圖像數量Tab. 1 Number of images generated by data expansion
Halcon是由德國某公司研發的一款具有非常高效能的機器視覺軟件,不僅提供了功能全面的圖像處理庫,而且還提供了先進的技術算法包[16]。Halocn中的深度學習方法包括分類、目標檢測和語義分割,所有這些都基于卷積神經網絡的原理(CNN)。卷積神經網絡包含了一個由卷積層和子采樣層構成的特征抽取器[17]。在卷積神經網絡的卷積層中,一個神經元只與部分鄰層神經元相連接。在CNN的一個卷積層中,通常包含若干個特征平面,每個特征平面都由一些矩形排列的神經元組成,同一特征平面的神經元共享權重參數,這里共享的權重參數就是卷積核。卷積核一般由隨機小數矩陣的形式初始化,隨著神經網絡的不斷訓練,卷積核將會學習到更合理的權值。共享權值(卷積核)可以減少網絡各層之間的連接,同時降低過擬合的風險。子采樣可以看作一個特殊的卷積過程。卷積和子采樣可以簡化模型的復雜度,減少模型的參數。
卷積神經網絡的基本結構見圖5,由三部分組成:輸入層、n個卷積層和池化層的組合、全連接的多層感知機分類器。針對目前桑葉采摘機的枝干檢測需求,本文提出一種基于Halcon深度學習的桑樹枝干識別方法。

圖5 卷積神經網絡的基本結構
在數據整理階段,采集了晴天和陰天時桑樹枝干的照片,并如上文進行了四類數據擴展后,獲得5 000張含有桑樹枝干的圖片作為目標檢測模型訓練的數據集,使用MVTec Deep Learning Tool工具進行標注,標注信息包含類別、定向矩形中心坐標、矩形框的寬度和高度,生成字典類型的標注文件。將數據集劃分為訓練集和測試集,本文分配比例為7∶3。在目標檢測中,網絡必須學習如何找到實例并判斷它的可能位置,且由于實際需求,桑葉采摘過程中需要避免損傷頂端用于喂養幼蠶的嫩葉及影響枝干的繼續生長,所以從枝干頂端往下大概4~6片的枝干位置進行標注,這個位置也將作為桑葉采摘機的行程起點,標注過程見圖6。

圖6 標注界面
為了減少所需的資源數量和加快訓練,這里使用遷移學習的方法[18],即將從一個訓練數據集上訓練好的網絡遷移到目標數據集上,遷移學習的工作流程如圖7所示:(1)讀取原訓練網絡;(2)用標注出桑樹枝干的訓練集對網絡進行訓練;(3)訓練模型具有了識別桑樹枝干的新功能;(4)實現對新圖像中桑樹枝干的檢測。Halcon中使用的網絡優化算法是隨機梯度下降法,大致思路是在訓練數據集中,隨機取出一部分數據集對網絡進行訓練,這樣能加快每次學習的速度,并以此對濾波器的權重進行更新,其目的在于找到一個使得損失函數值最小的網絡權重值,除了權重這類網絡自身的參數會影響訓練過程之外,一些類如學習率、迭代次數等超參數也會影響訓練過程。

(1)

(2)

(3)

(4)
本文研究的圖像背景復雜,需要更穩定的魯棒性,故選用Resnet50目標檢測網絡模型。通過算子set_dl_model_param()設置學習率、迭代次數等模型參數,經過訓練確定所用參數值。
在訓練過程中,學習率分別設置為0.000 5、0.001、0.001 5和0.002,迭代次數設置為1 000,不同學習率的損失函數曲線見圖8,由圖可知,學習率為0.001時,損失函數收斂速度最快,且最終的損失函數值最小。損失函數曲線在迭代次數達到200次以后,下降速度逐漸變慢,達到600次以后損失函數曲線趨于水平,因此訓練模型的學習率設置為0.001,迭代次數設置為600。

圖8 不同學習率的損失曲線
訓練模型的主要評估指標有平均精度均值(mean Average Precision,mAP)、交并比(Intersection over Union,IoU)、損失函數曲線、精度和召回率等[19]。本文使用精度P、召回率R、mAP和F1五個常用指標來驗證模型的性能。對于二元分類問題,根據樣本的真實類別和預測類別的組合,樣本可分為四種類型:TP(真正例)、FP(假正例)、TN(真反例)和FN(假反例)。在本文中,當IoU≥0.5,為真陽性;當0 表2 分類結果的混淆矩陣Tab. 2 Confusion matrix for the classification results. 精度P和召回率R定義為式(15)和式(16)。P被用來描述預測為正的樣本與預測為正的樣本的比例。R用于描述標記為陽性的比例與預測為陽性的比例。這兩個值越高,算法的性能越好。 (15) (16) F1分數是從召回率和精度中得出的參考值,其值通常接近兩者中的較小值。如果F1的分數很高,這表明調用和精度都很高,因此希望獲得較高的F1分數。F1成績定義為 (17) 平均精度(AP)可以顯示模型在不同分數閾值下的整體性能。本文中,AP通過平均精度均值曲線上的精度值獲得,定義為式(18)。mAP是所有類別/類別數的AP值之和,C是類別數。由于本文僅檢測到桑樹枝干,因此本研究中使用了C=1。 (18) (19) 為了檢驗訓練得到的算法模型是否可以在各類模擬自然環境下實現對桑樹頂端4~6片桑葉以下枝干的位置完成識別,使用測試集對模型進行測試,得到如圖9的識別結果。 為驗證這四種數據擴展方法對算法性能的影響,采用變量控制法刪除全數據集中每種數據擴展方法對應的圖像數據,分別生成四個算法模型,利用測試集對這四個算法模型進行測試,試驗1~4分別對應刪除旋轉集、刪除鏡像翻轉集、刪除色彩增強集和刪除同態濾波集,得到的平均精度均值曲線見圖10,P-R曲線見圖11。 (a) 原圖 (b) 旋轉 (c) 鏡像翻轉 圖10 平均精度均值曲線 圖11 各試驗的P-R曲線 各模型的性能評價指標如表3所示。 表3 不同數據擴展方法的識別效果Tab. 3 Recognition effect of different data extension methods 由表3可知,經試驗,全數據集對應的算法模型檢測準確率P達到87.42%,召回率R為85.93%,均在85%以上。通過與全數據集的算法模型性能評價指標進行對比可以看出,在本文試驗條件下,旋轉法對于提高模型檢測精度的影響最大,通過刪除旋轉法生成的圖像所生成算法模型的AP降低了12.8%,F1評分降低了0.11。鏡像翻轉方法對提高模型檢測精度的影響最小。刪除鏡像翻轉圖像后,訓練模型的性能僅略低于完整數據集的性能,模型的AP降低了3.7%,F1評分降低了0.03。色彩增強方法和同態濾波處理方法對提高模型檢測精度的影響適中,刪除色彩增強方法處理的圖像后,模型的AP下降7.8%,F1得分降低了0.09。刪除同態濾波處理的圖像后,模型的AP降低了7.2%,F1評分降低了0.05。 進行實地檢測前,需要進行相機標定,標定的過程實際是建立圖像世界與三維世界的關系,從而通過圖像準確得知三維世界的真實狀態[20]。相機鏡頭在拍攝物體時存在成像的畸變,對圖像的后續處理會產生干擾,尤其對于測量,需要更高精度的矯正。因此使用Halcon標定助手,設置標定板的文件及攝像機參數。本文選取32 cm×32 cm,圖像陣列為7×7的圓心陳列型平面標定模板進行標定,檢測結果界面見圖12。 圖12 檢測結果界面 在現場進行實時檢測,固定相機位置,用桿件標定畫面左上角原點位置,將算法檢測出的枝干位置在桑樹枝上標定,測量標定點相對于原點的實際坐標,將算法檢測結果與現場人工測量結果進行對比,結果見表4。算法測量和人工測量的最大偏差為1.46 cm,最小偏差為0.43 cm,平均偏差為0.975 cm,滿足要求。 表4 桑樹枝干坐標檢測結果對比表Tab. 4 Comparison table of the results of mulberry branch and trunk coordinates testing 本文基于深度學習理論構建了一種在復雜自然條件實現桑樹枝干識別的模型,通過對模型的評估得出其識別準確率,并對不同圖像處理方法有效性進行實驗驗證,又對檢測模型得出的坐標結果與實際測量結果進行對比,得出以下主要結論。 1) 將深度學習理論用于復雜自然環境下桑樹枝干的識別之中,算法模型在室外光照條件復雜、桑葉對枝干存在遮擋以及分枝較多的情況下仍有較好的檢測效果,且檢測到的枝干位置均在頂端4~6片桑葉以下的位置,有效地避免了采摘過程中損傷頂端嫩葉,檢測模型準確率為87.42%,召回率為85.93%,已滿足實際需求。 2) 使用不同的圖像擴展方法模擬了枝干傾斜角度大、昏暗環境及光照極強環境,試驗表明四種數據擴展方法對于提高模型的檢測精度都有一定的效果。 3) 算法模型的檢測結果與實際測量結果的平均誤差為0.975 cm,滿足實際應用要求,為桑葉采摘機的智能化發展奠定了基礎。

3.4 試驗結果






4 桑樹枝干的實地坐標檢測


5 結論