周中正,王洪棟
(中國礦業(yè)大學(xué) 信息與電氣工程學(xué)院,徐州221116)
顏色傳感器TCS230分辨率高,具有可編程的顏色通透選擇,無需數(shù)/模轉(zhuǎn)換[1],在科學(xué)研究領(lǐng)域得到了較為廣泛的應(yīng)用,如智能化水域污染監(jiān)測[2]、介質(zhì)界面檢測[3]、顏色加密識別[4]、溫度測量[5]等。但由于 TCS230采集顏色信息時受環(huán)境光強影響較大[1],只有在外界光強相對穩(wěn)定或在實驗室條件下才能使TCS230的優(yōu)點得以發(fā)揮。雖然目前TCS230的顏色識別有白平衡算法來支撐,但白平衡處理并不能濾除光強干擾,在不易采取屏蔽措施的情況下往往難以達到識別精度的要求。另外,目前顏色識別的研究多基于PC平臺,基于處理能力相對較弱的單片機平臺的實用方案幾乎沒有。
本研究基于MCU平臺,利用RGB-YCbCr變換,可從RGB值中提取對顏色識別有用的色度信息[6-7],為消除環(huán)境光強的不良影響創(chuàng)造了條件。本顏色識別方案是在大量實踐和嘗試的基礎(chǔ)上得到的,而且能夠在全國機器人大賽智能搬運項目的比賽條件下滿足精度要求,為MCU平臺下的顏色識別提供了參考,具有較高的實際應(yīng)用價值。
物體顏色的感知是在白光的照耀下,物體表面反射出的有色光在人眼中所引起的反應(yīng),未被反射的成分則被物體吸收了。根據(jù)三原色理論,不同的顏色是由三原色(紅、綠、藍)按照不同的比例混合而成的,如果能得到某種顏色所對應(yīng)的三原色的值,就能夠唯一確定該顏色。利用感光材料的感光特性,依次測得物體表面反射光中紅、綠、藍各色光的含量,即可實現(xiàn)對顏色的識別。
值得注意的是,只有在標準白光(RGB含量相等)照射的條件下才能客觀地反映出物體對光的反射特性,即得到物體表面的顏色信息,但現(xiàn)實測量條件下的光常為非標準白光。另外,感光材料對三種原色的敏感性不同,而且受感光原件制造精度、測量誤差和環(huán)境亮度的影響,在對同一物體表面顏色的測取過程中,往往會得到一組有一定分布特點的RGB點,難以測得該顏色的精確信息,但可據(jù)此來判別出有限的幾種顏色。
TCS230是專用的顏色傳感器,其結(jié)構(gòu)如圖1所示。
TCS230內(nèi)部集成了可配置的硅光電二極管陣列和一個電流/頻率轉(zhuǎn)換器,可輸出頻率隨光強線性變化且占空比為50%的方波。
圖1 TCS230引腳封裝及功能框圖
用戶可通過可編程引腳S0、S1來選擇100%、20%或2%的輸出比例因子,通過引腳S2、S3來選擇所需的濾光器顏色,如表1所列。
表1 S0、S1、S2、S3引腳功能分配表
在工作時,可通過改變TCS230感光部位濾光器的顏色,依次讓三種原色的色光通過,根據(jù)其輸出頻率隨光強線性變化的特性,得到色光中的紅綠藍三原色信息。例如,當(dāng)選擇紅色濾光器時,紅色光能透射到感光部位,而藍綠光則不能透過,此時即可得到紅色光在此種顏色中的含量信息。但由于TCS230的感光部位對三種原色的敏感性不同,需要利用白平衡算法進行調(diào)整,具體方法為:在實驗室中利用標準白光(可用白色光源經(jīng)試管透射得到)照射TCS230的二極管陣列,得到TCS230的RGB頻率調(diào)整參數(shù)(可設(shè)紅色光為A),然后在比賽條件下測得TCS230的RGB頻率參數(shù)(設(shè)紅色光為a),運用白平衡調(diào)整(R=255·a/A),即可得到 RGB的理論值[8]。
顏色由亮度和色度來刻畫,色度是不包括亮度在內(nèi)的顏色的性質(zhì),反映的是顏色的色調(diào)和飽和度。在比賽中要辨別物塊顏色,就需要提取色度信息,而亮度信息則屬于干擾。利用TCS230運用白平衡算法獲取的RGB值既與色度有關(guān),又受亮度影響。雖然在實驗室條件下仍可完成顏色的測量,但白平衡調(diào)整并未解決亮度干擾的問題,當(dāng)環(huán)境光強改變時RGB值也會出現(xiàn)較大變化,在比賽條件下往往達不到判別的精度。
本顏色識別方案利用色度學(xué)RGB原理,運用RGBYCbCr變換,將RGB模式轉(zhuǎn)換為YCbCr模式。YCbCr模式是刻畫顏色性質(zhì)的一種模式,其中Y代表亮度,Cb和Cr則代表色調(diào)、飽和度。常見的JPEG圖片格式采用的就是YCbCr色彩系統(tǒng)。RGB-YCbCr變換公式為:
本方案以色度信息Cb、Cr為主要判據(jù),解決了利用RGB參數(shù)判別顏色受亮度干擾的問題,對不易區(qū)分的顏色以RGB值為輔助判據(jù)來進一步判別。
顏色識別流程如圖2所示。首先拉低使能引腳開啟TCS230,控制引腳S2、S3依次選通紅綠藍三種濾光器,利用MC9S12XS128的定時器和脈沖累加器來獲取TCS230在三種色光下的輸出頻率,即可得到原始的RGB頻率信息,利用白平衡調(diào)整,得到RGB的理論值。由RGB-YCb-Cr變換公式(1)求出Cb、Cr值,這樣就濾除了亮度干擾,獲取了物塊的色度信息,然后根據(jù)各顏色對應(yīng)的CbCr分布圖(如圖3所示),即可實現(xiàn)物塊顏色的判別。其中,CbCr分布圖的構(gòu)建方法(顏色分布的平面分割方法)為:經(jīng)多次預(yù)測量(即比賽前測量)得到一系列關(guān)于Cb、Cr的散點,以Cb為x軸、以Cr為y軸作平面圖,根據(jù)散點的分布來分割各顏色物塊對應(yīng)的區(qū)域,要盡可能給各色塊以足夠的裕量。如果在CbCr分布圖中出現(xiàn)了不同顏色有重疊區(qū)的情況,就需要進行RGB輔助判斷,即根據(jù)獲取的RGB值中容易區(qū)分重疊顏色的一個或多個值(如根據(jù)R值或根據(jù)R、G值)來進一步輔助判斷。
圖2 顏色識別流程圖
圖3 各顏色物塊CbCr分布及分割示意圖
智能搬運項目的比賽場地如圖4所示。比賽時,參賽選手在置有黃、白、紅、黑、藍 5種顏色物塊的袋子中隨機依次抽取三個物塊,并按抽取順序,將三個物塊擺放至拾起區(qū)(圖4中黃、紅、藍顏色區(qū)與中部交叉點之間的白色區(qū)域)。分揀搬運小車從出發(fā)區(qū)(圖4下方綠色矩形區(qū)域)出發(fā),沿黑線循跡至拾起區(qū)拾取物塊,并根據(jù)物塊顏色將其送至對應(yīng)顏色區(qū),最后回到出發(fā)區(qū)。比賽成績由小車送物塊至對應(yīng)顏色區(qū)的精確度(圖4黃、白、紅、黑、藍各顏色區(qū)靶心10環(huán)為10分,隨環(huán)數(shù)減小分數(shù)依次降低)和回到出發(fā)區(qū)的時間綜合決定。
圖4 智能搬運比賽場地
智能搬運小車的基本結(jié)構(gòu)框圖如圖5所示。硬件部分主要由MPU、傳感器模塊和動作模塊構(gòu)成。MPU采用Freescale公司16位MC9S12XS128芯片,它包含8個8位PWM通道且相鄰兩通道可合并為一個16位通道,可高精度控制舵機動作;還包含8通道的16位標準定時器TIM及1個16位的脈沖累加器[9],可方便地測出TCS230在紅綠藍色光下的輸出頻率。傳感器模塊包括用于循跡的光電對管TK-20、用于探測物塊的測距傳感器GP2Y0A02YK0F和用于采集物塊顏色RGB信息的顏色傳感器TCS230。動作模塊主要由小車輪子的驅(qū)動舵機S4309R和用于抓取物塊的驅(qū)動舵機SR-403P構(gòu)成。軟件的關(guān)鍵部分包括:用于循跡糾正控制的定時器中斷、用于判別物塊顏色的顏色識別和用于產(chǎn)生舵機控制信號的雙通道合并PWM產(chǎn)生。
圖5 智能搬運小車系統(tǒng)結(jié)構(gòu)圖
利用上文設(shè)計的智能搬運小車檢驗該顏色識別算法,得到的統(tǒng)計結(jié)果如表2所列。
表2 智能搬運小車分揀各色塊實測統(tǒng)計表
該統(tǒng)計結(jié)果顯示,本顏色識別方案在比賽環(huán)境條件下的顏色識別成功率達91.4%以上,可以滿足比賽精度的要求,表明本顏色識別方案能夠在單片機平臺中有效地實現(xiàn)顏色的識別。
① 將RGB-YCbCr變換應(yīng)用于TCS230的顏色識別是解決TCS230受外界光強干擾問題的有效途徑,是對現(xiàn)行TCS230白平衡算法的良好補充。
② 對不同物體顏色按CbCr參數(shù)的分布情況進行平面分割,并用RGB值輔助判斷的方法是區(qū)分物體顏色的一種實用方法,適用于單片機顏色判別系統(tǒng)。
[1]張松燦,肖本賢.高分辨率顏色傳感器TCS230的原理和應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用,2005(3).
[2]侯昭武,包敬海,李尚平,等.基于TCS230智能化輪船污染監(jiān)測儀的研究[J].自動化與儀表,2010(3).
[3]王安敏,尚緒超,趙龍.基于顏色傳感器TCS230的油水界面檢測儀的設(shè)計[J].機械設(shè)計與制造,2010(9).
[4]F Yucel,O Oral,N Caglayan.Design and Implementation of a Personal Computer Authorization System using Color Detection[J].Electronics and Electrical Engineering,2011,115(9).
[5]Zhao Guangxing Zhao Guangyi,ZhaoYuan.Design of color temperature measurement device based on TCS230[C].Beijing:IET International Conference on Wireless Sensor Network,2010.
[6]Saarinen K.Comparison of decimation and interpolation methods in case of multiple repeated RGB-YCbCr colour image format conversions[C].USA:Circuits and Systems,1994.
[7]江鳳兵.基于RGB-H-CbCr新顏色空間的膚色檢測算法研究[J].科技廣場,2011(9).
[8]秦志強,李昌帥,許國璋.智能傳感器應(yīng)用項目教程[M].北京:電子工業(yè)出版社,2010:85-88.
[9]王宜懷,曹金華.嵌入式系統(tǒng)設(shè)計實戰(zhàn):基于飛思卡爾S12X微控制器[M].北京:北京航空航天大學(xué)出版社,2011:207-248.
[10]TAOS Inc.Texas Advanced Optoelectronic Solutions TCS230 Datasheet.2007.