梅鴻翔
(南京理工大學計算機科學與工程學院 南京 210094)
?
一種基于圖像坐標檢測的目標定位方法*
梅鴻翔
(南京理工大學計算機科學與工程學院南京210094)
摘要精確的目標定位是實現(xiàn)工業(yè)生產流水線自動化的關鍵技術,論文提出了一種目標定位的方法,通過檢測目標在圖像中的坐標再經攝像機標定換算到空間坐標來進行目標的定位。該方法采用亞像素定位從低分辨率的圖像中實現(xiàn)圖像坐標檢測的高精度,在一定程度上有效地降低了生產成本,同時使用先粗定位后精定位的方法降低圖像坐標檢測的時間。實驗表明,該方法檢測出來的空間坐標能滿足目標定位的精度要求。
關鍵詞目標定位; 攝像機標定; 亞像素定位
Target Location Method Based on Image Coordinate Detection
MEI Hongxiang
(School of Computer Science and Engineering, Nanjing University of Science and Technology, Nanjing210094)
AbstractAccurate target location is the key technology to realize the automation of industrial production line. In this paper, a method of target location is proposed, which by detecting the coordinates of the target in the image and then converted to the space coordinates by camera calibration. High accuracy of positioning accuracy of the positioning of the low resolution image with sub-pixel positioning in this method, it can reduce the production cost effectively in some extent. At the same time, the time of the image location is reduced by using the method of the first coarse positioning and then precise positioning. Experiments show that the spatial coordinates detected by this method can meet the accuracy requirements of the target location.
Key Wordstarget location, camera calibration, sub-pixel positioning
Class NumberTP391.41
1引言
采用數(shù)字圖像處理技術來進行目標的定位,是通過圖像檢測算法檢測出目標點在圖像中的像素坐標,再通過攝像機標定建立的攝像機成像幾何模型將像素坐標換算成三維空間坐標,以實現(xiàn)目標的定位。這樣,在一條自動化的生產線上,通過攝像機拍照,然后通過一套算法得到目標的三維空間坐標,這樣就可以知道目標在什么位置,就可以根據(jù)不同的需求完成不同的動作。
論文實驗是建立在一條液晶屏缺陷檢測的生產線上,當一個載有液晶屏的載臺到達指定的工位后,由于不能保證每一次到達工位的位置是完全固定的,而且兩個連接液晶屏到驅動電路的FPC連接器引腳的寬度只有0.3mm~1mm,且連接的時候不能錯位,故可以通過定位電路板上幾個目標點的位置來定位電路板的位置,然后通過機械手臂移動到相應的位置之后將工位上的連接器與其壓合對接,來完成液晶屏信號驅動的功能。
對位裝置如圖1所示,載臺和工位上都有塊帶FPC連接器的電路板,工位上有三臺電機充當著機械手臂的作用,分別控制水平、垂直方向上的位移以及角度旋轉。電路板如圖2所示,有五個目標點,根據(jù)中間那一個點的空間坐標進行水平、垂直方向上的移動,根據(jù)其它四個目標點的空間坐標計算出電路板旋轉的一個角度。
圖1 對位裝置
圖2 對位電路板
2基于OpenCV的攝像機標定
攝像機標定,是指建立攝像機的成像幾何模型,描述三維空間坐標系中的目標點同它在圖像平面上像素點之間對應關系的過程。OpenCV(Open Source Computer Vision Library)是一個開源的跨平臺計算機視覺庫,它實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。OpenCV中的攝像機標定模塊為用戶提供了良好的函數(shù)接口,有效地提高了開發(fā)效率,因此可以很好地運用到工程實際應用當中。
2.1攝像機模型
攝像機標定的目的就是確定幾何模型參數(shù)即攝像機參數(shù)[1],其中包括內外參數(shù)和畸變參數(shù)。內部參數(shù)描述攝像機的幾何特性和內部光學,如圖像中心、焦距、像素的物理尺寸等;外部參數(shù)就是相對于世界坐標系的攝像機坐標的三維位置和方向;畸變參數(shù)反映了透鏡實際的畸變情況。OpenCV標定算法中的攝像機模型以針孔模型為基礎,模型如圖3所示。
圖3 攝像機標定中的坐標系
將三維空間點P在世界坐標系中的坐標值Pw(Xw,Yw,Zw)變換為圖像平面上像素坐標系中坐標值P(u,v)的過程就可分解為下述的四步變換:
1) 世界坐標系(Ow)中坐標Pw(Xw,Yw,Zw)轉換為攝像機坐標系(o)中坐標P(x,y,z)
(1)
式中R為一個3×3旋轉矩陣,t為一個3×1平移向量。
2) 攝像機坐標系(o)中坐標P(x,y,z)在針孔模型中進行規(guī)范化投影,得到圖像平面坐標系(O)中理想物理坐標Pu(Xu,Yu)
(2)
式中f為攝像機焦距。
3) 引入透鏡的徑向畸變和切向畸變,圖像平面坐標系中物理坐標Pu(Xu,Yu)擴展為Pd(Xd,Yd)
(3)
4) 圖像平面坐標系中物理坐標Pd(Xd,Yd)轉換為像素坐標P(u,v)
(4)
式中(u0,v0)是基準點(通常在圖像的中心);dx、dy分別為計算機圖像在水平、垂直方向(x、y方向)上相鄰兩像素之間的有效距離(mm/pixel)。
綜合上述公式得到如下等價表達式:
(5)
或者
z·m′=A·[R|t]·M′
(6)
式中fx=f/dx,fy=f/dy,即以像素為單位的焦距長度,z為攝像機坐標系的Z軸坐標,A矩陣被就是內參數(shù)矩陣,旋轉-平移矩陣[R|t]被稱作外參數(shù)矩陣。這樣就得到了一個圖像點和空間點之間的一個映射關系。
2.2基于OpenCV的攝像機標定
基于OpenCV的標定流程如下所示:
1) 讀取標定用的一組圖像,如圖4所示。
圖4 標定模板圖片(一部分)
2) 用cvFindChessboardCorners()函數(shù)對標定板圖像進行角點檢測,檢測出的角點如圖5所示。
圖5 檢測角點
3) 計算參數(shù)矩陣
初始化所有的輸入參數(shù)后,將角點在世界坐標系中的坐標值以及在圖像坐標系中的坐標值代入cvCalibrateCamera2(),最后得到攝像機的內參數(shù)矩陣、畸變系數(shù)向量、每幅圖像的旋轉向量、每幅圖像的平移向量。
4) 分析標定結果
先用cvProjectPoints2()計算出三維角點坐標的投影坐標,再用函數(shù)cvNorm()比較計算出的投影坐標與通過角點檢測到的投影坐標,從而得到一個像素的誤差值,如果誤差值能達到一個像素及以下說明標定結果還不錯。
2.3攝像機標定在本文中的使用
攝像機標定中,以每個標定板的左下角第一個角點為世界坐標原點,以垂直于標定板的軸為Z軸,X、Y軸分別為橫向、縱向的角點連接線來建立世界坐標系,則每個角點的世界坐標的X、Y坐標分別為該角點到Y軸、X軸的實際距離,Z坐標則為0。因此,當需要計算該標定板平面上的某圖像坐標點對應的世界坐標時,可以將式(5)變形成如下表達式:
(7)
這樣就簡化了圖像坐標和世界坐標的換算關系,利用這一關系可以以一個X軸、Y軸方向與工位上控制對位的機械手臂的X軸、Y軸方向一致的世界坐標系所對應標定板圖像為模板,使電路板和該標定板擺放在同一平面上,然后可以通過畸變校正(利用得到的內參數(shù)矩陣和畸變系數(shù)向量,可以通過cvUndistort2()校正圖像的畸變)后的電路板圖像,檢測出目標點的圖像坐標(u,v),利用標定得到的內參數(shù)矩陣和該標定板圖像的外參數(shù)矩陣,三個方程三個未知數(shù),即可求出該目標點在該世界坐標系中的物理坐標,這樣機械手臂就可以根據(jù)目標點的物理坐標去調整位置來完成對位。
3粗定位
粗定位,顧名思義就是定位不用很精確,只需要能將我們感興趣的區(qū)域提取出來以方便下一步操作即可,這樣可以加快定位的速度。本文采用圖像匹配的算法來進行目標的粗定位。
圖像匹配問題是計算機視覺、圖像處理領域中的基本問題,有兩種對應的問題模型:一是根據(jù)已知的圖像模型,在另一幅圖像中搜索類似模板的目標;二是兩副來自不同傳感器、不同時間或不同視角的圖像需要找出對應關系,經過匹配可得出兩幅圖像的差別所在,為下一步處理作基礎[4]。因此本文適用的是模板匹配的方法。
3.1模板匹配
圖像的模板匹配就是事先給定的一幅圖像,然后到另一幅圖像中尋找待匹配圖像,如果找到了,就是匹配成功[5]。如圖6所示,設模板T(n×m像素點)疊放在搜索圖S上平移,模板覆蓋下的那塊搜索圖叫做子圖Si,j,i,j為這塊子圖的左上角像點在S圖中的坐標,叫參考點,1≤i,j≤n-m+1。比較T和Si,j的內容,若兩者一致,則T和Si,j之差為零。測度方法為
圖6 標準模板匹配過程
3.2模板匹配在本文中的使用
在目標點的粗定位中,為了加快模板檢索的速度,用降采樣(隔多個點抽取一個像素)的方法將源圖像縮小為低分辨率的圖像,如圖7所示,然后構造出標志點區(qū)域的二值模板圖像,如圖8所示。
圖7 降采樣過后的圖
構造出模板圖像后,對搜索圖的每一個子圖進行二值化,標志點區(qū)域的圖像原圖如圖9所示,其圖像表現(xiàn)為兩類物體,且直方圖波峰相隔較大,因此可用圖像的均值作為閾值對其進行二值化,二值化的結果如圖10所示。
圖9 原圖中的標志點圖像
圖10 二值化后的標志點圖像
采用3.1節(jié)的測度方法比較模板和二值化后的子圖,可以得到像素點差異個數(shù),然后用差異個數(shù)除上模板的像素總數(shù)就得到了一個比例系數(shù),比例系數(shù)越小,匹配程度越高,當該值小于一個閾值T時,即可認為匹配成功,本文中將該值設為25%。由于在匹配成功的位置的相鄰幾個像素子圖和模板圖像的匹配程度可能也很高,所以需要一個鄰近取比例系數(shù)最小值的過程。
在得到匹配區(qū)域中心的坐標后,再換算到降采樣之前的坐標,即可得到原圖中的標志點中心區(qū)域。
4精定位
在得到目標點所在的區(qū)域后,需要得到的是標志圖案的中心像素坐標,根據(jù)標志圖案的中心是兩條較亮直線的交點且直線在圖像中占多個像素,本文提出了一套結合了最小值濾波、拉普拉斯邊緣檢測和霍夫變換直線檢測的方法來實現(xiàn)目標中心點的精定位。
4.1最小值濾波
最小值濾波的基本原理是把數(shù)字圖像中一點的值用該點的一個鄰域中的最小值代替。這樣,就可以膨脹較暗區(qū)域,腐蝕較亮區(qū)域,使占多個像素的較亮直線細化。
4.2拉普拉斯邊緣檢測
邊緣是指圖象中灰度發(fā)生急劇變化的區(qū)域,常用邊緣檢測算子有Robert算子、Sobel算子、Prewitt算子、laplace算子等。其中:
1) Robert算子表達式為
max(|f(i,j)-f(i+1,j+1)|,
|f(i+1,j)-f(i,j+1|)
(8)
是一種利用局部差分算子尋找邊緣的算子,對具有陡峭的低噪聲圖像效果較好。
2) Sobel算子表達式為如圖11所示。
圖11 Sobel邊緣檢測模板
Sobel對圖像中每個點都用這兩個核做卷積,該算子可以產生較好的邊緣檢測效果,受噪聲的影響比較小。
3) Prewitt算子表達式如圖12。
圖12 Prewitt邊緣檢測模板
Prewitt算子又稱方向模板,在檢測帶有方向性的邊緣上效果比較好。
4) Laplace算子表達式如圖13。
圖13 Laplace邊緣檢測模板
拉普拉斯是一種二階導數(shù)算子,它通過尋找圖像灰度值中二階微分中的過零點(即邊緣點兩旁的二階導數(shù)異號)來檢測邊緣點。
從算子的形式可以看出,在拉普拉斯圖像中,可以發(fā)現(xiàn)二階微分過零點位置剛好就是邊緣的位置。而其它幾個算子都會造成一個像素的偏差,因此在本文檢測像素級的坐標時,選用拉普拉斯算子來進行邊緣的檢測比較合適。
4.3霍夫變換直線檢測
霍夫變換是一種在圖像中檢測直線和曲線的有效方法[8]。它是先把直角坐標系的目標點映射到極坐標系上進行累積,即先使直角坐標系平面上任一直線上的所有點均累積到極坐標系的同一點集合去,然后通過尋找極坐標系中點集的峰值,來發(fā)現(xiàn)經過點最多的直線。
而在本文中我們需要檢測的是一條近似水平和一條近似垂直的直線,因此可以在縮小直線的斜率范圍來加快直線的檢測。
4.4精定位步驟
1) 對粗定位得到的標志點區(qū)域圖像進行窗口為直線寬度大小的最小值濾波。窗口大的最小值濾波的執(zhí)行速度很慢,可以進行多次3×3窗口的最小值濾波加快算法的速度,圖像中心的濾波結果對比如圖14所示。
圖14 最小值濾波前后對比圖
2) 經過最小值濾波后,兩條粗直線的中心線成為了跳變區(qū)域,中心線兩旁的點二階導數(shù)異號,這樣就可以用拉普拉斯邊緣檢測來處理最小值濾波后的圖,結果如圖15所示。
圖15 拉普拉斯算子處理結果圖
3) 對拉普拉斯算子處理結果圖進行二值化,由于經拉普拉斯算子處理后,跳變像素點的灰度值會比其它像素點的高,所以處理之后的兩條中心線上像素的灰度值會分布在圖像直方圖灰度值高的那一部分,然而每一副目標區(qū)域圖像的尺寸是固定的,且目標點的物理尺寸也是固定的,那么每一副圖像中直線的中心線的像素個數(shù)在像素總個數(shù)中占的比例是一定的,因此可以用比例來確定閾值來進行目標和背景的二值化,本文以0.6%為比例系數(shù)利用直方圖計算得到閾值來進行二值化,認為灰度值最高的那0.6%的像素為中心線區(qū)域,結果圖像如圖16所示。
圖16 二值化圖像
4) 由圖16可以看出,兩條直線的寬度已經只有一個到兩個像素,這時對二值化圖像進行兩次霍夫變換檢測出一條水平直線方程和一條垂直直線方程,通過兩個方程求出來的交點即為標志的中心像素點,得到的中心像素點和真正的中心像素點的像素坐標在X、Y上可能各有正負一個像素的誤差。
5亞像素定位
本文中的定位方法是先檢測計算出一塊電路板上標志點中心的物理坐標,然后手動調節(jié)機械手臂與其對上位,這樣機械手臂就記住了此次標志點的物理坐標和角度(記為機械手臂的原點信息),自動化運行后就通過檢測每一次電路板標志點中心的物理坐標,然后計算出和機械手臂原點信息的相對偏差,通過機械手臂的水平、垂直方向的位移和旋轉來實現(xiàn)對位。
因此,在本文精定位會有誤差的情況下,最后的結果可能會有最多有兩個像素的偏差,原圖中一個電路板平面上的像素對應實際電路板上的物理尺寸約為0.1mm。當電路板為圖2中左邊那副圖像時,引腳的寬度為1mm,允許的偏差為0.5mm,因此兩個像素偏差能在接受范圍內,但是后期由于信號傳輸?shù)膯栴}電路板變成右邊那副圖像的樣子,FPC連接器的引腳寬度變?yōu)榱?.3mm,定位的偏差要求變成了不能超過0.15mm。
在這種情況下,本文提出了用亞像素定位的方法來降低檢測的誤差。
5.1亞像素定位原理
像素是組成數(shù)字圖像最基本的單位,它代表了圖像的分辨率,即像素數(shù)越大,圖像分辨率越高。而亞像素是將像素這個基本單位再進行細分,它是比像素還小的單位,從而提高了圖像分辨率。亞像素定位可以理解為在攝像系統(tǒng)硬件條件不變的情況下,用軟件算法來提高邊緣檢測精度的方法,或者說是一種可以使分辨率小于一個像素的圖像處理技術。常見的亞像素定位算法主要有擬合法、插值法和矩法等。
5.2亞像素定位在本文中的使用
由于檢測中有畸變矯正這一過程,而這一過程需要傳入源圖像才能得到校正后的圖像,所以本文在通過攝像機拍攝拍攝到源圖像的時候就用雙線性插值法將圖像放大了四倍,這樣就使得圖像的分辨率為0.25個像素,偏差也就降低了四倍,這樣就能滿足精度的提高要求。
源圖像放大了四倍,則需要對攝像機標定中每一個標定模板圖像角點的像素坐標都乘上四倍(相當于將標定模板圖像放大了四倍)來進行攝像機標定才能夠滿足攝像機模型。圖像放大后,算法的運算時間會增大,這主要體現(xiàn)在畸變矯正和精定位上,而粗定位的降采樣使得粗定位保持原有的運算時間。
6實驗流程及結果驗證
6.1實驗流程
通過前五節(jié)的介紹,整個的實驗總結為以下幾個步驟:
1) 對攝像機拍攝得到的標定板模板圖像進行角點坐標乘上四倍的攝像機標定,取內參數(shù)矩陣以及和電路板在同一平面的標定板模板圖像的外參數(shù)矩陣計算出圖像像素坐標到物理坐標的轉換關系。
2) 對攝像機拍攝到的電路板圖像進行亞像素處理,采用雙線性插值的方法將圖像從1624×1234放大到6496×4936。
3) 利用內參數(shù)和畸變參數(shù)對放大后的圖像進行畸變矯正,然后對校正后的圖像進行降采樣后的圖像模板匹配,得到了目標點區(qū)域。
4) 對目標點區(qū)域進行最小值濾波、拉普拉斯算子、比例二值化以及霍夫變換直線檢測求交點的精定位,得到目標區(qū)域的中心像素坐標。
5) 將中心像素坐標換算成物理坐標后傳給機械手臂完成自動對位。
6.2實驗結果驗證
一個好的檢測算法應該具有不漏檢且有較高的檢測精度,能不能對位成功驅動液晶屏成為檢驗本文方法的主要標準,下面通過在流水線自動化運轉的結果來驗證。
圖17為標示出來的目標點檢測結果,五個目標區(qū)域的中心像素用十字標記來表示檢測成功。23個載有液晶屏的載臺在流水線自動運轉了五個流程后,在一個工位上統(tǒng)計的實驗結果見表1。
圖17 檢測結果標記圖
對位次數(shù)成功次數(shù)失敗次數(shù)平均檢測時間1151087522ms
102次對位中,失敗了七次,其中二次是在液晶屏放上載臺后插線的過程中線擋住了標志點區(qū)域,導致攝像機拍攝不到標志點導致的,還有五次是因為電路板在被對位壓合后可能導致平面的偏移,導致平面沒有和標定板在同一平面,并且相隔較大,因為坐標換算是以像素點的坐標換算成世界坐標,并不會檢查電路板平面和模板平面是否在同一面上,因而導致檢測結果與實際位置,在調整了電路板所在平面后,能對位成功。
7結語
針對機器視覺中較為重要的三維空間目標定位的問題,本文提出了一套結合了攝像機標定、圖像匹配、邊緣檢測、亞像素定位等方法在內的方案,通過檢測電路板上目標點的位置,完成了液晶屏生產流水線上實現(xiàn)自動對位驅動液晶屏的功能,由實驗結果可知:檢測的時間可以做進一步的優(yōu)化,檢測的結果對機械結構模型的穩(wěn)定性有較大的依賴性,當機械結構能保證電路板和標定板在同一平面的基礎上,對位的成功率接近百分之百。所以該方法能夠較好地應用于實際工業(yè)應用。
參 考 文 獻
[1] 邱茂林,馬頌德,李毅.計算機視覺中攝像機定標綜述[J].自動化學報,2000,26(1):47-59.
QIU Maolin, MA Songde, LI Yi. Overview of camera calibration for computer vision[J]. Acta Automatica Sinica,2000,26(1):47-59.
[2] 尹文生,羅瑜林,李世其.基于OpenCV的攝像機標定[J].計算機工程與設計,2007,28(1):197-199.
YIN Wensheng, LUO Yulin, LI Shiqi. Camera calibration based on OpenCV[J]. Computer Engineering and Design,2007,28(1):197-199.
[3] 李躍,汪亞明,黃文清,等.基于OpenCV的攝像機標定方法研究[J].浙江理工大學學報,2010,27(3):417-420,440.
LI Yue, WANG Yaming, HUANG Wenqing, et al. Camera calibration technique based on OpenCV[J]. Journal of Zhejiang Sci-tech University,2010,27(3):417-420,440.
[4] 田娟,鄭郁正.模板匹配技術在圖像識別中的應用[J].傳感器與微系統(tǒng),2008,27(1):112-114,117.
TIAN Juan, ZHENG Yuzheng. Application of template matching technique in image recognition[J]. Transducer and Microsystem Technologies,2008,27(1):112-114,117.
[5] 黃濤.模板匹配在圖像識別中的應用[J].云南大學學報(自然科學版),2005,27(5A):327-332.
HUANG Tao. The application of template matching in the pattern recognition of digital image[J]. Journal of Yunnan University,2005,27(5A):327-332.
[6] 孫紅艷,張海英.圖像邊緣檢測算法的比較與分析[J].菏澤學院學報,2010,32(2):49-52.
SUN Hongyan, ZHANG Haiying. The comparison and analysis of image edge detection algorithms[J]. Journal of Heze University,2010,32(2):49-52.
[7] 孫英慧,蒲東兵.基于拉普拉斯算子的邊緣檢測研究[J].長春師范學院學報(人文社會科學版),2009,28(6):4-6.
SUN Yinghui, PU Dongbing. Edge detection research on laplace operator[J]. Journal of Changchun Normal University(Natural Science),2009,28(6):4-6.
[8] 張會章,張利霞,郭雷.用霍夫變換來提取目標邊界[J].計算機應用,2003,23(z1):117-119.
ZHANG Huizhang, ZHANG Lixia, GUO Lei. Using Hof transform to extract the target boundary[J]. Computer Applications,2003,23(z1):117-119.
[9] 劉國棟,劉炳國,陳鳳東,等.亞像素定位算法精度評價方法的研究[J].光學學報,2009,29(12):3446-3451.
LIU Guodong, LIU Bingguo, CHEN Fengdong, et al. Research on the method of the accuracy evaluation of subpixel location algorithm[J]. Acta Optica Sinica,2009,29(12):3446-3451.
[10] 盛遵冰,崔賢玉,高國安.通用亞像素邊緣檢測算法[J].上海交通大學學報,2007,41(6):911-915.
SHENG Zunbing, CUI Xianyu, GAO Guoan. A universal algorithm for subpixel edge Detection[J]. Journal of shanghai Jiaotong University,2007,41(6):911-915.
[11] 林欣堂,王宗義.一種新的快速通用二維圖像亞像素邊緣檢測算法[J].應用科技,2010,37(8):35-39.
LIN Xintang, WANG Zongyi. A novel universal and fast algorithm for two-dimensional subpixel edge detection[J]. Applied Science and Technology,2010,37(8):35-39.
中圖分類號TP391.41
DOI:10.3969/j.issn.1672-9722.2016.03.013
作者簡介:梅鴻翔,男,碩士研究生,研究方向:圖像處理,模式識別。
收稿日期:2015年9月4日,修回日期:2015年10月23日