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