姚應方, 劉峰, 張海東, 李超, 周海俊, 王滿
(云南農業大學機電工程學院,昆明 650201)
八角茴香,又稱“八角”,八大香料之一,既是老百姓日常烹飪必不可少的調味料,也常用于食品加工領域,在藥用和其他工業領域也有廣泛的用途[1]。我國八角的種植面積、產量均位居世界前列,出口量更常年穩居全球首位。但近幾年來,我國八角的出口量因品質不穩定而波動較大,與我國八角品質的檢測技術有很大關系。八角外形復雜,顏色單一且色差小:大紅八角顏色為棕紅和褐紅,果形特征為角瓣粗短;角花八角的顏色為褐紅,果形特征為角瓣瘦長;干枝八角顏色為黑紅,果形特征為壯瘦兼備。但品質檢測特別是外觀品質的檢測仍然依靠人工或簡單機械進行,準確率低、勞動強度大、效率不高,分檢后的產品達不到進口國的品質要求。因此,探索新的八角外觀品質檢測技術、加強八角品質檢測的機械化水平對穩定出口量、引導八角產業健康良性發展具有重要意義。
圖像處理技術的發展和完善為農產品的無損、快速識別提供了可能。在顏色提取與識別方面,Angadi等[2]提取葡萄干顏色特征,并利用人工神經網絡分類器建立分級模型,識別正確率達到95%。Mery等[3]提出了一種基于RGB顏色彩色模型分割算法分離梨。蔡建等[4]通過機器視覺的方法提取色調、飽和度、核桃仁輪廓面積與最小外接圓面積之比等特征,建立決策樹模型預測核桃仁樣本,正確率達到92%。Pauly等[5]用機器視覺技術提取芒果顏色特征,并利用色差對其成熟度進行判別,利用缺陷部位像素數來判定芒果品質,分級準確率達到了83.3%。王紅雨等[6]提出,在HSV顏色空間中利用一種改進型局部二值模式(improved local binary pattern,I-LBP)算子來增強邊緣提取效果,最后用矩形框圈出障礙物輪廓。在果形提取與識別方面,苗玉彬等[7]提出Zernike矩邊緣檢測的分水嶺算法,將目標輪廓可以保留下來,從而避免了標記。楊靜嫻等[8]利用OTSU與Canny邊緣檢測算法相結合的方法,提高分級摘酒工藝的穩定性和準確性,易于實現分級摘酒工序的智能自動化。Mahale等[9]通過提取谷物邊緣輪廓,識別了谷物的大小和形狀并設定分級標準,明顯提高了檢驗效率。Abirami等[10]運用數字攝像技術收集了大米的面積、周長、長短軸等參數,并利用BP神經網絡對其進行訓練,實現了對大米顆粒的分級,準確率達到了96%。王偉等[11]采用連續投影算法選擇建模最優波長,建立多光譜偏最小二乘分類判別模型,鑒別了八角茴香與其偽品莽草。張桂梅等[12]提出一種新的基于局部輪廓特征的目標檢測方法,該算法結合gPb算法和OTSU提取顯著性輪廓,去除了目標附近的大量噪聲邊界,有效地提高了檢測效率。但目前利用機器視覺對八角果形和顏色識別的研究較少,傳統八角分選仍依靠人力,且標準不一。機器視覺技術最大的優點是能在無接觸的情況下對物體進行檢測,且在農業外觀品質檢測和工業上得到廣泛應用。因此,本文結合機器視覺技術,探索一種快速、規范、準確識別八角顏色與果形的識別方法。
本研究對采集到的八角圖像進行預處理,利用顏色空間的變換識別了不同顏色的八角;利用極坐標變換、余弦定理、傅里葉變換等方法提取了果形特征;通過標準差方法,識別了八角的均勻性。本研究采用機器視覺檢測八角品質,可提高檢測精度,避免人為誤檢,提高檢測效率,也為后續八角研究提供參考。
試驗材料為大紅、干枝、角花3個常見的八角品種,共394個,其中大紅192個(外觀顏色為棕色的101個、褐紅色的91個),角花101個(褐紅色),干枝101個(黑紅色)。為了檢驗試驗的結果,另選取同種類的八角(棕紅、褐紅、黑紅各41個;角瓣粗短和角瓣瘦長的八角各35個)進行驗證。
八角顏色和果形檢測參照GB/T 7652—2016標準[13],不同類型的八角果形和顏色對應關系如表1所示。
表1 八角的顏色和果形標準
1.3.1圖像采集系統 本研究的圖像采集系統其組成如圖1所示,主要包括光箱、光源、工業相機和計算機等部分。
注:1—燈管;2—采集箱;3—工業相機;4—八角;5—數據通信線;6—計算機;7—載物臺。
1.3.2系統參數設置 圖像采集設備為方程科技FCID130C彩色工業像機,分辨率(像素)為1 280×1 024,將其置于光箱(規格為35 cm×25 cm×75 cm)頂部正中央。周圍有光源,光源由4根白色LED熒光燈組成,功率30 W,色溫為白色,平均分布在箱體的四側。相機正下方為載物臺,相機鏡頭與載物臺上八角距離65 cm,采集圖像時將八角平放在臺上。圖像的分析處理均通過VS2019+Opencv3.4.8實現。
1.4.1圖像濾波 圖像在采集、傳輸和處理時會受到光線、電流和噪音等不同因素的干擾,導致圖像存在一些噪音或噪點,對特征參數的提取產生不利影響。八角顏色色差小且輪廓復雜,為了能最大程度保持八角圖像的顏色和輪廓特征,使用中值濾波法[14]對圖像進行處理,該方法不僅可以有效去除噪音,還能保留較為完整的八角顏色特征。
1.4.2圖像灰度化與分割 采集圖像,以R、G、B格式保存,分別對應紅、綠、藍的顏色信息。RGB顏色豐富,在圖像處理時占用大量內存,且RGB對物體形狀特征處理上并不突出。為了降低處理難度和計算時間,將原始圖像灰度化(公式1)后提取形狀特征。
Gray(x,y)=T[B(x,y),G(x,y),R(x,y)]
(1)
式中,Gray(x,y)表示灰度值,B(x,y)、G(x,y)、R(x,y)分別表示B、G、R不同的分量值[15]。
較為常見的灰度化方法有平均灰度法和最大值法,平均法是對B、G、R通道的平均值作為灰度值;最大值法是將原圖像的B、G、R三通道中最亮的值作為灰度值;而較為準確的方法是設置不同的權重,將B、G、R分量按不同比例進行劃分,比如人眼對藍色敏感度低,對綠色較強。為了提高準確性且符合人們的感官,本文用加權平方對圖像進行處理,計算公式如下。
Y=0.114B+0.587G+0.299R
(2)
灰度化后利用OTSU閾值分割法[16-17]對圖像進行二值化,二值化圖像輪廓邊緣仍存在許多“毛刺”,為了后續處理八角的輪廓特征,同時去除一些干擾信息,選用3×3的橢圓核對圖像進行處理去除毛邊和毛刺[18]。
八角樣本顏色有褐紅、黑紅和棕紅三種,RGB值差別無明顯差別。因此,先將分割后的八角RGB轉化到HIS空間,再選用HIS空間顏色區別大顏色特征對八角顏色進行識別[19]。根據式(3)~(6)對101個黑紅、褐紅和棕紅色八角樣本RGB值進行轉化。
(3)
(4)
(5)
(6)
式中,H為色調,以角度度量;S為飽和度,表示顏色與光譜色的接近程度,值越大則越接近飽和;I為強度,表示顏色的明暗程度,值越大表明越亮。
輪廓對區分和識別一個物體與其他物體很重要,但直接提取的輪廓并不能表述出有效信息,結合八角形狀的復雜性和規律性,對八角的輪廓特征進行提取。
1.6.1輪廓提取 利用OpenCV中的輪廓查找函數findcontours查找預處理后圖像的輪廓,但是查找到的輪廓包含許多干擾輪廓,利用OpenCV中的Rect函數對查找到的輪廓進行“填裝”,再遍歷Rect的最大面積,即為八角的輪廓特征。
Findcontours輪廓查找函數是基于Satoshi-suzuki思路實現的[20-21]。其對二值圖像進行拓撲分析,確定二值圖像輪廓的圍繞關系,即孔和輪廓的之間的層次關系。因為輪廓和原圖的區域是一一對應的(輪廓對應的二值圖像像素值為1的連通域,孔對應的值為0),將這些輪廓標記為cX和hX,其中c代表輪廓(contour),h代表空(hole),X代表數字。再對不同的孔和輪廓進行賦值,從而得到孔和輪廓的輪廓樹,而輪廓樹上的子樹就是對應的不同輪廓編碼。
1.6.2輪廓極坐標變換 ①圓心提取。考慮到八角的形狀復雜,本文以最小內接圓法提取質心。首先,對前文中得到的八角輪廓進行Harris角點檢測,再以檢測出的角點為基礎,用最小內接圓法找到八角的圓心(X0,Y0)和半徑R,處理后的圖像如圖2所示。
圖2 最小內接圓
②掃描坐標點。找到輪廓后對八角輪廓上的點進行逐點掃描,并存入vector
③極坐標變換。找到圓心和輪廓像素點位置后,以找到的圓心為中心點(X0,Y0),將輪廓上的點帶入式(7)和(8)進行極坐標變換。
(7)
(8)
式中,xk為輪廓點上的行坐標,yk為輪廓點上的列坐標,X0最小內接圓下求得的圓心行坐標,Y0最小內接圓下求得的圓心列坐標,ρk為極坐標變換后的縱軸像素點坐標值,θk為極坐標變換后的橫軸像素點坐標值。
①極坐標錯位相減。在進行輪廓識別和極坐標變換后,點與點之間存在許多間斷點,由于不能直接對其進行求導,本文采用對轉換后得到的極坐標的ρk進行錯位相減,得到′ρ=ρk-ρk-1。
②歸一化。因為錯位相減后的數值大小不一,不利于數據處理,因此把′ρ方程進行歸一化。IF導數方程中的點若大于等于0則將其變為1,小于0則為-1,歸一化后如圖3所示。
③濾波。從圖3可以看出,二值化的點還有許多干擾點,但是有明顯的區分端,采用記數法得到極值點。采用長度為10的區間對其進行遍歷,根據需要調整長度,本文選用10。IF遍歷中左右兩端+1和-1的個數相差小于1~2,則判定為有極值點,并記錄點的位置′ρ,處理后得到的點和變換后的極值點′ρ如圖3所示。被識別出的極值點點數為八角角數的2倍,所以八角角數為極值點數的1/2。
圖3 八角角數識別
1.8.1余弦定理法提取八角果形參數 以角數建立角度特征作為特征參數描述果形,參數定義和果形特征提取如下。
圖4 波峰波谷
圖5 向量定義
(9)
1.8.2傅里葉法提取八角果形參數 八角形狀復雜,直接識別八角肉瓣難度較大且不易于分析,但八角極坐標變換后的輪廓酷似周期信號。為了更好地識別八角肉瓣,將輪廓點θ(k)和ρ(k)帶入式(10)進行轉換[24-25]。
S(k)=θ(k)+jρ(k)
(10)
式中,θ(k)為極坐標點xk,為復數域的實數軸;ρ(k)為極坐標點yk,為復數域的虛軸;S(k)為復數域;k為輪廓點數,k=1,2,3,…,k-1。
為了數據處理方便,本文對所得的數據進行降維,通過公式(10)將二維的問題轉化為一維問題,并將S(k)帶入公式(11)。
(11)
在對八角進行分類或者分級過程中,對于八角的外觀都有嚴格要求。利用標準差(σ)角瓣均勻度進行評價。
(12)
式中,N(波峰)為識別出的八角角數,μ為最小內接圓半徑,xi為波峰到圓心μ的徑向距離。
本文人工挑選角瓣均勻的90個八角進行計算,σ值越大,八角角瓣越不均勻,則八角的外觀不好。
從圖6可以看出,中值濾波處理消除了原始八角圖像上的噪音或噪點,避免了后續的處理帶來干擾。從圖中也可以看到對不同顏色和果形的處理結果,圖像更加平滑且邊緣信息得到了保護,同時為OUST閾值分割提供了基礎。
圖6 八角分割圖像
灰度圖像在很大程度上降低了圖像需運算的數據量,同時也保留了較好的邊緣信息。灰度圖像是指每個像素只有一個采樣顏色的圖像,這類圖像通常顯示為從最暗的黑色到最亮的白色的灰度,可以表示任何不同顏色的深淺。從圖7可以看出,灰度圖像不僅便于圖像的處理,還保留了八角的果形、角數等特征。
根據二值化后的圖像,對原圖像中的點進行遍歷得到只有八角前景的分割圖[26-27],不同八角處理后的結果如圖7所示。因八角果形輪廓與橢圓相似,所以通過3×3橢圓核對八角輪廓進行處理,能更好的提取八角的信息。
圖7 八角分割圖像
由前文可知,不同類型的八角在H分量下區別較為明顯,如圖8所示。從圖中可知,若H值大于60則為褐紅,35~60之間為黑紅,小于35的則為棕紅。
圖8 各類八角顏色H分量
選取不同顏色的八角各41個,在H分量下對其進行識別,結果如圖9所示。其中落在35~60的黑紅八角為39個、大于60的褐紅八角為40個,小于35的棕紅八角為39個。由表2可知,在H分量下對黑紅、褐紅和棕紅色的八角樣本進行識別的比率分別為95.12%、97.56%、95.12%。表明八角顏色在H空間區別明顯,造成部分重疊現象的原因主要是少量八角樣本在存儲過程中受到環境的影響而導致顏色發生變化,該方法能有效識別八角的顏色。
圖9 不同八角顏色在H分量下的識別比率
表2 八角顏色特征識別結果
八角輪廓變化后如圖10所示,變換后的八角輪廓看上去更像一個周期函數,相比八角輪廓,變換后的八角輪廓直觀且處理方便。
圖10 八角極坐標變化
對角數為8的八角進行識別,識別率如圖11所示。可以看出,識別果數多的次數多于次數少的,造成這種原因是由于個別八角輪廓會出現小的波峰,從而導致誤判,識別正確率為94.73%。
圖11 八角角數識別
2.6.1余弦定理法果形識別分析 對極坐標點進行向量標記計算復雜[28-29],不能直觀地表述出八角的特征,因此本文將尋找到的波峰和波谷點進行反變換,得到笛卡爾坐標系并在八角輪廓上畫出,如圖5所示。通過對各個極值點距離的向量帶入式(7)與式(8)得到夾角值φk,計算得到的夾角值和高(hk)為波峰到波谷的距離,利用點到直線的距離求出高hk,如圖12所示。
圖12 圖像處理后果形標記特征
選取的角瓣瘦長和角瓣粗短的八角各91個,利用余弦定理法提取不同果形八角角度特征,結果如表3所示。角瓣瘦長的八角角度平均值在21°左右,平均高值為70 Pix,角度與高度比值為0.304 3;角瓣粗壯的八角角度平均值在39°左右,平均高值為51 Pix,角度與高度比值為0.764 7。
表3 八角果形特征識別值
2.6.2余弦定理法果形識別 另選取不同果形的八角各35個進行角瓣識別(表4),角瓣瘦長識別正確率為97.14%,角瓣粗短的識別正確率為94.29%。其中,檢測錯誤主要發生在八角果數識別,由于果數在識別時要進行錯位相減,而相減的過程中會出現小概率不規律的八角輪廓,從而導致誤判。
表4 基于余弦定理的角瓣識別結果
2.6.3傅里葉變換法果形識別 將91個角瓣瘦長的八角和91個角瓣粗短八角統計分析和比較,如圖13所示,粗短的八角角瓣和瘦長角瓣的信息在前6個頻率值時區別較為明顯,角瓣粗短的平均值均小于角瓣瘦長的頻率值;8~11之間有明顯區別,11~29之間區別略小,但角瓣粗短的平均值均都大于角瓣瘦長的頻率值。
圖13 頻率-幅度對比
2.6.4傅里葉變換法果形識別 另選取角瓣瘦長和角瓣粗短的八角各35個進行圖像預處理,輪廓識別與極坐標變換后,再進行傅里葉變換識別八角的形狀。角瓣瘦長識別正確率為94.29%,角瓣粗短的識別正確率為94.29%,如表5所示。其中,檢測錯誤主要是由于頻率計算時,個別八角果形不規律,造成不同果形的八角頻率相近。但對八角輪廓特征進行離散傅里葉變換簡化了問題的方向,也為后續繼續研究八角的人提供一定的思路和方法。
表5 基于傅里葉變換后的角瓣識別結果
2.6.5不同方法果形識別結果比較 通過余弦定理法和傅里葉變換法識別了角瓣瘦長、角瓣粗短的八角。利用余弦定理法識別的不同輪廓特征相比傅里葉法識別的特征在提取速度和精度上都能達到很好的效果,但是利用余弦定理提取的八角特征對波峰和波谷的提取要求較高,若不能得到較好的波峰和波谷,則會影響余弦定理法的結果,這也是后續研究需要解決的一個問題。利用傅里葉變換對極坐標變換后的不同輪廓的八角進行處理,其識別精度與正余弦定理法接近,但處理速度慢于后者,且處理復雜,但傅里葉變換已在很多領域都有應用,因此理論與實際結合較為容易。
將求取的八角果數半徑帶入標準差公式得,角瓣均勻的八角σ的像素小于60 Pix,如圖14所示,相反大于60 Pix的則判為不均勻。通過均勻系數在很大程度上量化了八角的形狀外觀。
圖14 均勻八角標準差圖
本文通過機器視覺技術,利用顏色空間的變換提取了八角的顏色特征,利用極坐標變換、傅里葉變換方法提取了果形特征,探索了八角外觀品質檢測理論,可提高八角檢測精度,避免人為誤檢,提高檢測效率,也為后續八角研究提供參考。
王偉等[11]基于高光譜,以最優波長下的光譜數據建立了偏最小二乘判別模型對八角和偽品莽草進行鑒別。其方法主要鑒別八角和偽品莽草,缺乏對顏色的識別研究。本文通過H分量,有效地識別了不同顏色的八角,為八角顏色的識別提供了基礎研究。李頎等[30]采用最小外接圓法對蘋果上表面圖像進行處理得到蘋果果徑,采用最小外接矩形法對蘋果側表面圖像進行處理提取蘋果果形特征;周文靜等[14]采用圓形Hough變換識別葡萄果粒,并開發了可判別葡萄果穗成熟度的算法。本文利用了八角的輪廓特征,對提取的輪廓進行極坐標變化,再結合余弦定理、傅里葉變換和均勻系數。有效地識別了不同果形和八角均勻度,為后續圖像特征提取與識別提供了經驗。