小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

最詳細、最完整的相機標定講解

 昵稱67837330 2019-12-13


最近做項目要用到標定,因為是小白,很多東西都不懂,于是查了一堆的博客,但沒有一個博客能讓我完全能看明白整個過程,絕大多數(shù)都講的不全面,因此自己總結(jié)了一篇博客,給自己理一下思路,也能夠幫助大家。(張正友標定的詳細求解還未完全搞明白,后面再加)

參考博客:
相機標定(Camera calibration)原理、步驟
(http://blog.csdn.net/lql0716/article/details/71973318?locationNum=8&fps=1)

相機標定內(nèi)容詳解 (轉(zhuǎn)載自祥的博客
(http://blog.csdn.net/humanking7/article/details/44756073)

張正友標定介紹
(http://blog.csdn.net/heroacool/article/details/50286677)

[圖像]攝像機標定(2) 張正友標定推導(dǎo)詳解
(http://blog.csdn.net/humanking7/article/details/44756235)

MATLAB–相機標定教程
(http://blog.csdn.net/heroacool/article/details/51023921)

在圖像測量過程以及機器視覺應(yīng)用中,為確定空間物體表面某點的三維幾何位置與其在圖像中對應(yīng)點之間的相互關(guān)系,必須建立相機成像的幾何模型,這些幾何模型參數(shù)就是相機參數(shù)。在大多數(shù)條件下這些參數(shù)必須通過實驗與計算才能得到,這個求解參數(shù)(內(nèi)參、外參、畸變參數(shù))的過程就稱之為相機標定(或攝像機標定)。無論是在圖像測量或者機器視覺應(yīng)用中,相機參數(shù)的標定都是非常關(guān)鍵的環(huán)節(jié),其標定結(jié)果的精度及算法的穩(wěn)定性直接影響相機工作產(chǎn)生結(jié)果的準確性。因此,做好相機標定是做好后續(xù)工作的前提,提高標定精度是科研工作的重點所在。

畸變(distortion)是對直線投影(rectilinear projection)的一種偏移。簡單來說直線投影是場景內(nèi)的一條直線投影到圖片上也保持為一條直線?;兒唵蝸碚f就是一條直線投影到圖片上不能保持為一條直線了,這是一種光學(xué)畸變(optical aberration),可能由于攝像機鏡頭的原因。

相機的畸變和內(nèi)參是相機本身的固有特性,標定一次即可一直使用。但由于相機本身并非理想的小孔成像模型以及計算誤差,采用不同的圖片進行標定時得到的結(jié)果都有差異。一般重投影誤差很小的話,標定結(jié)果均可用。

坐標轉(zhuǎn)換基礎(chǔ)

在視覺測量中,需要進行的一個重要預(yù)備工作是定義四個坐標系的意義,即 攝像機坐標系 、 圖像物理坐標系、圖像像素坐標系世界坐標系(參考坐標系) 。

一、圖像坐標系(x,y)至像素坐標系(u,v)

1.兩坐標軸互相垂直

這里寫圖片描述

此時有

這里寫圖片描述

2.一般情況,兩軸不互相垂直

這里寫圖片描述

此時有

這里寫圖片描述

寫成矩陣形式為:

這里寫圖片描述

二、相機坐標系(Xc,Yc,Zc)至圖像坐標系(x,y)

這里寫圖片描述

(根據(jù)小孔成像原理,圖像坐標系應(yīng)在相機坐標系的另一邊,為倒立反向成像,但為方便理解和計算,故投影至同側(cè)。)

根據(jù)三角形相似性原理得:

這里寫圖片描述

三、世界坐標系(Xw,Yw,Zw)至相機坐標系(Xc,Yc,Zc)

這里寫圖片描述

###四、合并公式

這里寫圖片描述

在這里插入圖片描述其中
在這里插入圖片描述

畸變

畸變一般可以分為:徑向畸變、切向畸變
ps:畸變是相機本身的固有特性,和相機內(nèi)參相同,標定一次之后即可。

徑向畸變來自于透鏡形狀。
切向畸變來自于整個攝像機的組裝過程。

畸變還有其他類型的畸變,但是沒有徑向畸變、切向畸變顯著,所以忽略不計。

這里寫圖片描述

徑向畸變(桶形畸變和枕形畸變):
實際攝像機的透鏡總是在成像儀的邊緣產(chǎn)生顯著的畸變,這種現(xiàn)象來源于“筒形”或“魚眼”的影響。
如下圖,光線在原理透鏡中心的地方比靠近中心的地方更加彎曲。對于常用的普通透鏡來說,這種現(xiàn)象更加嚴重。筒形畸變在便宜的網(wǎng)絡(luò)攝像機中非常厲害,但在高端攝像機中不明顯,因為這些透鏡系統(tǒng)做了很多消除徑向畸變的工作。

這里寫圖片描述

對于徑向畸變,成像儀中心(光學(xué)中心)的畸變?yōu)?,隨著向邊緣移動,畸變越來越嚴重。
對于徑向畸變可以通過下面的泰勒級數(shù)展開式進行校正:
這里寫圖片描述
這里的x、y是圖像中的畸變后的位置坐標,通過校正得到真實坐標。r是該點距成像中心的距離。

切向畸變(薄透鏡畸變和離心畸變):

切向畸變是由于透鏡制造上的缺陷使得透鏡本身與圖像平面不平行而產(chǎn)生的。

這里寫圖片描述

切向畸變可以通過如下公式來矯正:

這里寫圖片描述
這里的x、y是圖像中的畸變后的位置坐標,通過校正得到真實坐標。r是該點距成像中心的距離。

opencv畸變模型

徑向畸變模型:

xc= xd (1+k1r^2 +k2r^4 +k3r^6+?)
yc= yd (1+k1
r^2 +k2r^4 +k3r^6+?)

切向畸變模型:

xc= 2p1xdyd+p2 (r^2 +2xd^2 )
yc= 2p2xdyd+p1 (r^2 +2yd^2 )

可得:

xc= xd (1+k1r^2 +k2r^4 )+2p1xdyd+p2 (r^2 +2xd^2 )
yc= yd (1+k1r^2 +k2r^4 )+2p2xdyd+p1 (r^2 +2yd^2 )

xd,yd為圖像中的點(存在畸變),xc,yc是畸變校正后的點。
由公式可得畸變有k1,k2,k3,p1,p2五個參數(shù),對于質(zhì)量比較好的相機來說,切向畸變很小,可忽略,徑向畸變系數(shù)k3也可忽略,只計算k1,k2兩個參數(shù)。張正友標定中就默認為p1,p2為0。

標定方法

1、傳統(tǒng)相機標定

最簡單的相機標定為線性標定,即不考慮相機的畸變而只考慮空間坐標轉(zhuǎn)換。
每個坐標點有X,Y兩個變量,可列兩個方程,相機內(nèi)參有5個未知數(shù),外參平移和旋轉(zhuǎn)各3個,共有11個變量,因此至少需要6個特征點來求解。

2、非線性標定

當鏡頭畸變明顯時必須考慮畸變,一般較為便宜的網(wǎng)絡(luò)攝像頭畸變特別大,而價格較貴的工業(yè)攝像頭則畸變很小,因為其中已經(jīng)嵌入了許多消除畸變的程序。這時線性模型轉(zhuǎn)化為非線性模型,需要通過非線性標定方法求解。有最速下降法,遺傳算法,高斯牛頓法和神經(jīng)網(wǎng)絡(luò)算法等。

3、張正友標定介紹

(張正友標定只考慮了徑向畸變,沒有考慮切向畸變)

由上面的坐標轉(zhuǎn)換可得:


H即為單應(yīng)性矩陣
**這里寫圖片描述**

H為3x3矩陣,并且有一個元素作為齊次坐標,則有8個未知元素,一組坐標對應(yīng)兩個方程,則至少需要四組對應(yīng)的點即可算出單應(yīng)性矩陣H。
在這里插入圖片描述
因為R旋轉(zhuǎn)矩陣為正交矩陣,存在:
在這里插入圖片描述
代入H可得求出兩組A和H的公式:
在這里插入圖片描述

矩陣A包含5個元素,需要3組H方可解出A的唯一封閉解,因此在標定時需拍攝3組以上的圖片。由A可計算出相應(yīng)的外參矩陣。在上述計算中,忽略了相機畸變的影響。對內(nèi)外參應(yīng)用最小二乘方法估計實際存在的徑向畸變的畸變系數(shù)(忽略切向畸變),最后通過極大似然法進行優(yōu)化,得到精度較高的解。

標定過程

相機標定步驟:

1、打印一張棋盤格,把它貼在一個平面上,作為標定物。
2、通過調(diào)整標定物或攝像機的方向,為標定物拍攝一些不同方向的照片。
3、從照片中提取棋盤格角點。
4、估算理想無畸變的情況下,五個內(nèi)參和六個外參。
5、應(yīng)用最小二乘法估算實際存在徑向畸變下的畸變系數(shù)。
6、極大似然法,優(yōu)化估計,提升估計精度。

Matlab工具箱標定:

1、應(yīng)用程序中找到Camera Calibration

這里寫圖片描述

2、添加標定板拍攝圖片(按Ctrl可一次添加多張)

這里寫圖片描述

3、輸入棋盤格每格的尺寸大小

這里寫圖片描述

4、顯示已檢測出的棋盤格,點擊Calibration,開始標定。

這里寫圖片描述

5、得到標定結(jié)果(平均誤差小于0.5即可認為結(jié)果可靠,這個地方我還不是很清楚)

這里寫圖片描述

6、可查看標定結(jié)果和程序

這里寫圖片描述

這里寫圖片描述

這里寫圖片描述

opencv標定

1、循環(huán)讀取圖片
2、使用findChessboardCorners函數(shù)檢測角點(需提前輸入角點數(shù))。
棋盤格角點檢測圖
3、使用find4QuadCornerSubpix函數(shù)對角點進行亞像素精確化
4、可用drawChessboardCorners將角點顯示。
5、根據(jù)角點數(shù)和尺寸創(chuàng)建一個理想的棋盤格(用point向量存儲所有理論上的角點坐標)。
6、通過calibrateCamera函數(shù)由理想坐標和實際圖像坐標進行標定,可得到標定結(jié)果。
7、由projectPoints函數(shù)計算反向投影誤差。
在這里插入圖片描述

標定結(jié)果:

matlab標定的內(nèi)參經(jīng)過轉(zhuǎn)置與VS標定的內(nèi)參基本一致。
每一幅圖像都有一個外參矩陣,它的作用是:通過將棋盤格上坐標系上的角點坐標(x,y,0,1)(計算過程中設(shè)定參考坐標系在棋盤格上左上方角點,Z軸垂直棋盤格平面,因此z為0,1表示齊次坐標)左乘外參矩陣再左乘內(nèi)參矩陣可以得到該外參矩陣對應(yīng)圖像中的相應(yīng)角點坐標。VS的標定結(jié)果經(jīng)過代入點進行上述計算得到的坐標與圖像基本一致,但matlab的結(jié)果不同直接代入并不相同。原因在于兩種方法標定的結(jié)果表示形式不同,兩種方法結(jié)果中外參矩陣的平移向量相同,但旋轉(zhuǎn)矩陣結(jié)果不一致,估計是內(nèi)部實現(xiàn)不同。ps:平時事情比較多,更新比較慢。

ps:如上圖opencv標定結(jié)果中內(nèi)參矩陣里的2168和2174并不是焦距,而是焦距/每個像素大小,否則數(shù)量級不會這么大,焦距一般只有幾毫米或幾十毫米。剛看到國內(nèi)的碩士論文里有人寫錯了。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多