照相机模型与增强现实(相机标定)
計(jì)算機(jī)視覺:照相機(jī)模型與增強(qiáng)現(xiàn)實(shí)
- 針孔照相機(jī)模型
- 照相機(jī)標(biāo)定
- 光學(xué)標(biāo)定
- 自標(biāo)定(SFM)
- 實(shí)驗(yàn)結(jié)果
本篇文章主要講述如何通過通過照相機(jī)模型在映射中加入部分照相機(jī)產(chǎn)生圖像過程的投影特性從而 處理三維圖像與平面圖像之間的映射從而時(shí)間網(wǎng)格坐標(biāo)的標(biāo)定。篇中講述了如何確定照相機(jī)模型、圖像間的投影變換等。
針孔照相機(jī)模型
如圖所示,其中c為圖像中心點(diǎn),C為相機(jī)中心點(diǎn),x為三維坐標(biāo)點(diǎn)在二維圖像中的映射點(diǎn),X為景物的三維坐標(biāo)點(diǎn),f為兩中心點(diǎn)連線。其中x為CX直線與圖像平面的交點(diǎn)。因此我們可以得到:
其中P為相機(jī)矩陣,表達(dá)式如下。R為描述相機(jī)方向的旋轉(zhuǎn)矩陣,t是描述相機(jī)中心位置的三維平移向量,K為內(nèi)標(biāo)定矩陣用于描述照相機(jī)的投影性質(zhì)。
標(biāo)定矩陣通常可以寫成如下形式,其中f為圖像平面和照相機(jī)中心間的距離,s為傾斜參數(shù)。
照相機(jī)標(biāo)定
同步標(biāo)定內(nèi)部參數(shù)和外部參數(shù),一般包括兩種策略:
1.光學(xué)標(biāo)定: 利用已知的幾何信息(如定長(zhǎng)棋盤格)實(shí)現(xiàn)參數(shù)求解。
2.自標(biāo)定: 在靜態(tài)場(chǎng)景中利用 structure from motion估算參數(shù)。
下文中實(shí)現(xiàn)的為自標(biāo)定效果
光學(xué)標(biāo)定
首先需要制作標(biāo)定板,用于標(biāo)定空間坐標(biāo)
接著通過空間中已知坐標(biāo)的(特征)點(diǎn) (Xi,Yi,Zi),以及它們?cè)趫D像中的對(duì)應(yīng)坐標(biāo) (ui,vi),直接估算 11 個(gè)待求解的內(nèi)部和外部參數(shù)
最終得到上圖所示矩陣,可根據(jù)最小二乘法求解,得出矩陣M的值。
其優(yōu)缺點(diǎn)如下:
| 優(yōu)點(diǎn) | 缺點(diǎn) |
|---|---|
| 所有的相機(jī)參數(shù)集中在一個(gè)矩陣中,便于求解 | 無法得知具體的內(nèi)參數(shù)和外參數(shù) |
| 通過矩陣可以直接描述世界坐標(biāo)中的三維點(diǎn),到二維圖像平面中點(diǎn)的映射關(guān)系 | 求解出的未知量個(gè)數(shù)比待標(biāo)定參數(shù)更多,會(huì)引發(fā)參數(shù)不獨(dú)立/相關(guān)問題 |
| 標(biāo)定工具需要有極高的精度,包括不同平面的角度、特征點(diǎn)的物理距離等。因此制作標(biāo)定工具十分困難 |
自標(biāo)定(SFM)
對(duì)于自標(biāo)定,我們只需選擇一張標(biāo)定板,通過不同角度與位置的標(biāo)定板圖片進(jìn)行標(biāo)定。如上圖所示,其中0為相機(jī)中心,序號(hào)1-20表示不同圖像平面。
最終通過求解M矩陣得到對(duì)應(yīng)參數(shù)結(jié)果,上圖參數(shù)說明如下
| 參數(shù) | 說明 |
|---|---|
| s | 世界坐標(biāo)系到圖像坐標(biāo)系的尺度因子 |
| A | 相機(jī)內(nèi)參矩陣 |
| (u0,v0) | 像主點(diǎn)坐標(biāo) |
| α, β | 焦距與像素橫縱比的融合 |
| γ | 徑向畸變參數(shù) |
僅需要平面標(biāo)定板,拍攝若干張圖片,且標(biāo)定板中的模式十分靈活,可以是棋盤格,也可以是其他幾何結(jié)構(gòu)已知的圖形。
自標(biāo)定的總體流程如下:
1.打印一張棋盤格A4紙張(黑白間距已知),并貼在一個(gè)平板上
2.針對(duì)棋盤格拍攝若干張圖片(一般10-20張)
3.在圖片中檢測(cè)特征點(diǎn)(Harris特征)
4.利用解析解估算方法計(jì)算出5個(gè)內(nèi)部參數(shù),以及6個(gè)外部參數(shù)
5.根據(jù)極大似然估計(jì)策略,設(shè)計(jì)優(yōu)化目標(biāo)并實(shí)現(xiàn)參數(shù)的refinement
實(shí)驗(yàn)結(jié)果
棋盤格圖片數(shù)據(jù)如下,圖片大小為1920 x 1442,共12張圖片
最終得到的總誤差為0.7769873251891357
在原數(shù)據(jù)的基礎(chǔ)上,將所有圖片數(shù)據(jù)的大小按比例縮小為1000 x 751,再次運(yùn)行,得到的總誤差為0.404443173882072。圖像縮小后精度得到了提升,個(gè)人認(rèn)為這是由于圖像的大小一定程度上決定了圖像自身的精度,越大的圖片對(duì)細(xì)節(jié)有越好的展示,因此最終結(jié)果的誤差會(huì)較大與縮小后的圖片
算法在讀取圖片數(shù)據(jù)時(shí)若該圖無法識(shí)別出角點(diǎn)則不會(huì)被記錄數(shù)據(jù),因此對(duì)于一些系統(tǒng)無法識(shí)別的圖片我們需要進(jìn)行畸變矯正,如上圖。在進(jìn)行畸變矯正后圖片較之與之前出現(xiàn)扭曲但是腳點(diǎn)矯正到了同一直線,因此能夠進(jìn)行正確的角點(diǎn)識(shí)別。識(shí)別后最終得到總誤差為0.376169230258824,比無法識(shí)別該畸變圖像得到的結(jié)果更加精確。所以去畸變?cè)趯?duì)于圖像角點(diǎn)識(shí)別的過程中有極大促進(jìn)作用。
此外,對(duì)于常規(guī)標(biāo)定板中角點(diǎn)的識(shí)別。該算法能夠很精確的識(shí)別到棋盤格中的每一個(gè)交界處,并實(shí)現(xiàn)與下一行角點(diǎn)的連接,如上圖。因此在該基礎(chǔ)上實(shí)現(xiàn)的相關(guān)相機(jī)參數(shù)計(jì)算與最終的坐標(biāo)標(biāo)定也能夠?qū)⒄`差降到很小。
總結(jié)
以上是生活随笔為你收集整理的照相机模型与增强现实(相机标定)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python实现一元及多元线性回归
- 下一篇: 计算机视觉:Bag of words算法