付生鵬,趙吉賓,夏仁波,李 論
(1.中國科學(xué)院沈陽自動化研究所機器人學(xué)國家重點實驗室,沈陽 110016;2.中國科學(xué)院機器人與智能制造創(chuàng)新研究院,沈陽 110169)
在計算機視覺應(yīng)用中,需要首先要對視覺傳感器也就是相機進行參數(shù)標(biāo)定,以獲得內(nèi)部或者外部參數(shù),以便進行后續(xù)的測量或檢測任務(wù)[1]。因此如何快速而且準(zhǔn)確的獲得相機的參數(shù),是使用計算機視覺技術(shù)首先要解決的問題。
張正友基于二維靶標(biāo)的標(biāo)定算法的提出,使得相機的參數(shù)標(biāo)定過程變得方便和簡單[2],同時降低了標(biāo)定靶標(biāo)的加工難度,可以使用易于加工的二維靶標(biāo)進行參數(shù)標(biāo)定。常用的標(biāo)定板有棋盤格、圓點標(biāo)定板等多種形式[3-6],其中圓點標(biāo)定板由于加工方便、易于識別且精度較高,應(yīng)用十分廣泛。在進行圖像識別時,需要識別出圓點中心并按照一定的順序排列,從而與標(biāo)定板上的點一一對應(yīng)[7]。但是在標(biāo)定板旋轉(zhuǎn)角度較大或處于某些特定位置時,往往很難對圓點進行準(zhǔn)確的排序,此時需要在標(biāo)定板上設(shè)置一些特殊的標(biāo)志進行輔助排序。例如,在標(biāo)定板上設(shè)置編碼標(biāo)志點確定標(biāo)定板的方向[8],然而由于編碼標(biāo)志點識別的算法比較復(fù)雜,并且當(dāng)距離較遠時,通常無法準(zhǔn)確識別編碼點,這些都降低了標(biāo)定板的識別率和準(zhǔn)確性。
對于圓點標(biāo)定板識別的問題,單寶華等[9]使用一角帶有三角形圖案的實心圓點標(biāo)定板對雙目相機進行了標(biāo)定,能應(yīng)對不同旋轉(zhuǎn)角度的標(biāo)定板識別問題,但是必須保證三角形角點在視野內(nèi)才能實現(xiàn);張琪等[10]設(shè)計了一種圓點標(biāo)定板,該標(biāo)定板一角有一個大圓,識別方法與前述方法類似,因此也存在同樣的問題;夏仁波等[11]對包含兩種大小標(biāo)志圓的標(biāo)定板識別展開了研究,由于圓點排序過程中僅基于對點圖像距離和角度的計算,因此在某些極端情況下穩(wěn)定性不佳;計算機視覺開源庫opencv提供了一種無差別圓點標(biāo)定板的識別方法,但是由于橢圓排布的對稱性,無法做到多角度下的準(zhǔn)確識別[12]。
本文提出了一種基于射影變換的圓點標(biāo)定板自動識別方法,能夠?qū)σ环N包含兩種大小標(biāo)志圓點的二維標(biāo)定板進行自動識別,并能根據(jù)大圓的圖像坐標(biāo)利用射影變換原理對所有圓點進行準(zhǔn)確排序,從而建立標(biāo)志點圖像坐標(biāo)與標(biāo)定板三維坐標(biāo)的一一對應(yīng)關(guān)系。最后通過實驗證明該方法能在較大角度范圍實現(xiàn)標(biāo)定板的自動識別,驗證了方法的有效性。
本文所使用的標(biāo)定板包含兩種半徑大小的圓形標(biāo)志點,大圓半徑約為小圓半徑的2倍。所有標(biāo)志點圓心之間的距離均一致,其中大圓用于確定標(biāo)定板坐標(biāo)系的位置和方向,其在標(biāo)定板中具體位置可根據(jù)需要自由設(shè)定。如圖1所示,以本文實驗所用標(biāo)定板為例,該標(biāo)定板包含11×9個標(biāo)志圓,其中大圓的半徑約為小圓的直徑的2倍,每個圓點中心距均為d=10 mm。5個大圓中,2和5距離最遠,為6d,而3和4距離最近,距離為d,1和3之間的距離為4d。建立標(biāo)定板坐標(biāo)系如圖所示,原點位于標(biāo)定板中心圓上,Z軸垂直于標(biāo)定板平面,此時5個大標(biāo)志圓點在標(biāo)定板坐標(biāo)系下的三維坐標(biāo)值分別為(-2d,0,0),(0,-3d,0),(2d,0,0),(2d,d,0),(0,3d,0),其他圓點坐標(biāo)值可以此類推。

圖1 標(biāo)定板示意圖
平面射影變換是射影平面上可逆齊次線性變換,其本身是一串變換的組合,變換層次較高。物體經(jīng)過射影變換后與原形狀相比將出現(xiàn)失真,如圖2所示,點A、B、C、D位于π2平面上,點O為投影中心,點a、b、c、d為在平面π1相應(yīng)的中心投影點,π1和π2之間為中心射影變換。射影變換不在具備保平行、保夾角等特性,但是保持直線、直線與點的結(jié)合性以及直線上點列的交比不變,因此也稱為保線映射[13]。

圖2 射影變換
標(biāo)定板識別的目的是將標(biāo)定板圖像中的所有圓點按照一定的順序提取出來并計算其圓心坐標(biāo)值,這樣就可以與已知的標(biāo)定板實際坐標(biāo)值相對應(yīng),方便后續(xù)的相機參數(shù)標(biāo)定。標(biāo)定板識別算法流程如下:
(1)首先對標(biāo)定板圖像進行預(yù)處理(顏色轉(zhuǎn)換、濾波),通過閾值分割和面積計算初步識別標(biāo)定板候選區(qū)域;
(2)對所有標(biāo)定板候選區(qū)域內(nèi)的圖像進行邊緣提取并進行橢圓擬合,按照一定的規(guī)則進行過濾,識別候選區(qū)域內(nèi)符合條件的圓形標(biāo)志點,若區(qū)域內(nèi)圓形標(biāo)志點的個數(shù)大于等于m×n,此時可唯一確定標(biāo)定板區(qū)域;
(3)根據(jù)直徑和面積對所有橢圓進行排序,獲得5個大標(biāo)志圓,按照距離對5個大圓按照標(biāo)約定的順序進行排序;
(4)根據(jù)5個大圓圓心坐標(biāo)和對應(yīng)標(biāo)定模板的圓心坐標(biāo)計算射影變換矩陣,獲取圖像點與標(biāo)定模板之間的射影變換矩陣;
(5)根據(jù)得到的射影變換矩陣,將標(biāo)定模板內(nèi)的所有圓點中心坐標(biāo)投影到圖像平面內(nèi);
(6)計算擬合得到的橢圓圓心與投影得到的圓心坐標(biāo)值的距離,選擇距離最近且小于設(shè)定閾值的點對作為對應(yīng)圓點中心,這樣就獲得了圓點中心點與標(biāo)定模板坐標(biāo)之間的一一對應(yīng)關(guān)系。
算法流程如圖3所示。

圖3 算法流程圖
為增強圖形對比度和方便識別,標(biāo)定板通常為白底黑圓或者黑底白圓,此時可以采用閾值分割的方法可以對標(biāo)定板區(qū)域進行初步的分割。若標(biāo)定板在圖像中的顏色閾值范圍為[c1,c2](c1 (1) 此外,標(biāo)定板在圖像中的面積比例為大于0小于等于1的數(shù)值,通過計算候選區(qū)域的面積在整幅圖像中的比例,這樣就可以得到標(biāo)定板的候選區(qū)域。 對所有標(biāo)定板候選區(qū)域進行標(biāo)志圓識別,包含標(biāo)志圓的亞像素邊緣提取、邊緣過濾和圓心坐標(biāo)排序。 2.3.1 標(biāo)志圓亞像素邊緣提取 對候選的標(biāo)定板區(qū)域分別進行邊緣提取,如使用Canny、Sobel等算子。但是此時得到的是像素級別邊緣,為提高識別精度,通常使用亞像素邊緣提取算法。基于偽Zernike矩的亞像素邊緣檢測算法具有矩的旋轉(zhuǎn)不變性,在相同階數(shù)的情況下,偽Zernike矩比傳統(tǒng)Zernike矩包含目標(biāo)物體更多的特征向量,且對噪聲不敏感。對于數(shù)字圖像,偽Zernike矩的離散形式可以表示為: (2) (3) (4) Vnm(ρ,θ)=Rnm(ρ)eimθ (5) 首先建立理想的邊緣檢測模型: (6) 其中,h和h+k分別是直線左右兩側(cè)的灰度值,θ是邊緣與x方向的夾角,ρ是邊緣中心到直線的距離,也是邊緣所在的位置。 真實的亞像素邊緣的求解公式為: (7) 其中,x,y是單位圓中心坐標(biāo),詳細計算過程參考文獻[14-15]。 2.3.2 標(biāo)志圓邊緣過濾規(guī)則 由于提取到的邊緣包含噪聲信息,所以首先對其進行過濾,以去除非圓點的邊緣。通常遵循以下過濾原則: (1)邊緣閉合原則 計算每個邊緣的首像素和末尾像素之間的距離l,若l> 0,則舍棄該邊緣。 (2)區(qū)域灰度值判定 計算閉合邊緣區(qū)域內(nèi)所有像素的平均灰度值,設(shè)最小閾值為m1,最大閾值為m2,均值m應(yīng)滿足m1 (3)區(qū)域面積判定 計算圓點閉合區(qū)域所包圍區(qū)域的面積s,s應(yīng)滿足: smin (8) (4)橢圓度判定 經(jīng)過上述原則的過濾,能濾除大部分非標(biāo)志點的邊緣信息。而后可以根據(jù)提取到的符合條件的邊緣的個數(shù)是否大于等于標(biāo)定板圓點個數(shù)來判定候選區(qū)域是否是標(biāo)定板所在位置。 標(biāo)志點排序的目的是為了獲得所有圓點中心圖像坐標(biāo)與標(biāo)定板三維坐標(biāo)之間的對應(yīng)關(guān)系。需要首先使用5個大圓獲取圖像坐標(biāo)與三維坐標(biāo)之間的射影變換矩陣,然后根據(jù)變換矩陣對所有的圓點進行排序。 2.4.1 大圓排序 在對提取到的邊緣進行過濾后,進行橢圓擬合,計算橢圓的長軸半徑。根據(jù)長軸半徑的大小對橢圓按照從大到小的順序進行排序,取前5個數(shù)值作為5個大圓的圓心。然后使用下述方法對5個大圓進行排序: (1)計算5個大圓圓心之間的圖像距離并進行排序,圓心距離最遠的兩個圓記為P2,P5(或者P5,P2此時順序不確定),同樣的距離最近的兩個圓記為P3,P4(或者P4,P3),則剩下的一個圓記為P1; (2)計算5個圓心的幾何中心P0; (3)連接點P0和點P1,以向量P0P1為起始邊,逆時針旋轉(zhuǎn)并計算剩余4個圓心與該線段之間的距離,當(dāng)距離為零時,該圓點通過該直線,據(jù)此可以順序獲得P2、P3、P5、P4;這樣就唯一確定了5個大圓點的順序,如圖4所示。 圖4 排序方法示意圖 2.4.2 射影變換矩陣的計算 平面射影變換是關(guān)于齊次三維坐標(biāo)的線性變換,可以使用一個非奇異3×3矩陣H表示,若圖像坐標(biāo)用[x,y,1]t表示,對應(yīng)的三維坐標(biāo)用[X,Y,1]t表示,那么兩者之間的轉(zhuǎn)換關(guān)系為: (9) 此矩陣H乘以任意一個非零比例因子不會使射影變換改變,也就是H是一個齊次矩陣,在9個元素中有8個獨立比率,故一個射影變換具有8個自由度,因此求解H矩陣的值需要至少4個點。將上面計算得到的5個大圓的圓心和對應(yīng)的標(biāo)定板坐標(biāo)代入上式,即可計算得到H矩陣[13,16]。 2.4.3 所有圓點的排序 將標(biāo)定板圓心坐標(biāo)通過H矩陣映射到圖像坐標(biāo)系中,理論上,該映射的坐標(biāo)值與實際檢測的坐標(biāo)值應(yīng)該重合,但是由于存在計算以及成像誤差,兩者之間存在一定的差值。若投影點的坐標(biāo)為P(x,y),實際成像點的坐標(biāo)為P(x′,y′),那么兩點之間的距離為: (10) 計算投影點坐標(biāo)與所有實際像點之間的距離值,設(shè)最大閾值為dmin,那么取距離最小且dist 實驗使用如圖5所示的黑色背景白色標(biāo)志點的標(biāo)定板,包含11×9個圓點圖案,其中包含5個大圓,大圓半徑為4 mm,小圓半徑為2 mm,圓心之間的距離均為10 mm,標(biāo)稱精度為0.001 mm。所用標(biāo)定相機型號為大恒相機MER-200-20GM黑白相機,分辨率為1292×964,配備computar生產(chǎn)的8 mm鏡頭。標(biāo)定實驗程序使用C++編寫,運行在64位版本windows7上,計算機主要配置為Intel i5-3470 CPU,運行內(nèi)存為8G。 圖5 實驗器材 使用上述相機拍攝標(biāo)定板在不同角度和距離下的圖像,然后標(biāo)定板圖像進行識別。如圖6所示為標(biāo)定板識別效果圖,99個標(biāo)志點每次均按照固定的順序進行排列。重點實驗了在同一距離不同角度、同一角度不同距離下標(biāo)定板的識別效果和時間。 圖6 標(biāo)定板識別效果圖 (1)將標(biāo)定板放置在約300 mm的位置上,首先實驗標(biāo)定板水平放置,此時標(biāo)定板平面與像平面大致平行,夾角約為0°。將標(biāo)定板在水平面內(nèi)以間隔約30°角轉(zhuǎn)動,運行識別程序,驗證識別速度和效果,如圖7所示為各角度下的識別效果。 圖7 同一平面內(nèi)不同角度識別結(jié)果(部分) 分析了在不同曝光值下的識別率以及識別速度,如圖8所示,在合理的曝光值下,在各角度下均可以取得接近100%的識別率,說明平面內(nèi)的旋轉(zhuǎn)角度對識別效果沒有影響;如圖9所示,在同一距離不同角度對識別速度的影響不大,單幅圖像識別時間在240 ms左右。 圖8 不同角度下的識別率 圖9 不同角度下的識別時間 (2)保持標(biāo)定板與相機的距離、曝光值不變,改變標(biāo)定板與相機像平面之間的夾角,以大約10°的間隔從0°旋轉(zhuǎn)到60°。如圖11所示,當(dāng)夾角超過45°時,識別率明顯下降,此時由于遠離相機的標(biāo)志點可能超出變形較大,邊緣模糊,因此通常無法擬合得到正確的橢圓;如圖12所示,角度變化對識別時間的影響不大。 圖10 不同夾角下的識別結(jié)果(部分) 圖11 不同夾角下的識別率 圖12 不同夾角下的識別時間 (3)保持像平面與標(biāo)定板之間的夾角不變,改變兩者之間的距離,從200 mm到1000 mm以100 mm的間隔遞增,在每個位置對相機進行對焦,使得在該距離上能獲得清晰的圖像。在不同距離上的識別效果(部分)如圖13所示,識別率如圖14所示,距離對識別率影響不大,均能獲得接近100%的識別率;識別時間如圖15所示,隨著距離的增大,識別時間有所增加,與候選區(qū)域增多有關(guān),但是時間總體控制在300 ms以內(nèi)。 圖13 不同距離下的識別效果(部分) 圖14 不同距離下的識別率 圖15 不同距離下的識別時間 為驗證標(biāo)定精度,使用本文的方法對前述同樣型號的雙目相機進行了標(biāo)定實驗以獲取其內(nèi)參和外參,如式(10)、式(11)所示,KC1,KC2分別為兩個相機的內(nèi)參,外參如表1和表2所示,為方便表示,兩相機之間的旋轉(zhuǎn)矩陣R和平移矩陣T都轉(zhuǎn)換為3×1的向量表示。 表1 雙目相機旋轉(zhuǎn)向量 表2 雙目相機平移向量 使用該參數(shù)計算標(biāo)定板上任意兩點的距離,與標(biāo)準(zhǔn)距離進行比較,計算得到其最大誤差為0.043 mm,最小誤差為0.001 mm,平均誤差為0.021 mm,說明該識別方法可以獲得精確的標(biāo)定結(jié)果。 (10) (11) 本文提出了一種基于射影變換的圓點標(biāo)定板自動識別方法,該方法能自動識別標(biāo)定板圖像區(qū)域,使用5個大標(biāo)志圓點的圖像坐標(biāo)和三維坐標(biāo)計算對應(yīng)的射影變換矩陣,最后使用該變換矩陣對所有標(biāo)志點進行精確排序,從而獲得標(biāo)志點圖像坐標(biāo)和實際空間坐標(biāo)的一一對應(yīng)。該方法與其他識別方法相比具有以下優(yōu)點: (1)實現(xiàn)了標(biāo)定板圖像的自動識別; (2) 只要保證5個大標(biāo)志圓處于視野范圍內(nèi),即可實現(xiàn)視野內(nèi)其他所有圓點的準(zhǔn)確識別和排序; (3)識別速度快,識別率高,且能在較大的角度范圍內(nèi)實現(xiàn)標(biāo)定板的準(zhǔn)確識別。 通過實際實驗驗證了該方法的有效性,具有較高的識別正確率和效率。2.3 標(biāo)志圓的識別



2.4 標(biāo)志圓排序

3 實驗













4 結(jié)論