在三維重建中,標(biāo)定是很重要的一環(huán),而在所有標(biāo)定中,單目相機(jī)標(biāo)定是最基礎(chǔ)的,對(duì)于新手而言,跑通了一個(gè)相機(jī)標(biāo)定代碼,得到了一堆參數(shù)結(jié)果,如何判斷自己的標(biāo)定的是對(duì)的呢?RMS(重投影誤差)小標(biāo)定就一定準(zhǔn)確嗎? 在這篇文章中,筆者將簡(jiǎn)單聊聊如何在標(biāo)定之前估算你要標(biāo)定的相機(jī)內(nèi)參值。以下方法僅針對(duì)普通工業(yè)相機(jī)鏡頭,魚(yú)眼相機(jī)和全景相機(jī)不考慮在內(nèi)。
首先要知道的是,相機(jī)標(biāo)定時(shí),需要優(yōu)化的參數(shù)有,相機(jī)內(nèi)參 – 其中包括 相機(jī)“焦距“”(f/dx f/dy)相機(jī)圖片中心(u0,v0), 相機(jī)畸變系數(shù)(k1 k2 k3 p1 p2)。由于參與優(yōu)化的系數(shù)較多,在有些情況下,會(huì)優(yōu)化到一個(gè)局部最優(yōu)解上,導(dǎo)致你的RMS看著挺不錯(cuò)的,甚至比較小,但是在實(shí)際使用中如去畸變的時(shí)候,發(fā)現(xiàn)圖片變得畸形;蛘咴陔p目極線矯正的時(shí)候,對(duì)應(yīng)點(diǎn)沒(méi)有到同一條直線上,這都是因?yàn)閮?yōu)化時(shí)落入了一個(gè)局部最優(yōu)解。在開(kāi)始估計(jì)參數(shù)之前,我們需要知道以下兩點(diǎn),
1 )對(duì)普通工業(yè)相機(jī)鏡頭來(lái)說(shuō),畸變系數(shù)通常不會(huì)很大;
2 )相機(jī)內(nèi)參標(biāo)定結(jié)果應(yīng)該在理論的線性系統(tǒng)附近(即不考慮畸變下的計(jì)算值)
相機(jī)圖片中心很好理解,它即指的是你圖像的中心點(diǎn),通常是相機(jī)分辨率的一半,即如果你的圖像像素大小是 800*600,那么你的圖像中心應(yīng)該是(400,300),在接下來(lái)的內(nèi)容中,筆者要重點(diǎn)介紹如何估計(jì)相機(jī)“焦距”,這個(gè)焦距的表達(dá)式是 f/dx. 代表著理想焦距/相機(jī)像元大小,是一個(gè)無(wú)單位的值(f 和 dx單位要統(tǒng)一后比值計(jì)算)。 由于f是一個(gè)理想焦距,它并不是我們拿到的工業(yè)鏡頭的焦距大小,所以不可以拿工業(yè)鏡頭焦距直接代替。 接下來(lái)筆者帶大家探究下這個(gè)理想焦距的實(shí)際意義,以及在相機(jī)透鏡成像系統(tǒng)中,如何估計(jì)這個(gè)理想焦距f的大小。
圖1
圖2
在相機(jī)標(biāo)定時(shí)我們用的是小孔成像模型,如下圖1所示,光透過(guò)小孔在成像平面形成物像,在大部分講相機(jī)標(biāo)定的書(shū)中,我們?yōu)榱耸棺鴺?biāo)系方便,會(huì)把這個(gè)模型稍稍做個(gè)變形,如圖2,把像平面和物平面放到同一側(cè)(雖然違背物理意義,但是很方便建立模型),于是圖1中的小孔就是我們通常所說(shuō)的光心位置,這個(gè)位置是一個(gè)虛擬位置,不具備實(shí)際測(cè)量的可能。小孔到像平面的距離就是我們的理想焦距f。
圖3
在實(shí)際使用時(shí),我們通常會(huì)使用如圖3所示的透鏡系統(tǒng),此時(shí),圖1中的小孔,即是透鏡的中心,我們要標(biāo)定的理想焦距f,則是像平面到透鏡中心的距離。
現(xiàn)在我們知道了f的意義,但是不可能實(shí)際去量像平面到透鏡中心的距離,那如何估計(jì)這個(gè)值呢?實(shí)際上非常簡(jiǎn)單,使用簡(jiǎn)單的初中物理知識(shí)我們就可以很好的估計(jì)了。
在透鏡系統(tǒng)中有如下公式:
其中d代表像距,D代表物距,f代表透鏡焦距。d即為我們要求得的理想焦距。
f 是我們工業(yè)鏡頭所標(biāo)示的焦距。D可以通過(guò)測(cè)量物體對(duì)焦時(shí)到鏡頭的距離測(cè)得,這樣理想焦距d就可以順利求得啦。 如果覺(jué)得用測(cè)量的方式求D不是很準(zhǔn),或者不方便測(cè)量D,也可以通過(guò)測(cè)量D/d 的值,并結(jié)合上述公式和f求D的大小。
D/d 的求法如下: 找到一個(gè)已知長(zhǎng)度的物體(標(biāo)定板即可),拍攝其在對(duì)焦時(shí)在相機(jī)圖片中的像素長(zhǎng)度(為了更精確要竟可能使物體的長(zhǎng)度和圖像邊長(zhǎng)平行),則D/d = 物體的實(shí)際長(zhǎng)度/(像素長(zhǎng)度*像元大小) 注意統(tǒng)一像元大小和實(shí)際長(zhǎng)度之間的單位。
通過(guò)以上計(jì)算,我們就可以很快的得到相機(jī)的參數(shù)估計(jì)值,有了這個(gè)值,就可以去對(duì)比標(biāo)定的結(jié)果,如果相機(jī)內(nèi)參和實(shí)際估計(jì)值的差別過(guò)大的話,即使是RMS看起來(lái)很小,也有可能出現(xiàn)較大誤差。 這種情況下,可能是標(biāo)定輸入的參數(shù),比如棋盤格的格點(diǎn)長(zhǎng)度出錯(cuò),也可能是畸變陷入了一個(gè)奇怪的局部?jī)?yōu)化點(diǎn)。