照相機標定

目錄

一 、相機標定介紹

1.1計算單應性矩陣H

1.2計算內參數矩陣

1.3計算外參數矩陣

二、實驗過程

2.1實驗步驟

2.2實現

2.3實驗結果

三、實驗總結


一 、相機標定介紹

相機標定是從三維點轉換到二維點的過程,其目的是計算出該照相機的內、外參數,以及畸變參數。標定照相機的標準方法是,拍攝多幅平面棋盤模式的圖像,然後進行處理計算。

基本參數設定
s:世界座標系到圖像座標系的尺度因子
(u0,v0):像主點座標
α, β:焦距與像素橫縱比的融合
γ:徑向畸變參數
2D 圖像點:m = \begin{bmatrix} u &v &1 \end{bmatrix}^{T}
3D 空間點:X = \begin{bmatrix} X &Y &Z &1 \end{bmatrix}^{T}

1.1計算單應性矩陣H

設三維世界座標的點爲X = [X,Y,Z,1]^{T},二維相機平面像素座標爲m = [u,v,1]^{T},所以標定用的棋盤格平面到圖像平面的單應性關係爲:
s_{0}m = K[R,T]X

其中s爲尺度因子,K爲攝像機內參數,R爲旋轉矩陣,T爲平移向量。令
K = \begin{bmatrix} \alpha &\gamma &u_{0} \\ 0&\beta &v_{0} \\ 0& 0 &1 \end{bmatrix}

注意,s對於齊次座標來說,不會改變齊次座標值。張氏標定法中,將世界座標系在棋盤格平面上,令棋盤格平面爲Z=0的平面。則可得
s\begin{bmatrix} u\\ v\\ 1 \end{bmatrix} = K\begin{bmatrix} r_{1} &r_{2} &r_{3} & t \end{bmatrix}\begin{bmatrix} X\\ Y\\ 0\\ 1 \end{bmatrix} = K\begin{bmatrix} r_{1} &r_{2} &t \end{bmatrix}\begin{bmatrix} X\\ Y\\ 1 \end{bmatrix}

我們把K[r1, r2, t]叫做單應性矩陣H,即
s\begin{bmatrix} u\\ v\\ 1 \end{bmatrix} = H\begin{bmatrix} X\\ Y\\ 1 \end{bmatrix}

H = \begin{bmatrix} h_{1} &h_{2} & h_{3} \end{bmatrix} = \lambda K\begin{bmatrix} r_{1} &r_{2} &t \end{bmatrix}

      H是一個齊次矩陣,所以有8個未知數,至少需要8個方程,每對對應點能提供兩個方程,所以至少需要四個對應點,就可以算出世界平面到圖像平面的單應性矩陣H。

1.2計算內參數矩陣

由上面式子可得

r1和r2正交,可得

代入可得

1.3計算外參數矩陣

外部參數可通過Homography求解,由 H = [h1 h2 h3] = λA[r1 r2 t],可推出

在這裏插入圖片描述

一般而言,求解出的R = [r1 r2 r3] 不會滿足正交與歸一的標準,在實際操作中,R 可以通過SVD分解實現規範化。給定 n 張棋盤格圖像,每張圖像有 m 個角點,最小化下述公式等同於極大似然估計:
在這裏插入圖片描述

二、實驗過程

2.1實驗步驟

  • 打印一張棋盤格A4紙張(黑白間距已知),並貼在一個平板上
  • 針對棋盤格拍攝若干張圖片(一般10-20張)
  • 在圖片中檢測特徵點(Harris特徵)
  • 利用解析解估算方法計算出5個內部參數,以及6個外部參數
  • 根據極大似然估計策略,設計優化目標並實現參數的refinement

實驗沒有打印出照片,採用製作棋盤進行拍攝的方法,下面拍攝的照片有18張,棋盤每個小方格的邊長爲3cm,拍攝手機:華爲8x。

2.2實現

實際應用中,常使用MATLAB標定工具箱進行相機標定 Camera Calibration Toolbox for Matlab,只需導入拍攝的棋盤格照片,輸入一些參數,然後對每張照片選擇棋盤區域,就可以自動完成整個標定過程,並得到可視化的標定結果。

  • 打開matlab,在應用裏找到“Camera Calibrator”並打開
  • 在新窗口中選擇添加圖片“Add Images”
  • 添加圖片之後,設置棋盤格的實際大小(這裏爲30mm)
  • 點擊“Calibrate”開始計算

2.3實驗結果

角點檢測:

內參矩陣:

平均誤差0.07:

外參可視化,以棋盤格爲中心(左圖)和以相機爲中心(右圖):

     

 

opencv計算的內參矩陣:

三、實驗總結

(1)相比較Matlab標定工具箱進行標定的結果和代碼實現的標定,發現兩者的內參基本相同。

(2)在添加圖片的時候,可能有圖片拍攝得不是很好,18張圖片最後標定的只有17張。在拍攝照片的時候可以儘量的拍好清楚一些,角度不要過大。

參考:

標定介紹:https://blog.csdn.net/weixin_43361953/article/details/89291696

https://blog.csdn.net/hitzijiyingcai/article/details/82715921

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章