給網(wǎng)站怎么做tag標(biāo)簽他達(dá)拉非片多少錢一盒
相機(jī)標(biāo)定是計(jì)算機(jī)視覺和機(jī)器視覺領(lǐng)域中的一項(xiàng)基本技術(shù),它的主要目的是通過獲取相機(jī)的內(nèi)部參數(shù)(內(nèi)參)和外部參數(shù)(外參),以及鏡頭畸變參數(shù),建立起現(xiàn)實(shí)世界中的點(diǎn)與相機(jī)成像平面上對應(yīng)像素點(diǎn)之間準(zhǔn)確的位置關(guān)系。
基本原理
相機(jī)標(biāo)定的基本原理是通過一系列的數(shù)學(xué)變換和幾何模型,將現(xiàn)實(shí)世界中的三維坐標(biāo)點(diǎn)(世界坐標(biāo)系)轉(zhuǎn)換為相機(jī)成像平面上的二維坐標(biāo)點(diǎn)(圖像坐標(biāo)系)。
坐標(biāo)系轉(zhuǎn)換
- 世界坐標(biāo)系:現(xiàn)實(shí)世界中的點(diǎn)用三維坐標(biāo)表示。
- 相機(jī)坐標(biāo)系:以相機(jī)光心為原點(diǎn)的三維坐標(biāo)系。
- 成像平面坐標(biāo)系(圖像坐標(biāo)系):在相機(jī)坐標(biāo)系中,通過成像平面上的點(diǎn)來表示圖像中的點(diǎn)。
- 像素坐標(biāo)系:在成像平面坐標(biāo)系的基礎(chǔ)上,進(jìn)一步考慮像素的尺寸,以像素為單位。
數(shù)學(xué)模型
相機(jī)標(biāo)定的數(shù)學(xué)模型通?;谛】壮上衲P汀T撃P图僭O(shè)光線是直線,且相機(jī)內(nèi)沒有畸變。
一個典型的相機(jī)標(biāo)定過程包括以下步驟:
- 建立幾何關(guān)系:使用一個已知尺寸的標(biāo)定板(如棋盤格)放置在相機(jī)前不同的位置和角度,獲取多個視角的圖像。
- 特征提取:從每個圖像中提取出標(biāo)定板的角點(diǎn),這些角點(diǎn)在標(biāo)定板上的位置是已知的(世界坐標(biāo)系)。
- 坐標(biāo)轉(zhuǎn)換:利用相機(jī)的內(nèi)參(焦距、主點(diǎn)等)和外參(相機(jī)相對于標(biāo)定板的位置和方向),以及畸變參數(shù),將世界坐標(biāo)系中的點(diǎn)轉(zhuǎn)換為像素坐標(biāo)系中的點(diǎn)。
- 參數(shù)估計(jì):通過最小化重投影誤差(實(shí)際圖像點(diǎn)與通過模型計(jì)算得到的圖像點(diǎn)之間的差異),使用優(yōu)化算法(如最小二乘法)來求解相機(jī)參數(shù)。
相機(jī)參數(shù)
- 內(nèi)參:焦距(f)、主點(diǎn)(c_x, c_y)、成像平面與相機(jī)坐標(biāo)系之間的比例因子(s)。
- 外參:描述相機(jī)在世界坐標(biāo)系中的位置和方向,由旋轉(zhuǎn)矩陣(R)和平移向量(t)組成。
- 畸變參數(shù):由于鏡頭制造和安裝的原因,實(shí)際成像與理想成像存在偏差,這包括徑向畸變(k_1, k_2, k_3)和切向畸變(p_1, p_2)。
標(biāo)定的目的
- 畸變校正:通過校正鏡頭畸變,生成更接近真實(shí)世界的圖像。
- 三維重建:在已知相機(jī)參數(shù)的情況下,可以從多個圖像中重構(gòu)出物體的三維結(jié)構(gòu)。
步驟
1. 準(zhǔn)備標(biāo)定板
- 標(biāo)定板:通常使用具有明顯特征的圖案,如黑白相間的棋盤格或圓點(diǎn)圖案。
- 尺寸:標(biāo)定板的實(shí)際尺寸需要已知,以便于后續(xù)轉(zhuǎn)換計(jì)算。
2. 拍攝標(biāo)定圖像
- 使用相機(jī)拍攝多張標(biāo)定板在不同角度和位置的照片。確保標(biāo)定板在每張照片中至少有一部分是可見的。
3. 特征提取
- 從每個圖像中提取標(biāo)定板的特征點(diǎn)(如棋盤格的角點(diǎn))。
4. 建立世界坐標(biāo)系與圖像坐標(biāo)系的關(guān)系
- 世界坐標(biāo)系:假設(shè)標(biāo)定板平面為世界坐標(biāo)系的XOY平面,標(biāo)定板上的點(diǎn)可以精確測量。
舉例
假設(shè)我們有一個10x7的棋盤格,每個格子的大小是1cm x 1cm。
- 世界坐標(biāo)系:以棋盤格的左上角為原點(diǎn)(0,0,0),每個格子的角點(diǎn)可以按照厘米給出坐標(biāo)。
5. 相機(jī)參數(shù)初始化
- 首先需要估計(jì)相機(jī)參數(shù)的初始值,這可以通過一些基本假設(shè)來完成,例如假設(shè)相機(jī)的焦距、主點(diǎn)位于圖像中心等。
6. 參數(shù)優(yōu)化
- 使用最小化重投影誤差的方法(如張氏標(biāo)定法、Levenberg-Marquardt算法等)來優(yōu)化相機(jī)參數(shù)。
- 重投影誤差是指實(shí)際觀察到的圖像點(diǎn)與通過當(dāng)前相機(jī)參數(shù)計(jì)算得到的圖像點(diǎn)之間的差異。
7. 畸變校正
- 一旦獲得了相機(jī)的內(nèi)參和畸變參數(shù),就可以對圖像進(jìn)行畸變校正。
舉例
- 假設(shè)相機(jī)由于鏡頭原因產(chǎn)生了徑向畸變,我們可以通過畸變參數(shù)來校正圖像,使得圖像中的直線看起來更加直線。
張氏標(biāo)定法
張氏標(biāo)定法(Zhang's Method)是由張正友博士在1998年提出的一種高效且實(shí)用的相機(jī)標(biāo)定方法。該方法使用一個平面棋盤格作為標(biāo)定圖案,通過從不同角度拍攝多張圖像來標(biāo)定相機(jī)的內(nèi)參和外參。以下是張氏標(biāo)定法的基本步驟:
-
準(zhǔn)備標(biāo)定板:使用一個平面棋盤格作為標(biāo)定圖案,棋盤格上的角點(diǎn)坐標(biāo)是已知的。
-
拍攝標(biāo)定圖像:從不同角度和位置拍攝多張標(biāo)定板的圖像。確保標(biāo)定板在每張圖像中至少有一部分是可見的。
-
提取角點(diǎn)坐標(biāo):從每個圖像中提取標(biāo)定板的角點(diǎn)坐標(biāo)。這些坐標(biāo)是圖像坐標(biāo)。
-
建立世界坐標(biāo)系與圖像坐標(biāo)系的關(guān)系:假設(shè)標(biāo)定板平面為世界坐標(biāo)系的XOY平面,標(biāo)定板上的點(diǎn)可以精確測量。因此,可以建立標(biāo)定板上的點(diǎn)在世界坐標(biāo)系和圖像坐標(biāo)系之間的對應(yīng)關(guān)系。
-
初始化相機(jī)參數(shù):首先估計(jì)相機(jī)的內(nèi)參(焦距、主點(diǎn)等)和外參(相機(jī)在世界坐標(biāo)系中的位置和方向)的初始值。
-
優(yōu)化相機(jī)參數(shù):使用優(yōu)化算法(如Levenberg-Marquardt算法)最小化重投影誤差,即實(shí)際觀測到的圖像點(diǎn)與通過當(dāng)前相機(jī)參數(shù)計(jì)算得到的圖像點(diǎn)之間的差異。通過多次迭代優(yōu)化,不斷調(diào)整相機(jī)參數(shù),直到重投影誤差最小。
-
畸變校正:一旦獲得了相機(jī)的內(nèi)參和畸變參數(shù),就可以對圖像進(jìn)行畸變校正。
張氏標(biāo)定法具有以下優(yōu)點(diǎn):
- 高效:只需使用一個平面棋盤格作為標(biāo)定圖案,拍攝多張圖像即可。
- 實(shí)用:不需要精確知道相機(jī)與標(biāo)定板之間的位姿關(guān)系,只需從不同角度拍攝圖像即可。
- 精度高:通過優(yōu)化算法可以精確估計(jì)相機(jī)的內(nèi)參和畸變參數(shù)。
- 魯棒性:對于圖像質(zhì)量、光照條件等變化具有較強(qiáng)的魯棒性。
因此,張氏標(biāo)定法被廣泛應(yīng)用于相機(jī)標(biāo)定領(lǐng)域,成為計(jì)算機(jī)視覺和機(jī)器人導(dǎo)航等領(lǐng)域的重要技術(shù)。
具體步驟詳述
a. 特征提取
- 使用OpenCV等計(jì)算機(jī)視覺庫,可以檢測出棋盤格的角點(diǎn)。
- 例如,使用OpenCV的
findChessboardCorners()
函數(shù)。
b. 構(gòu)建映射關(guān)系
- 對于每一張標(biāo)定圖像,提取出的角點(diǎn)在世界坐標(biāo)系中的位置是已知的。
- 使用相機(jī)內(nèi)參和外參將這些點(diǎn)映射到圖像坐標(biāo)系。
c. 參數(shù)優(yōu)化
- 使用優(yōu)化算法(如OpenCV中的
calibrateCamera()
函數(shù))來計(jì)算相機(jī)參數(shù)。 - 這個過程會最小化所有標(biāo)定圖像上的重投影誤差。
d. 畸變校正
- 使用
undistort()
函數(shù)和計(jì)算出的內(nèi)參、畸變參數(shù)來校正圖像。
通過以上步驟,我們可以獲得一個準(zhǔn)確的相機(jī)模型,這個模型可以用于后續(xù)的視覺任務(wù),如三維重建、機(jī)器人導(dǎo)航等。相機(jī)標(biāo)定是一個精確且系統(tǒng)的過程,它要求在標(biāo)定過程中盡可能減少誤差,以確保標(biāo)定結(jié)果的準(zhǔn)確性。
為什么至少兩張圖才能測量內(nèi)參?
相機(jī)內(nèi)參的測量需要至少兩張圖的原因在于,單個視角的圖像無法提供足夠的信息來唯一確定相機(jī)的內(nèi)參。以下是詳細(xì)解釋:
-
單一視角的局限性:單張圖像只能提供一個視角下的信息,無法提供關(guān)于相機(jī)內(nèi)參的完整信息。例如,無法確定焦距、主點(diǎn)位置等參數(shù)。
-
缺乏深度信息:單張圖像無法提供深度信息,因?yàn)槿狈ζ渌暯堑谋容^。這使得無法準(zhǔn)確判斷圖像中點(diǎn)的真實(shí)位置和大小。
-
幾何約束不足:為了準(zhǔn)確估計(jì)內(nèi)參,需要多個視角下的圖像點(diǎn)來建立幾何約束。這些約束有助于確定相機(jī)內(nèi)參,如焦距和主點(diǎn)位置。
-
重投影誤差最小化:內(nèi)參的估計(jì)通常涉及最小化重投影誤差,即實(shí)際觀測到的圖像點(diǎn)與通過內(nèi)參計(jì)算得到的理論圖像點(diǎn)之間的差異。這需要多個視角下的圖像點(diǎn)來提供足夠的數(shù)據(jù)點(diǎn)。
-
非線性優(yōu)化:內(nèi)參的估計(jì)通常涉及非線性優(yōu)化過程,這個過程需要多個數(shù)據(jù)點(diǎn)來穩(wěn)定和收斂到全局最小值。
-
畸變參數(shù)估計(jì):畸變參數(shù)的估計(jì)也需要多個視角,因?yàn)榛儠S著圖像中的位置變化而變化。
因此,為了準(zhǔn)確估計(jì)相機(jī)的內(nèi)參,通常需要至少兩張圖像,從不同視角捕捉同一標(biāo)定板。這些圖像提供了多個視角下的信息,有助于建立幾何約束,并最小化重投影誤差,從而估計(jì)出相機(jī)的內(nèi)參。
為什么一般建議拍很多張來進(jìn)行標(biāo)定?
在相機(jī)內(nèi)參標(biāo)定中,一般建議拍攝多張標(biāo)定板圖像,原因如下:
-
提高準(zhǔn)確性:更多的圖像意味著更多的數(shù)據(jù)點(diǎn),這有助于提高內(nèi)參估計(jì)的準(zhǔn)確性。每個圖像提供了獨(dú)特的視角,有助于更好地約束內(nèi)參的估計(jì)。
-
減少噪聲影響:單張圖像可能受到噪聲、光照變化等因素的影響。通過拍攝多張圖像,可以從多個視角觀察標(biāo)定板,從而平均這些隨機(jī)誤差,提高標(biāo)定結(jié)果的穩(wěn)定性。
-
增加覆蓋范圍:多張圖像可以提供更全面的覆蓋范圍,包括標(biāo)定板的不同部分和不同方向。這有助于捕捉相機(jī)的內(nèi)參在不同條件下的表現(xiàn)。
-
改善優(yōu)化過程:在最小化重投影誤差的優(yōu)化過程中,更多的數(shù)據(jù)點(diǎn)有助于算法更好地收斂到全局最優(yōu)解,并減少陷入局部最優(yōu)解的風(fēng)險(xiǎn)。
-
畸變估計(jì):畸變參數(shù)的估計(jì)尤其需要多張圖像,因?yàn)榛儠S著圖像中的位置變化而變化。多張圖像可以提供更多關(guān)于畸變的分布信息。
-
驗(yàn)證和交叉檢驗(yàn):多張圖像可以用來驗(yàn)證和交叉檢驗(yàn)標(biāo)定結(jié)果。通過比較不同圖像中的標(biāo)定板點(diǎn),可以確保內(nèi)參估計(jì)的一致性和準(zhǔn)確性。
-
魯棒性:在實(shí)際應(yīng)用中,相機(jī)可能會遇到各種不同的場景和光照條件。拍攝多張圖像有助于提高標(biāo)定結(jié)果的魯棒性,使其在各種條件下都能保持準(zhǔn)確性。
因此,為了獲得更準(zhǔn)確、更穩(wěn)定的相機(jī)內(nèi)參估計(jì),通常建議拍攝多張標(biāo)定板圖像,最好涵蓋不同的視角、位置和光照條件。這樣可以確保標(biāo)定結(jié)果在實(shí)際應(yīng)用中的有效性和可
從棋盤格--》像素坐標(biāo),需要左乘相機(jī)外參和內(nèi)參。
單應(yīng)性(Homography)變換??梢院唵蔚睦斫鉃樗脕砻枋鑫矬w在世界坐標(biāo)系和像素坐標(biāo)系之間的位置映射關(guān)系。對應(yīng)的變換矩陣稱為單應(yīng)性矩陣。
單應(yīng)矩陣=相機(jī)內(nèi)參*外參
假設(shè)兩張圖像中的對應(yīng)點(diǎn)對齊次坐標(biāo)為(x',y',1)和(x,y,1),單應(yīng)矩陣H定義為:
由于單應(yīng)矩陣H包含了||H||=1約束,因此根據(jù)線性方程組,8自由度的H我們至少需要4對對應(yīng)的點(diǎn)才能計(jì)算出單應(yīng)矩陣。?這也回答了前面圖像校正中提到的為何至少需要4個點(diǎn)對的根本原因。
但是,以上只是理論推導(dǎo),在真實(shí)的應(yīng)用場景中,我們計(jì)算的點(diǎn)對中都會包含噪聲。比如點(diǎn)的位置偏差幾個像素,甚至出現(xiàn)特征點(diǎn)對誤匹配的現(xiàn)象,如果只使用4個點(diǎn)對來計(jì)算單應(yīng)矩陣,那會出現(xiàn)很大的誤差。因此,為了使得計(jì)算更精確,一般都會使用遠(yuǎn)大于4個點(diǎn)對來計(jì)算單應(yīng)矩陣。另外上述方程組采用直接線性解法通常很難得到最優(yōu)解,所以實(shí)際使用中一般會用其他優(yōu)化方法,如奇異值分解、Levenberg-Marquarat(LM)算法等進(jìn)行求解。
因?yàn)槠灞P標(biāo)定圖紙中所有角點(diǎn)的空間坐標(biāo)是已知的,這些角點(diǎn)對應(yīng)在拍攝的標(biāo)定圖片中的角點(diǎn)的像素坐標(biāo)也是已知的,如果我們得到這樣的N>=4個匹配點(diǎn)對(越多計(jì)算結(jié)果越魯棒),就可以根據(jù)LM等優(yōu)化方法得到其單應(yīng)矩陣H。
本質(zhì)上:已經(jīng)知道多組2D-3D對應(yīng)點(diǎn)的關(guān)系,計(jì)算單應(yīng)矩陣H解從而獲取相機(jī)內(nèi)參K,通過最小化重投影誤差來獲取相機(jī)最佳內(nèi)參。當(dāng)最后迭代出一個內(nèi)參K后,不同的2D-3D對應(yīng)點(diǎn)的重投影誤差是不一樣的,去掉大的,保留小的,然后繼續(xù)拍照,重復(fù)循環(huán)。
參考:
張正友標(biāo)定法-完整學(xué)習(xí)筆記-從原理到實(shí)戰(zhàn) - 知乎 (zhihu.com)