黃子巖,婁小平
(北京信息科技大學光電測試技術及儀器教育部重點實驗室,北京 100192)
隨著三維重建技術的不斷發(fā)展,其在生產制造、文物保護、醫(yī)學測量等方面的應用日益廣泛,其中三維重建的紋理信息具有重要的研究價值。獲取三維信息的方式有結構光掃描、激光掃描及使用方便、成本較低的Kinect、RealSense深度相機等。Kinect、RealSense通過兩組不同的相機分別獲取深度與彩色數據,為了得到準確的三維紋理信息,需要進行深度圖與彩色圖的配準。
SIFT、SURF、RANSAC算法等常見的圖像配準方法一般用于二維彩色圖像。龍勇志使用卷積神經網絡提取紅外圖像與可見光圖像的共有特征,實現了紅外圖像與可見光圖像的配準。針對深度圖與彩色圖的配準,彭麗通過使用NPDM算法,以迭代的方式獲取深度圖與彩色圖間的配準參數。Mikhelson等提出了一種用于RGB-D相機的配準方法,將深度圖重建為三維點云數據,分別提取點云中的角點與彩色圖的角點,獲得深度圖與彩色圖的對應關系。宋希彬針對RGB-D傳感器深度圖像的偏移問題提出了進行校正的偏移建模算法,能夠得到更加準確的配準結果。
本文的目的是實現RGB-D相機深度圖與彩色圖的配準。在對常用的二維圖像特征匹配算法進行研究的基礎上,利用SAD算子與亞像素插值算法結合得到深度圖,再根據深度圖與彩色圖的坐標系變換關系完成深度圖與彩色圖的配準。
為了實現RGB-D相機深度圖與彩色圖的配準,首先需要對相機進行標定與立體校正,然后通過雙目圖像匹配結果得到深度圖,最后使用深度相機與彩色相機的坐標系變換關系完成配準過程。
1.1.1 相機標定
相機標定的目的是獲取相機像素坐標系與物體所在的世界坐標系之間的轉換關系,根據相機模型求解內部參數和外部參數。張正友標定法采用理想針孔成像模型,利用圖形尺寸信息已知的平面標定板,計算得到每一個圖像角點在世界坐標系下的物理坐標,從而求解相機像素坐標與世界坐標系的關系。在張正友標定法中,世界坐標系的XOY平面定義在棋盤格上,則有=0。根據針孔成像模型可計算出像素坐標系與世界坐標系之間的變換關系:
其中,、為旋轉矩陣的前兩列。把內參矩陣記為,令[]為。、作為旋轉矩陣的兩列,存在單位正交的關系,即:
將=[]代入(2)中,可得:
其中、為矩陣的前兩列。由于相機內參矩陣有5個未知數,因此需要至少三張姿態(tài)不同的標定板照片才能完成標定。
真實的鏡頭并非理想的小孔成像模型,而是帶有不同程度的畸變?;冎饕◤较蚧兣c切向畸變兩種類型,由于切向畸變影響較小,通常只考慮徑向畸變。設(,)、(,)為理想的像素坐標與圖像坐標,(u,v)、(x,y)為實際測量的像素坐標與圖像坐標,、為畸變系數。則有:
通過圖像像素坐標系與圖像物理坐標系的變換公式=+/d、=+/d與u=+x/d、v=v+y/d將(4)式轉換到像素坐標,、為相機光軸與圖像平面交點的橫、縱坐標值,d、d分別為每個像素在軸和軸方向上的物理尺寸:
設拍攝到張照片,每張照片有個角點,對于每個角點,由式(5)可得到2個方程:
將矩陣系數記為,等式右端項記為,由最小二乘法得:
雙目相機標定利用標定板中同一點在左右相機中的圖像坐標,計算出左右兩相機之間的旋轉矩陣和平移矩陣。設、與R、T分別為左右相機經過單目相機標定后的外參,左右相機與空間中的一點在世界坐標系下的坐標分別為A、A、A,可得:
式(8)中消去A可得左右相機之間坐標系轉換關系:
由式(9)可得左右相機坐標系間的旋轉平移矩陣:
1.1.2 立體校正
為方便后續(xù)的立體匹配步驟,加快匹配速度,需要對匹配過程中的對應點從二維搜索降到一維搜索。立體校正的目的是對左右相機獲取的圖像進行重投影,使其落于同一豎直平面上,只有水平方向上的偏移。校正后的匹配點的搜索只需在對應的水平方向進行。本文采用Bouguet算法對雙目相機進行立體校正。
經過雙目標定后,得到了左右相機間的旋轉矩陣與平移矩陣。將旋轉矩陣分解成、r兩個矩陣,分別表示左、右相機的旋轉。為了將兩幅圖像的行像素對準,將左圖像中的極點移動到無窮遠處,使雙目相機的極線變換到水平位置。左右相機平移向量方向是左圖像極點方向:
方向須與垂直,則可表示為:
由與叉乘得到,可得到合成矩陣:
左右相機的校正矩陣為:
1.2.1 SAD圖像匹配算法
SAD(sum of absolute differences)是一種圖像的塊匹配算法。以左相機圖像的源匹配點為中心,定義一個大小為×的窗口,計算出窗口的灰度值的總和,然后逐步在右相機圖像中計算左右窗口的灰度和的差值,最后檢測到匹配點’為差值最小的區(qū)域的中心像素。SAD算法原理如圖1所示。
圖1 SAD算法原理圖
公式如下:
其中(,)為絕對誤差,(,)為左相機×窗口,(,)為右相機M×N窗口。
1.2.2 亞像素插值
圖像視差計算不能恢復出圖像中所有點的視差,且得到的視差為離散值。亞像素插值是對離散的灰度值進行插值,得到亞像素點的灰度值,使物體表面視差更加平滑。本文使用雙線性插值法進行亞像素插值計算。
如圖2所示,雙線性插值是通過待求點周圍4個已知相鄰點的值,分別進行方向與方向的兩次線性插值得到待求點(,)的值。假設已知4個點=(,)、=(,)、=(,)、=(,),進 行方 向 的 線 性插 值,得到:
圖2 雙線性插值示意圖
然后在方向進行線性插值,得到:
將式(16)、(17)、(18)結合得:
1.3.1 視差圖轉換到深度圖
左右相機校正完成后,使得極線平行,兩條光軸方向也平行,如圖3所示。設空間中一點,和是點在左右像平面上的成像點,為點的深度值,為相機焦距,X和X是兩個成像點在左右兩個像面上距離圖像左邊緣的距離,為左右相機基線距離,則視差和物體深度的關系式如下:
圖3 視差與深度轉換示意圖
令=X-X,整理可得:
1.3.2 深度圖轉換到點云圖
根據相機成像模型可得像素坐標系與世界坐標系之間的變換,其中為(,)對應的深度值:
由于世界坐標原點和相機原點是重合的,即沒有旋轉和平移,所以為單位矩陣,為0向量,式(22)可以簡化為:
由式(23)可得:
由式(23)可知,深度相機坐標系與深度圖圖像坐標系轉換關系如下:
以上變換過程等價于如下的表達:
于是得到深度相機坐標系與深度圖圖像坐標系轉換關系:
M為紅外左相機內參矩陣。
同理可得彩色相機坐標系與彩色圖圖像坐標系轉換關系:
M為彩色相機內參矩陣。
深度相機坐標系到彩色相機坐標系變換如下:
將式(27)、式(28)代入式(29),兩側同時左乘M矩陣得到:
由于Z≈Z,因此式(30)可以簡化為:
由此將式(31)展開,可得到深度圖像坐標到彩色圖像坐標轉換關系:
本實驗使用Intel RealSense D435i相機作為獲取雙目散斑圖片和彩色圖片的工具。雙目紅外相機的分辨率為1280×800,彩色相機的圖像分辨率為1920×1080。采用340 mm×260 mm標定板作為被測對象,拍攝10組圖片,計算標定板三維重建的平面平整度。實驗所用設備如圖4所示。
圖4 實驗設備
關閉相機紅外散斑發(fā)射器,多次改變12×9棋盤格位姿,分別對雙目紅外相機和彩色相機進行標定。標定圖片如圖5所示。
圖5 相機標定
使用張正友標定法計算出相機內參,如表1所示,其中f、f為相機焦距,c、c為相機主點,δ為重投影誤差,、為畸變系數。
表1 相機標定參數
深度相機中左右相機的外參標定結果為:
深度相機中左相機與彩色相機的外參標定結果為:
對雙目圖片進行立體校正預處理,得到校正后的圖片,如圖6所示。
圖6 立體校正圖
使用SAD算法與亞像素插值算法得到深度圖,如圖7(a)所示;將深度圖轉換為點云圖,如圖7(b)所示。
圖7 深度圖(a)和點云圖(b)
將圖7(a)的深度圖與圖8(a)的彩色圖進行配準,生成如圖8(b)所示的點云圖。
圖8 深度圖與彩色圖(a)配準得點云圖(b)
截取對齊后標定板平整部分的深度圖,使用RANSAC算法擬合截取部分,計算出所有點與擬合平面的平均距離。截取的標定板平面部分點云如圖9所示。由表2可知,深度圖與彩色圖配準后的平面平整度基本符合要求。
圖9 截取后的點云圖
表2 配準后的平面平整度
本文利用SAD與亞像素插值算法,根據雙目圖像特征計算出深度圖。結合深度圖與彩色圖坐標系變換關系,得到與彩色圖配準后的深度圖。實驗表明,本文的算法可較好完成深度圖與彩色圖的配準,為三維紋理重建提供了基礎。