楊凌霄,王振營,劉群坡,王高偉,楊彥超
(河南理工大學 電氣工程與自動化學院,河南 焦作454000)
顏色是評價水果的重要指標之一,并且表皮顏色與果實內部糖度也存在著間接的聯系[1-2]。水果表面顏色直接影響水果的市場價格。近年來,許多機器視覺技術以及機器學習等方法被用于水果質量檢測[3-6]。文獻[7]研究了水果圖像的HSV、RGB色彩模型,并將RGB模型轉換為HSV顏色模型,提取顏色分量作為判別基準,對水果大小和色澤進行判別,實現水果的有效分級。文獻[8]中設置閾值分割紅色區域進行顏色檢測。文獻[9]利用HIS顏色模型中的H通道識別草莓成熟度。但是,單一顏色通道會丟失顏色信息。文獻[10]中提取YIQ顏色空間參數來判斷水果的成熟度。文獻[11~12]將基于RGB的蘋果圖像轉化為HIS模型,通過OTSU算法在H通道中進行水果和背景的分割,并根據H值范圍提取顏色特征并用支持向量機與LVQ(Leorning Vector Qoantization)神經網絡分級,LVQ神經網絡分級精度高于支持向量機。在檢測水果外觀特征時,文獻[13]研究了一種基于RGB顏色模型的紅富士蘋果表皮紅色區域檢測算法。該方法通過蘋果RGB圖像的光照補償,降低了光照變化和光照不均帶來的影響。此外,在此基礎上使用超紅-超綠閾值分割法,檢測分割后蘋果圖像的紅色區域并計算其面積。文獻[14]用改進的HSV和分水嶺算法檢測成熟的番茄。文獻[15]在對大棗進行色澤分級時,在RGB顏色空間中使用R-G直方圖去分析大棗的表面顏色,并且使用R-G平面創建了R-G直方圖。該方法舍棄了B通道,損失了部分顏色信息,且在RGB顏色空間中識別顏色時,識別結果容易受到圖片亮度的影響。
鑒于上述算法存在的問題,本文提出了一種基于H-S直方圖的著色率檢測算法。該方法將RGB彩色圖片轉換到HSV顏色空間中[16],用不同顏色蘋果的圖片樣本生成不同的H-S直方圖,依據像素在直方圖中出現的頻率,判別像素是否為紅色,檢測蘋果表皮紅色著色率;在H-S平面中生成直方圖,并舍棄與亮度相關的V通道。經驗證發現這種方法既不會丟失顏色信息,檢測結果又不易受到圖片亮度的影響。
紅綠黃3種顏色的蘋果圖片各5張,分成3組,并轉換到HSV顏色空間,生成3種顏色的H-S直方圖并且歸一化。檢測蘋果區域的著色率時,獲取待檢測蘋果的RGB彩色圖像,將其轉換到HSV顏色空間,然后提取每個像素的H值與S值。通過分析蘋果區域中的像素在H-S直方圖中對應的數值大小,確定其顏色是否為紅色,分析紅色像素所占比例,得到蘋果表皮紅色著色率。整個算法分成兩部分,即生成標準化的H-S直方圖部分和著色率檢測部分,算法流程如圖1所示。

圖 1 整體算法流程圖
在對圖像進行分析時,常使用的顏色模型包括RGB顏色模型和HSV顏色模型。RGB顏色空間模型根據三原色原理組成,3個維度分量分別是R(紅色分量)、G(綠色分量)和B(藍色分量)。這3個維度相關性較高,對光照比較敏感,不適合在RGB顏色空間模型中進行做顏色識別、感知算法。HSV顏色空間符合人類對顏色的感知特點的顏色模型。該顏色空間中的3個維度分別是H(色調)、S(飽和度)和V(亮度)。HSV顏色空間模型中的3個維度相互獨立,當對其中一個維度進行處理時,另外兩個維度不會受到干擾。本文目的是進行顏色識別,檢測著色率宜選用HSV顏色空間。將采集到的RGB圖像轉換到HSV空間,用HSV空間中進行顏色識別、色澤檢測,可以有效地避免光照不穩定帶來的影響,顏色空間轉換算法如式(1)~式(3)所示。
V=max(R,G,B)
(1)
(2)
(3)
式中,H為色調;S為飽和度;V為明度;R為紅色分量;G綠色分量;B藍色分量。

(a) (b)
2.2.1 樣本圖片蘋果區域處理
15張樣本圖片中3種顏色的蘋果圖片各5張,第一組為紅色蘋果圖片(r1~r5),第二組為綠色蘋果圖片(g1~g5),第三組為黃色蘋果圖片(y1~y5)。去除背景,去除果梗及花萼區域,只留下表皮區域并轉換到HSV顏色空間。最終處理完的樣本圖片如圖3所示,方便后續生成H-S直方圖。

圖3 用于制作H-S直方圖的樣本
2.2.2 生成H-S直方圖
得到用于生成H-S直方圖的樣本圖片后,提取每一組樣本圖片中蘋果區域的H和S值,生成H-S直方圖。計算每組樣本圖片中相同H、S的像素的次數以生成H-S直方圖(每組圖片一個)。hi(h,s)表示第i組蘋果的H-S直方圖,如式(4)所示。(h,s)是H-S平面中的坐標點位置。h和s范圍分別是[0~360]和[0~1],為了方便分析處理,將h的范圍映射到[0~255],s的范圍映射到[0~255]。
(4)
式中,Ph,s為第i組樣本中蘋果區域中H通道與S通道的值為h與s的像素個數;PT為第i組樣本中蘋果區域像素的總數。
2.2.3H-S直方圖的標準化
在生成H-S直方圖時,由于每張樣本圖片蘋果區域的像素個數不同。簡單地計算每種顏色的像素出現的次數并不能真正反映該顏色的重要性。必須對生成的3個H-S直方圖(每組一個)進行歸一化,以反映H-S平面中表示的顏色與其所屬類別的真實分布和重要性。通過將hi(h,s)除以第i組圖片中蘋果區域的總像素數來實現歸一化,其中i=1,2,3。第i組圖片的歸一化直方圖為Hi(h,s),如式(5)所示。
(5)
式中,Hi(h,s)為歸一化后的H-S直方圖。
將H-S直方圖的每個區間中的值歸一化為[0~1]。直方圖的原點位于H-S平面的左上角。橫軸和縱軸分別表示s值和h值。直方圖上某一點亮度與Hi(h,s)值的大小有關,通過上述過程可以得到紅綠黃3種顏色的H-S直方圖。圖4(a)~圖4(c)是生成的3種顏色的標準化H-S直方圖(像素值乘以250,便于顯示觀察)。

(a) (b) (c)
根據待檢測蘋果的RGB彩色圖像,將其轉換到HSV顏色空間,提取待檢測圖片中蘋果區域每個像素的h值和s值。對每一個像素進行歸類,每一個像素在上述每個直方圖中均會對應一個Hi(h,s)值,若H1(h,s)最大,則認為此像素屬于紅色,否則不屬于紅色。每個像素所屬的顏色類別C(h,s)如式(6)所示,然后統計整個蘋果目標區域內紅色像素所占的比例,得出蘋果紅色著色率。
(6)
式中,C(h,s)為像素的所屬的顏色類別。
用圖像分析蘋果表面著色率,檢測圖像中蘋果表面紅色著色率時,用式(2)、式(3)、式(5)及式(6)得出每個像素所屬的顏色類別,得出顏色為紅色的像素個數Pr,顏色為綠色的像素個數Pg,顏色為黃色的像素個數Py,最終的著色率計算方法如式(7)所示。
(7)
式中,red_rate為紅色著色率。
圖5(a)為去除背景后的圖像,用本文中的算法檢測蘋果區域中的每個像素,顏色為紅色的像素賦值255,其它區域賦值為0;圖5(b)為檢測結果。

(a) (b)
文獻[15]在RGB顏色空間中生成R-G直方圖檢測水果表面顏色。本文用HSV顏色空間生成H-S直方圖來識別蘋果表皮顏色,并通過對比實驗比較兩種方法的效果。文中對比了圖片亮度改變對兩種方法檢測結果的影響,檢測結果如表1所示。

圖6 不同亮度的圖片

表1 檢測效果對比分析
由表1可以看出,文獻[15]算法的檢測結果受圖片亮度V影響較大。本文所提算法優勢明顯,檢測結果幾乎不受影響,與人工觀察結果一致。在圖片亮度發生變化時,其檢測結果依然比較準確。
選擇無反光的20張樣本圖片進行誤差分析,隨機選擇10人對每張圖片進行人眼觀測,得出蘋果表面區域的紅色著色率,并用本文提出的算法檢測蘋果表面區域的紅色著色率。結果如表2所示。

表2 樣本誤差分析
表2中,第i個樣本的人工觀測結果為si,本文算法檢測結果為pi。平均誤差計算方式如式(8)所示。
(8)
式中,e為檢測結果平均誤差。
如表2所示,表中第一列為樣本序號;第二列為人眼觀測出的著色率;第三列為本文中算法得出的著色率;第四列為算法檢測結果與人眼觀測結果的差值;第五列為相對誤差的絕對值。由誤差絕對值可以得出人眼觀測結果與算法檢測結果基本一致,平均檢測誤差為8.3%。
本文基于圖像處理的方法,在HSV顏色空間中生成H-S直方圖,通過對蘋果表面紅顏色檢測和提取得出紅色著色率。通過實驗驗證了此方法的可行性及有效性,證實了檢測結果對圖片亮度不敏感,與人工檢測結果一致性較高,平均誤差為8.3%。此外,在H-S平面中生成H-S直方圖,舍棄與亮度相關的V通道,既不會造成顏色信息損失,又可以減弱圖片亮度變化對檢測結果造成的影響。本文存在的不足之處是只從一張圖像中分析了蘋果的顏色信息。一張圖片無法反映出蘋果的整個表面信息,因此以后的工作將致力于獲取蘋果全表面圖像信息,以進一步提高檢測結果的精確度。