夏垚,胡步發,張善福
(福州大學 機械工程及自動化學院,福建 福州 305116)
目前,臍橙大多是按照外形大小進行簡單分級,容易造成損傷,導致質量變差。隨著機器視覺技術的發展,專家學者們對臍橙品質自動檢測分級進行了大量研究,如:ALEIXOS N等[1]研發出了臍橙、柑橘的分級方法,通過采集可見光與近紅外圖像,進行品質分析。實驗發現:表面缺陷判斷的準確率為93%,顏色判斷的準確率超過94%。程春燕[2]提出了基于深度學習的方法對臍橙品質實現檢測和分類,該方法的精度比支持向量機提升了4%。黃金霖等[3]使用最小外接矩形算法完成對臍橙尺寸的檢測,實驗表明,在對120多個實驗樣本的檢測中,總體誤差率<2%。李江波等[4]提出波段比算法和特征波段主成分分析法,使臍橙潰瘍的正確識別率提高到95.4%。CHEN Y W等[5]提出了一種臍橙自動分級方法,提取臍橙的果實大小、表面顏色、表面缺陷和果型4個主要特征,利用BP神經網絡對特征進行訓練,分級準確率為94.4%。
上述研究取得了一定的成果,但還存在以下問題需要改進:1)相機不能采集臍橙的全部表面,會出現漏檢的情況;2)沒有考慮球形水果在光照反射時會造成果面亮度不均勻;3)根據單一閾值和顏色特征來識別果面缺陷,無法適應果面光照不均勻帶來的影響,且檢測速度無法滿足嵌入式設備需求。針對上述問題,本文基于樹莓派平臺,設計了低成本的臍橙自動分級方法。在3個工位中分別采集臍橙3個不同表面的圖像,避免臍橙的背面被漏檢,并在考慮球體表面反光的情況下提取臍橙果徑、著色度特征,提出基于積分圖的快速局部自適應閾值分割法,得到果面缺陷特征,最后建立決策樹模型——C4.5,完成臍橙品質的實時分級。
采用贛南地區出產的紐荷爾臍橙,根據臍橙果徑、著色度、表面缺陷將臍橙劃分為特級果、一級果、二級果和等外果,其中隨機選取每個等級的臍橙各100個,50個作為訓練樣本,50個作為測試樣本。
本文的試驗系統如圖1所示。硬件部分包括滾子輸送鏈、撥果裝置、果箱、遮光箱、Raspberry Camera V2樹莓派原裝攝像頭、環形漫反射白色光源、樹莓派(Raspberry Pi)3B+。相機垂直懸掛于遮光箱頂部,臍橙放置在兩滾子的中間位置,隨著滾子的滾動以角速度W2做翻滾運動,鏈輪轉動使輸送滾子隨鏈條在導軌上以速度V做水平運動,帶動臍橙沿著導軌向前輸送。軟件開發平臺為PyCharm2019,部分代碼源于OpenCV庫。

1—撥果裝置;2—臍橙;3—相機;4—環形光源;5—樹莓派;6—顯示屏;7—遮光箱;8—滾子輸送鏈;9—卸果口。圖1 圖像采集與分級系統
為了避免外界光照影響,本試驗的圖像采集環節在遮光箱內完成。工位一處設有一對光電感應模組,當有臍橙經過時觸發相機采集圖像,相機視野設置為3個工位,一次可拍攝3個臍橙,如圖2所示。臍橙每經過1個工位會旋轉一定的角度,連續采集3次圖像后,同一臍橙的不同表面會在3個工位上各被拍攝1次。后續的圖像分析環節,選擇臍橙在這3個工位上的3幅圖像進行綜合分析。

圖2 圖像采集結果
如圖1所示,撥果裝置與滾子相互間隔地安裝在輸送鏈上,撥桿恰好位于兩滾子間隙的凹陷處。撥桿處設有光電感應模組,有臍橙經過時會對該撥果裝置發送激活信號。分級模塊完成分級后,樹莓派對相應等級的撥果裝置發送分級信號,撥果裝置同時收到激活信號與分級信號后,觸發撥果片完成撥果動作,臍橙被送入對應等級的卸果口內完成分級。
為了方便后續環節的特征提取,必須分割出完整的臍橙前景圖像。本研究在滾子輸送鏈上采集臍橙圖像,圖像背景包含滾子、齒輪等,采用RGB顏色模型的灰度圖分割前景圖像,會把部分背景中的齒輪圖像包含進來,如圖3(b)所示。Otsu自適應閾值分割法不受圖像亮度變化的影響,使用Otsu法對V分量圖像進行分割的結果如圖3(c)所示,得到了完整的臍橙前景圖像,但沒有分割出缺陷區域。本文使用輪廓填充法,填充缺陷區域,如圖3(d)所示。

圖3 圖像分割結果
臍橙是類球形水果,即使在光照均勻的情況下臍橙表面也會出現亮度不均勻的情況,如圖4(a),果面反光的高亮區域會影響后續特征提取。因此有必要對果面反光區域進行亮度矯正。本文采用HSV顏色模型矯正。選擇閾值180對S分量進行閾值分割,二值化后的結果見圖4(b)。經過試驗可知,S分量值補償閾值30效果最佳,再轉換為RGB顏色空間,得到圖4(c),可見矯正后的反光區域恢復正常。

圖4 反光區域的亮度矯正
Canny[6]算子具有良好的魯棒性,本文采用Canny算子提取二值化后的臍橙邊緣。臍橙的邊緣形狀呈橢圓形,用最小二乘法對提取到的臍橙輪廓進行橢圓擬合[7],橢圓擬合結果如圖5所示。

圖5 橢圓擬合結果
本實驗中像素坐標與世界坐標的比例關系:k=0.51mm/pixel,以橢圓短軸b與k的積L作為臍橙的真實橫徑,見式(1)。臍橙在3個工位中計算到的真實橫徑分別為L1、L2、L3。選取其中的最大值Lmax,作為臍橙的大小特征。
L=k×b
(1)
臍橙在生長、采摘、清洗和運輸等環節都有可能造成缺陷。果面缺陷會對品質產生較大影響,常見的臍橙果面缺陷有蟲斑、腐爛、裂果和潰瘍等,通常缺陷區域比正常區域的顏色更深。本文采用閾值分割法來提取果面的缺陷區域。臍橙表面為類球體分布,經過亮度矯正后,雖然果面光照更均勻,但很難使用單閾值分割法提取表面的全部缺陷,見圖6(b)。因此本文提出基于積分圖的局部自適應閾值分割方法對臍橙的表面缺陷進行分割,結果見圖6(c)。可見基于積分圖的局部自適應閾值分割法,可以有效提取出果面的缺陷部分。

圖6 缺陷分割結果
積分圖是在一幅圖像中快速計算其任意矩形區域內像素值和的一種方法,計算消耗的時間均為常量,與窗口的大小無關,可以滿足工業檢測對處理速度上的需求。令I(i,j)是圖像f(i,j)的積分圖,則I(i,j)中任意一點(x,y)的值見式(2)。其中f(i,j)為點(i,j)的灰度值。任意矩形的灰度值均值Mi的計算公式見式(3)、式(4)。(x1,y1)和(x2,y2)分別為該矩形的左上角和右下角坐標,Ii為該矩形的灰度值總和。

(2)
Ii=I(x2,y2)+I(x1,y1)-I(x1,y2)-I(x2,y1)
(3)
(4)
算法的實現步驟如下:
1)按照臍橙的最小外接矩形對單個臍橙的R分量圖像進行裁剪,并用線性插值法,把圖像統一裁剪成180×180 pixels,求出該目標圖像的積分圖I(x,y)。
2)確定滑動窗口為30×30 pixels,以步長為0.25在目標圖像上進行滑動。把滑動窗口均分成4個子窗口,分別用積分圖計算子窗口的灰度值均值M1、M2、M3、M4,求M1與M2、M3、M4差的絕對值ΔD2、ΔD3、ΔD4,求均值得到ΔD,計算公式如下:
ΔDi=|Mi-M1|
(5)
(6)
3)判斷ΔD是否超過預設值T,超過T則以滑動窗口的灰度值均值M作為分割閾值對滑動窗口所在區域進行二值化操作,二值化結果中缺陷區域灰度值為0。若ΔD>T則把窗口內的灰度值置為1。本文通過實驗可知T設為20時可以較好地將缺陷區域完整提取。
4)重復步驟2)和步驟3),直至遍歷完整幅圖像。將各子圖像進行合并,得到完整的缺陷圖像,結果如圖7(a)、圖7(b)所示。

圖7 缺陷檢測效果圖
對缺陷圖像中灰度值為0的像素點求和得到缺陷區域像素點總數A。缺陷率的計算公式為:

(7)
(8)

臍橙成熟后,表面多為橙黃色和橙紅色,臍橙著色面積是指果面橙紅、橙黃區域的面積,在H分量中取30作為閾值可以有效地區分橙色區域與綠色區域。臍橙著色度C的計算公式為:

(9)

(10)
(11)

決策樹[8]是一種非參數的有監督學習算法,決策樹的根節點包括全部訓練自助樣本,每個節點選擇分支變量的原則是從一組隨機選取的變量中選擇使分枝后節點的“不純度”最小的變量作為分枝變量。“不純度”的衡量標準包括Gini系數和信息熵,Gini系數和信息熵的值越大,不純度就越高。決策樹中,節點t的Gini系數計算公式為
(12)
式中:t為給定的節點;i為標簽的任意分類;c為標簽在該節點上總共的分類個數;p(i|t)為標簽分類i在節點t上所占的比例。
信息增益Gain是判斷分支變量對一個節點的可分程度,節點t的信息增益計算公式為
Gainjt=Ginit-Ginitl-Ginitr
(13)
式中:Gainjt為分支節點j對節點t的信息增益;Ginitl、Ginitr分別為節點t以分支節點j進行分支后的左、右節點的“不純度”。決策樹選擇變量進行分支時,選擇使信息增益更大的分支變量。
在改進的決策樹——C4.5中引入過分支度的概念來對信息增益的計算方法進行修正,避免分類水平過多,信息熵減小過快的特征影響模型,減少過擬合的情況。分支度的計算公式為
(14)
式中:i表示父節點的第i個分支節點;vi表示第i個分支節點的樣本個數;P(vi)表示第i個分支節點的樣例個數占父節點總樣本數的比例。在C4.5中,使用信息增益與分支度的比值作為對節點可分程度的評斷標準,稱為信息增益率,該值越大說明可分程度越高,如下式:
(15)
本文的C4.5模型以臍橙的大小、著色度和缺陷率3個特征作為輸入向量,輸出4個分類(特等果、一等果、二等果、等外果)。
本實驗采用贛南地區出產的紐荷爾臍橙,根據臍橙國家分級標準[9],隨機選取特等果、一等果、二等果和等外果各100個進行實驗,其中,各個等級隨機選取50個作為訓練樣本,剩下的50個作為測試樣本。
訓練分類器之前,按照第3節中特征提取的方法,提取出臍橙的橫徑L、著色度C、缺陷率D,如表1所示。把這些特征參數送入C4.5模型進行有監督訓練,訓練結束后,保存模型參數。通過訓練好的C4.5模型,對測試集中的樣本進行測試,結果如表2所示。

表1 臍橙特征參數

表2 臍橙品質分級結果
本文基于樹莓派平臺,樹莓派的成本僅為工業計算機的1/10。1臺樹莓派可以處理1列輸送線上的臍橙。隨著輸送線列數增加,可以通過增加樹莓派設備的數量對整條輸送線進行并行處理,此時樹莓派平臺在分級速度和成本方面均要優于使用單臺的工業計算機。表3為在不同列數的輸送線情況中,樹莓派平臺與工業計算機平臺分級速度的對比。當輸送線列數為5時,有5臺樹莓派分別對每列輸送線上的臍橙進行并行處理。此時該系統的分級速度明顯大于使用單個工業計算機的分級速度,成本也遠遠低于單個工業計算機。

表3 分級速度對比 單位:個/s
本文在V分量上結合輪廓填充的方法,有效地分割出滾子輸送線上臍橙的前景圖像。在S分量上實現了反光區域的亮度矯正。分別提取了臍橙的大小、著色度和缺陷率3個特征,構建以這3個特征為輸入向量,臍橙分類等級為輸出的決策樹分類器。試驗結果表明:在樹莓派平臺上該分類器的分類正確率達到95%,當輸送線的列數為5時,處理速度為15個/s,驗證了系統的準確性和實時性,可以滿足在線分級的應用要求。