論文主要思路
廣角相機以小、輕、經濟高效的外形提供豐富的信息,是移動機器人的獨選。內部和外部的精確標定是使用廣角鏡頭邊緣進行深度感知和里程測量的關鍵先決條件。使用當前最先進的技術標定廣角鏡頭會產生較差的結果,這是由于邊緣處的極度失真,因為大多數算法假設鏡頭的低到中等失真(更接近針孔投影)。
在這項工作中,作者提出了精確廣角標定的方法。論文的pipelines生成一個中間模型,并利用它迭代改進特征檢測,最終改進相機參數。作者測試了三種利用中間相機模型的關鍵方法:(1)將圖像分解為虛擬針孔相機,(2)將目標重新投影到圖像幀中,以及(3)自適應亞像素細化。將自適應子像素細化和特征重投影相結合,可將重投影誤差顯著提高26.59%,幫助檢測到最多42.01%的特征,并提高密集深度映射下游任務的性能。
最后,TartanCalib是開源的,并在一個易于使用的標定工具箱中實現。作者還提供了一個translation 層和其它最先進的工作,允許使用數千個參數回歸通用模型或使用更穩健的求解器。為此,TartanCalib是廣角標定的首選工具!
帶有廣角鏡頭的攝像機以緊湊的外形放大了移動機器人的視野(FOV),由于較大的視野帶來更多的視覺特征,因此該功能為關鍵任務(如視覺里程計和深度mapping)提供了許多好處。然而,為了充分利用具有高失真水平的圖像區域,必須仔細標定。通常,通過向相機顯示已知的標定目標來獲得標定參數,然后將其用于估計相機模型的內參和多相機系統的外參。與普通鏡頭不同,廣角鏡頭由于圖像的高度失真,會帶來一些特殊挑戰:
(1) 由于極端的透鏡畸變,魯棒且準確地檢測標定目標的視覺特征是具有挑戰性的;
(2) 可用的相機模型可能不太適合廣角鏡頭,先前的工作主要集中在獲得更合適的相機模型[1]、[2]、[3]、[4],或找到更好的程序來擬合相機模型[5]、[6]、[7]、[8]。
因此,大多數公開可用的工具僅在廣角透鏡的中間區域提供可接受的標定結果,其中畸變適中,使大多數高度畸變的邊界區域無法使用。為了使更多的圖像區域可用并有效地探索廣角鏡頭邊界附近嵌入的視覺信息,我們需要更好的標定,以提供改進的內部和外部參數估計。
主要創新點
這里,論文專注于高失真區域中的精確和魯棒目標檢測,如圖1所示,現有技術的目標標定pipelines[10]、[11]、[1]在高失真的情況下出現故障。這些標定pipelines的兩個關鍵程序,目標檢測和特征細化,依賴于低到中等失真的假設或接近針孔相機的相機投影。
這些假設在廣角鏡頭的情況下被違反,尤其是在圖像邊界附近。結果是,許多特征要么沒有被檢測到,要么沒有以準確的方式被檢測到。對于那些稀疏檢測到的邊界特征,由于特征細化方法在高失真區域的性能不佳,它們的像素位置往往不準確。
上述問題惡化了估計的相機模型的質量,并限制了廣角鏡頭的邊界區域的可用性。在這項工作中,作者提出了一個迭代標定pipelines(圖2),它由三個核心元素組成:
(1)原始圖像的不失真;
(2)使用中間相機模型將目標重新投影到圖像幀中;
(3)基于重新投影的目標尺寸的自適應子像素細化;
對于本文的方法,作者開發了兩種新的亞像素特征細化方法,以促進在高度失真區域中的精確目標檢測,從而在廣角鏡頭的邊界區域中實現更好的整體標定。貢獻包括:
1)一種新的廣角鏡頭標定方法,使用迭代目標重投影和自適應亞像素細化;
2)使用傳統的質量指標(如再投影誤差)以及與移動機器人相關的一些下游任務,展示了pipelines的優勢;
3)將論文的pipelines展示為一個開源易用的軟件包,稱之為“TartanCalib”。
使用論文的方法,發現了高達42.01%的更多特征,并降低了高達26.59%的總體再投影誤差。整個pipelines是開源的,可以很容易地集成到Kalibr中!
領域背景
Camera Models
典型的標定程序需要為鏡頭選擇參數化或通用相機模型,并在標定過程中估計模型參數。有許多模型是專門為廣角鏡頭設計的,因為它們的投影與低失真相機有很大不同。一些更常見的模型是雙球體模型[2]、Kannala Brandt模型[4]和視場模型[3]。參數化模型通常只有幾個自由度,與一般模型相比,它們的參數更容易估計,但在精度上提供了折衷。
通用模型有更多的參數,旨在更準確地表示透鏡幾何結構,已經表明,這些模型具有顯著更低的再投影誤差[1]??梢詤^分非中心通用模型和通用模型。中心通用模型[12]、[13]假設所有觀測線都在投影中心相交,而非中心通用模型則不作此假設[14]、[15]。
通常,非中心通用模型表現更好,但部署起來可能更復雜(例如,在不知道像素深度的情況下,不可能對針孔圖像進行失真)。論文的工具箱TartanCalib支持參數化和通用相機模型,以實現最佳標定。
Calibration Toolboxes
由于幾何相機標定是許多機器視覺應用的重要先決條件,因此開發了許多標定工具箱([8], [16], [17])。著名的計算機視覺軟件包OpenCV[18]有自己的廣角鏡頭標定支持,并支持棋盤目標。OcamCalib[8]是另一個眾所周知的工具箱,專門使用(精度較低的[10],[19])棋盤靶進行標定。
最近,BabelCalib[5]被提出,其魯棒優化策略是關鍵優勢。然而,最常用的標定工具箱是Kalibr[9],它易于使用,可以檢索具有多種相機模型和目標的多個相機的內參和外參。在這項工作中,TartanCalib作為一個易于使用的工具箱集成到Kalibr[9]中。除了Kalibr,TartanCalib還支持使用BabelCalib作為求解器,以及通常更精確的通用模型[1]。
模式設計與特征檢測
目標檢測是標定pipelines的關鍵功能之一,到目前為止,最常用的標定目標是棋盤[18]、點圖案[20]和AprilTags[10]。點圖案容易受到透視和鏡頭畸變的影響,而棋盤格在僅部分觀察時往往會失敗,這使得標定廣角鏡頭極為困難。一些研究人員建議使用新的模式,如三角形特征[19]、[1]來增加梯度信息,但這些模式通常對廣角(魚眼)鏡頭邊緣的高失真不夠魯棒。
在[1]中,作者使用單個AprilTag來確定自定義目標的姿態,并假設單應性作為相機模型,將目標重新投影到圖像幀上。對于高失真廣角鏡頭,這種方法有三個基本問題:(1)使用單個AprilTag不夠穩??;(2)使用單應性作為目標重投影的相機模型會產生重投影誤差,從而無法恢復真實的目標位置;(3) 所使用的細化方法對于AprilTags(和棋盤)是不穩定的。
受[1]的啟發,我們提出了一種為AprilTags網格設計的pipelines,TartanCalib采用迭代過程,這使得可以使用相對精確的中間相機模型而不是單應性,將目標點重新投影到圖像幀中,此外,作者提出了兩種新的自適應亞像素細化方法,以優異的亞像素精度獲得更多檢測到的特征!
預備工作
相機模型
相機模型通常由投影和反投影函數組成。投影函數π:? → Θ將3D點投影到圖像坐標,它的反投影函數:將圖像坐標反投影到單位球體上,3D點的投影可以描述為π(x,i),其中x是3D空間中的點,i是相機模型的參數集。類似地,反投影函數表示為,其中u是圖像空間中的坐標。
標定方法
TartanCalib(圖2)背后的高級思想是通過利用中間相機模型來改進目標檢測,迭代優化相機模型,迭代包括幾個關鍵組件,將在下面的部分中詳細介紹。這些組件包括無失真、目標重投影,角點濾波和亞像素細化。標定目標的視覺特征表現為corner 特征,可以互換地將corners稱為目標特征。
在廣角相機標定中改進目標檢測的一種直觀方法是將圖像分解為多個針孔重投影,這種方法應該可以消除高度失真目標造成的一些困難。為了消除圖像失真,論文對一個虛擬針孔相機進行建模,它有四個參數i=[fx,fy,cx,cy],投影函數定義為:
其中fx和fy是焦距,cx和cy是主點的像素坐標。通過首先將針孔像素坐標反投影到S^2空間,然后將這些點重新投影回扭曲的圖像幀,可以創建虛擬針孔相機。查詢扭曲幀中該位置的像素位置,并將其替換回針孔圖像,以獲得未失真的圖像。
目標重新投影
雖然undistortion 減少了鏡頭失真,但由于透視失真和其它視覺偽影(如運動模糊),可能仍然無法檢測到目標。如[1]所述,可以重新投影已知目標坐標返回到圖像幀中,而沒有實際檢測到目標。作者表明,單應性可以用于此目的,等式2顯示了如何使用相機模型將點從目標坐標(xt)重新投影到圖像坐標(ut)。
這里,Ttar是從目標幀到相機幀的變換,xt是目標幀中的坐標,x是相機幀中的向量。
Corner Filtering
雖然使用中間相機模型將目標重新投影到圖像幀中可能會產生一些精確的估計,但不確定是否所有目標都在幀中可見。因此,需要一個過濾策略,只保留框架中出現的特征(角點),論文通過以下步驟實現穩健過濾:
1)在所有檢測到的四邊形(檢測到的正方形)上循環;
2)檢查每個四邊形的所有4個角是否都接近重新投影的目標corner;
3)對所有corner執行亞像素細化;
亞像素細化
需要亞像素細化來將使用中間模型重新投影的特征轉換為與圖像中所見的角點實際匹配的特征,論文提出了兩種算法:1) 對OpenCV的cornerSubPix()函數的簡單修改[21],以及2) 一種專門為高失真透鏡設計的基于對稱的細化方法。
1) Adaptive cornerSubPix():cornerSubPix()計算搜索窗口內的圖像梯度,以便向corner迭代收斂。為此,搜索窗口的大小是一個關鍵的超參數:如果 搜索窗口太小,算法可能永遠找不到角點,而大窗口會產生不準確的結果,甚至會收斂到另一個角點。窗口大小通常是一個固定的參數,對于不同的圖像分辨率或失真級別不會改變,圖1展示了當窗口大小選擇不當時產生的問題。在這項工作中,論文介紹了cornerSubPix()的自適應版本,它根據圖像幀中的標簽外觀來更改窗口大小。
等式3顯示了如何確定調整大小窗口的大小,該算法將所有目標特征重新投影到圖像幀中,并針對每個特征在圖像幀中找到其最近的鄰居。然后,根據等式3,我們使用該信息來縮放搜索窗口。
2)基于對稱的細化:[1]的作者首次提出通過優化基于對稱的成本函數來細化標定目標檢測,原始成本函數如等式4所示:
這里H是從目標幀到圖像幀的單應性,其中目標幀中的中心是正在細化的特征,sk和?sk是目標幀中的兩個樣本,其被定義為使得原點對應于特征位置。然后,作者使用Levenberg-Marquardt方法優化H,以最小化Csym。作者表明,使用deltille網格、棋盤格及其自定義目標,該方法是最精確的細化方法。
他們的自定義目標由單個AprilTag組成,以確定目標平面和圖像平面之間的單應性,圖像平面由多個星形特征點包圍。使用單個AprilTag確定的單應性用于對每個特征進行單應性的初始猜測,因此,重要的是,被標定的相機的行為與針孔相機的行為有些接近。
因此,這種方法對于低失真到中等失真是有效的,因為投影接近單應性。然而,對于真正的超寬鏡頭,所提出的方法失敗有兩個原因:(1)未檢測到單個AprilTag,以及(2)單應性假設導致細化過程失敗,作者提出了一個改進的版本,優化了一個修改的基于對稱的目標函數,如等式5所示:
這里,xt是特征在目標空間中的位置,即使用Ttar變換到相機幀,并使用投影函數π投影到圖像幀。該方程中的所有步驟都是可微的,論文使用它直接優化目標幀中的特征位置,由此,利用中間模型來檢索更高質量的對稱樣本和更好的初始估計。
Results
評估Metrics
在本節中,作者評估了一些指標,以便將TartanCalib與其它最先進的特征檢測和幾何相機標定方法進行比較。評估幾何相機標定具有挑戰性,因為特征檢測和相機幾何不存在gt。傳統上用于幾何相機標定的度量是重投影誤差,尤其是在比較不同模型或優化例程時。
當特征相同時,這只是一個合適的度量,因為不同的特征分布會產生完全不同的優化問題。后面將看到,TartanCalib在整個圖像中帶來了更多檢測到的特征,特別是在高度失真的區域,實現了其設計目的。如果相機模型不夠復雜,無法擬合畸變區域中所有檢測到的特征,則重投影誤差可能更高。
這一觀察表明,使用再投影誤差作為度量是不合適的。盡管如此,給出了重投影誤差以供參考,而論文使用其它定量度量,以顯示來自TartanCalib的檢測特征的準確性和覆蓋率具有更高的質量。
Feature Detection
考慮的第一個指標是檢測到的特征數量及其在球坐標中的覆蓋范圍。在本節中,我們將去畸變和目標重投影視為檢索更多特征的方法,并將其與AprilTag檢測的最新方法進行比較。
1)去畸變:在廣角相機標定中改進目標檢測的直觀方法是將圖像undistortion為多個針孔投影,這個想法是通過迭代地將圖像分解為五個針孔投影來評估的。第一個平面指向相機框架的正z方向(主軸),而其它投影指向90°的極角。方位角從零開始,每個平面遞增90°,五個平面一起形成一個立方體。與圖2相對應,未失真的針孔投影用于迭代改進相機模型,為了量化未失真的效果,將之前收集的Lensagon BF5M圖像進一步采樣為包含100幀的子集。然后,使用TartanCalib將廣角圖像迭代地undistortion為針孔投影,在這個實驗中,undistortion產生了額外的5%-10%的特征。
2)重投影:雖然多了5%-10%的特征是一個顯著的改進,但它并不能解決鏡頭邊緣特征太少的問題。將特征從目標幀重新投影到圖像幀中,如第IV-B節所述!對于本實驗,使用了第V-B節中描述的數據集,每次評估500張圖像,圖4顯示了所考慮的各種方法檢測到的特征的分布。
TartanCalib與其它最先進的AprilTag檢測器進行了比較,分別是:(1)Kalibr,(2)Deltille[19],(3)AprilTag3(AT3)[10],[22],AprilTags的C++實現,最初由Michael Kaess博士編寫,以及(4)ArUco標簽檢測器[23],[24],[25]。表I顯示了使用每種方法檢測到的特征的數量,而表II顯示了按polar angle排序的檢測到特征的數量。
結果表明,TartanCalib對鏡頭畸變最為魯棒,在Lensagon BF5M魚眼鏡頭的邊緣記錄了更多的特征。GoPro(圖中未顯示)的結果顯示檢測到的特征在所有模型中大致相同。作者將其原因歸結為,使用較小的視場進行標定挑戰性小得多。
亞像素細化
在本節中,作者比較了兩種新穎的亞像素細化策略,并表明基于對稱的細化對于AprilTags的網格來說太不穩定了。[1]的作者部署了低到中等失真的透鏡,并在deltille網格和棋盤上測試了基于對稱的細化,特別是在高失真區域,細化似乎與特征不對齊。圖5顯示了為什么對稱性不適合使用AprilTags進行特征細化。
該圖顯示存在許多局部優化,因此需要高質量的初始估計。圖像幀中目標位置的初始估計可能相差幾個像素(如圖1所示),因此可能收斂到局部最優值。因此,生成的特征與模型更好地匹配,但在高失真區域與現實世界中的特征不匹配。因此,論文假設自適應cornerSubPix()產生更穩定的特征,第V-E節對該假設進行了更詳細的研究。
在標定特征上的對比
重投影誤差
幾何相機標定中最廣泛使用的誤差度量是重投影誤差,給定估計的目標姿態和相機模型,可以將特征重新投影回目標幀中,并將其與檢測到的corners進行比較。如上所述,這不是一個特別有用的度量,因為不同的方法輸出的特征分布基本上不同(例如,TartanCalib在鏡頭邊緣具有更多的特征)。
重投影誤差不僅是特征的函數,還取決于相機模型擬合鏡頭幾何形狀的能力。論文進行了一個簡單的實驗,以表明TartanCalib可以改善重投影誤差,表IV顯示了使用TartanCalib時的顯著改善。
審核編輯:劉清
-
機器視覺
+關注
關注
162文章
4406瀏覽量
120734 -
OpenCV
+關注
關注
31文章
635瀏覽量
41556 -
FOV
+關注
關注
0文章
36瀏覽量
5932
原文標題:最新代碼開源!TartanCalib:自適應亞像素細化的廣角鏡頭標定
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論