1. 程式人生 > >相機標定之單目

相機標定之單目

為什麼要進行攝像機標定

如圖1所示,被測平面和像平面平行且成像模型為理想的小孔成像模型,假定焦距為f、工作距離為d,則被測物OP和它的像O’P’關係可簡單的表示為:
                                                             |OP|=|O’P’|×d/f  【1】
    但是在實際應用中並非如此,我們無法嚴格控制像平面和被測平面的位置,所用的鏡頭也不是嚴格的小孔模型。如果直接使用【1】式計算將會產生極大的誤差。

因此,為了獲取更高的測量精度,我們需要通過標定來實現座標平面的轉換以及影象的校正。


什麼是攝像機標定

在實際應用中,被測平面的不確定性以及鏡頭的畸變使我們已經無法簡單的使用【1】式計算出實際距離,但是我們可以將目前能夠獲得的資料進行轉換,使這些資料符合【1】式的使用條件。
            也就是將任意座標平面通過旋轉和平移對映到理想座標平面上

對有畸變的影象進行校正,讓它成為符合小孔成像模型的像平面。
          有了這種方法,我們只要確定轉換演算法校正演算法以及【1】式中的引數就可以實現三維空間中任意平面上尺寸與位置的測量。
           將這種確定相機成像引數(空間物體表面某點的三維幾何位置與其在影象中對應點之間的相互關係)的過程稱之為標定

 注:無論是在影象測量或者機器視覺應用中,相機引數的標定都是非常關鍵的環節,其標定結果的精度及演算法的穩定性直接影響相機工作產生結果的準確性。因此,做好相機標定是做好後續工作的前提。

攝像機單目標定

攝像機標定的方法根據攝像機的數目可分為單目標定、雙目標定以及多目標定。 其中單目攝像機標定是雙目標定的基礎,而多目攝像機的標定則是雙目攝像機的擴充套件。
            下面介紹單目標定。
           在平面測量中影響我們拍攝影象形變的因素有兩個:鏡頭

攝像機的姿態。根據這兩個因素一般將攝像機的引數分為兩組,攝像機內參攝像機外參

 1、攝像機內參

內參一般包括鏡頭的焦距f、鏡頭畸變引數k、光軸中心座標(Cx,Cy)以及像元尺寸Sx,Sy,當攝像機和鏡頭確定時,這些引數唯一確定。下面詳細介紹一下各引數的數學模型。
       1)焦距
  根據鏡頭型別不同焦距的計算可分為針孔模型和遠心模型。如圖3,假定世界座標系有任一點P(x,y),在攝像機靶面所成的像為P’(u,v),根據不同的光路模型它們之間有如下的對應關係
    a) 針孔模型

                       
        b)遠心模型
        遠心鏡頭特殊的光路設計使得像的大小與拍攝距離無關,因此表示式比針孔模型更為簡單。

                        
        2)鏡頭畸變
  受到鏡頭的製作和安裝精度的影響,攝像機所獲得影象會產生非線性失真。稱這種失真為鏡頭畸變。鏡頭畸變產生的誤差使得理想針孔模型已不再適用。因此我們需要先將所得影象進行校正,再應用理想的針孔模型。假設我們所獲取的原始影象座標(u,v)、校正後的結果(u’,v’),其畸變模型座標關係為:

                      

a)徑向畸變

徑向畸變主要由透鏡製作過程中表面曲率引起,它會使影象發生桶形畸變和枕形畸變(如圖4)。
其數學模型如下:


              如果對精度要求不是很高,可以令將上式簡化為如下表達式:

 
        b)離心畸變
  離心變數又稱偏心變數,它的誤差來源於透鏡的安裝精度,這主要是因為所有鏡片的光學中心並不能嚴格的保證在同一條直線上。這種誤差除了在引入徑向畸變同時還會引入切向畸變。由於之前已經進行了徑向畸變的校正,在此基礎上只需加入切向畸變校正即可。其數學模型如下:

   
         c)薄稜鏡畸變(一般不考慮)
         影響薄稜鏡畸變的主要因素的是透鏡以及攝像機靶面的平行度,鏡片與攝像機靶面夾角越大畸變就越嚴重。其數學表示式如下:
              
d)畸變校正
  在實際的應用中,大多數工業攝像機的廠商可以通過攝像機介面螺紋的機械精度來保證鏡頭透鏡與靶面的平行性,而且這種畸變產生的誤差較小,因此在一般的影象標定中不作考慮。至此,就是大多數情況下畸變產生的原因以及數學模型。結合【5】、【7】兩式我們可以推匯出鏡頭畸變校正模型:
             
         2. 攝像機外參
  攝像機的外參是指攝像機座標系與世界座標系的轉換引數它主要由旋轉矩陣R和平移矩陣T組成。對於任意三維座標系,都可以通過這兩個矩陣將其轉換到攝像機座標系中。
        1)旋轉矩陣R
                 
         如圖5所示,通過沿座標軸x、y、z分別旋轉α、β、γ來實現座標系的轉換。因此,旋轉矩陣R可分解為Rx(α)、Ry(β)、Rz(γ)三個矩陣相乘的形式。
         以z軸為例,假設(x0,y0)與x軸夾角為θ,且到原點距離為r,通過旋轉矩陣
   Rz(γ)座標系沿z軸旋轉γ後得到點(x1,y1),我們可得方程組:
                                x1=r·cos(θ+γ)      【11】
                                y1=r·sin(θ+γ)       【12】

         由三角函式展開得:
                               x1= r·cos(θ) cos(γ)- r·sin(θ) sin(γ)    【13】
                               y1= r·sin(θ) cos(γ)+ r·cos(θ) sin(γ)   【14】
        由(x0,y0)與x軸夾角為θ得:
                              x0=r·cos(θ)          【15】
                              y0=r·sin(θ)           【16】
       將【15】式帶入【13】式、【16】式帶入【14】式得:
                             x1=x0·cos(γ)-y0·sin(γ)     【17】
                             y1=y0·cos(γ)+x0·sin(γ)     【18】
  因此
                
       以此類推求得Rx(α)和Ry(β)將它們與Rz(γ)相乘得:


      2)平移矩陣T
               
         通過旋轉矩陣運算後,世界座標系的三個座標軸會與攝像機座標系對應的座標軸相平行。此時我們已經離我們的目標又近了一步。如圖7所示我們現在只要沿各座標軸做平移運算即可,由此得:
                          
        3)引數求解
  根據【2】、【9】、【20】、【21】這幾個數學模型,可以得知,若想確定一個攝像機與被測平面的相對位置,則需要確定包括內參、外參在內的14個引數 ,其中是5個已知的。因此,我們至少需要9個座標點,構成9個方程才可以解出剩餘的9個未知數。在通常情況下,點的分佈以覆蓋大部分視場為準,獲得的資料點越多,統計的引數就越準確。
       一般採用最小二乘法或者線性規劃等統計演算法來求解相應引數。

標定模板(標定板 Calibration Target)    

通過相機拍攝帶有固定間距圖案陣列平板、經過標定演算法的計算,可以得出相機的幾何模型,從而得到高精度的測量和重建結果。  
            而帶有固定間距圖案陣列的平板就是標定模板(標定板 Calibration Target)。