蔡 建, 周 軍, 史建新, 王 勇, 郭 政, 劉 航
(1.新疆農(nóng)業(yè)大學機械交通學院,新疆烏魯木齊 830052; 2.新疆維吾爾自治區(qū)農(nóng)牧業(yè)機械產(chǎn)品質量監(jiān)督管理站,新疆烏魯木齊 830000)
核桃仁營養(yǎng)豐富,含有大量的磷脂、蛋白質和維生素,油脂含量高達60%以上,具有很高的經(jīng)濟價值和營養(yǎng)價值[1]。核桃成熟后由采摘到儲藏,中間一般要經(jīng)過脫青皮、漂洗、干燥等工序,每道工序都可能影響核桃的質量,并且由于其較高的油脂含量,在貯藏期間常發(fā)生霉爛、蟲害和變質現(xiàn)象。同時,由于核桃破殼技術尚不成熟,核桃運用機械方式(破殼)取仁時也容易造成核桃仁碎裂。市面上一般鑒別核桃仁的品質主要以觀察為主,仁衣色澤以黃白為上,暗黃為次,褐黃更次,而泛油、色黑褐的已嚴重變質,不能食用。LY/T 1992—2010《中華人民共和國林業(yè)行業(yè)標準》中對核桃仁的外觀主要是從顏色和完整度上劃分質量等級[2]。隨著計算機技術的快速發(fā)展,在產(chǎn)品自動檢測技術上應用機器視覺的研究越來越廣泛??梢姽夥秶惖臋C器視覺可以代替肉眼,并模擬人的大腦完成產(chǎn)品的檢測分級。與人工檢測相比,機器視覺檢測技術具有效率高、精度高、工作穩(wěn)定等優(yōu)點[3-4]。
近年來,機器視覺在農(nóng)產(chǎn)品檢測上的發(fā)展十分迅速,極大地促進了農(nóng)產(chǎn)品的標準化與商品化。在國內(nèi),馮斌利用計算機視覺建立神經(jīng)網(wǎng)絡模型對水果大小、形狀、顏色等進行分級,平均正確率達到95.2%[5];龐江偉對臍橙表面缺陷裂果、腐爛、病斑等進行特征提取,建立決策樹模型進行分級,5種缺陷的分類準確率都在80%以上[6];Yang對蘋果的果梗、花萼與缺陷進行識別,建立多層神經(jīng)網(wǎng)絡模型,識別準確率達95%以上[7]。Bennedsen等對水果在不同角度采集4幅圖像,并用貝葉斯判別分析方法對每類水果進行決策,對水果大小的檢測精度達93%以上[8]。
目前,核桃仁外觀的分級主要依靠人工目測法來實現(xiàn),費時費力,采用機器進行核桃仁自動分級刻不容緩,本研究通過機器視覺的方法從圖像獲取、圖像處理、圖像分割、特征提取到?jīng)Q策樹模型的建立,代替人工檢測對核桃仁的顏色及完整度進行分級。
基于機器視覺的自動分級技術涉及圖像獲取、圖像處理、模式識別等多方面的內(nèi)容,合適的硬件與綜合性的軟件平臺是必要的。
硬件上,采用中國大恒(集團)有限公司開發(fā)的MER-030-120U彩色相機,其集成了I/O接口,不需要額外使用圖像采集卡,提供了免費的軟件開發(fā)工具包(software development kit,簡稱SDK),方便二次開發(fā)。光源采用白色發(fā)光二極管(light emitting diode,簡稱LED)條形光源,色溫為 6 600 K,壽命可達50 000 h以上。
軟件上,作為目前最流行的Windows平臺應用程序的集成開發(fā)環(huán)境,Microsoft Visual Studio(簡稱VS)可以幫助開發(fā)人員迅速創(chuàng)建先進的軟件。在圖像處理方面,開源的計算機視覺庫OpenCV提供的視覺處理算法非常豐富,其優(yōu)化的C代碼在圖像的實時處理上具有較大優(yōu)勢。本研究采用VS 2010以及OpenCV 2.4.9完成圖像處理、特征提取、分級建模等工作。
結合核桃仁的人工分級方法,從顏色與完整度上確定本次研究對核桃仁的等級劃分(表1)。相機采集核桃仁圖像分級流程如圖1所示。
表1 核桃仁等級劃分情況
相機獲取的單幅圖像中存在背景以及核桃仁前景(感興趣的目標),須將核桃仁圖像從原圖中分割出來處理,背景顏色的選擇往往決定分割效果的好壞,通常選擇與分割目標顏色差距較大的顏色作為背景。不同等級核桃仁的顏色范圍較寬,難以直接通過固定閾值的方法分割圖像,通過分析不同等級核桃仁圖片的RGB(red,green,blue) 三通道圖像顏色分布發(fā)現(xiàn),各等級核桃仁圖像的B分量值均較小,R分量值較大,所以選取藍色作為背景色。
中值濾波是一種減少邊緣模糊的非線性平滑方法[9],采用3×3掩膜的中值濾波可以在濾除噪聲的同時較好的保護信號邊緣。經(jīng)多次試驗,對單幅彩色圖像可以作B通道與R通道的減法獲得單通道圖像來增加背景與目標圖像的差異,有利于圖像固定閾值的分割[10]。
理想狀態(tài)情況下,對于藍色背景,每個像素的藍色通道值為255,紅色通道值為0;對于前景,由于各等級核桃仁圖像R分量大于B分量,則作圖像通道減法有:
圖像經(jīng)通道減法運算后可以看到前景與背景達到較大差異,此時對圖像采用固定閾值的二值化可以達到較好的效果,圖像形態(tài)學閉運算用來消除純粹由噪聲引起的部分,開運算用來連接鄰近的區(qū)域[11],二者可提高圖像分割的魯棒性。圖片中可能出現(xiàn)位于邊界處不完整的核桃仁輪廓,此時需要去除邊界處的輪廓。邊界去除后可以得到效果較好的二值圖像,以此為掩膜在原圖中完成背景的去除。最后通過最小外接矩形的方法將原圖中各個核桃仁分割成多幅核桃仁圖片進行特征提取并分級。對分割出來的僅含單個核桃仁的圖像,在下面的特征提取中全部采用掩膜處理,即僅處理核桃仁區(qū)域。圖像處理過程及效果如圖2所示。
相機拍攝的數(shù)字圖像使用RGB顏色空間表達,但RGB空間結構并不符合人們對顏色相似性的主觀判斷,本研究將RGB空間轉換為符合人眼對顏色主觀認識的HSV(hue,saturation,value)顏色空間[12],即用色調(diào)、飽和度、亮度表示顏色(圖3),并在HSV顏色空間進行顏色特征提取。
給定RGB顏色空間的值(r,g,b),其中r,g,b∈[0,255],設m=max(r,g,b),n=min(r,g,b),其轉換到HSV空間的h、s、v值算法為:
v=m/255;
if(h<0)h=h+360。
這里h∈[0,360],s∈[0,1],v∈[0,1]
OpenCV中使用顏色空間轉換函數(shù)cvtColor()可以實現(xiàn)RGB到HSV的轉換。圖像顏色特征提取主要有顏色直方圖、顏色矩、顏色集等方法。顏色直方圖描述不同色彩在圖像中所占的比例,具有圖像縮放不變性、旋轉不變性等優(yōu)點。顏色的低階矩能夠表達圖像的顏色分布。
由圖3可知,色調(diào)分布在0°~360°的圓上。將色調(diào)等間隔量化為180等份,分別取淡黃色仁、淡琥珀色仁以及深色仁各10個,作色調(diào)直方圖。由圖4可以看出,各等級核桃仁的色調(diào)主要分布在0~30范圍內(nèi),即紅色到黃色(0°~60°)的范圍,本研究首先提取0~30共31個色調(diào)頻率作為色調(diào)特征,然后分別計算飽和度和明度的一、二階矩,作為圖像的飽和度與明度特征, 組成與顏色有關的35個特征,通過OpenCV決策樹建模并計算特征的重要性,選取重要的顏色特征用于決策樹分級模型的建立。圖像顏色直方圖使用函數(shù)calcHist()計算,飽和度與明度一、二階矩使用函數(shù)meanStdDev()計算。
通過分析不同完整度核桃仁的特點,可以選取2個特征表征核桃仁完整度的差異,分別是核桃仁輪廓面積與其最小外接圓面積的比值以及輪廓最小外接矩形長寬比。
由圖5可知,核桃仁輪廓最小外接矩形長寬比為:
K1=w/l。
其中,輪廓最小外接矩形由OpenCV中minAreaRec()函數(shù)求得。核桃仁輪廓面積與其最小外接圓輪廓面積之比為:
K2=S/(πr2)。
其中,核桃仁輪廓面積(S)由輪廓面積函數(shù)contoursArea()計算,最小外接圓由函數(shù)minEnclosingCircle()求得。
分別對10個四分仁和二分仁的這2種形狀特征的K1、K2作散點圖。由圖6和圖7可以看出,這2個特征值可以比較容易的區(qū)分這2種不同的完整度。
OpenCV決策樹使用分類回歸樹(classification and regression tree,簡稱CART)算法實現(xiàn)是一種二分遞歸分割技術,生成的決策樹是結構簡潔的二叉樹。CART算法采用基尼不純度(GiNi impurity)來構建決策樹,基尼不純度表示一個隨機選中的樣本在子集中被錯分的可能性,一個樹節(jié)點的基尼不純度定義為:
式中:C表示樣本總類別;Pi表示屬于第i類的概率。決策樹搜尋整個特征向量,計算樣本中每個特征各個取值(連續(xù)型特征為取值范圍)的基尼不純度,找到使基尼不純度最小特征的取值或取值范圍作為非葉節(jié)點的分裂標準,此過程在子節(jié)點上重復進行,直到不可再分成為葉節(jié)點為止,從而構建決策樹。
用以上提取的35個顏色特征與2個形狀特征組成的37維特征向量作為輸入量,使用OpenCV決策樹類CvDtree建立決策樹模型來預測未知樣本。建立決策樹模型的步驟如下:
(1)取白頭路、白二路、淺頭路、淺二路及深色仁(等外)各50個樣本,共計250個樣本,對每個樣本提取以上37個特征組成特征向量,組成250行37列特征數(shù)據(jù)的矩陣。
(2)人工分級并賦予數(shù)字表示,組成250行1列的標簽數(shù)據(jù)矩陣(與特征數(shù)據(jù)一一對應)。
(3)設置OpenCV決策樹參數(shù),通過類CvDTreeParams的初始化決策樹參數(shù),設置決策樹最大深度為4,樹節(jié)點持續(xù)分裂的最小樣本數(shù)量為4,可能取值的聚類上限為15,并設置獲取變量重要性與剪枝(防止過擬合)。
(4)將特征數(shù)據(jù)矩陣與標簽數(shù)據(jù)矩陣作為決策樹類的訓練函CvDtree::train()的輸入?yún)?shù)訓練模型。
(5)使用CvDtree::getVarImportance()函數(shù)計算特征的重要性,去除重要性較小或為0的特征,留下重要性較高的3個特征:4(6°~7°)和16(30°~31°)等2個色調(diào)區(qū)間的像素頻率以及輪廓面積與其最小外接圓輪廓面積之比,用留下的3個特征重新訓練模型并保存到本地。
模型建立后,每個等級分別取30個樣本,調(diào)用預測函數(shù)CvDtree::predict()->value進行等級預測,與人工分級結果進行對比,測試模型自動分級的正確率。預測效果如表2所示。
表2 決策樹模型自動分級與人工分級對照
從核桃仁圖像自動分割效果來看,將含多個核桃仁的圖像分割為單幅核桃仁圖像算法簡單、效果較好,可應用于核桃仁動態(tài)分級檢測中。
從模型計算的特征重要性來看,影響顏色等級的特征主要是色調(diào)范圍為4(6°~7°)和16(30°~31°)區(qū)間像素對應的色調(diào)頻率,其飽和度與明度對分級影響較小。
采用OpenCV決策樹類建立決策樹模型并用于核桃仁的自動分級,5個等級總的正確率為92.00%,分級效果較好,可用于核桃仁在線檢測分級中。
參考文獻:
[1]馬文強,張漫,李忠新. 基于近紅外光譜的核桃仁品種快速分類方法[J]. 農(nóng)業(yè)機械學報,2015,46(增刊1):128-133.
[2]中華人民共和國林業(yè)行業(yè)標準:LY/T1992—2010[S]. 北京:中國標準出版社.
[3]黎萍,朱軍燕,劉燕德,等. 機器視覺在農(nóng)產(chǎn)品檢測與分級中的應用與展望[J]. 江西農(nóng)業(yè)大學學報,2005,27(5):796-800.
[4]童釗,廖桂平,李錦衛(wèi),等. 機器視覺技術在農(nóng)產(chǎn)品檢測中的應用研究[J]. 農(nóng)業(yè)網(wǎng)絡信息,2008(11):18-21.
[5]馮斌. 計算機視覺信息處理方法與水果分級檢測技術研究[D]. 北京:中國農(nóng)業(yè)大學,2002.
[6]龐江偉. 基于計算機視覺的臍橙表面常見缺陷種類識別的研究[D]. 杭州:浙江大學,2006.
[7]Yang T. Method and apparatus for sorting objects by color including stable color transformation:5533628[P]. United States,1996.
[8]Bennedsen B S,Peterson D L. Indentification of apple stem and calyx using unsupervised feature extraction[J]. Transactions of the ASAE, 2004,47(3):889-894
[9]Sonka M, Hlavac V,Boyle R.圖像處理、分析與機器視覺[M]. 3版. 北京:清華大學出版社,2011.
[10]Bradski G, Kaehler A. 學習OpenCV (中文版)[M]. 北京:清華大學出版社,2009.
[11]余文勇,石繪. 機器視覺自動檢測技術[M]. 北京:化學工業(yè)出版社,2013.
[12]鞏艷華,朱愛紅,代凌云. 基于顏色直方圖的顏色特征提取[J]. 福建電腦,2007(5):96-97.