摘 要: 攝像機(jī)標(biāo)定技術(shù)已被廣泛地應(yīng)用于三維重建技術(shù)中。針對標(biāo)定時(shí)需要手動確認(rèn)角點(diǎn)比較耗時(shí)且可能存在誤差的問題,本文提出一種基于雙旋轉(zhuǎn)模板的黑白棋盤角點(diǎn)檢測算法。該算法首先通過Harris算法獲得初始角點(diǎn),然后通過構(gòu)造旋轉(zhuǎn)模板對獲得的角點(diǎn)進(jìn)行迭代篩選,最終求解得到符合標(biāo)定要求的角點(diǎn)。實(shí)驗(yàn)證明本文算法不僅具有較高的穩(wěn)定性,還提高了黑白棋盤上有效角點(diǎn)的檢測精度和效率。
關(guān)鍵詞: 三維重建;攝像機(jī)標(biāo)定;黑白棋盤;角點(diǎn)檢測;Harris
0 引言
三維重建是計(jì)算機(jī)視覺研究的核心問題之一。按照是否求解攝像機(jī)參數(shù),將三維重建分為基于標(biāo)定的[1-2]和基于未標(biāo)定的[3]重建技術(shù)?;谖礃?biāo)定的重建技術(shù)需要通過兩幅或多幅圖像求解攝像機(jī)的運(yùn)動參數(shù)和場景中特征點(diǎn)的三維坐標(biāo),算法較為復(fù)雜?;跇?biāo)定的重建技術(shù)需要提前對攝像機(jī)進(jìn)行標(biāo)定,對設(shè)備要求低,操作簡單,重建效果滿足用戶要求。攝像機(jī)標(biāo)定技術(shù)是要精確求解攝像機(jī)內(nèi)外參數(shù),從而恢復(fù)二維圖像攜帶的三維場景信息,是三維重建系統(tǒng)的重要模塊,其求解結(jié)果的好壞、精確程度和實(shí)時(shí)性直接影響整個(gè)系統(tǒng)的性能。通常,標(biāo)定過程需要借助標(biāo)定物,如黑白棋盤。針對黑白棋盤的角點(diǎn)檢測技術(shù)對攝像機(jī)標(biāo)定工作非常重要,是攝像機(jī)標(biāo)定的前提和基礎(chǔ)。所謂角點(diǎn),就是圖像中灰度變換較大的點(diǎn)。
黑白棋盤的角點(diǎn)檢測技術(shù)一般用于三維重建中相機(jī)標(biāo)定部分,能夠?qū)⑷藗儚姆彪s的手動標(biāo)定工作中解放出來,提高標(biāo)定精度。目前,學(xué)者們已經(jīng)對該技術(shù)進(jìn)行了大量研究。參考文獻(xiàn)[4]中的Harris角點(diǎn)檢測算法使用灰度的高斯梯度作為響應(yīng)值判斷棋盤格圖像中的角點(diǎn),該方法簡單有效,但容易受到棋盤角點(diǎn)附近其他高梯度像素點(diǎn)的影響。參考文獻(xiàn)[5]提出了一種自動識別黑白棋盤上角點(diǎn)的角點(diǎn)檢測方法,但當(dāng)遇到復(fù)雜背景時(shí),該方法仍然容易受到非棋盤角點(diǎn)的影響。參考文獻(xiàn)[6]依據(jù)方格邊緣的交點(diǎn)形成角點(diǎn)這一性質(zhì),先對圖像中的邊緣進(jìn)行檢測,再利用Radon變換確定邊緣的位置,最后通過求取邊緣交點(diǎn)的方法確定角點(diǎn)坐標(biāo)。該方法對邊緣提取算法依賴性較大,容易受到鏡頭畸變情況的影響。
針對上述問題,本文提出了一種基于雙旋轉(zhuǎn)模板的黑白棋盤角點(diǎn)檢測算法,該算法首先采用Harris算法[7-9]對包含黑白棋盤的圖像進(jìn)行角點(diǎn)檢測,獲得初步的角點(diǎn)集,通過構(gòu)造雙旋轉(zhuǎn)模板對獲得的角點(diǎn)進(jìn)行迭代篩選,根據(jù)檢測結(jié)果自適應(yīng)調(diào)節(jié)參數(shù)。該算法具有穩(wěn)定性高、抗噪聲、自適應(yīng)性強(qiáng)等特點(diǎn),可應(yīng)用于鏡頭存在畸變、實(shí)際背景復(fù)雜等特殊的攝像機(jī)標(biāo)定情況。
1 本文算法
1.1 Harris角點(diǎn)檢測算法
本文算法獲得初始的角點(diǎn)集合由Harris算法獲得,該方法基本原理描述如下:
首先建立下面矩陣:
其中, I為輸入圖像,表示圖像I在x方向的導(dǎo)數(shù),missing image file表示圖像I在y方向的導(dǎo)數(shù)。通過分析上面矩陣可以看出,如果一個(gè)像素點(diǎn)對應(yīng)的矩陣M的兩個(gè)特征值都很大,則在該點(diǎn)向任意方向上的一個(gè)很小的移動都會引起灰度值的較大變化,則認(rèn)為該點(diǎn)是一個(gè)角點(diǎn)。通過計(jì)算如下的響應(yīng)函數(shù)值來判斷角點(diǎn):
其中,det(.)為取行列式值,trace(.)為取矩陣的跡,k一般設(shè)為0.04。求出R的值,若為正則對應(yīng)點(diǎn)為角點(diǎn),若為負(fù)則是一般邊界點(diǎn),當(dāng)其絕對值很小時(shí)為平坦區(qū)。
該算法易受噪聲的影響。為了減小噪聲的干擾,在對圖像進(jìn)行偏導(dǎo)計(jì)算以后用高斯濾波器對數(shù)據(jù)進(jìn)行平滑。按此方法求出的角點(diǎn)數(shù)量很多。為了減少匹配計(jì)算量,可以對想要獲得的角點(diǎn)數(shù)量進(jìn)行限制。限制方法是確定一個(gè)閾值,僅僅選取R值大于這個(gè)閾值的點(diǎn)作為角點(diǎn)[7]。Harris算法作為本文算法的第一步,使本文算法具有了旋轉(zhuǎn)不變性、抗噪性等特點(diǎn)。
1.2 基于雙旋轉(zhuǎn)模板的角點(diǎn)迭代篩選
當(dāng)用Harris算法進(jìn)行角點(diǎn)檢測之后,對獲得的點(diǎn)集采用本文提出的基于雙旋轉(zhuǎn)模板的方法進(jìn)行二次檢測。首先對圖像二維像素(i,j)求解如下兩個(gè)函數(shù):
其中,Ii (i=1,2,3,4)表示以O(shè)(i,j)為中心沿著di方向上遍歷的像素灰度值,如圖1。若沿著d1和d4方向上像素點(diǎn)灰度值的累加和與沿著d2和d3方向上像素點(diǎn)灰度值的累加和存在較大的差異,則可認(rèn)為該點(diǎn)為黑白棋盤上的角點(diǎn)。實(shí)際應(yīng)用中需要構(gòu)建如下式所示的兩個(gè)多階方矩陣:
通過上述兩個(gè)矩陣對圖像進(jìn)行卷積操作,從而獲得兩個(gè)集合C1和C2,由于本文迭代過程中需要對式(4)進(jìn)行旋轉(zhuǎn)處理,因此稱式(4)為雙旋轉(zhuǎn)模板。
然后,需要通過自適應(yīng)閾值約束式(3)的結(jié)果,求解最有可能為棋盤上的角點(diǎn)集,自適應(yīng)閾值的計(jì)算如下:
mean(.)為求均值函數(shù)。理想的角點(diǎn)必須滿足其對應(yīng)c1值大于T1,同時(shí)其對應(yīng)的c2值小于T2。
本文算法的具體實(shí)現(xiàn)步驟為:
⑴采用1.1節(jié)所述的Harris算法對圖像進(jìn)行角點(diǎn)檢測,獲得初步角點(diǎn)集合S。設(shè)置迭代次數(shù)為t,根據(jù)式(4)構(gòu)造雙旋轉(zhuǎn)模板,模板大小設(shè)為2n+1。
?、撇捎秒p旋轉(zhuǎn)模板對圖像中的角點(diǎn)集合S進(jìn)行卷積操作,獲得滿足自適應(yīng)閾值T1和T2的點(diǎn)集合P。
?、侨“霃絩,并合并P中距離相近的角點(diǎn),最終得到集合Q。
⑷判斷是否超過迭代次數(shù),若未超過迭代次數(shù)則雙旋轉(zhuǎn)模板進(jìn)行旋轉(zhuǎn)調(diào)整,旋轉(zhuǎn)角度為θ,返回步驟(2);若超過迭代次數(shù)則判斷檢測結(jié)果是否為預(yù)測結(jié)果,即得到的Q中的角點(diǎn)數(shù)量m是否與預(yù)測的相符,若為預(yù)測結(jié)果則轉(zhuǎn)到步驟(6),否則跳到步驟(5)。
⑸算法失敗,重新設(shè)置相關(guān)參數(shù)或進(jìn)行手動角點(diǎn)標(biāo)定。
⑹算法成功,查看效果。
本文算法計(jì)算簡單,具有較高執(zhí)行效率,一般當(dāng)t≥3時(shí)即可得到理想效果,迭代收斂的條件為:Q的角點(diǎn)數(shù)量等于預(yù)測獲得的角點(diǎn)數(shù)量,該數(shù)量可通過黑白棋盤的先驗(yàn)信息得到。
2 實(shí)驗(yàn)仿真與分析
本文將在Matlab平臺(CPU Intel雙核主頻2.66 GHz)進(jìn)行模擬仿真實(shí)驗(yàn)。實(shí)驗(yàn)中使用自制的黑白棋盤格,黑白棋盤格由13×14個(gè)方格組成,拍攝的圖像的分辨率為632×471,本文將與手動獲得黑白棋盤角點(diǎn)的方法進(jìn)行比較。手動獲取黑白棋盤角點(diǎn)多用于以往的攝像機(jī)標(biāo)定,其步驟為首先手動確認(rèn)棋盤上4個(gè)邊界點(diǎn),如圖2(a)所示,然后自動生成網(wǎng)格點(diǎn),如圖2(b)所示,最后通過算法自動校正,如圖2(c)所示。該方法并不屬于角點(diǎn)檢測方法,而且當(dāng)處理多幅圖像時(shí),處理相當(dāng)耗時(shí)。
采用本文算法自動對黑白棋盤格進(jìn)行角點(diǎn)檢測,主要參數(shù)設(shè)置為:t=3,n=10,m=156,r=5,θ=20。首先進(jìn)行Harris角點(diǎn)檢測,獲得初始結(jié)果如圖3(a)、(b)所示,然后進(jìn)行基于雙旋轉(zhuǎn)模板的迭代篩選,最終得到結(jié)果如圖3(c)、(d)所示。通過實(shí)驗(yàn)可知,本文方法與手動標(biāo)定方法結(jié)果一致,其運(yùn)行穩(wěn)定,效率高。
3 結(jié)論
本文提出的針對黑白棋盤的角點(diǎn)檢測算法能夠應(yīng)用于立體視覺技術(shù)、三維物體重建等領(lǐng)域的攝像機(jī)標(biāo)定過程中,該算法首先采用Harris算法獲得初始角點(diǎn)集,然后構(gòu)造雙旋轉(zhuǎn)模板,通過卷積操作對角點(diǎn)進(jìn)行迭代篩選,最終得到攝像機(jī)標(biāo)定所需的黑白棋盤角點(diǎn)。實(shí)驗(yàn)結(jié)果證明,該算法穩(wěn)定性強(qiáng),準(zhǔn)確度高,計(jì)算量小,具有旋轉(zhuǎn)不變性、抗噪性等優(yōu)勢,可以將研究人員從繁瑣的手動獲取棋盤角點(diǎn)信息的工作釋放出來,具有較強(qiáng)的現(xiàn)實(shí)意義。
參考文獻(xiàn)
[1] Zhang Zhengyou. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11):1330-1334.
[2] 楊幸芳,張夢文,嚴(yán)凱,等. 一種基于參數(shù)約束關(guān)系的工業(yè)相機(jī)的線性標(biāo)定法[J]. 微型機(jī)與應(yīng)用, 2014,33(11):38-40.
[3] 趙宏宇,李燕華,侯振杰,等. 基于魯棒估計(jì)滅點(diǎn)分層重建的研究[J]. 微型機(jī)與應(yīng)用, 2011,30(9): 31-35.
[4] Harris C, Stephens M. A combined corner and edge detector[C]. Proceedings of the Fourth Alvey Vision Conference. Manchester, 1988: 147-151.
[5] 劉陽,王福利,常玉清,等. 黑白棋盤格角點(diǎn)檢測算法[J]. 東北大學(xué)學(xué)報(bào)(自然科學(xué)版),2007, (8):1090-1093.
[6] 胡海峰,熊銀根. 一種基于兩次Radon變換檢測棋盤格方格點(diǎn)的新算法[J]. 中山大學(xué)學(xué)報(bào)(自然科學(xué)版), 2003, 42(2) : 23- 26.
[7] 唐爍,繆源. 基于Harris角點(diǎn)的圖像匹配算法[J]. 微型機(jī)與應(yīng)用, 2013, 32(2):41-43.
[8] 羅桂娥,李映. 基于均勻角點(diǎn)匹配的基礎(chǔ)矩陣估計(jì)方法[J]. 微型機(jī)與應(yīng)用, 2013, 32(7):8-9.
[9] 熊顯名,任娟娟. 黑白棋盤格中的角點(diǎn)提取算法的研究[J]. 微型機(jī)與應(yīng)用, 2014, 33(9):66-69.