呂聯(lián)榮, 秦 娟, 陳博斌
(天津理工大學(xué)集成電路科學(xué)與工程學(xué)院,天津 300384)
典型的機器視覺系統(tǒng)可分為PC式視覺系統(tǒng)與嵌入式視覺系統(tǒng)兩大類,前者較為復(fù)雜且開發(fā)成本高;后者易于開發(fā)和維護相對可靠耐用[1]。通常情況下,一個完整的機器視覺系統(tǒng)由圖像采集、分析決策和輸出三部分組成,三者互相配合實現(xiàn)相應(yīng)功能[2]。目前世界范圍內(nèi)對于使用機器視覺進行物體追蹤的研究較為成熟,應(yīng)用也已相當廣泛,如車輛道路監(jiān)控系統(tǒng)和行人闖紅燈抓拍系統(tǒng)等[3]。很多公司都在研究開發(fā)這一技術(shù),如國內(nèi)的天地偉業(yè)公司、日本的基恩士、美國的康耐視等等。與此同時,基于機器視覺的追蹤技術(shù)也是國內(nèi)外各團隊研究的熱門,如朱振天等[4]基于機器視覺的運動煤顆粒檢測和遮擋追蹤技術(shù),針對煤顆粒篩分過程中被遮擋而導(dǎo)致其運動分析實測數(shù)據(jù)缺失的情況,應(yīng)用機器視覺的方法實現(xiàn)了對運動煤顆粒檢測和遮擋追蹤。俄羅斯Rakhmatulin博士[5]基于機器視覺追蹤技術(shù),使用樹莓派和激光發(fā)射裝置實現(xiàn)了自動滅蚊效果,該裝置通過攝像頭識別蚊子的位置,然后使用大功率激光發(fā)射器精準打擊,非常有創(chuàng)意。張清勇等[6]利用色塊追隨設(shè)計電磁曲線炮,根據(jù)機器視覺設(shè)計機器寫字系統(tǒng)[7]等。普通照明存在的問題:在安裝場地受限的情況下,由于陰影的存在無法提供理想的照明效果;高級照明設(shè)備可以提供無影照明,但是造價昂貴。本文提出了一種基于機器視覺追蹤的照明系統(tǒng),具有低成本和高光照追蹤的優(yōu)點。
基于視覺追蹤的隨動照明系統(tǒng)的機械結(jié)構(gòu)如圖1所示,以臺燈作為原型,由頭部、燈臂和底座組成。3自由度的燈臂使用3路舵機控制燈臂的三維移動,其中舵機X和舵機Y受圖像識別結(jié)果控制,分別實現(xiàn)光源上下和左右方向的移動,舵機D配合測距模塊實現(xiàn)距離保持。本系統(tǒng)體積小,因此選用了扭矩相對較大的MG90舵機作為動力裝置[8]。
圖1 臺燈的機械結(jié)構(gòu)
“無影”智能臺燈系統(tǒng)包括識別目標物體,控制舵機X、Y和D移動光源,實現(xiàn)光源跟隨目標物體進行移動。硬件系統(tǒng)由主控制器、識別處理、運動控制、光源控制和人機交互等模塊構(gòu)成,總體框圖如圖2所示。使用雙MCU(Micro-control Unit)聯(lián)合作為控制器,其中低速MCU為主控制器,負責(zé)驅(qū)動傳感器、數(shù)據(jù)計算和輸出控制信號;高速MCU處理攝像頭采集到的圖像信息,并將結(jié)果發(fā)送給低速MCU。
圖2 系統(tǒng)總設(shè)計框圖
距離傳感采用超聲波測距。運動控制模塊選用兩個大扭矩的舵機和一個普通舵機。光源控制模塊選用大功率LED和達林頓驅(qū)動電路。人機交互模塊包括微動按鍵和共陽RGBLED,實現(xiàn)模式選擇和相關(guān)信息的顯示。
主控模塊是系統(tǒng)的核心。本系統(tǒng)需要操控3路舵機,且在運行期間需要進行大量的數(shù)據(jù)處理,因此要求主控單片機有PWM(Pulse Width Modulation)發(fā)生器和較大的數(shù)據(jù)存儲空間。本設(shè)計的主控模塊選用ST公司的32位單片機。STM32F103C8T6[9],其主頻為72 MHz。該型號性價比較高,能輸出多路PWM,支持旋轉(zhuǎn)編碼器接口,具備串口通信能力,可以和圖像識別處理模塊進行通信,使系統(tǒng)獲取目標物體的位置信息,實現(xiàn)對光源控制。
識別模塊包括基于OV7725攝像頭的I.MX6ULL視覺圖像處理和RCWL-1601超聲波測距兩部分,如圖3所示。機器視覺處理由ARMCortexA7架構(gòu)的芯片I.MX6ULL處理,其主頻近800 MHz,配有硬件攝像頭接口(即CSI接口),可連接標準SCCB接口的CMOS攝像頭[10-11]。該模塊通過攝像頭進行圖象捕捉,進行目標物體的顏色識別,將識別結(jié)果通過串口發(fā)送至系統(tǒng)主控制模塊進行后續(xù)的處理。從工業(yè)生產(chǎn)角度考慮時,還可以使用其相近產(chǎn)品如I.MX6UL或STM32F4系列作為替代,此類芯片成本更加低廉。
圖3 圖像采集處理模塊和測距模塊實物
在系統(tǒng)中綜合考慮成本和照明干擾,選用超聲波測距,實現(xiàn)cm級精度的距離測量。該方案誤差較大,且對于被測物體表面平整度要求較高,易受溫度影響。通過硬件設(shè)計放大信號,軟件設(shè)計濾波和溫度補償算法進行彌補,提高了測量精度。
本系統(tǒng)采用舵機控制臺燈臂進行自由轉(zhuǎn)動[12],根據(jù)各部位承重需要分別選用SG90、MG90和ES08AII 3種舵機,舵機如圖4所示,其中紅色的是VCC,棕色的是GND,橙色的是PWM信號端。驅(qū)動信號PWM信號頻率一般為50 Hz,通過改變信號的占空比來實現(xiàn)舵機轉(zhuǎn)角的控制。
圖4 SG90型舵機實物
選用大功率LED作為照明光源[13-14],使用CD4017動態(tài)掃描點亮LED,達林頓管ULN2003作為驅(qū)動電路,配合單片機輸出信號驅(qū)動多個大功率LED,其電路如圖5所示。
圖5 LED驅(qū)動電路
該模塊由RGBLED、微動按鍵和旋轉(zhuǎn)編碼器EC01構(gòu)成。該模塊能夠?qū)崿F(xiàn)系統(tǒng)的外部控制,RGBLED可以實時顯示系統(tǒng)當前狀態(tài),供用戶得到系統(tǒng)狀態(tài)參考;微動按鍵可以實現(xiàn)系統(tǒng)模式的切換,用戶通過簡單地操作兩個按鍵實現(xiàn)啟動關(guān)閉系統(tǒng)和切換系統(tǒng)狀態(tài),同時RGBLED指示燈會以不同顏色顯示當前狀態(tài);旋轉(zhuǎn)編碼器用于實現(xiàn)在鎖定模式中手動控制臺燈臂轉(zhuǎn)角。系統(tǒng)的硬件組成如圖6所示。
圖6 系統(tǒng)硬件組成圖
除了圖像處理模塊,系統(tǒng)還使用STM32控制舵機、超聲波測距、按鍵識別和照明控制,以保證系統(tǒng)的實時性。
本系統(tǒng)對于響應(yīng)速度的最低要求為2~4次/s識別,并控制舵機移動。由于本系統(tǒng)不搭載實時操作系統(tǒng),選擇定時器中斷實現(xiàn)系統(tǒng)時間的同步規(guī)劃?;跔顟B(tài)分析法,主程序流程如圖7所示。
圖7 主程序流程圖
選用了高靈敏度的超聲波測距探頭,數(shù)據(jù)波動較大,因此設(shè)計了基于FIFO的軟件濾波器,使用冒泡法排序,返回中位數(shù)。該濾波方法能夠濾除突變值避免發(fā)生抖動,同時動態(tài)的FIFO能夠避免出現(xiàn)數(shù)據(jù)獲取不及時的現(xiàn)象,進一步增加數(shù)據(jù)的準確性。
為了校正聲速引入溫度補償函數(shù),其思路是在單片機芯片剛上電最接近室溫時讀取其內(nèi)部的溫度,ADC讀取內(nèi)部通道16來獲取當前電壓值,根據(jù)下式轉(zhuǎn)換成(℃):
式中:USENSE為傳感器的電壓值;U25為USENSE在25℃時的電壓值;UASvg_Slope為溫度與USENSE曲線的平均斜率,其典型值1.43[15]。再由下式得出當前環(huán)境溫度下的聲速,即
結(jié)合OpenCV設(shè)計裸機算法,采用了RGB色域閾值法的顏色識別方式,主要過程是遍歷圖像數(shù)據(jù)[16-17],若識別到對應(yīng)顏色則記住當前顏色區(qū)域,并擴大2倍,再識別下一種顏色,若無識別項則繼續(xù)遍歷識別下一顏色。當3個顏色均識別結(jié)束后會統(tǒng)計識別成功的次數(shù),并返回總的顏色像素坐標范圍。該算法能夠提高系統(tǒng)的運行速度,提升在低主頻MCU中的程序運行效率。
當遇到背景較暗的環(huán)境時,會將偏黑色誤判成紅色,因此還設(shè)計了自動糾錯功能。當識別到的顏色范圍過小時,丟棄該值并重新開始篩選顏色。經(jīng)過反復(fù)試驗,最終能夠讓算法在顏色較為單一背景下成功識別出目標。算法的流程圖如圖8所示。裸機程序的處理效果如圖9所示。
圖8 顏色識別算法流程
圖9 圖像處理結(jié)果
系統(tǒng)使用兩個MCU進行協(xié)同處理,設(shè)計了串口通信方式實現(xiàn)數(shù)據(jù)的傳輸。圖像處理模塊的I.MX6ULL進行圖像識別后,數(shù)據(jù)打包通過串口發(fā)送至STM32,由串口DMA接收,配合串口中斷實現(xiàn)數(shù)據(jù)包實時接收和解析,并將解析數(shù)據(jù)存至結(jié)構(gòu)體中以供后續(xù)操作。指令解析流程如圖10所示。
圖10 指令解析函數(shù)流程圖
“無影”智能臺燈樣品和測試如圖11所示,燈臂由木板構(gòu)成。將目標物體送入攝像頭視野,在工作模式中系統(tǒng)能夠根據(jù)當前識別結(jié)果正確地進行反饋操作,響應(yīng)速度在0.3 ms左右,能夠滿足基本要求;將目標物移出視野范圍,機械臂保持最后姿態(tài),說明當前系統(tǒng)進入等待模式。
圖11 “無影”智能臺燈樣品測試圖
進行顏色識別和光源控制功能測試方法為:將帶有RGB三色標記的手寫筆置于攝像頭感應(yīng)區(qū)內(nèi),按照左、右、前和后移動,觀察此時臺燈的運行狀態(tài)是否與手寫筆的運動方向一致。測試時隨機選擇方向,每個方向測試30次。測試結(jié)果表明,“無影”智能臺燈系統(tǒng)可以通過顏色識別模塊準確判斷手寫筆的運動方向,測試結(jié)果見表1。
表1 臺燈控制功能測試結(jié)果
本文提出了一種基于機器視覺的自動追蹤照明系統(tǒng)的設(shè)計方案,結(jié)合顏色追蹤算法,實現(xiàn)了低成本便攜應(yīng)急“無影燈”的效果。系統(tǒng)采用了RGB閾值法完成圖像二值化,減少了計算耗時,實現(xiàn)了顏色追蹤和光源隨動控制。將機器視覺、嵌入式開發(fā)與照明系統(tǒng)相結(jié)合,具有一定的實用價值,為高級照明系統(tǒng)的設(shè)計提供了新的思路,可自動調(diào)整照明角度保護視力。