劉立彬 張譽(yù) 王鑫
關(guān)鍵詞:環(huán)狀編碼標(biāo)記點(diǎn);變形矯正;仿射變換
1研究背景
1.1環(huán)狀編碼標(biāo)記點(diǎn)的結(jié)構(gòu)
編碼標(biāo)記點(diǎn)廣泛應(yīng)用于一些光學(xué)攝影測量技術(shù),這些測量方法是通過拍攝被測物體上布置的標(biāo)記點(diǎn)來提取被測物體的結(jié)構(gòu)特征,以特定規(guī)則編碼的圖案給標(biāo)記點(diǎn)打上編號便于識別和區(qū)分。編碼標(biāo)記點(diǎn)在不同的編碼規(guī)則下有不同的形狀和圖案,常見的如圖1所示。其中,圖案中央圓形或十字形為精確定位點(diǎn),周圍的圓形、環(huán)形或線段是編碼圖案,通過解碼后得到數(shù)字編號。
此系統(tǒng)采用圖2所示的環(huán)狀圖案結(jié)構(gòu)的編碼標(biāo)記點(diǎn),最中間的圓心提供坐標(biāo),起到定位的作用,外圍圓環(huán)等分為十二份,起到編碼的作用,每段小圓環(huán)的顏色可涂為黑色或白色,黑色段代表數(shù)字0,白色段代表數(shù)字1,十二段小圓環(huán)黑白相間組合在一起,構(gòu)成該編碼標(biāo)記點(diǎn)代表的二進(jìn)制數(shù)字編號。
1.2環(huán)狀編碼標(biāo)記點(diǎn)的檢測
進(jìn)行光學(xué)攝影測量時,需先準(zhǔn)備被測物體表面布置編碼標(biāo)記點(diǎn),然后用相機(jī)照相采集圖像,對圖像進(jìn)行預(yù)處理和提取特征點(diǎn),隨后匹配特征點(diǎn)并進(jìn)行三維重建模型。本文主要研究提取特征點(diǎn)即檢測編碼標(biāo)記點(diǎn)過程中的一種矯正算法。
環(huán)狀編碼標(biāo)記點(diǎn)由圓和環(huán)狀編碼帶組成,檢測編碼標(biāo)記點(diǎn)的原理就是在圖像中找到一些距離相近的組合圖案,然后根據(jù)條件將之判定為圖像中的編碼標(biāo)記點(diǎn)。編碼標(biāo)記點(diǎn)的檢測是一項復(fù)雜而重要的工作,檢測失敗會直接導(dǎo)致立體匹配出錯而無法完成三維模型的重建。一般來說,標(biāo)記點(diǎn)檢測按如下步驟進(jìn)行:(1)圖像預(yù)處理。在檢測前,對拍攝的圖像畫面進(jìn)行一定的加工,包括灰度化、高斯濾波等;(2)對編碼標(biāo)記點(diǎn)定位中心圓的橢圓檢測。首先對圖像進(jìn)行二值化,然后抽取輪廓,最后再進(jìn)行橢圓的擬合處理;(3)篩選。檢測出的橢圓通常有很多錯誤,所以需要進(jìn)行篩選,通過設(shè)置長短軸比例、橢圓大小等條件都可以達(dá)到;(4)編碼標(biāo)記點(diǎn)解碼。編碼標(biāo)記點(diǎn)檢測完畢后,每個編碼標(biāo)記點(diǎn)都按規(guī)則進(jìn)行解碼。
以上方法不足之處是對橢圓形編碼標(biāo)記點(diǎn)直接進(jìn)行解碼,在實(shí)際工程應(yīng)用過程中,若采集的編碼點(diǎn)圖像因拍攝角度等原因發(fā)生了變形,則不僅圓形圖案變成橢圓,圓環(huán)也發(fā)生了位移和縮放,如圖3所示。這使得接下來的解碼很可能不準(zhǔn)確甚至解碼失敗,所以編碼標(biāo)記點(diǎn)圖形需要進(jìn)行修正。
本文研究的矯正方法,通過檢測得到的橢圓,使橢圓的長短軸和中心點(diǎn)重新進(jìn)行仿射投影,投影后的橢圓成為正圓,從而達(dá)到矯正的目的,使標(biāo)記點(diǎn)的解碼過程不易出錯。
矯正后解碼過程如下:(1)預(yù)處理。選擇編碼標(biāo)記點(diǎn)所在的roi區(qū)域,該區(qū)域中包含編碼的環(huán)形帶信息:(2)將環(huán)形帶均勻切割為360份,計算每份中的白色像素數(shù)量,從而確定該份是否是白色帶,白色帶用1表示,反之黑色帶用0。得到形如1100000011111100011…的字符串;(3)將360個字符長度的字符串合并為15組的編碼串,每組24個字符。分割的準(zhǔn)則為,每個編碼串中的字符盡可能一致,最好全為1或全為0,然后根據(jù)字符串的平均值確定該位的具體編碼值;(4)將得到編碼標(biāo)記點(diǎn)的二進(jìn)制碼值轉(zhuǎn)換成十進(jìn)制碼數(shù)。
2矯正的算法設(shè)計
在圖像中,可以近似認(rèn)為編碼標(biāo)記點(diǎn)由偏到正是一個仿射變換。
仿射變換可以用如下公式表示:
只需要估算出這個仿射變換的參數(shù),然后就可以計算出變換之后的像素坐標(biāo),從而達(dá)到矯正圖像的目的。仿射變換矩陣A包含6個參數(shù),因此需要三組點(diǎn)來估算。得到3個點(diǎn)后,會得到一系列的線性方程,通過解方程,可以得到仿射變換的參數(shù)。
如圖4所示,在編碼標(biāo)記點(diǎn)圖像的橢圓中,根據(jù)橢圓的長短軸作一個平行四邊形,可以知道原來的圖案中間是一個圓形,偏轉(zhuǎn)后,該圓形退化成一個橢圓形,內(nèi)接正方形退化為平行四邊形。經(jīng)過修正后,該平行四邊形還原成正方形。該平行四邊形的頂點(diǎn)與正方形的四個頂點(diǎn)相互對應(yīng)。這個對應(yīng)可以用來估算仿射變換的參數(shù)。
估算出仿射變換矩陣后,可以將原圖所有像素經(jīng)過該矩陣映射到新的圖像中,從而達(dá)到圖像矯正的效果。
3軟件設(shè)計
3.1矯正算法總體設(shè)計
此方案基于opencv算法庫,其中很多算法已經(jīng)做好了封裝,如高斯模糊,二值化,斑塊檢測,橢圓擬合,外接矩形計算,仿射矩陣計算,仿射變換等。
算法流程如圖5所示。
3.2矯正算法實(shí)施
矯正的效果如圖6所示,第一行為偏轉(zhuǎn)的編碼標(biāo)記點(diǎn),第二行為矯正后的效果。為了方便比對,添加了輔助圓圈。
4結(jié)束語
通過試驗可以看到,矯正取得了不錯的效果,基本恢復(fù)成未偏轉(zhuǎn)變形的原編碼標(biāo)記點(diǎn),大大提高了識別的準(zhǔn)確性和成功率,在具體項目中應(yīng)用此方法能使系統(tǒng)的測量精度和測量的魯棒性得到較大的提高。