日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

相机标定实用方案

發布時間:2023/11/28 生活经验 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 相机标定实用方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相機標定實用方案

相機標定就是確定相機內參和外參的過程,其結果精度會直接影響視覺系統后續工作的準確性。

一.OPENCV方法

在opencv中提供了一組函數用于實現相機的標定,標定返回的值包括:相機內參矩陣(fx
fy xc yc)、相機外參矩陣(R t)以及畸變矩陣。

標定的步驟如下:

  1. 準備棋盤格,棋盤格圖片可以自行打印,以下使用107方格的棋盤格,交點則為96,棋盤格的大小1mm,即 gridsize=1

  2. 拍照,拍照的原則是多角度,根據理論至少要兩種角度的拍照,實際中通常會拍20張左右;

  3. 使用opencv提供的角點檢測函數findChessboardCorners找到棋盤格中的角點,并將每幅圖片的角點值存放到list中,同時將棋盤格的角點的三維坐標存放到另一個list。

  4. 使用calibrateCamera函數獲取內存矩陣、畸變矩陣、旋轉矩陣以及轉移矩陣。

5.使用undistort函數將畸變的圖像進行校正并查看校正后的圖片效果。

下面我們用另外的方法,詳細介紹流程。

二.坐標系

相機標定涉及到了四大坐標系,分別為:

像素坐標系

圖像物理坐標系

相機坐標系

世界坐標系



為了進行相機標定,必須已知世界坐標系中足夠多的三維空間點坐標,找到這些空間點在圖像中投影點的二維圖像坐標,并建立對應關系。世界坐標系中某個給定點投影到圖像坐標系中被分為兩個步驟:

機器視覺中常用的有兩種不同類型的鏡頭:普通鏡頭和遠心鏡頭。使用普通鏡頭時,世界坐標系到圖像坐標系為透視投影;使用遠心鏡頭時為平行投影。

三.相機標定方法分類

相機標定方法有:傳統相機標定法、主動視覺相機標定法、相機自標定法。

  1. Tsai兩步法是先線性求得相機參數,之后考慮畸變因素,得到初始的參數值,通過非線性優化得到最終的相機參數。Tsai兩步法速度較快,但僅考慮徑向畸變,當相機畸變嚴重時,該方法不適用。

  2. 張氏標定法使用二維方格組成的標定板進行標定,采集標定板不同位姿圖片,提取圖片中角點像素坐標,通過單應矩陣計算出相機的內外參數初始值,利用非線性最小二乘法估計畸變系數,最后使用極大似然估計法優化參數。該方法操作簡單,而且精度較高,可以滿足大部分場合。詳細原理見《從零開始學習「張氏相機標定法」(一)成像幾何模型》。

  3. 基于主動視覺的相機標定法是通過主動系統控制相機做特定運動,利用控制平臺控制相機發生特定的移動拍攝多組圖像,依據圖像信息和已知位移變化來求解相機內外參數。這種標定方法需要配備精準的控制平臺,因此成本較高。

  4. 分層逐步標定法是先對圖像的序列做射影重建,在重建的基礎上進行放射標定和歐式標定,通過非線性優化算法求得相機內外參數。由于初始參數是模糊值,優化算法收斂性不確定。

  5. 基于Kruppa的自標定法是通過二次曲線建立關于相機內參矩陣的約束方程,至少使用3對圖像來標定相機。圖像序列長度會影響標定算法的穩定性,無法保證射影空間中的無窮遠平面。

四.MATLAB相機標定應用程序

MATLAB自帶相機標定應用程序,有camera calibrator和stereo camera calibrator兩類相機標定應用程序。其操作簡單、直觀,能夠獲得相機的內、外參數以及畸變參數等。

其中,camera calibrator用于單目相機標定;stereo camera calibrator用于雙目相機標定。兩者操作方式相同,唯一區別在于stereo camera calibrator添加圖片時會彈出添加兩個相機圖片的操作框。

五.標定板準備(實驗室經費有限,只能自己制作)

平面標定板具有以下幾個優點:

  1. 易于操作;

  2. 尺寸可以制作的非常精確;

  3. 非常方便應用在背光照明應用中,只需要使用透明材料制作放置標志點的底盤即可。

使用MATLAB編程進行棋盤標定板的制作,將圖片打印后固定在一塊平板上。程序如下:

J = (checkerboard(300,3,4)>0.5); %生成黑白棋盤圖像

figure, imshow(J) %顯示黑白棋盤圖像

imwrite(J,‘plate.jpg’);%保存黑白棋盤圖像

效果如圖:(感覺有點寒酸呀,“但這不重要”,沒條件自己創造)

六.Camera Calibrator應用程序

camera
calibrator操作界面如下:

對于標定圖像數量,位姿越多,標定結果也會越精確,建議在10到20幅之間。按照上圖中的1、2、3進行相機標定操作。我們可以選擇徑向畸變系數以及是否計算切向畸變和傾斜,通過優化選項可以設置內參矩陣以及徑向畸變參數的輸出形式。

1.添加標定圖像后顯示界面如下圖:

2.相機標定后顯示界面會顯示相機與標定板之間的位置關系。

3.相機參數輸出camera calibrator應用程序相機標定參數輸出如圖所示:

高亮:MATLAB相機標定結果中的內參矩陣默認格式為,其中,、分別為u軸和v軸的有效焦距;’ 為u軸和v軸的不垂直因子,一般令s=0;(u0,v0)是光學中心。注意事項:

  1. 制作棋盤格標定板時,黑色方格與白色方格尺寸需要相同,所有方格尺寸一致;

  2. 采集標定板圖像時,應采集多幅不同位姿的標定板圖像,采集圖像數量不應太少,建議10~20幅為宜;

  3. 采集圖像時,相機的焦距不能調節,否則會改變相機的內參數,導致標定失敗;

  4. MATLAB相機標定程序能夠自動計算重投影誤差,重投影誤差越小表示相機標定的精度越高。

七.相機標定參數的準確度

相機標定過程中如果標定板放置不適當的話將會導致相機參數中某個參數或某些參數不能得到唯一值。為了得到高準確度的相機參數必須避免這種情況的發生。除了這個影響外,影響相機參數準確度的主要因素就是用于進行相機標定的圖像數量。下面顯示了用于相機標定的圖像數量對參數的影響。

從圖中可以看出相機參數的準確度隨使用圖像數量的增加而明顯增加。為什么使用相當多的標定圖像可以提高相機標定精度?這主要是因為相機參數之間存在不容忽視的相關性,這些參數只能通過多次無關測量進行求解。為了得到更準確的相機參數,我們需要這樣做:

  1. 標定板在圖像中最好能夠覆蓋整個視野(覆蓋圖像的每個角落可以使得徑向畸變系數更準確);

  2. 標定板覆蓋較大的深度范圍(將標定板繞它的x軸和y軸旋轉或者放置在不同距離的位置上)。

總結

以上是生活随笔為你收集整理的相机标定实用方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。