摘要
在許多基于攝像機(jī)的應(yīng)用中,需要通過(guò)幾何相機(jī)標(biāo)定(GCC)找到入射光線和圖像像素之間的幾何關(guān)系,即投影模型。
為了提供實(shí)用的標(biāo)定指南,本文調(diào)查和評(píng)估了現(xiàn)有的GCC工具,綜述涵蓋了這些工具中使用的攝像機(jī)模型、標(biāo)定目標(biāo)和算法,突出它們的特性以及GCC發(fā)展的趨勢(shì),評(píng)估比較了六種基于目標(biāo)的GCC工具,分別為BabelCalib、Basalt、Camodocal、Kalibr、MATLAB標(biāo)定工具和基于OpenCV的ROS標(biāo)定工具,使用了寬角和魚眼鏡頭描述的三種傳統(tǒng)投影模型的模擬和實(shí)際數(shù)據(jù)。
這些測(cè)試揭示了這些相機(jī)模型的優(yōu)缺點(diǎn),以及這些GCC工具的可重復(fù)性,根據(jù)調(diào)查和評(píng)估,還討論了GCC的未來(lái)研究方向。
主要貢獻(xiàn)
相機(jī)在從遙感、測(cè)繪、機(jī)器人技術(shù)到內(nèi)窺鏡等一系列應(yīng)用中都是不可或缺的。這些應(yīng)用通常需要了解相機(jī)中真實(shí)世界點(diǎn)和它們?cè)趫D像中的幾何關(guān)系(圖1)。為了解決這種幾何映射問(wèn)題,引入了幾何相機(jī)標(biāo)定(GCC),作為計(jì)算機(jī)視覺(jué)、物聯(lián)網(wǎng)和機(jī)器人技術(shù)的交匯點(diǎn)之一,自20世紀(jì)70年代以來(lái),GCC一直受到廣泛關(guān)注,并且至今仍然在積極研究,可能是由于各種應(yīng)用需求不斷發(fā)展的推動(dòng)。
圖1 幾何相機(jī)標(biāo)定及評(píng)估工具 根據(jù)工作原理的不同,有傳統(tǒng)相機(jī)、深度相機(jī)、事件相機(jī)、熱像相機(jī)等。
根據(jù)視場(chǎng)角(AOV),相機(jī)可以粗略地分為傳統(tǒng)相機(jī)(通?!?4°)、廣角相機(jī)(《100°)、魚眼相機(jī)和全景相機(jī)(≥ 180°),相鄰組之間存在模糊的邊界。傳統(tǒng)和廣角相機(jī)通常通過(guò)針孔模型(即透視模型)很好地表示。全景相機(jī)包括視場(chǎng)角≥ 180°的魚眼相機(jī),以及由鏡頭和鏡子(“cata”表示鏡子反射,“dioptric”表示透鏡折射)組成的反射折射相機(jī)。還有由多個(gè)相機(jī)組成的相機(jī)架,通過(guò)拼接圖像實(shí)現(xiàn)較大的視場(chǎng)角。根據(jù)所有入射光線是否經(jīng)過(guò)單個(gè)點(diǎn),相機(jī)可以分為中心相機(jī)(具有單個(gè)有效視點(diǎn),即光學(xué)中心)和非中心相機(jī)。中心相機(jī)包括傳統(tǒng)相機(jī)、視場(chǎng)角≤ 195°的魚眼相機(jī),以及通過(guò)組合針孔相機(jī)和雙曲線、拋物線或橢圓鏡子構(gòu)建的許多反射折射相機(jī)。非中心相機(jī)的實(shí)例包括使用球面鏡構(gòu)建的反射折射相機(jī)。
目前已經(jīng)提出了許多幾何相機(jī)模型,從幾十個(gè)參數(shù)的具體全局模型到數(shù)千個(gè)參數(shù)的通用局部模型不等。傳統(tǒng)的幾何相機(jī)模型是針對(duì)特定鏡頭類型量身定制的,通常由通常《100個(gè)參數(shù)的封閉形式函數(shù)表示。它們是全局模型,因?yàn)閰?shù)的變化會(huì)影響每個(gè)入射光線的投影。這些模型得到了現(xiàn)有標(biāo)定工具和運(yùn)動(dòng)結(jié)構(gòu)(SfM)軟件包的良好支持。相反,通用模型可以通過(guò)使用大量參數(shù)來(lái)建模廣泛范圍的相機(jī),每個(gè)參數(shù)確定了局部區(qū)域內(nèi)入射光線的投影,例如B樣條模型。已經(jīng)開(kāi)發(fā)了許多用于進(jìn)行GCC的工具,每個(gè)工具都具有一組獨(dú)特的功能。它們通常以專有程序的形式提供,例如MATLAB中的相機(jī)標(biāo)定器和Agisoft Metashape,或者是開(kāi)源程序,例如Kalibr。就相似性而言,現(xiàn)有工具通常支持全局相機(jī)模型和一些平面目標(biāo)的標(biāo)定。值得注意的是,許多工具都基于相同的基礎(chǔ)包,例如OpenCV,因此它們往往具有類似的限制。
總的來(lái)說(shuō),目前缺乏對(duì)現(xiàn)有GCC工具的定性概述和定量比較,以闡明選擇適當(dāng)?shù)南鄼C(jī)模型和標(biāo)定工具,為了填補(bǔ)這一空白,我們從幾個(gè)實(shí)踐角度廣泛審查了現(xiàn)有的GCC工具,并使用模擬和真實(shí)數(shù)據(jù)對(duì)幾個(gè)流行的工具進(jìn)行了基準(zhǔn)測(cè)試。為了限制范圍并迎合廣大讀者,本文重點(diǎn)關(guān)注傳統(tǒng)的近距離灰度或彩色單目相機(jī),因?yàn)槲覀冋J(rèn)為它們是受到積極研究的,并且它們的標(biāo)定方法通常可以適應(yīng)其他類型的相機(jī)。
本文的貢獻(xiàn)總結(jié)如下:首先,本綜述將GCC工具中使用的相機(jī)模型、標(biāo)定目標(biāo)和標(biāo)定算法進(jìn)行了分類,為這些方面提供了簡(jiǎn)明的參考。然后從定性上揭示了這些標(biāo)定工具的優(yōu)勢(shì)和相似之處,希望能夠避免未來(lái)的重復(fù)開(kāi)發(fā)工作。其次,通過(guò)模擬和實(shí)際數(shù)據(jù)測(cè)試,在不同視場(chǎng)角的內(nèi)部相機(jī)上對(duì)六種標(biāo)定工具進(jìn)行了評(píng)估,以展示它們的準(zhǔn)確性和可重復(fù)性。該評(píng)估清楚地顯示了三種流行的全局幾何相機(jī)模型的優(yōu)勢(shì)和劣勢(shì),并指出了哪種標(biāo)定工具適用于近距離應(yīng)用。第三,基于審查和評(píng)估,我們強(qiáng)調(diào)了GCC的未來(lái)研究方向。
內(nèi)容概述
2.1 相機(jī)標(biāo)定組件
相機(jī)標(biāo)定過(guò)程中涉及的一些關(guān)鍵概念和定義,其中包括:
· 焦距(Focal Length):被定義為相機(jī)光學(xué)中心與傳感器之間的距離,對(duì)于中心相機(jī)而言,焦距是一個(gè)重要參數(shù)。
· 主光軸/光學(xué)軸(Principal/Optical Axis):被定義為通過(guò)光學(xué)中心并垂直于傳感器芯片的線,是相機(jī)成像的中心線。
· 圖像平面(Image Plane):對(duì)于針孔相機(jī)而言,傳感器經(jīng)常被倒置并放置在光學(xué)中心的前方,形成成像平面。
· 鏡面軸(Mirror Axis):對(duì)于反射折射相機(jī),指的是鏡子的對(duì)稱軸。
· 視場(chǎng)角(Angle of View,AOV):是進(jìn)入鏡頭的光線形成的最大角度,對(duì)于相機(jī)而言,是指與傳感器曝光像素對(duì)應(yīng)的光線形成的最大角度,通常分為水平視場(chǎng)角、垂直視場(chǎng)角和對(duì)角視場(chǎng)角。
2.2 相機(jī)模型
這里描述了在近距離應(yīng)用中使用的各種相機(jī)模型,這些模型已經(jīng)在本文調(diào)查的幾何相機(jī)標(biāo)定工具中采用。用于遙感的相機(jī)模型,例如仿射相機(jī)模型 、RPC模型、檢測(cè)器方向模型。我們從中心相機(jī)的全局模型開(kāi)始,這些模型主導(dǎo)了幾何相機(jī)標(biāo)定工具,最后介紹通用模型。這些全局模型通常以(正向)投影方式定義,即給定世界點(diǎn)或射線,制定圖像點(diǎn),盡管相同的公式也可以反過(guò)來(lái)使用,即給定圖像點(diǎn)得到射線,即反向投影/反向投影/反投影,然而,對(duì)于局部模型,反向投影通常用于表達(dá)相機(jī)模型,因?yàn)檎蛲队翱赡芊浅?fù)雜。對(duì)于下面在圖3中列出的相機(jī)模型,除非兩者都是閉合的形式,我們描述正向模型或反向模型,理解到進(jìn)行反向操作通常需要迭代優(yōu)化。
圖2 相機(jī)模型 寬角相機(jī)的全局模型:通常和寬角相機(jī)的AOV 《100°,通?;兒苄。⑶液芎玫胤厢樋啄P?。
全局魚眼相機(jī)模型:魚眼相機(jī)通常具有AOV ≥ 100°,可以達(dá)到280°。它們非常常見(jiàn),但是顯示出很大的畸變,因此提出了相當(dāng)多的全局模型。最流行的可能是KB模型和FOV模型。
全局全景相機(jī)模型:全景相機(jī)的HAOV ≥ 180°,DAOV可達(dá)360°。已經(jīng)為這樣的相機(jī)開(kāi)發(fā)了幾種模型。
局部通用相機(jī)模型:前述的全局相機(jī)模型可能在各種幾何相機(jī)標(biāo)定工具中都可用,可能是因?yàn)樗鼈兒?jiǎn)單,但是它們的準(zhǔn)確性也受到限制。為了推動(dòng)準(zhǔn)確度的極限,提出了具有數(shù)千個(gè)參數(shù)的通用模型,但籠統(tǒng)地說(shuō),它們?cè)趲缀蜗鄼C(jī)標(biāo)定工具中的可用性以及下游應(yīng)用的支持方面仍然落后于全局模型。
2.3 標(biāo)定板
幾何相機(jī)標(biāo)定通常依賴于被動(dòng)或主動(dòng)的人工對(duì)象,例如遙感中的地面控制點(diǎn)或近距離標(biāo)定中的平面目標(biāo)。最近的自動(dòng)標(biāo)定方法,利用機(jī)遇性的環(huán)境特征,而基礎(chǔ)設(shè)施為基礎(chǔ)的方法則使用先前對(duì)環(huán)境的地標(biāo)地圖。由于人工目標(biāo)仍然普遍用于更好的準(zhǔn)確度控制,因此本節(jié)調(diào)查了幾何相機(jī)標(biāo)定工具支持的目標(biāo),如圖4所列。
圖3 用于幾何攝影機(jī)校準(zhǔn)的目標(biāo)類別 棋盤格:棋盤格是最常見(jiàn)的標(biāo)定目標(biāo)之一,通常由黑白交替的方塊組成。檢測(cè)棋盤格的角點(diǎn)可以通過(guò)在圖像中找到黑白方塊的交界處來(lái)完成。棋盤格的一個(gè)缺點(diǎn)是需要保證所有角點(diǎn)在圖像中完全可見(jiàn),以便準(zhǔn)確確定其坐標(biāo)。通常為了避免在180°旋轉(zhuǎn)后看起來(lái)相同,會(huì)采用奇數(shù)行偶數(shù)列或偶數(shù)行奇數(shù)列的布局。
圓形網(wǎng)格:圓形網(wǎng)格通常由圓心對(duì)稱或不對(duì)稱分布的圓組成。檢測(cè)圓形網(wǎng)格的目標(biāo)點(diǎn)可以通過(guò)圓心的幾何特征,如面積、圓形度等來(lái)實(shí)現(xiàn)。但圓形網(wǎng)格的缺點(diǎn)是要求圖像中所有的圓都必須是可見(jiàn)的,并且由于透視效應(yīng)和鏡頭畸變,檢測(cè)到的圓心可能存在偏心誤差。
Charuco板:Charuco板是將棋盤格與Aruco標(biāo)記結(jié)合起來(lái)的標(biāo)定目標(biāo)。它利用棋盤格的方便檢測(cè)與Aruco標(biāo)記的唯一性,來(lái)應(yīng)對(duì)不準(zhǔn)確的角點(diǎn)位置和遮擋的情況。
AprilGrid:AprilGrid是一種由AprilTag標(biāo)記組成的數(shù)組,標(biāo)記之間由黑色方塊連接。AprilGrid具有抗遮擋能力,并且其角點(diǎn)位置準(zhǔn)確,因?yàn)榻屈c(diǎn)被兩個(gè)黑色方塊包圍。
Deltille網(wǎng)格:Deltille網(wǎng)格是由交替顏色填充的相鄰正三角形組成的圖案。相較于棋盤格,Deltille網(wǎng)格的優(yōu)點(diǎn)是角點(diǎn)密度更高、角點(diǎn)位置更精確。但它的廣泛應(yīng)用受到了現(xiàn)有標(biāo)定工具接口調(diào)整的限制。
圖4 標(biāo)定板:(a) 8×11 棋盤格,(b) 8×11 圓形網(wǎng)格,(c) 8×11 非對(duì)稱圓形網(wǎng)格,(d) 8×11 Charuco,(e) 7×10 AprilGrid,(f) 10×11 Deltille
2.4 標(biāo)定算法
傳統(tǒng)幾何方法和基于學(xué)習(xí)的方法:傳統(tǒng)幾何方法以及基于學(xué)習(xí)的方法是幾何相機(jī)標(biāo)定算法的兩大類別。傳統(tǒng)幾何方法通常具有較高的解釋性和精度,而基于學(xué)習(xí)的方法則更加靈活和魯棒。
標(biāo)定目標(biāo)類型:根據(jù)標(biāo)定目標(biāo)的類型,幾何相機(jī)標(biāo)定算法可以分為三類:基于人工目標(biāo)、基于映射自然場(chǎng)景以及無(wú)目標(biāo)的自標(biāo)定算法。基于人工目標(biāo)的方法是最常見(jiàn)和廣泛支持的,通常包括線性初始化和迭代非線性精細(xì)化兩個(gè)階段?;谟成渥匀粓?chǎng)景的方法需要進(jìn)行準(zhǔn)確的三維重建,并提供相機(jī)的粗略內(nèi)在參數(shù)值。自標(biāo)定算法通過(guò)觀察機(jī)會(huì)性地標(biāo)記進(jìn)行標(biāo)定,包括遞歸精細(xì)化方法、僅恢復(fù)相機(jī)內(nèi)在參數(shù)的方法以及恢復(fù)結(jié)構(gòu)、運(yùn)動(dòng)和相機(jī)內(nèi)在參數(shù)的方法。
算法示例:傳統(tǒng)幾何方法的示例包括DLT方法以及迭代精細(xì)化方法?;趯W(xué)習(xí)的方法通常更加靈活和魯棒,但也可能更加復(fù)雜。自標(biāo)定算法通常利用捆綁調(diào)整,因此具有更高的準(zhǔn)確性,常用于結(jié)構(gòu)從運(yùn)動(dòng)軟件包中。
2.5 標(biāo)定工具
這一部分審查了用于幾何相機(jī)標(biāo)定(GCC)的工具,這些工具主要實(shí)現(xiàn)了使用人工目標(biāo)或無(wú)目標(biāo)捆綁調(diào)整的算法,幾個(gè)基于學(xué)習(xí)的GCC工具也被引用作為這個(gè)活躍研究領(lǐng)域的示例。
1)BabelCalib是一款單目相機(jī)標(biāo)定工具,采用反投影模型作為各種相機(jī)模型的代理,支持多種相機(jī)模型,處理異常值的方式是使用Huber損失。
2)Basalt是一個(gè)能夠進(jìn)行單目相機(jī)標(biāo)定的軟件包,支持多種相機(jī)模型,采用Levenberg-Marquardt算法進(jìn)行標(biāo)定,處理異常值的方式也是使用Huber損失。
3)calio.io是一款商業(yè)標(biāo)定工具,具備直觀的圖形用戶界面,支持多種相機(jī)模型和標(biāo)定目標(biāo),處理異常值的方式也是使用Huber損失。
4)Camodocal是一個(gè)支持單目和立體GCC的軟件包,采用Cauchy損失處理異常值,對(duì)標(biāo)定目標(biāo)相對(duì)容易擴(kuò)展。
5)Kalibr是一個(gè)流行的GCC工具,可以選擇信息豐富的圖像進(jìn)行標(biāo)定,支持多種投影和畸變模型,處理異常值的方式是移除超過(guò)一定閾值的重投影誤差的角點(diǎn)。
6)MATLAB相機(jī)標(biāo)定器支持單目和立體相機(jī)標(biāo)定,擁有易于跟隨的GUI和許多可視化功能,支持多種標(biāo)定目標(biāo),處理異常值的方式是使用Huber損失。
7)ROS相機(jī)標(biāo)定工具
· 介紹了OpenCV庫(kù)提供的相機(jī)標(biāo)定函數(shù),包括用于單目和立體相機(jī)的針孔理性徑向切向模型、魚眼相機(jī)的KB-8模型以及全向相機(jī)的Mei模型。
· 指出了OpenCV中全向模塊的功能,支持多相機(jī)設(shè)置,并可看作是對(duì)MATLAB工具的重新實(shí)現(xiàn)。
· 強(qiáng)調(diào)了OpenCV中KB-8模型的局限性,不支持非正深度點(diǎn)。
· 描述了ROS相機(jī)標(biāo)定器的特點(diǎn),是對(duì)OpenCV標(biāo)定函數(shù)的簡(jiǎn)單包裝,支持交互式和批處理模式,并提供對(duì)棋盤格、圓格和Charuco板的支持。
· 提及了基于OpenCV的其他程序,包括MRPT相機(jī)標(biāo)定器,后者擴(kuò)展了棋盤格檢測(cè)以支持多個(gè)棋盤格。
8)自標(biāo)定工具與SfM:
· 介紹了自標(biāo)定工具通?;赟fM流水線實(shí)現(xiàn),在商業(yè)軟件或開(kāi)源程序中都有代表性。
· 概述了幾個(gè)專業(yè)攝影測(cè)量軟件,如Agisoft的Metashape、PhotoModeler和Pix4D mapper,它們支持自標(biāo)定,并提供了不同的相機(jī)模型和標(biāo)定方法。
· 提及了流行的開(kāi)源SfM軟件包,如colmap和最近的SCNeRF,它們也支持相機(jī)自標(biāo)定,提供了不同的相機(jī)模型和標(biāo)定算法。
總結(jié)
鑒于不斷發(fā)展的GCC,我們從相機(jī)模型、校準(zhǔn)目標(biāo)和算法的角度對(duì)最近的GCC工具進(jìn)行了調(diào)查,概述了這些工具的優(yōu)勢(shì)和局限性。我們還評(píng)估了六種知名的校準(zhǔn)工具,包括BabelCalib、Basalt、Camodocal、Kalibr、MATLAB校準(zhǔn)器和基于OpenCV的ROS校準(zhǔn)器,以研究它們?cè)谀M和真實(shí)數(shù)據(jù)上的一致性和重復(fù)性。從回顧和實(shí)驗(yàn)中,我們總結(jié)了幾個(gè)發(fā)現(xiàn):
1)異常值處理對(duì)于基于優(yōu)化的相機(jī)校準(zhǔn)工具至關(guān)重要。這些異常值通常是檢測(cè)到的角點(diǎn)與其實(shí)際圖像位置相差幾個(gè)像素,在某種程度上模糊的圖像中經(jīng)常發(fā)生。幸運(yùn)的是,大多數(shù)GCC工具都可以處理異常值。
2)GCC工具Camodocal、Kalibr和MATLAB校準(zhǔn)器很好地支持針孔徑徑向切向模型。BabelCalib和Camodocal很好地支持KB-8模型,而TartanCalib則針對(duì)DAOV 《 180?的相機(jī)很好地支持KB-8模型。Camodocal、TartanCalib和OpenCV很好地支持Mei模型,但該模型存在參數(shù)不穩(wěn)定性和冗余性。此外,針孔徑徑向切向模型對(duì)于DAOV 》 100?的相機(jī)可能不足夠。在需要獲得全局相機(jī)模型時(shí),KB-8模型通常更受歡迎,因?yàn)樗诖驞AOV的相機(jī)上具有廣泛的支持和良好的準(zhǔn)確性。
基于這項(xiàng)研究指出了幾個(gè)未來(lái)的研究方向:
1)交互式校準(zhǔn):眾所周知,優(yōu)質(zhì)的數(shù)據(jù)和信息性的數(shù)據(jù)對(duì)于GCC至關(guān)重要。圖像模糊可能是由于快速運(yùn)動(dòng)或?qū)共蛔阋鸬?,?shù)據(jù)不足是另一個(gè)問(wèn)題。確保數(shù)據(jù)質(zhì)量和信息的一種方法是交互式校準(zhǔn),它提供了質(zhì)量檢查,選擇了優(yōu)質(zhì)數(shù)據(jù),并實(shí)時(shí)給出下一步建議,無(wú)論是基于目標(biāo)還是無(wú)目標(biāo)的校準(zhǔn)。AprilCal是一種用于基于目標(biāo)的校準(zhǔn)的工具。
2)靜態(tài)校準(zhǔn):基于目標(biāo)的校準(zhǔn)通常涉及不可重復(fù)的繁重移動(dòng),可以通過(guò)至少兩種方式來(lái)避免,即使用程序化機(jī)器人手臂進(jìn)行校準(zhǔn)和靜態(tài)校準(zhǔn)。機(jī)器人手臂校準(zhǔn)已在文獻(xiàn)中進(jìn)行了研究。靜態(tài)校準(zhǔn)通常依賴于主動(dòng)目標(biāo)。這方面的方法已經(jīng)在文獻(xiàn)中開(kāi)發(fā)出來(lái),并具有應(yīng)用特定的設(shè)置。我們認(rèn)為靜態(tài)校準(zhǔn)仍有很大的發(fā)展空間。
3)場(chǎng)景重建的標(biāo)定:實(shí)驗(yàn)室校準(zhǔn)的設(shè)置通常與原位設(shè)置不同,例如,在對(duì)焦距離(景深)、曝光、拍攝模式(快照或視頻)、光圈和感興趣對(duì)象的大小上。已經(jīng)有一些工作在減輕差異方面取得了進(jìn)展。最終的解決方案將是自校準(zhǔn)或基于先前地圖的校準(zhǔn)。這些方法依賴于支持校準(zhǔn)的重建引擎。一個(gè)基于傳統(tǒng)捆綁調(diào)整的引擎是colmap。
審核編輯:黃飛
評(píng)論
查看更多