王艷梅,劉義杰
(沈陽理工大學,沈陽 110159)
圖像識別技術是目標檢測和目標跟蹤中常用的方案,在對目標進行識別和定位時,攝像頭傳感器可以有效的排除背景,達到很好的識別效果。機器視覺可以等效于人們的眼睛,來幫助人們做一些測量和判斷的操作[1]。機器視覺綜合了光學、機械、電子、計算機軟硬件等方面的技術,涉及到計算機、圖像處理、模式識別、人工智能、信號處理、光機電一體化等多個領域。圖像處理和模式識別等技術的快速發(fā)展,也大大地推動了機器視覺的發(fā)展。
基于機器視覺的定位系統(tǒng)在工業(yè)的領域中常用于機械手的控制,機械手的出現(xiàn)使得人們的生活更加智能化,同時也大大地減少了人們的工作量,一些簡單的搬運工作和物品分類工作都可以通過機械手來完成。機械手想要抓取一個空間的物體首先第一步就要獲取到這個物體的相對坐標位置,將此坐標位置反饋給控制系統(tǒng),處理器根據(jù)前端返回的坐標位置來進行控制。因此對于所有的控制系統(tǒng)來說,前端的反饋極為重要,前端反饋到系統(tǒng)的數(shù)據(jù)如果處理得很差,那么整個系統(tǒng)的運行都會受到很大的影響。因此可見采用攝像頭來定位對于整個機械手的控制有著很大的影響,通過攝像頭來定位的機械手的控制流程包括以下幾步:
(1)圖像坐標系與外部坐標系的調(diào)整映射;
(2)通過圖像的特征提取、灰度化來識別目標;
(3)根據(jù)反饋的目標位置與自身位置進行對比,調(diào)整自身的位置;
(4)根據(jù)控制算法,來控制機械手抓取目標。
本文將針對整個系統(tǒng)的前端識別和坐標點的反饋功能進行了設計,實現(xiàn)了簡單背景下黑色標記的識別與定位。
本文采用對簡單背景中的黑色標記進行關鍵點定位,然后通過二值化和平滑濾波算法得到需要的圖像信息和位置信息。
圖像識別定位系統(tǒng)對簡單背景中的黑色標記進行識別及定位。首先通過攝像頭獲取背景圖像,并在顯示器中顯示背景圖片。主控芯片將圖像上傳給上位機進行識別處理,獲得黑色標記位置,將第一個獲取的黑色標記的位置坐標作為原點,下一個獲取的黑色標記為目標點,為后續(xù)電路提供運動依據(jù)。圖像識別定位系統(tǒng)的結構框圖詳見圖1 所示。
圖1 圖像識別定位系統(tǒng)結構框圖
主控單片機STM32F407ZGT6 作為整個系統(tǒng)的控制核心,負責協(xié)調(diào)每個模塊之間的工作。首先主控單片機通過串行攝像機控制總線(SCCB)協(xié)議對攝像頭OV2640 進行配置,配置完成后攝像頭OV2640 在數(shù)字攝像頭(DCMI)接口控制下傳回數(shù)據(jù);然后利用DMA 數(shù)據(jù)流將數(shù)據(jù)傳輸?shù)街骺匦酒琒TM32F407ZGT6內(nèi)部的SRAM;圖像顯示在2.8 寸LCD 屏幕上,方便判斷攝像數(shù)據(jù)是否正確與后期調(diào)試。
數(shù)據(jù)采集選用OV2640 攝像頭,支持輸出最高為200 W 像素的圖像,分辨率為1600×1200,集成內(nèi)部有源晶振[2]。輸出圖像格式可以設置,支持格式包括YUV422、RGB565 等,本文采用RGB 格式的圖像,可以對采集圖像進行調(diào)整,如圖像補償,處理模式的調(diào)整[3]。根據(jù)分辨率配置,傳感器輸出圖像數(shù)據(jù)的幀率30 幀/秒。
顯示器件選用2.8 寸的電阻觸摸屏,該屏幕分辨率為320*240,16 位顏色深度,驅(qū)動芯片為TLI9341,無需外部驅(qū)動器。采用16 位并口模式,支持任意點像素顏色讀取及橫豎屏顯示。數(shù)據(jù)采集及顯示實物圖如圖2 所示。
圖2 圖像采集及顯示實物圖
通過串口通信將數(shù)據(jù)傳到上位機觀察數(shù)據(jù)變化,方便判斷數(shù)據(jù)是否正確。處理器與上位機通信采用CH340G 芯片,CH340G 芯片穩(wěn)定,外圍所需器件少,電路簡單。
電源電路模塊采用DC-DC 電源轉(zhuǎn)換,目的是能使用更寬的電壓范圍給系統(tǒng)供電,電源部分采用MP2359 降壓芯片為系統(tǒng)提供直流9 V 電源。芯片最高耐壓24 V,最大能提供1.2 A 電流。通過MP2359降壓得到5 V 電壓,為其他外部芯片提供電源。5 V再經(jīng)過AMS117-3.3 芯片線性穩(wěn)壓得到3.3 V 電壓,為主控單片機以及攝像頭等器件工作提供電源。
本文的圖像識別定位系統(tǒng)為簡單背景中提取黑色標記,圖像的色彩空間簡單,因此采用RGB 色彩空間作為采集圖像的格式[4]。圖像信息通過串行通信方式傳送給上位機,上位機進行圖像處理。
黑色標記提取思想就是循環(huán)遍歷緩存攝像數(shù)據(jù)的數(shù)組,通過判斷每一行數(shù)據(jù),對像素過渡點的列坐標進行記錄,以此循環(huán)判斷完每列數(shù)據(jù),最終得到黑色標記位置信息,并計算出相對坐標。標記識別程序流程圖如圖3 所示。
圖3 標記識別程序流程圖
在圖像處理過程中,不僅要對相關的硬件模塊進行初始化,還要進行識別算法的編寫,在識別算法編寫的過程中需要解決光照環(huán)境變化的問題和噪聲點的干擾的問題。先將圖像做二值化處理,體現(xiàn)出標記點大體輪廓,根據(jù)黑白邊緣跳變提取物體特征信息。為了適應光線不均的場合,需選擇動態(tài)閾值分割圖像,增強圖像區(qū)分度,最后依據(jù)閾值進行圖像二值化。動態(tài)閾值是根據(jù)灰度化圖像的全局灰度級別計算所得[5]。本文采用動態(tài)閾值對圖像進行二值化處理,使用迭代法來尋找最佳的閾值。將圖像分割成前、后兩個景像,分別計算前后景像的灰度級別的平均值,得出閾值T0,再根據(jù)當前閾值T0計算新的閾值T1,比較前后兩次閾值直到不再變化為止。動態(tài)閾值計算的具體步驟如下:
(1)根據(jù)初始閾值T0將圖像分割為前景R1和后景R2;
(2)分別計算R1和R2兩個景像的平均灰度值RP1和RP2,計算新閾值TK,即:
(3)重復步驟2~3,再求出新閾值TK+1:
若TK=TK+1,說明閾值無變化,即所得TK為最佳閾值。
圖像識別定位系統(tǒng)的圖像識別采用的簡單背景中提取黑色標記,實驗原始圖如圖4 所示。通過二值化處理以及平滑濾波算法得到需要的圖像,實驗結果如圖5 所示。針對二維平面的運動規(guī)則是從左到右掃描到的第一個點作為原點,第二個點作為目標點,比較坐標,折算二維坐標的差值,對應機械手運動的距離,機械手先運動水平差值距離,然后再運動垂直差值距離,即從原點運動到目標點;再以此目標點作為原點,依次循環(huán)操作。本系統(tǒng)采用單次工作方式,所有掃描點執(zhí)行一次操作后,系統(tǒng)結束工作。
圖4 簡單背景中的黑色標記
圖5 處理后的圖像
實驗結果表明,采用STM32F407ZGT6 單片機作為核心,OV2640 攝像頭作為路徑識別的傳感器,上位機作為圖像處理工具,可以通過動態(tài)閾值的方法精確地定位關鍵黑色標記。希望未來能夠運用更高層次的圖像識別算法,使系統(tǒng)的適應性更強,視覺效果更加好。