蔣靈龍 胡 薦 劉青云
(重慶交通大學(xué) 機(jī)電與車(chē)輛工程學(xué)院,重慶400074)
在全國(guó)產(chǎn)業(yè)智能化與規(guī)?;谋尘跋?,物體智能識(shí)別檢測(cè)在工業(yè)中越來(lái)越受關(guān)注,應(yīng)用場(chǎng)景豐富,如產(chǎn)品外表色差、汽車(chē)身裝配檢測(cè)、零件的幾何尺寸和誤差測(cè)量、表面和內(nèi)部缺陷檢測(cè)、間隙檢測(cè)等。自動(dòng)化設(shè)備在提高效率的同時(shí)還解決了人眼視覺(jué)疲勞的問(wèn)題。傳統(tǒng)的識(shí)別裝置多為識(shí)別單一物體或要求被測(cè)物與裝置的距離相對(duì)固定,本文介紹了一種基于OPENMV 攝像頭模組的物體識(shí)別檢測(cè)裝置,該裝置上的云臺(tái)能夠在OPENMV 的引導(dǎo)下運(yùn)動(dòng)搜尋目標(biāo),檢測(cè)出目標(biāo)離裝置的距離及其幾何特征并標(biāo)定。
硬件系統(tǒng)由電源模塊、OPENMV 攝像頭模塊、STM32 處理器、激光束發(fā)生器、激光測(cè)距模塊、二自由度云臺(tái),OLED 顯示屏等功能模塊組成。OPENMV、激光束發(fā)生器、激光測(cè)距儀作為裝置的前端安放在云臺(tái)上,電源模塊變壓后為整個(gè)裝置供電。
裝置的原理如圖1 所示,OPENMV 作為圖像傳感器與圖像處理器,將處理后的圖像信息發(fā)送給STM32,STM32 作為控制芯片,負(fù)責(zé)對(duì)OPENMV 輸入指令,根據(jù)傳來(lái)的信息控制云臺(tái),OLED 屏等其他外設(shè),最終達(dá)到自主識(shí)別、尺寸檢測(cè)、標(biāo)定的功能。
圖1 裝置原理圖
其流程如圖2 所示,用戶(hù)通過(guò)按鍵設(shè)定搜索識(shí)別的目標(biāo),STM32 接收到命令后給OPEMNV 發(fā)送相應(yīng)的識(shí)別指令,OPENMV 對(duì)當(dāng)前圖像信息處理后反饋給STM32,STM32 根據(jù)反饋信息控制云臺(tái)運(yùn)動(dòng),使裝置前端向識(shí)別到的物體方向旋轉(zhuǎn);在裝置前端對(duì)準(zhǔn)被識(shí)別物體中心后,用激光測(cè)距儀測(cè)量出物體的距離,OPENMV 再次對(duì)物體形狀、顏色,尺寸進(jìn)行分析,反饋給STM32F1 處理器;處理器收到信息后控制激光束發(fā)射器對(duì)識(shí)別后的物體標(biāo)定,并在OLED 上將物體的信息顯示出來(lái)。
圖2 工作流程圖
OPENMV 是一個(gè)可編程的攝像頭,內(nèi)置了一塊STM32 芯片,使用MicroPython 語(yǔ)言進(jìn)行編程,有良好的開(kāi)源環(huán)境,能較為方便地運(yùn)用多種圖像處理并進(jìn)行簡(jiǎn)單的圖像分析。在本設(shè)計(jì)中通過(guò)串口與主控芯片進(jìn)行通信。
對(duì)形狀判斷可以根據(jù)形狀的各種特征進(jìn)行判斷,例如要尋找畫(huà)面內(nèi)的圓形圖形并檢測(cè)其顏色可以調(diào)用find_circles 函數(shù)找到畫(huà)面內(nèi)的圓形;要對(duì)正方形進(jìn)行判斷則可調(diào)用色塊占所在矩形的占空比函數(shù)density 來(lái)判斷,經(jīng)實(shí)驗(yàn)正方形的占比都大于0.8;對(duì)于三角形同樣可用占比的方法進(jìn)行判斷。在識(shí)別到形狀后再對(duì)其所在區(qū)域的色素值與標(biāo)準(zhǔn)色的閾值進(jìn)行對(duì)比就可得到它的顏色。對(duì)于其他非單一色彩的平面和立體則使用基于模板匹配的NCC 算法:將目標(biāo)的灰度圖保存在OPENMV 內(nèi),使用算法在攝像頭畫(huà)面內(nèi)尋找與其相似度較高的部分。
OPENMV 的感光元件感光點(diǎn)數(shù)目決定了其分辨率,每一個(gè)點(diǎn)就是一個(gè)像素,像素坐標(biāo)就是感光點(diǎn)所在的坐標(biāo)。在識(shí)別到物體的形狀后OPENMV 重復(fù)將物體中心所在的像素坐標(biāo)通過(guò)串口發(fā)送給STM32 主控,STM32 根據(jù)像素位置通過(guò)兩路PWM波控制云臺(tái)上兩個(gè)舵機(jī)在X 軸和Y 軸上旋轉(zhuǎn),讓像素坐標(biāo)的中心與物體的幾何中心所在像素重合,此時(shí)OPENMV 正對(duì)著被檢測(cè)物體,這時(shí)再讓STM32 通過(guò)串口讀取激光測(cè)距模塊測(cè)得的值,最后讓激光指示器發(fā)射激光進(jìn)行標(biāo)定。
激光測(cè)距模塊使用的為北醒光子科技有限公司生產(chǎn)的TFmini-S 模塊,基于TOF(飛行時(shí)間)原理,采用850nm 紅外光源,測(cè)距范圍為0.3-12m,采樣頻率可達(dá)100HZ,通過(guò)USART 與STM32 進(jìn)行通信。其自身發(fā)射紅外光線(xiàn),在被測(cè)物體反射后回到傳感器,用模塊內(nèi)置的定時(shí)器進(jìn)行計(jì)時(shí),然后根據(jù)內(nèi)置的算法計(jì)算出反射物的距離,最后將數(shù)據(jù)通過(guò)串口傳回STM32 主控芯片。其優(yōu)點(diǎn)在于對(duì)面積較小的物體同樣能夠精準(zhǔn)快速地測(cè)量出距離,受周?chē)矬w干擾較小。在裝置前端對(duì)準(zhǔn)被測(cè)物體后,主控芯片讀取模塊傳來(lái)的距離信息,為尺寸測(cè)量作準(zhǔn)備。
對(duì)于平面圖形的尺寸測(cè)量,使用簡(jiǎn)單的小孔成像原理,如圖3 以圓形平面為例。
圖3 尺寸測(cè)量原理
假設(shè)攝像頭感光元件一個(gè)邊的像素點(diǎn)個(gè)數(shù)為An個(gè),它的一半為Hn個(gè),感官元件與鏡頭的距離為焦距Ln,物體半徑為Rm,與鏡頭的距離為L(zhǎng)m,在攝像頭鏡頭內(nèi)成像的半徑對(duì)應(yīng)的像素為Rn,攝像頭呈現(xiàn)最大半徑像素Hn對(duì)應(yīng)的實(shí)際半徑為Hm。
當(dāng)攝像頭與被測(cè)平面物體中心連線(xiàn)與被測(cè)平面物體垂直時(shí),根據(jù)相似三角形可知:
將一已知半徑為Rm的圓放在已知距離位置Lm,通過(guò)OPENMV 測(cè)量其在鏡頭內(nèi)的像素值Rn,運(yùn)用式(4)運(yùn)算可以得到比例系數(shù)C。多次改變距離Lm,對(duì)得到的C 取平均值減小誤差。
得到C 后,在進(jìn)行尺寸測(cè)量時(shí),STM32 主控芯片在得到激光測(cè)距模塊的Lm及物體圖像在鏡頭內(nèi)成像的像素值的一半Rn運(yùn)用式(3)即可得到圓形物體的半徑Rm。經(jīng)測(cè)試,在3M 距離內(nèi),其檢測(cè)尺寸的相對(duì)誤差在6%以?xún)?nèi)。
本文對(duì)一種基于OPENMV 的非接觸識(shí)別裝置進(jìn)行了介紹,對(duì)系統(tǒng)的設(shè)計(jì)思路及工作原理進(jìn)行了詳細(xì)的闡述。該裝置運(yùn)用的原理簡(jiǎn)單,運(yùn)行穩(wěn)定可靠,能對(duì)不同距離的物體進(jìn)行識(shí)別和尺寸測(cè)量,運(yùn)用場(chǎng)景豐富。后期還可通過(guò)提高攝像頭分辨率和使用更精準(zhǔn)的測(cè)距儀器來(lái)提高識(shí)別的精度,對(duì)于立體物體的三維尺寸測(cè)量還有待研究。