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