胡璐萍,劉懂懂,劉 通,王琪璇,陳榮榮
(1.西安交通工程學院機械與電氣工程學院,陜西 西安 710300;2.西安工程大學機電工程學院,陜西 西安 710048)
目前,農村大多數中青年外出務工,留在農村的可用勞動力越來越少,農忙季節,尤其是各種水果收摘季節,用于水果分級、分類的可用勞動力明顯不足,導致水果生產成本上升,水果業發展受阻。因此,研發水果自動分級技術,提升水果分級效率顯得尤為重要。伴隨著光電技術的發展,機器視覺技術快速興起[1,2],機器視覺技術已開始代替人工對物體進行識別和分級[3,4]。在早期的研究中,人們使用黑白相機采集、獲取水果表面的幾何和紋理特征,進而實現水果和背景的分割檢測。Slaught D.C等利用室外條件下水果顏色數字化圖像建立的識別柑橘分類模型,識別正確率達76%[5]。近年來,機器視覺技術快速發展,Khurram Hameed 等研究了基于計算機的果蔬分類方法,該方法雖然運算速度快,識別準確率高[6],但傳統的RGB圖像在識別水果圖像時魯棒性差、識別精度低,達不到理想的分級目的。基于此,本文提出了一種基于機器視覺對橘子進行分級的關鍵技術,從而形成一套機器視覺橘子分級系統,為精準分檢水果提供技術支持。
機器視覺橘子分級系統的整體方案可分為視覺檢測模塊和傳送裝置模塊兩大內容[7],其中視覺檢測模塊所需的硬件主要有光源、相機、鏡頭、電機、傳送帶和圖像采集卡等;傳送裝置模塊主要是傳送帶的選取以及電動機的速度控制。操作系統為Windows 10,軟件環境為MATLAB 2020a,以此來建立圖像處理算法庫。
機器視覺橘子分級的流程見圖1。從圖1 可以看出,首先,采用高分辨率的攝像機來拍攝傳送帶上的橘子圖像,然后利用相應的軟件算法對橘子的圖像特征進行識別,把橘子目標的分級數據和位置信息傳遞給數據庫,最后得到橘子的識別、分級數據。基于機器視覺橘子分級流程構建的橘子分級實驗平臺見圖2。該實驗平臺的圖像檢測速度為250 ms,傳送帶行進速度不超過1.6 m/s。

圖1 機器視覺橘子分級流程圖Fig.1 The key technology of orange size fruit grading

圖2 橘子分級系統實驗平臺Fig.2 Experimental platform of orange grading system
通過相機拍攝到的原始橘子圖像見圖3(a),為了避免圖像對比度不足對后續處理帶來干擾,本文采用灰度化將原始彩色圖像的3 通道轉換成只有單一通道的灰度圖,使其像素的灰度值分布在[0,255][8,9]。分別采用最大值法、平均值法和加權平均值法3 種灰度化進行處理,處理結果見圖3(b)、圖3(c)、圖3(d)。

圖3 灰度化處理效果圖Fig.3 Figure gray processing effect diagram
由圖3 可以看出,經過算法處理后,3 種方法均有一定的處理效果,但加權平均值法處理效果較好,試驗和理論證明,當W=0.3、V=0.59、U=0.11 時,能得到最合理的灰度圖像,可調節的能力強,其原因是根據橘子圖像中特征信息的重要性,給圖像中R、G、B賦予不同的權值,并使R、G、B的值加權平均,R=G=B=WR+VG+UB,其中W、U和V分別表示權重。因此,本文采用加權平均值法灰度化原始圖像。
為了更好地分析圖像特征,需要將圖像中目標區域和背景很好地分割開,對灰度化處理的橘子圖像進行二值化處理[10],將圖像上的點的灰度設置為0 或255,即圖像呈現出明顯的黑白效果。為了得到理想的二值圖像,一般采用封閉、連通的邊界定義不交疊的區域,所有灰度大于或等于閾值的像素被判定為屬于特定物體,其灰度值為255。橘子二值化處理后的圖像見圖4。

圖4 二值化處理后的圖像圖Fig.4 Image after binarization
橘子圖像在經過灰度化和二值化圖像預處理之后,仍然存在一些噪聲沒有得到有效處理,此時需要進行圖像的形態學處理,有效地濾除噪聲。常見的圖像形態學運算有腐蝕和膨脹2 種[11]。本文采用開運算對橘子圖像進行形態學處理,即先腐蝕橘子圖像,而后膨脹橘子圖像,處理效果見圖5。

圖5 形態學處理效果圖Fig.5 Morphologic processing renderings
橘子的大小可以用輪廓的周長來表示。運用等效圓的方法計算出橘子輪廓的周長后,可以找到一個和該周長相等的一個直徑,則把該直徑看作是橘子的直徑大小。把橘子的直徑換算為像素,就可以根據對應的橘子大小分級標準對它的大小進行相應的分級。根據《鮮柑橘》(GB/T 12947—2008)國家標準,橘子的分級標準見表1。

表1 橘子果徑的分級標準Tab.1 Grading standard for orange fruit diameter
隨機挑選大小不同的橘子,用相機拍攝圖像。由表1 可以得到大小果的分級閾值,根據該閾值可以進行相關的分級處理。
找到感興趣的顏色區域后,需要在原圖中把識別到的結果框定出來。先將指定的顏色區域提取出來放到白色背景中,二值化處理后,顏色區域為黑,背景區域為白;然后二值圖像取反,此時連通區域[12]即是顏色區域;最后用rectangle函數標記出連通區域,在原始圖片中框定識別到的橘子目標。
3.1.1 外接矩形原理
外接矩形是指使用圖像區域的外接矩形表示該圖像區域。這種方法是使用區域的最小外接矩形表示該區域的。
3.1.2 外接矩形的實現
在MATLAB 中可以使用regionprops 函數來得到圖像區域的最小外接矩形,函數的使用形式如式(1):
函數返回值Z為Cx1 的結構體數組,C為圖像中連通域的數目,每個結構體都有一個名為boundingbox 的域,域中有4個數值,前2個數值分別表示最小外接矩形左上角的x,y坐標,后2 個值分別表示外接矩形的寬度和高度。橘子的識別結果見圖6。

圖6 橘子果形識別過程Fig.6 Fruit shape recognition process of orange
在繪制最小外接矩形時可以得到最小外接矩形左上角的x、y坐標,以及外接矩形的寬度和高度。則計算圖像的形心坐標( )
X,Y的公式為:
式中:D為最小外接矩形的寬度,cm;H為最小外接矩形的高度,cm。
3.3.1 算法檢測數據和人工測量數據對比分析
為了驗證本文算法的可靠性,將算法檢測的數據和人工測量出來的實際橘子數據進行對比,利用實驗室平臺拍攝試驗樣本圖像,部分示例樣本視覺檢測結果見圖7。

圖7 視覺檢測示例效果圖像Fig.7 Visual inspection example effect image
從圖7(a)中可以看出,共有1個目標果實,用最小外接矩形框定目標區域,周長19.786 8 cm、面積20.640 5 cm2;圖像7(b)中共有3 個目標果實,用最小外接矩形框定目標區域,編號分別為1、2、3,其中1 號目標果實周長20.929 7 cm、面積22.588 1 cm2;2 號和3 號目標果實的特征參數信息描述方法等同于1 號果實,具體見圖7 中(b)部分。為了進一步驗證本算法處理結果的準確性,將本試驗結果與人工檢測結果對比分析,對比分析結果見表2。

表2 試驗結果與人工測量數據對比分析Tab.2 Comparative analysis of experimental results and manual measurement data
通過對表2中數據的分析,可見使用本算法檢測的周長、面積和人工檢測的結果基本一致,周長最大誤差在0.2 cm 以內,面積最大誤差在0.3 cm2以內。因此,可以使用本算法所得到的數據代替人工進行橘子的識別和分級。
3.3.2 橘子大小分級試驗分析
為了驗證本文所設計的橘子分級系統算法對橘子大小分級的準確性,分別隨機選用橘子大果、中果和小果各10個,進行試驗處理來驗證算法的準確性,最終的試驗結果見表3。

表3 橘子大、中、小果檢測結果Tab.3 Large,medium and small fruit test results of orange
對大小分級中3 組試驗的效果進行綜合分析,分析結果見表4。

表4 大小分級3組試驗綜合效果分析Tab.4 Comprehensive effect analysis of three groups of experiments with size grading
由表3 和表4 中可知,橘子大果和小果的分級準確率均為100%,可以滿足分級要求。只是中果的分級準確率為90%,其原因是3 號果實計算機判斷為中果而人工判斷為大果,出現該現象的原因是3 號橘子的直徑接近大果和中果的分界處,計算機是嚴格根據檢測得到的數據進行判斷,而人工則是用肉眼來進行判斷,人工的判定結果誤差較大。綜合3 組試驗的分級準確率為96.7%。由此可見,本文所設計的橘子分級系統滿足橘子大小分級的要求。
為了驗證本文提出方法的有效性,將該方法與傳統的橘子分級方法在所采集的橘子圖像上進行驗證,對比橘子大小分級的準確率,結果見表5。
通過表5可以發現,本文算法對橘子大小果分級的準確率明顯高于傳統的檢測算法,比傳統的檢測算法提升了3.40%。綜合所有分析結果,本文的改進方法具有一定的效果。

表5 傳統檢測算法與本文算法準確率對比Tab.5 Comparison of the accuracy of traditional detection algorithm and the algorithm in this paper
本文利用機器視覺和圖像處理技術對橘子檢測分級進行了研究,在橘子的大小形狀分級方面取得了一定成效,對所設計的橘子分級系統進行相關試驗分析,結果表明:橘子大小分級的準確率96.7%,相對于傳統的橘子分級大小方法本文算法分級的準確率提高了3.40%,滿足橘子大小分級的要求。