徐 洋,郭冬霄,程安宇,鄭太雄
(重慶郵電大學自動化學院,重慶 400065)
顏色的判斷是許多科學應用研究的基礎,比如在交通方面道路信號的識別、車牌號的識別,在醫學方面的舌態檢查、藥品生產,工業上的紡織、印刷,都需要進行顏色的分類與識別。長期以來,此領域的研究也取得了相應的成績,而依賴人眼判斷顏色的現象仍然存在。如何實現顏色數據化成為紡織、印刷、醫藥等各行各業的一大難題,也成為國內外研究的焦點。
對顏色的判斷,旨在通過對像素進行分類,給定相應的標度,將顏色進行數字化。文獻[1-2]在RGB空間中創建了一個分層神經網絡專家系統,訓練了大量的像素樣本,分析R,G,B在每個像素眾所占有的比值,在對顏色進行判斷時,根據前期提供的訓練結果來給出當前的顏色判斷。文獻[3]提出了一種基于免疫原理的數值規約方法,一定程度上解決了K臨近法(KNN)在訓練樣本時計算開銷很大的問題。文獻[4]介紹了一種基于像素的皮膚檢測技術,強調了分類器算法中色彩空間選擇和像素分類的重要性。文獻[5]作為同樣研究膚色識別的文章,提出把像素分為兩類:屬于皮膚的和不屬于皮膚的,從而將屬于皮膚上的這些像素與其周圍的區分開來。文獻[6]介紹了顏色判斷在舌態分析中的應用,將舌像根據顏色進行了區域劃分,分為正常舌態和病變舌態,分別計算了各狀態下RGB(Red,Green,Blue)空間中R,G,B各分量的平均大小,以及 HIS(Hue,Saturation,Intensity)空間中 H,I,S分量的平均值,最后轉換到各類舌態的色坐標大小。
針對當前的研究,對顏色的判別研究主要有以下兩方面:1)模糊C均值(FCM)聚類算法、K-means分層聚類、學習矢量量化(LVQ)神經網絡分類器等。此類方法需要訓練樣本值,判別精度受到樣本個數的制約,由于實際情況的限制,樣本數量往往不能滿足各種使用條件的要求,而且不適用于有噪聲和樣本不均衡等問題,容易收斂于局部極值,所以不能保證達到較高精度。2)在RGB顏色空間中,根據各分量的數值設置相應的顏色范圍;或將RGB空間映射到HIS空間,以HIS空間中表征顏色信息的H分量作為顏色分割的主要依據。在圖像中,每個顏色通道的分量值都有0~255的256種選擇,三者組合在一起就會產生上千萬種情況,其中任意分量發生變化,都會產生不同的顏色,所以此類方法不能夠全面客觀的區分顏色,且不具備通用性。本文基于國際照明委員會(CIE)的標準CIE1931,提出了依據斜率與波長、波長與顏色的一一對應關系,并進行顏色的飽和度計算,來判斷顏色的方法,最后在Matlab中進行了仿真。
光是一種人類眼睛可見的電磁波(可見光譜)。在科學上的定義,光是指所有的電磁波譜,如圖1所示。具有各種顏色的光是電磁頻譜中狹窄的頻譜波段,稱為可見光。可見光波段中每一頻率對應一種單獨的顏色,其低頻率端是紅色4.3×1014Hz,高頻率端是紫色7.5×1014Hz。從低頻到高頻的光譜顏色變化分別是紅,橙,黃,綠,藍,青和紫。用光的波長(λ)或頻率(f)來表示各種顏色。可見光部分的波長范圍大約是350~780 nm。

圖1 可見光譜圖
在可見光譜上,光的顏色由其主波長決定。為了對色彩更好地加以說明,定義了顏色空間,指不同波長的電磁波譜與不同物質相互作用所構成的色譜空間。常用的顏色空間有 RGB,XYZ,CMY,HSV,HIS 等,文中在 RGB,XYZ空間中,使用判斷波長范圍的方法進行顏色的判斷。
把兩個顏色調整到視覺相同的方法叫顏色匹配,不同的待配色光達到匹配時三原色光亮度不同[7],用方程表示為

式中:C代表待配光;(R),(G)和(B)分別表示產生混合色的三原色,即紅、綠、藍的單位量,為1.000 0,4.590 7,0.060 1;ˉr(λ),ˉg(λ),ˉb(λ)表示匹配待配色所需要的紅、綠、藍三原色的數量,稱為三刺激值[7],如圖2所示。

圖2 RGB光譜三刺激值


在RGB空間,使用R,G,B三個系數值來定量的表述一個顏色。由于顏色僅取決與R,G,B的比例,而非它們的大小,所以可以用兩個量來準確地表述一種顏色

式中:將r,g稱為色度坐標。現將380~780 mm的所有純色光進行配色實驗,求得其色度坐標,并標注于r、g坐標系中,得到RGB色度圖。

圖3 等能光譜色的相對亮度曲線
圖4是根據光譜色度坐標使用Matlab仿真工具生成的rg色度圖的輪廓。曲線中,r坐標大部分是負值,坐標反映了r,g,b三色各自在三刺激值總量中的比例,一組坐標代表了色相和飽和度相同但亮度不同的顏色的特征,此曲線代表了顏色的色域范圍。(注:這一系統規定的等能白光(E光源,色溫5 500 K),位于色度圖的中心(0.327,0.325))[8]。圖4 中色度 CIE-RGB 系統的 ˉr(λ) ,ˉg(λ) ,ˉb(λ)值是由實驗得來的,有負值存在,使用起來不方便,因此,1931年CIE提出了新的國際色度學系統—1931CIEXYZ系統(又稱為XYZ國際坐標制)[8],轉換后的三刺激值如圖5所示。

圖4 CIE-RG色度圖

圖5 XYZ光譜三刺激值
在顏色模型中,用來生成其他顏色的兩種或三種顏色稱為基色(primitive color)。國際照明委員會(簡稱CIE)在1931年定義了三種標準基色,它們在理論上可以顯示各種波長的光,即顏色。通常把CIE規定的一組基色稱為XYZ顏色模型。任何一種顏色C可以表示為

式中:使用X,Y,Z來表示理想的三原色,X,Y,Z分別表示紅色,綠色,藍色,它們是假想色,x,y,z指出為匹配C所需的標準基色的量。對式(4)進行規范化

進行規范化后,參數x和y稱為色度值。因為z=1-x-y,可以用色度坐標(x,y)在二維圖像中表示所有顏色。
從RGB系統到XYZ系統的轉換公式為

在XYZ顏色模型中,當繪制出可見光譜中顏色的規范化量x和y時,即可獲得一如舌狀的曲線,稱為CIE色度圖,如圖6所示。
目前國際通用的CIE1931xy色度圖,可顯示基色組的顏色范圍,計算補色,計算顏色的主波長與色純度。
計算方法是根據色品圖上連接白點與樣品點的直線的斜率,這樣可以通過編寫程序的方法使用電腦來計算波長,準確快速。
首先是精確地找到光譜軌跡上對應的主波長的點,

圖6 CIE色度圖

按照CIE1931規定的三刺激值得到的白色光E點色坐標是(0.327,0.325),即 xw=0.327,yw=0.325。按照斜率與波長的對應關系將舌形圖分成9個區域,分區標準如表1所示。并逐點算出它們與白點所連直線的斜率,然后依次與白色點和樣品點所連線的斜率相比較,找到斜率相等的點,該點即為樣品的主波長或補色波長。這個方法缺點就是求出的主波長有可能是補色的波長,并不準確,文中通過分區域并判斷x色度坐標來唯一確定波長,在分區域的同時,也減少了運算量,大大加快了運算速度。
計算光譜軌跡(x,y)與白點(xw,yw)的斜率時公式采用公式(7)

表1 斜率劃分標準
所分區域如圖7所示。
對照CIE1931色度圖(圖7),每一個區域都對應一種顏色,具體的對應關系如表2所示。

圖7 斜率區域分割圖

表2 色彩與斜率的關系表
色彩區域分割圖如圖8所示。

圖8 色彩區域分割圖
在圖7中,設S點為某顏色,由白光點E通過S畫一直線至光譜軌跡W點,S點離開E點至光譜軌跡的距離表明它的色純度,即飽和度。顏色越靠近E越不純,越靠近光譜軌跡越純。這里S色的飽和度Saturation即為

經過如上過程,某一點或某一區域的平均顏色即可通過求取波長和飽和度確定該樣品的色品即顏色。
假設一待測點 S,其 R,G,B 值分別為 0,138,200,根據式(3)計算出該點的色坐標(r,g,b)為(0,0.408 3,0.591 7)。
根據式(5)將上式的色坐標從RGB系統轉換到XYZ系統,得到(x,y)為(0.208 9,0.287 9)。
計算S點與白點(0.327,0.325)的連線的斜率k,得到k=0.314 1。
從表1中的分區看到S點落在第8區,x<0.327,0.123 0<k≤2.073 8的范圍內,根據表2中的顏色判據,得出S點的顏色為藍色。
為驗證方法的準確性,從Adobe Photoshop CS3 Extended中選中像素 R,G,B 值分別為 0,138,200,生成顏色,人眼判斷該像素顯示的顏色為藍色,如圖9所示。

圖9 使用Photoshop的驗證結果
從圖片上右邊的“信息”一覽看到像素顯示為所需要的值,左邊即為該像素對應的顏色,為藍色。
重復上述過程,在大量實驗的驗證下,準確率達到95%,抽樣發現,出現檢測不準確的情況,主要原因是待測顏色位于兩種或幾種顏色的交界區,這樣就使判斷出現搖擺性,引起判斷錯誤。
從總體結果可以看出,該方法求出的顏色值具有較高的準確性,使計算機可以代替人眼自動識別紅,橙、黃、綠、青、藍、紫等主要顏色。
為進一步提高精確度,識別多種混合色,本文對上述方法做出相應改進,通過線性插值運算具體得到所求顏色的主波長。
如圖10所示,分區查找并確定待測顏色坐標落在對應主波長為λ1,λ2光譜軌跡與白點的連線之間,兩線的斜率分別使用k1,k2表示。這時待測主波長λ0界于λ1和λ2之間,設(x0,y0)到點 E(0.327,0.325)、斜率為 k 的直線的距離為d,公式為

依據上式,計算(x0,y0)到相鄰兩條直線的距離d1,d2,使用線性內插公式為

從而得到相應主波長λ0的值。

圖10 線性插值法
根據準確求出的主波長大小,將斜率的判據進行細化,便可求出更加精確的顏色。
以上仿真過程及驗證部分表明,該方法計算量較小,運算速度較快,擺脫了顏色檢測的主觀性和模糊性,無論是光源色還是表面色,都可以通過這種方法進行判斷,有較大的應用價值,比如交通警告和標志牌顏色、醫藥行業藥品顏色等的辨認,可以設置相應的使用范圍編碼,描述簡便而準確。
:
[1]ALTUN H,SINEKLI R,TEKBAS U,et al.An efficient color detection in RGB space using hierarchical neural network structure[C]//Proc.2011 INISTA.[S.l.]:IEEE Press,2011:154-158.
[2]TSAI L W,HSIEH J W,FAN K C.Vehicle detection using normalized color and edge map[C]//Proc.2007 ICIP.[S.l.]:IEEE Press,2007:850-864.
[3]王峰,曼麗春,肖逸軍,等.基于免疫數值歸約方法的車牌顏色識別算法[J]. 四川大學學報:工程科學版,2008,40(5):164-170.
[4]NALLAPERUMAL K,RAVI S,BABU C N K,et al.Skin detection using color pixel classification with application to face detection:a comparative study[C]//Proc.2007 ICCIMA.[S.l.]:IEEE Press,2007:436-441.
[5]NAGHDI N M,MIRJALILY G,ALMODARRESI S M T.Some notes on accuracy constraints of pixel based skin color detection[C]//Proc.2009 ICFCC.[S.l.]:IEEE Press,2009:324-328.
[6]許家佗,周昌樂,方肇勤,等.舌像顏色特征的計算機分析與識別研究[J]. 上海中醫藥大學學報,2004,18(3):43-47.
[7]CIE.Calculations for interior lighting basic method[R/OL].[2011-09-22].http://div3.cie.co.at/?i_ca_id=575&pubid=104.
[8]Standard practice for computing the colors of objects by using the CIE system[S/OL].[2011-09-22].http://www.astm.org/.