Harris角點(diǎn)提取實(shí)現(xiàn)亞像素級(jí)攝像機(jī)自標(biāo)定
基于單平面模板的攝像機(jī)自標(biāo)定是當(dāng)前應(yīng)用比較廣泛的攝像機(jī)標(biāo)定方法,只需要攝像機(jī)從不同方向拍攝3幅用于標(biāo)定的圖像(棋盤(pán)格),提取出其中的角點(diǎn),根據(jù)其與平面模板間的關(guān)系,確定單應(yīng)性矩陣,便可以計(jì)算出攝像機(jī)的全部?jī)?nèi)參數(shù)。其優(yōu)點(diǎn)是操作簡(jiǎn)便并且無(wú)需知道模板的運(yùn)動(dòng)情況。但這種標(biāo)定方法要求標(biāo)定圖像非常平整,而且要求角點(diǎn)清晰易分辨。無(wú)形中就約束了激光打印機(jī)的精度。而準(zhǔn)確提取標(biāo)定板上特征點(diǎn)的坐標(biāo)是這種自標(biāo)定中最為關(guān)鍵的一步,直接關(guān)系到標(biāo)定結(jié)果的精確度。為解決這一問(wèn)題,提出利用Harris算法提取出角點(diǎn)后,再將其坐標(biāo)精確到亞像素級(jí),以提高標(biāo)定的精度。
2 基于Harris算法的角點(diǎn)提取
Harris算子是Harris和Stephens在1988年提出的一種基于靜止圖像的點(diǎn)特征提取算子。這種算子受信號(hào)處理中自相關(guān)函數(shù)的啟發(fā),給出與自相關(guān)函數(shù)相聯(lián)系的矩陣。矩陣的特征值是自相關(guān)函數(shù)的一階曲率,對(duì)圖像中的任意一點(diǎn),如果它的水平曲率和垂直曲率值都高于局部鄰域中其他點(diǎn),則認(rèn)為該點(diǎn)是特征點(diǎn)。它計(jì)算簡(jiǎn)單有效同時(shí)非常穩(wěn)定,在圖像旋轉(zhuǎn)、灰度、噪聲影響和視點(diǎn)變換的條件下,與其他算子相比是最穩(wěn)定的一種點(diǎn)特征提取算子。Harris算子定義為:
式中:其中g(shù)x為x方向的梯度,gy為y方向的梯度,G(s)為高斯模板,⊕為卷積操作,I為每點(diǎn)的興趣值;det為矩陣的行列式;tr為矩陣的跡;k為經(jīng)驗(yàn)值,一般取0.04。
Harris算子在攝像機(jī)標(biāo)定圖像的使用方法:首先計(jì)算圖像中的每個(gè)點(diǎn)在橫向和縱向的一階導(dǎo)數(shù)以及它們的乘積。從而得到3幅新的圖像。這3幅圖像中的每個(gè)像素對(duì)應(yīng)的屬性值分別為gx,gy和gxgy。然后運(yùn)用高斯濾波處理這3幅圖像,接著計(jì)算原圖像上對(duì)應(yīng)的每個(gè)點(diǎn)的興趣值。計(jì)算完各點(diǎn)的興趣值后,要提取出原始圖像中的所有局部興趣值最大的點(diǎn),即依次取出每個(gè)像素的8鄰域中的每個(gè)像素,從這些像素中找出興趣值最大者。特征點(diǎn)就是中心點(diǎn)像素的興趣值為最大的點(diǎn)。
用公式提取特征點(diǎn)時(shí),只要像素點(diǎn)的興趣值大于某一閾值T的點(diǎn)均可被認(rèn)為是特征點(diǎn)。但T不具有直觀的物理意義,其具體值難以確定。所以在實(shí)際操作中應(yīng)采取間接確定T的方法:通過(guò)確定圖像中所能提取的最大可能的特征點(diǎn)數(shù)目N來(lái)選擇興趣值最大的若干像素點(diǎn)作為特征點(diǎn)。局部極值點(diǎn)的數(shù)目可能會(huì)很多,根據(jù)興趣值進(jìn)行排序后,取其前N個(gè)點(diǎn)為特征點(diǎn)。
3 精確角點(diǎn)坐標(biāo)至亞像素級(jí)
對(duì)于棋盤(pán)格圖像如圖1所示,角點(diǎn)附近的點(diǎn)可分為在邊緣上的點(diǎn)和不在邊緣上的點(diǎn)兩類。B點(diǎn)上的梯度方向與OB垂直,而A點(diǎn)處灰度梯度為零,可見(jiàn)在角點(diǎn)O附近點(diǎn)的灰度梯度均垂直于該點(diǎn)與角點(diǎn)的連線。
用數(shù)學(xué)式可表達(dá)如下:
式中:為灰度梯度向量,為圖像原點(diǎn)指向O點(diǎn)的坐標(biāo),為圖像原點(diǎn)指向第i點(diǎn)的坐標(biāo)。
實(shí)際圖像可能受到噪聲的影響,故一般情況下式(1)不為0。設(shè)誤差為θ,即:
在以角點(diǎn)為中心的某一鄰域內(nèi),對(duì)所有點(diǎn)按式(2)計(jì)算,誤差和為S,則有:
故求角點(diǎn)準(zhǔn)確位置的問(wèn)題轉(zhuǎn)化為求使誤差和S最小的點(diǎn)的問(wèn)題。該問(wèn)題可用迭代的方法優(yōu)化求解,對(duì)式(1)兩端同時(shí)乘以得:
將角點(diǎn)鄰域內(nèi)所有點(diǎn)分別代入式(4)。把所有結(jié)果求和,可得出:
這樣就得到了角點(diǎn)O的迭代式,通過(guò)對(duì)初始Harris角點(diǎn)進(jìn)行一定級(jí)數(shù)的迭代優(yōu)化,可以得到其更精確的坐標(biāo)位置。
4 自標(biāo)定算法
自標(biāo)定算法采用張正友標(biāo)定法,其大致過(guò)程如下:
(1)坐標(biāo)系變換
由此式(8)可完成從攝像機(jī)坐標(biāo)系到圖像坐標(biāo)系的變換,其中A包含攝像機(jī)的全部6個(gè)內(nèi)參數(shù),f為攝像機(jī)焦距,θ為攝像機(jī)坐標(biāo)系的偏斜度,像素點(diǎn)的大小為k×l,單位為mm,圖像坐標(biāo)系的原點(diǎn)位于(u0,v0)上。
攝像機(jī)坐標(biāo)系和世界坐標(biāo)系的關(guān)系為:
式中:R3×3為旋轉(zhuǎn)矩陣,t3×1為平移向量。
由式(7)和式(9)可得從世界坐標(biāo)系到圖像坐標(biāo)系的一個(gè)線形變換:km3×1=A(R3×3,t3x1)M3×1,其中m3×1為圖像點(diǎn)的齊次坐標(biāo),M3×1為三維空間點(diǎn)的齊次坐標(biāo),為比例系數(shù)。
(2)計(jì)算透視投影矩 令H=λA(R,t),其中λ為比例系數(shù),H為透視投影矩陣,可通過(guò)已知的一系列二維、三維點(diǎn)對(duì)獲得,即將所有對(duì)應(yīng)點(diǎn)對(duì)(角點(diǎn))的Mahalanobis距離標(biāo)函數(shù),利用最大似然估計(jì)的方法獲取當(dāng)Mahalanobis距離取到最小值時(shí)的H矩陣。
(3)攝像機(jī)參數(shù)的獲取設(shè)標(biāo)定板放在世界坐標(biāo)系的Z=0平面內(nèi),可得到只包含兩個(gè)列向量的旋轉(zhuǎn)矩陣,再由所選坐標(biāo)系為笛卡兒坐標(biāo)系,可得到關(guān)于矩陣A的兩個(gè)約束條件,這樣便可求出透視投影矩陣,再由式H=λA(R,t),可得到攝像機(jī)的全部?jī)?nèi)參數(shù)。
(4)徑向畸變的矯正 由畸變模型為:
式中:(x,y)原圖像坐標(biāo),(x,y)為校正后圖像坐標(biāo),k1,k2為徑向畸變系數(shù),由Levenberg-Marquardt算法實(shí)現(xiàn)非線性優(yōu)化校正過(guò)程。
5 標(biāo)定實(shí)驗(yàn)
標(biāo)定板采用一幅7×7(角點(diǎn)數(shù))的棋盤(pán)圖,每格邊長(zhǎng)的實(shí)際大小分別為22.35 mm,拍得的照片大小為736×454(圖2),其實(shí)驗(yàn)結(jié)果如表1,表2所列。實(shí)驗(yàn)結(jié)果表明標(biāo)定精度有了大幅度的提高。
6 結(jié)語(yǔ)
提出了對(duì)于攝像頭自標(biāo)定這種方便的標(biāo)定方法,可以利用提取角點(diǎn)后,再對(duì)其經(jīng)過(guò)亞像素級(jí)定位,從而提高標(biāo)定精度。該方法簡(jiǎn)單易實(shí)現(xiàn),經(jīng)實(shí)驗(yàn)證明具有很好的效果,解決了傳統(tǒng)自標(biāo)定算法中對(duì)標(biāo)定板要求高的問(wèn)題。