李曉芳
(山西工商學院 計算機信息工程學院, 山西 太原 030000)
黑白棋盤網(wǎng)格是攝像機標定[1-4]中常用的空間標定模板,經(jīng)典的攝像機標定方法是通過空間標定模板特征與圖像特征之間的對應關系來構建關于攝像機模型參數(shù)的約束條件,然后通過優(yōu)化算法求解攝像機的內(nèi)外參數(shù)。直線作為棋盤網(wǎng)格圖像的重要特征,其檢測精度的高低直接影響到攝像機內(nèi)外參數(shù)的精度。因此,研究黑白棋盤網(wǎng)格圖像的直線檢測對攝像機標定具有很重要的意義。
目前,相關研究大都是基于Hough[5-7]變換的,如宋雪峰等[8]通過引入邊緣提取、Hough變換、滅點檢測等圖像處理技術,對網(wǎng)格狀地面圖像進行了垂直和水平兩個方向的直線檢測;肖曉明等[9]在Laplacian算子和Hough變換的基礎上進行改進,提出一種適用于背景相對簡單的網(wǎng)格圖像直線檢測方法等。但是Hough變換直線檢測方法對參數(shù)選取非常敏感,參數(shù)選取對最終的檢測精度有重要影響。針對這些問題,文中結(jié)合黑白棋盤網(wǎng)格圖像的特點,圍繞黑白棋盤網(wǎng)格圖像直線檢測問題進行研究,并給出一種切實可行的方法。
利用棋盤網(wǎng)格已知的結(jié)構尺寸,給出一種基于平面單應矩陣的直線檢測方法,并開發(fā)了一個人機交互棋盤網(wǎng)格直線檢測系統(tǒng)。該系統(tǒng)只需在圖像中手動選取四個角點,然后系統(tǒng)利用模板點和圖像點的對應關系求出平面間的單應矩陣,并自動檢測出圖像中的直線特征。該方法檢測速度快,魯棒性高,且具有較高的檢測精度,實驗結(jié)果也驗證了該方法的可行性,而且該方法也很容易擴展到其它復雜的平面圖像直線檢測問題中。
已知一組點的坐標為(xi,yi),其中i=1,2,…,m。在平面內(nèi),可用下列方程唯一確定一條直線,
(1)
單位向量(n1,n2)垂直于式(1)中的直線。如果p點在該條直線上,則該點坐標(xp,yp)滿足式(1),即
c+n1xp+n2yp=0,
若p點在直線外,則可計算
r=c+n1xp+n2yp,
(2)
|r|即為p點到直線的距離。
通過這些直線擬合一條直線,則只需滿足
(3)
求解
(4)
得出直線參數(shù)c,n1,n2,即可得出擬合直線的方程。
1.2.1 點和線的齊次表示
二維空間(即平面)中直線方程的一般形式為
ax+by+c=0,
a,b,c可以任意取值,且當取值不同時所表示的直線也不同,則二維空間中的任意一條直線可以直接用對應的矢量(a,b,c)T表示。此外,直線和矢量(a,b,c)T并不是一一對應的關系。因為,對于任意的非零常數(shù)k,方程
ax+by+c=0
和
k(ax+by+c)=(ka)x+(kb)+y(kc)=0
是等價的,代表同一條直線。為此,矢量(a,b,c)T和k(a,b,c)T為相同的直線,則用矢量(a,b,c)T作為該類直線的齊次矢量,記作l=(a,b,c)T。注意矢量(0,0,0)T不代表任何直線。
方程ax+by+c=0也表示點x=(x,y)在直線l=(a,b,c)T上,矢量內(nèi)積的形式為
ax+by+c=(x,y,1)(a,b,c)T=
(x,y,1)l=0,
即在二維歐式空間R2中的點(x,y)T的基礎上增加一個分量1,使其變?yōu)槿S矢量。對于任意的非零常數(shù)k,矢量(x,y,1)T和(kx,ky,k)T是等價的。同理,矢量(x,y,1)T為該類點(x,y)T的齊次表示。注意矢量(x,y,0)T表示二維射影空間(平面)中的無窮遠點。
1.2.2 射影映射
定義1射影映射是二維射影空間P2到它自身的一種滿足下列條件的可逆映射h:三點x1,x2,x3共線當且僅當h(x1),h(x2),h(x3)也共線。
定理1映射h:P2→P2是射影映射的充分必要條件,是存在3×3的非奇異矩陣H,使得二維射影空間P2中的任意一點x都滿足h(x)=Hx。
1.2.3 射影變換
定義2平面射影變換可用一個非奇異3×3矩陣H表示為
或
x′=Hx。
(5)
其實質(zhì)是一種線性變換。其中,矩陣
被稱為射影矩陣或單應矩陣。
注意,此方程中的矩陣H是一個齊次矩陣,即在相差一個比例因子的情況下式(5)中的等號才成立。嚴格地,式(5)應寫為
λx′=Hx,
式中:λ----比例因子。
中心投影把一張平面的點映射成另一張平面上的點和把一張平面上的直線映射成另一張平面上的直線,如圖1所示。
從圖1可知,沿一個公共點(投影中心)的射線的投影定義了從一張平面π到另一張平面π′的映射。
射線模型中(見圖1),一個射影變換就是三維歐氏空間R3中的一種線性變換,在變換過程中保持所有的射影性質(zhì)不變。從定義1可知,在透視圖形中,中心投影將一張平面上的點映射為另一張平面的點。同樣,中心投影將一張平面上的直線映射為另一張平面上的直線,且直線之間的變換為
I′=H-Tl。
(6)
角點檢測(Corner Detection)是計算機視覺系統(tǒng)中用來獲取圖像特征點的一種方法,也稱為特征點檢測。角點沒有明確的數(shù)學定義,通常角點是兩條或兩條以上邊緣的交點。Harris角點檢測算子是由Chris Harris等[11]提出的,他們利用Taylor展開方法將偏移的方向進行了任意方向的擴展,同時引入了高斯平滑函數(shù),用以增加抗噪聲干擾的性能。他們在圖像中設計了一個局部移動的窗口,窗口在各個方向沒有明顯灰度變化的為平滑區(qū)域,只在某個方向沒有灰度變化的為邊緣,在任意方向都導致圖像灰度明顯變化的即為角點。他們用微分算子替代了亮度塊的方向移動,并用自相關函數(shù)構造了2×2的Harris矩陣。用來判斷圖像特征是哪種特征的矩陣M公式
(7)
式中:A=Ix(x,y)Iy(x,y)。
將矩陣對角化處理,得到兩個正交方向的變化量分量,對角線元素即為矩陣的特征值λ1,λ2,具體有如下三種情況。
1)直線:λ1?λ2或λ2?λ1。
2)平面:λ1?λ2,且λ1,λ2均較小。
3)角點:λ1?λ2,且λ1,λ2均較大。
R值與點的類型關系如圖2所示。
Harris算法具有旋轉(zhuǎn)不變性、穩(wěn)定性高、對噪聲不敏感等優(yōu)點,則在信噪比較低的圖像中仍然可以比較準確地檢測出圖像中的角點。
2.1.1 直線檢測基本原理
該直線檢測方法直接利用了射影變換保持點線關系不變性,及兩個平面π和π′之間的射影矩陣H不變。通過手動獲取四個角點(四個角點為同一個矩形的四個頂點),求出初始的直線位置,再利用最小二乘法將同一條直線附近的邊緣點擬合出精度更高的直線參數(shù)。
2.1.2 直角坐標系的建立
假設世界平面為模板平面π,拍攝的圖片為圖像平面π′,并分別在模板平面和圖像平面的左上角建立直角坐標系O-xy和O-x′y′,如圖3所示。
2.1.3 射影矩陣H的計算
通過前面的二維射影變換的基礎知識及分析可得,射影矩陣H,即3×3的非奇異矩陣,同時也是齊次矩陣,類似于點的齊次坐標。在二維射影矩陣H中,有意義的只是元素的比率,則其九個元素中有八個獨立比率,即有八個獨立自由度。從式(4)、式(5)可知,兩個平面之間的每對對應點提供兩個限制條件,那么這兩個平面間的四對對應點(任意三點不共線)即可唯一確定一個射影矩陣H。
利用棋盤網(wǎng)格的特點可求出模板平面π中的所有角點的齊次坐標
xi=(xi,yi,1)T,
再利用Harris角點檢測算子可以檢測出圖像平面π′中感興趣區(qū)域內(nèi)的所有角點,并得到角點坐標
將其中一對點的齊次坐標代入式(5),可得
(8)
將上式展開得:
(10)
1=h31xi+h32yi+h33,
(11)
式(9)和式(10)分別除以式(11),得:
(13)
繼續(xù)化簡式(12)和式(13),得:
h11xi+h12yi+h13,
(14)
h21xi+h22yi+h23。
(15)
對于圖像平面π′和世界平面π的任意一對對應點都滿足式(14)和式(15),將四對對應點(其中任意三對對應點不共線)均代入式(5),令h33=1,化簡整理得
(16)
因為任意三對對應點都不共線,則式(16)的8×8矩陣為非奇異矩陣,即滿秩矩陣,所以可以直接求解方程,從而解得射影矩陣H中的各個元素。
2.1.4 直線之間的射影變換矩陣
l′=H-Tl,
也可以寫為
l′T=lTH-1。
結(jié)合黑白棋盤網(wǎng)格的特點,即可求出模板平面π中的所有直線的齊次表示
li=(ai,bi,ci)T,
再利用直線與直線之間的射影變換關系式l′=H-Tl及求得的射影矩陣H,即可求出圖像平面π′中感興趣區(qū)域的所有直線的齊次表示
li=(ai,bi,ci)T。
基于以上分析,直線檢測算法流程如圖4所示。
具體步驟如下:
1)讀入圖像I(x,y);
2)選取感興趣區(qū)域。為了降低黑白棋盤網(wǎng)格模板外像素點的影響,可以采取線性規(guī)劃的方法選取模板區(qū)域,得到圖像I1(x,y),若為彩色圖像轉(zhuǎn)化為灰度圖像I2(x,y);
3)利用Canny算子對圖像I2(x,y)進行邊緣檢測,得到圖像I3(x,y);
5)實際黑白棋盤網(wǎng)格上,標記其左上角的某個角點,作為坐標系原點O,并建立直角坐標系O-xy,再根據(jù)模板中相鄰平行直線的實際間距,計算角點坐標xi及直線方程li;
6)在感興趣區(qū)域按逆時針手動點四個點(四個點必須為同一個矩形的四個頂點),利用點與點之間的射影變換關系式x′=Hx,求得實際模板平面和圖像平面I(x,y)之間的射影變換矩陣H;
9)在原圖像I(x,y)上繪制原有的直線。
為了得到理想的實驗結(jié)果,先利用型號為Nikon D300s的攝像機和方格邊長分別為30、40、50 mm的黑白棋盤網(wǎng)格模板,采集不同距離(攝像機離模板的距離不同)、不同傾斜度、不同旋轉(zhuǎn)度和方格尺寸大小不同的分辨率為2 144×1 424 pixel的圖像,然后在MTLAB R2008a平臺下進行大量實驗,最后從參數(shù)選取的角度將該方法與傳統(tǒng)Hough變換直線檢測方法進行比較。
2.3.1 實驗結(jié)果
具有代表性的不同距離、不同傾斜度、不同旋轉(zhuǎn)度和方格尺寸大小不同的黑白棋盤網(wǎng)格圖像如圖5所示。
圖5四幅圖片的直線檢測結(jié)果如圖6所示。
圖中所顯示的大方框區(qū)域表示感興趣區(qū)域,十字表示檢測出的角點,直線表示檢測出的直線。
2.3.2 結(jié)果分析
以圖5(a)進行實驗分析,為了更清晰地觀察實驗結(jié)果,文中只附模板區(qū)域的放大圖片。
從圖6可知,對于棋盤網(wǎng)格圖像來說,文中基于二維射影變換的直線檢測方法不僅有較快的檢測速度,而且用肉眼看,檢測精度也比較高。因為圖像平面上的一條直線僅與模板平面的一條直線對應,所以檢測過程中不會出現(xiàn)重線、誤檢和漏檢現(xiàn)象。
傳統(tǒng)Hough變換方法和基于二維射影變換的直線檢測結(jié)果如圖7所示。
從參數(shù)選取角度來說,該方法的參數(shù)明顯比傳統(tǒng)Hough變換方法的參數(shù)選擇容易。該直線檢測方法的參數(shù)包含感興趣區(qū)域模板水平方向的方格個數(shù)Nx和豎直方向的方格個數(shù)Ny及模板的方格邊長n(mm)。只要模板和感興趣區(qū)域確定了,那么這三個參數(shù)即可確定,并且參數(shù)的確定不會影響到直線檢測精度,更不會導致誤檢、漏檢、重線等現(xiàn)象。而Hough變換參數(shù)dρ和dθ的選取相當敏感,并且參數(shù)的選取不當會導致誤檢、漏檢和重線等現(xiàn)象。
采用已知結(jié)構尺寸的黑白棋盤網(wǎng)格圖像,給出一種基于平面單應矩陣的直線檢測方法,并開發(fā)了一個人機交互棋盤網(wǎng)格直線檢測系統(tǒng)。該系統(tǒng)只需在圖像中手動選取四個角點,然后系統(tǒng)利用模板點和圖像點的對應關系求出平面間的單應矩陣,并自動檢測出圖像中的直線特征。該方法檢測速度快,魯棒性高,且具有較高的檢測精度,實驗結(jié)果也驗證其可行性,而且也很容易擴展到其它復雜的平面圖像直線檢測問題中。