楊榮 王明偉 劉思銘
摘 要:在智能控制的諸多應(yīng)用領(lǐng)域中,如何對(duì)某一目標(biāo)對(duì)象進(jìn)行識(shí)別,提取其空間位置并實(shí)現(xiàn)目標(biāo)跟蹤,是智能設(shè)備、智能機(jī)器人等實(shí)現(xiàn)的關(guān)鍵技術(shù)之一。這里著眼于特定場(chǎng)景下圖像采集、目標(biāo)特征提取與識(shí)別、目標(biāo)定位與跟蹤等關(guān)鍵問題,基于嵌入式技術(shù)和機(jī)械裝置,設(shè)計(jì)并實(shí)現(xiàn)了基于圖像處理算法的目標(biāo)識(shí)別、定位與跟蹤系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了特定場(chǎng)景下對(duì)于多目標(biāo)物體的識(shí)別與跟蹤。同時(shí),提出了一個(gè)能降低同色或同外形物體對(duì)識(shí)別精度干擾的RGB與log算子邊緣提取協(xié)同濾波的圖像處理算法,可以有效提高場(chǎng)景中存在其他與目標(biāo)物同色不同形或同形不同色的干擾物的情況下的目標(biāo)識(shí)別和定位精確度。
關(guān)鍵詞:目標(biāo)識(shí)別;目標(biāo)定位與跟蹤;圖像處理算法;嵌入式技術(shù);智能控制;定位精確度
中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2020)09-00-05
0 引 言
隨著新一輪科技革命與產(chǎn)業(yè)變革,當(dāng)前各行各業(yè)均朝著高度智能化的方向不斷發(fā)展。在智能控制的諸多應(yīng)用領(lǐng)域中,如何對(duì)某一目標(biāo)對(duì)象進(jìn)行識(shí)別,提取其空間位置并實(shí)現(xiàn)目標(biāo)跟蹤,是智能設(shè)備、智能機(jī)器人等實(shí)現(xiàn)的關(guān)鍵技術(shù)之一。本文著眼于解決特定場(chǎng)景下圖像采集、目標(biāo)特征提取與識(shí)別、目標(biāo)定位與跟蹤等關(guān)鍵問題,提出了基于圖像處理算法的目標(biāo)識(shí)別、定位與跟蹤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法[1-2]。該系統(tǒng)來源于競(jìng)賽場(chǎng)景,并應(yīng)用于競(jìng)賽培訓(xùn)課程及綜合性實(shí)驗(yàn)項(xiàng)目教學(xué)。目的是提煉競(jìng)賽中需進(jìn)行機(jī)器視覺識(shí)別的場(chǎng)景,利用基于圖像處理算法的綜合系統(tǒng)實(shí)現(xiàn)對(duì)學(xué)生的訓(xùn)練和能力提升。為了實(shí)現(xiàn)更好的實(shí)踐訓(xùn)練效果,這里對(duì)教學(xué)應(yīng)用場(chǎng)景進(jìn)行了簡(jiǎn)化,以一個(gè)特定場(chǎng)景進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。目標(biāo)識(shí)別的特定場(chǎng)景設(shè)計(jì)為:放置在一定距離外的白板上有待識(shí)別的目標(biāo),白板上擺放紅色、黃色、藍(lán)色和綠色的4個(gè)磁扣作為待識(shí)別的目標(biāo),利用識(shí)別定位系統(tǒng)中的激光筆對(duì)單個(gè)磁扣/多個(gè)磁扣進(jìn)行識(shí)別、定位與跟蹤。
1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)基于如下思路進(jìn)行設(shè)計(jì):在一塊白板上放置紅色、黃色、藍(lán)色和綠色的4個(gè)磁扣,用STM32開發(fā)板控制攝像頭對(duì)其進(jìn)行拍照并處理圖像數(shù)據(jù),提取不同顏色磁扣的RGB像素特征,并根據(jù)某一磁扣的特征對(duì)其進(jìn)行識(shí)別與定位,最后根據(jù)定位信息控制載有激光筆的二維機(jī)械運(yùn)動(dòng)裝置跟蹤目標(biāo)。系統(tǒng)中圖像采集、處理及通過機(jī)械裝置進(jìn)行目標(biāo)跟蹤,均通過嵌入式技術(shù)實(shí)現(xiàn)[3]。
系統(tǒng)包括機(jī)械運(yùn)動(dòng)裝置和圖像采集處理與控制裝置兩個(gè)部分。機(jī)械結(jié)構(gòu)為二維機(jī)械運(yùn)動(dòng)裝置,水平方向的運(yùn)動(dòng)裝置采用皮帶式絲杠滑臺(tái)作為橫軸,用步進(jìn)電機(jī)驅(qū)動(dòng)皮帶的主動(dòng)輪使滑塊跟隨皮帶運(yùn)動(dòng);垂直方向以兩根立桿作為縱軸,仍用步進(jìn)電機(jī)拉動(dòng)繞線,通過定滑輪使搭載激光筆的滑塊運(yùn)動(dòng)。圖像采集處理與控制裝置包括基于ARM Cortex M3的STM32F103開板、圖像傳感器OV7670等。通過控制OV7670進(jìn)行照片采集,而后對(duì)采集到的照片進(jìn)行處理,計(jì)算出目標(biāo)物位置和機(jī)械運(yùn)動(dòng)裝置位置,進(jìn)而實(shí)現(xiàn)運(yùn)動(dòng)控制與目標(biāo)跟蹤。系統(tǒng)的總體框架如圖1所示。
2 系統(tǒng)實(shí)現(xiàn)
2.1 機(jī)械結(jié)構(gòu)實(shí)現(xiàn)
這里設(shè)計(jì)了二維機(jī)械運(yùn)動(dòng)裝置作為機(jī)械結(jié)構(gòu),采用絲杠滑臺(tái)、滑輪等搭建,并搭載激光筆用于標(biāo)記出定位目標(biāo)。
二維機(jī)械運(yùn)動(dòng)裝置的具體結(jié)構(gòu)如圖2所示。
二維運(yùn)動(dòng)裝置的主要3D模型如圖3所示。圖4所示為實(shí)際完成的二維運(yùn)動(dòng)裝置實(shí)物。
2.2 圖像采集處理與控制裝置
圖像采集處理與控制裝置包括基于ARM Cortex M3的STM32F103開發(fā)板、圖像傳感器OV7670等。STM32F103基于內(nèi)核ARM Cortex M3,最高72 MHz工作頻率。開發(fā)板的FLASH容量512 KB,SRAM 64 KB,具有112個(gè)通用I/O口,8個(gè)定時(shí)器、2個(gè)DMA控制器、3個(gè)SPI、2個(gè)I2C、5個(gè)串口等豐富的資源。
圖像傳感器采用OV7670,體積小、工作電壓低,可提供單片VGA攝像頭和影像處理器的所有功能,并且自帶FIFO芯片,相當(dāng)于一個(gè)384 KB的存儲(chǔ)器,可以用來暫時(shí)存儲(chǔ)圖像數(shù)據(jù)。它主要包括以下功能模塊:640×480個(gè)有效像素的感光陣列、時(shí)序發(fā)生器、含自動(dòng)增益和自動(dòng)白平衡的模擬信號(hào)處理模塊、A/D轉(zhuǎn)換模塊、測(cè)圖案發(fā)生器、DSP、縮放模塊、數(shù)字視頻接口、SCCB接口以及LED與閃光燈輸出控制模塊等。OV7670采集到的圖像無需解碼就能顯示,符合系統(tǒng)實(shí)時(shí)性要求。
本項(xiàng)目采用攝像頭輸出320×240的輸出格式。OV7670的圖像數(shù)據(jù)輸出是在像素時(shí)鐘信號(hào)PLCK,幀同步信號(hào)VSYNC和HREF/HSYNC行同步信號(hào)的控制下完成。
系統(tǒng)中運(yùn)動(dòng)控制采用步進(jìn)電機(jī)+驅(qū)動(dòng)器控制的方式進(jìn)行,步進(jìn)電機(jī)選用42步進(jìn)電機(jī)。電機(jī)驅(qū)動(dòng)器連接STM32F103開發(fā)板I/O口,開發(fā)板的定時(shí)器輸出PWM信號(hào),即可實(shí)現(xiàn)步進(jìn)電機(jī)的轉(zhuǎn)速和轉(zhuǎn)角的精確控制。
2.3 軟件系統(tǒng)
軟件系統(tǒng)由圖像采集、圖像存儲(chǔ)、圖像處理算法(自適應(yīng)測(cè)距算法和色彩識(shí)別算法)、運(yùn)動(dòng)控制算法等部分組成。軟件系統(tǒng)的總體結(jié)構(gòu)如圖5所示。
軟件系統(tǒng)的工作流程包括:通過開發(fā)板使能攝像頭實(shí)現(xiàn)拍照,將采集到的圖像數(shù)進(jìn)行BMP編碼寫入SD卡,再由開發(fā)板從SD讀出并解碼為RGB格式。通過對(duì)RGB數(shù)值特征的分析可區(qū)別出不同顏色的磁扣,進(jìn)而進(jìn)行識(shí)別和定位。
3 圖像處理算法
系統(tǒng)及軟件實(shí)現(xiàn)中關(guān)鍵是圖像處理算法的程序?qū)崿F(xiàn)[4-5]。本系統(tǒng)的算法預(yù)先利用MATLAB進(jìn)行仿真,并最終在基于Keil5的開發(fā)平臺(tái)下,采用C語言編程實(shí)現(xiàn)系統(tǒng)的主要算法和功能,進(jìn)而實(shí)現(xiàn)自動(dòng)目標(biāo)定位、識(shí)別與跟蹤。
為了實(shí)現(xiàn)自動(dòng)目標(biāo)識(shí)別與跟蹤,必須先對(duì)目標(biāo)進(jìn)行識(shí)別,并獲取目標(biāo)的位置,再驅(qū)動(dòng)二維運(yùn)動(dòng)裝置進(jìn)行目標(biāo)定位與跟蹤。關(guān)鍵部分包括根據(jù)不同目標(biāo)的特征獲取目標(biāo),并得到目標(biāo)的位置。這里首先應(yīng)用了自適應(yīng)平面測(cè)距算法。
3.1 自適應(yīng)平面測(cè)距算法
該測(cè)距算法是由傳統(tǒng)單目測(cè)距算法[6]改進(jìn)的,用于測(cè)算照片中一切垂直于相機(jī)拍攝方向的平面上的物體移動(dòng)距離和實(shí)際移動(dòng)距離的比例系數(shù)。具體算法如下:
(1)打開激光筆,驅(qū)動(dòng)電機(jī)驅(qū)動(dòng)二維運(yùn)動(dòng)裝置,使得激光照射在一個(gè)比較好的位置(實(shí)驗(yàn)時(shí)大致使得激光能照在拍攝畫面中央附近),照相機(jī)拍攝一張照片,計(jì)算出該激光點(diǎn)在畫面中的位置(x0,y0)(單位:像素);測(cè)距功能示意圖如圖6所示。
(2)控制二維運(yùn)動(dòng)裝置,使激光筆沿水平方向移動(dòng)一定距離L(單位:cm),而后相機(jī)再次拍攝一張照片,計(jì)算出該激光點(diǎn)在畫面中的位置(x1,y1);兩次拍攝的照片比對(duì)如圖7所示。
(3)計(jì)算激光點(diǎn)在相片上的移動(dòng)距離:
Δl=|x0-x1|
(4)計(jì)算實(shí)際距離和相片中距離之間的比例系數(shù):
σ=L/Δl
通過該算法獲取了實(shí)際距離和相片中距離之間的比例系數(shù),進(jìn)而可以實(shí)現(xiàn)圖像位置與實(shí)際物理位置的映射。
3.2 定位算法
該定位算法用于定位目標(biāo)物體在照片中的位置,這里認(rèn)為目標(biāo)物一般含有某區(qū)別于外界環(huán)境的顏色成分。具體算法如下:
定義變量xsum,ysum,假定要定位的物體含有顏色C,假設(shè)顏色C的RGB范圍為:
RL GL BL Step1:令xsum=0,ysum=0,count=0; Step2:從(0,0)開始,該時(shí)刻下,攝像頭采集進(jìn)入的相片中的一個(gè)像素,設(shè)該像素位置為(xi,yi); Step3:通過RGB三色的掩碼將該像素的16 bit值,計(jì)算出該像素的R,G和B值,判斷是否屬于顏色C,若是則令xsum+=xi,ysum+=yi,count++; Step4:重復(fù)執(zhí)行Step2,Step3,直到遍歷完所有像素點(diǎn); Step5:若count==0,則返回-1,-1表示未找到;否則xsum/=count,ysum/=count,得到的(xsum,ysum)即為目標(biāo)物在相機(jī)視角中的位置。 3.3 RGB測(cè)量 定位算法使用前,為了能夠?qū)Σ煌伾拇趴圻M(jìn)行識(shí)別,在采集圖像并獲取到圖像RGB值后,需要預(yù)先對(duì)待識(shí)別的不同磁扣RGB值的特征進(jìn)行測(cè)量與分析。計(jì)算各個(gè)磁扣的RGB值在所拍攝畫面中的數(shù)值分布圖,可以發(fā)現(xiàn)不同顏色磁扣的RGB各分量均有一定范圍,且R,G,B的范圍綜合后互不交疊,能夠區(qū)分出不同顏色的磁扣,故據(jù)此建立了不同顏色磁扣的RGB范圍表,見表1所列。 根據(jù)上述RGB范圍測(cè)量結(jié)果和定位算法,可在圖像中識(shí)別出各個(gè)顏色磁扣,并確定其位置,利用Matlab進(jìn)行仿真的結(jié)果如圖8所示。系統(tǒng)實(shí)測(cè)進(jìn)行目標(biāo)識(shí)別、定位與跟蹤的效果如圖9所示。 改變自定義庫中的目標(biāo)RGB范圍,即可追蹤其他顏色屬性的目標(biāo)物,但是在采集圖像時(shí),RGB值的大小受環(huán)境光影響會(huì)有變化,因此系統(tǒng)實(shí)現(xiàn)時(shí)選擇RGB閥值時(shí)需留有余量。 這里實(shí)現(xiàn)了對(duì)場(chǎng)景中的目標(biāo)磁扣進(jìn)行識(shí)別的基本功能。但在實(shí)際測(cè)試中發(fā)現(xiàn)利用該定位算法進(jìn)行目標(biāo)識(shí)別和定位時(shí),存在抗干擾較差的問題。即當(dāng)背景中存在與待識(shí)別目標(biāo)物相近顏色的干擾物時(shí),定位會(huì)不準(zhǔn)確。在如圖10所示的測(cè)試場(chǎng)景中,由于左側(cè)干擾物的存在,要定位藍(lán)色磁扣時(shí),實(shí)測(cè)結(jié)果向左側(cè)偏離目標(biāo)。這是由于采用原始的定位算法時(shí),僅通過RGB值來確定待測(cè)目標(biāo)物體所在位置。 3.4 改進(jìn)算法 為了解決上述問題,提高目標(biāo)定位的精準(zhǔn)度,系統(tǒng)實(shí)現(xiàn)時(shí)對(duì)上述算法進(jìn)行了改進(jìn)。改進(jìn)后的圖像處理算法可以概括為:先對(duì)采集到的圖像進(jìn)行RGB濾波處理,接著使用邊緣檢測(cè)算法,對(duì)圖像內(nèi)容進(jìn)行邊緣檢測(cè),生成輪廓圖,再通過特征提取矩陣進(jìn)行卷積,找到對(duì)應(yīng)特征最明顯的點(diǎn),即為目標(biāo)物。 改進(jìn)算法簡(jiǎn)述: (1)對(duì)采集到的圖像首先進(jìn)行RGB濾波處理。 (2)邊緣檢測(cè)算法。 使用邊緣檢測(cè)算法對(duì)采集到的圖像進(jìn)行處理,這里首先需考慮選擇一個(gè)合適的檢測(cè)算子。取了5種常用的邊緣檢測(cè)算子,即canny算子[7]、prewitt算子[8]、sobel算子[9]、log算子[10]和roberts算子[11]進(jìn)行測(cè)試并比對(duì)處理效果。圖11(f)所示為采集到的圖像,圖像中存在4個(gè)待測(cè)目標(biāo),以下黑白色圖11(a)~圖11(e)為利用5種算子進(jìn)行邊緣檢測(cè)的結(jié)果對(duì)比,黑色部分pixel為0,白色為1。 根據(jù)對(duì)比結(jié)果,這里選擇log算子作為邊緣檢測(cè)算子。而后對(duì)原先存在干擾的場(chǎng)景即圖10所示情形進(jìn)行邊緣檢測(cè),檢測(cè)后的結(jié)果如圖12所示,這樣可以很好地利用干擾物在外形上和目標(biāo)物的區(qū)別對(duì)目標(biāo)進(jìn)行有效識(shí)別[12-13]。 (3)卷積特征矩陣 而后使用特征提取矩陣對(duì)圖片做卷積,實(shí)現(xiàn)對(duì)目標(biāo)物輪廓特征的提取[14]。這里根據(jù)識(shí)別場(chǎng)景,選取如下18×18的矩陣作為卷積乘子效果最佳,圖13為該卷積乘子對(duì)應(yīng)的灰度圖。不同識(shí)別場(chǎng)景下,選用的卷積矩陣會(huì)有所不同。 (4)實(shí)測(cè)效果 仍然是圖10所示的采集到的圖像,將改進(jìn)后的圖像處理方法在系統(tǒng)進(jìn)行應(yīng)用與實(shí)現(xiàn),即先進(jìn)行RGB濾波,再利用log算子進(jìn)行邊緣檢測(cè),通過卷積特征矩陣,得到定位結(jié)果。將結(jié)果以地形圖呈現(xiàn)[15],得到的結(jié)果如圖14所示??梢钥吹?,藍(lán)色磁扣已經(jīng)明顯區(qū)別于環(huán)境,可以認(rèn)為干擾已經(jīng)不再起作用。實(shí)際定位結(jié)果如圖15所示。與原始的算法結(jié)果進(jìn)行對(duì)比可以發(fā)現(xiàn),改進(jìn)后的算法在存在干擾的情況下顯著提高了目標(biāo)識(shí)別與定位的精確度。 4 結(jié) 語 本文利用ARM Cortex M3開發(fā)板和二維機(jī)械運(yùn)動(dòng)裝置,基于圖像處理算法設(shè)計(jì)并實(shí)現(xiàn)了目標(biāo)識(shí)別、定位與跟蹤系統(tǒng)。機(jī)械運(yùn)動(dòng)裝置移動(dòng)速度約為10 cm/s,誤差為0.003 m/10 m。圖像采集處理與控制裝置通過控制OV7670進(jìn)行照片采集,而后對(duì)采集到的照片利用圖像處理算法進(jìn)行了處理,并提出了改進(jìn)的基于RGB篩選和log算子邊緣提取協(xié)同濾波的抗干擾圖像處理算法,以獲得更高的目標(biāo)識(shí)別與定位精度。系統(tǒng)實(shí)測(cè)目標(biāo)定位速度可以達(dá)到3.17 s/m2可通過激光筆實(shí)現(xiàn)精確的目標(biāo)定位與跟蹤,可應(yīng)用于競(jìng)賽等需要機(jī)器視覺實(shí)現(xiàn)目標(biāo)跟蹤的諸多場(chǎng)景。 此外,本文還提出了一個(gè)自適應(yīng)平面測(cè)距算法,該算法能自適應(yīng)地調(diào)整垂直于攝像機(jī)鏡頭但沒有參照物的平面上的拍攝長(zhǎng)度和實(shí)際長(zhǎng)度的轉(zhuǎn)換系數(shù),誤差E=2%。 參考文獻(xiàn) [1]劉韜,葛大偉.機(jī)器視覺及其應(yīng)用技術(shù)[M]. 北京:機(jī)械工業(yè)出版社,2019. [2] SONKA Milan,HLAVAC Vaclav,BOYLE Roger.圖像處理、分析與機(jī)器視覺[M].北京:清華大學(xué)出版社,2016. [3]鐘建冬,蘇建波.基于視覺預(yù)測(cè)的運(yùn)動(dòng)目標(biāo)實(shí)時(shí)跟蹤系統(tǒng)[J]. 機(jī)器人,2010,32(4):516-521. [4]王恒歡.基于深度學(xué)習(xí)的圖像識(shí)別算法研究[D].北京:北京郵電大學(xué),2015. [5]張華偉,孫勁光.基于顏色與形狀圖像檢索的研究[J].計(jì)算機(jī)仿真,2009,26(11):207-210. [6]莊嚴(yán),王偉,王珂,等.移動(dòng)機(jī)器人基于激光測(cè)距和單目視覺的室內(nèi)同時(shí)定位和地圖構(gòu)建[J].自動(dòng)化學(xué)報(bào),2005,31(6):925-933. [7] DING L,GOSHTASBY A. On the canny edge detector [J]. Pattern recognition,2001,34(3):721-725. [8] DONG W,ZHOU S S. Color image recognition method based on the Prewitt operator [C]// International Conference on Computer Science & Software Engineering. Wuhan:IEEE,2008:170-173. [9] KANOPOULOS N,VASANTHAVADA N,BAKER R L. Design of an image edge detection filter using the Sobel operator [J]. IEEE journal of solid-state circuits,2002,23(2):358-367. [10] ULUPINAR F,MEDIONI G G. Refining edges detected by a LoG operator [J]. Computer vision graphics & image processing,1990,51(3):275-298. [11] ALAM M S,IFTEKHARUDDIN K M,KARIM M A. Polarization‐encoded optical shadow casting:Edge detection using roberts operator [J]. Microwave & optical technology letters,2010,6(3):190-193. [12]孫琰.基于小波變換的圖像邊緣檢測(cè)技術(shù)[D].西安:西北工業(yè)大學(xué),2004. [13]張晴.基于視覺注意的顯著物體檢測(cè)實(shí)驗(yàn)設(shè)計(jì)[J]. 實(shí)驗(yàn)室研究與探索,2016,35(2):155-158. [14]王吉豪,陳奎,王順,等. 基于機(jī)器視覺的位置感知與軌跡跟蹤的研究[J].工業(yè)控制計(jì)算機(jī),2018,31(12):56-57. [15] WU J X,REHG J M. centrist:a visual descriptor for scene categorization [J]. IEEE transactions on pattern analysis and machine intelligence,2011,33(8):1489-1501.