劉立彬 張譽 王鑫



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