交互式相機標定的高效位姿選擇方法
標題:Efficient Pose Selection for Interactive Camera Calibration作者:P. Rojtberg and A. Kuijper會議:2018 IEEE International Symposium on Mixed and Augmented Reality (ISMAR)論文:https://arxiv.org/abs/1907.04096代碼:https://github.com/paroj/pose_calib
摘要
平面圖案標定姿勢的選擇很少被考慮——但標定精度很大程度上取決于它。本文提出了一種姿態(tài)選擇方法,可以找到一個緊湊和魯棒的標定姿態(tài)集,并適合于交互式標定。奇異的姿態(tài)會導致解決方案不可靠,而減少姿態(tài)的不確定度對標定有利的。為此,我們使用不確定性傳播原理。我們的方法利用了一個自識別的標定圖案來實時跟蹤相機的姿態(tài)。這允許迭代地引導用戶到目標姿態(tài),直到達到所需的質(zhì)量水平。因此,只需要一組稀疏的關(guān)鍵幀來進行標定。該方法在單獨的訓練集和測試集以及合成數(shù)據(jù)上進行了評估。我們的方法比可比較的解決方案性能更好,同時需要更少的30%的標定幀。
本文作者:天涯居士,來源:微信公眾號「3D視覺工坊」
關(guān)鍵詞:
I.2.10:[人工智能]:視覺和場景理解——物理屬性的建模和恢復;
I.5.5:[ 模式識別]:部署——交互式系統(tǒng);
01 引言

圖1 使用9個選定的姿勢
圖1 使用9個選定的姿勢和用戶指導覆蓋,投影到到右下角的相機。和用戶指導覆蓋,投影到到右下角的相機。
在三維計算機視覺的背景下,相機標定是確定相機內(nèi)部的幾何和光學特征(內(nèi)參)以及相機在世界坐標系中的位置和方向(外參)的過程[14]。許多三維計算機視覺算法的性能直接取決于該標定的質(zhì)量。此外,標定是一個重復任務,每次設置必須更改時執(zhí)行。即使是同款相機,這些參數(shù)也可能會由于制造的不準確性而變化。相機標定的流行方法是基于獲取一個已知尺寸的平面圖案的多幅圖像[16]。然而,存在退化姿態(tài)配置會導致不可靠的解[11]。
因此,標定的任務不能由沒有經(jīng)驗的用戶來完成——即使是在該領域工作的研究人員也經(jīng)常難以量化什么是良好的標定圖像。有一些研究對CCD成像平面與圖案之間的夾角對估計誤差的影響進行了研究:
Triggs[13]將角擴散與焦距誤差聯(lián)系起來。他發(fā)現(xiàn)超過5°后誤差會擴散。
Sturm和Maybank[11]進一步區(qū)分了估計主點和焦距。更重要的是,他們討論了在使用一個平面和兩個平面進行標定時可能存在的奇點,并將它們與單個針孔參數(shù)聯(lián)系起來;例如,如果圖案在每一幀中平行于圖像平面,則不能確定焦距。
這些發(fā)現(xiàn)在[16]中得到了重復。然而,姿態(tài)對失真參數(shù)估計或一般相機相對標定板的姿態(tài)影響迄今尚未被考慮。
另一個方面是標定數(shù)據(jù)的質(zhì)量和數(shù)量。
Sun和庫珀斯托克[12]評估了攝像機模型對噪聲的靈敏度、訓練數(shù)據(jù)量和在模型復雜性方面的標定精度。然而,他們只測量了各自訓練集上的殘差,這受過擬合的影響。
為了克服這個問題,理查森等人[10]引入了最大期望重投影誤差(最大ERE)度量,而不是與測試誤差相關(guān),從而允許一個有意義的收斂測試。此外,他們會自動計算一個“最佳的下一個姿勢”,并將其作為圖案的疊加投影作為用戶指導。通過在大約60個候選姿態(tài)的固定集合中進行窮舉搜索來選擇姿態(tài)。對于每個姿態(tài),執(zhí)行一個包括該姿態(tài)的假設標定,并選擇最大ERE最小的姿態(tài)。然而,候選姿態(tài)在視場中均勻分布,沒有明確考慮角擴散和退化情況[11]。
在輔助用戶標定任務[9]的一般情況下,尚未特別考慮相機標定的準確性。
我們提出在解析生成最優(yōu)模式姿態(tài)的同時,明確地避免退化的姿態(tài)配置。為此,我們將姿態(tài)與單個參數(shù)的約束聯(lián)系起來,這樣所產(chǎn)生的姿態(tài)序列就可以約束所有的校準參數(shù),并確保準確的校準。與[10]的窮舉搜索相比,這將計算時間從秒減少到毫秒。利用估計解的協(xié)方差來評估校準參數(shù)的不確定度。然后對姿態(tài)序列進行調(diào)整,以便為最不確定的參數(shù)捕獲更多的約束。參數(shù)的協(xié)方差與檢驗誤差相關(guān),因此也可以作為一個收斂準則。
基于以上幾點,我們的主要貢獻是:
兩種不同的姿態(tài)選擇策略
一種有效的姿態(tài)選擇方案
本文的結(jié)構(gòu)如下:
第2節(jié):介紹了所使用的相機模型和不確定度估計方法,并討論了一個合適的標定圖案的選擇。
第3節(jié):描述了我們的新的姿態(tài)選擇方法
第4節(jié):描述了完整的標定流程。
第5節(jié):
對該方法在真實數(shù)據(jù)和合成數(shù)據(jù)進行了評估,并與OpenCV和AprilCal[10]的標定方法進行了比較[3]。
分析了結(jié)果標定的緊致性,并進行了一個非正式的用戶調(diào)查,以顯示該方法的可用性。
最后,我們以第6節(jié)總結(jié)了我們的結(jié)果,并討論了其局限性和未來的工作。




圖2 失真圖,顯示了每個像素的?(p)的大小。為了找到目標姿態(tài),我們應用閾值化和擬合一個軸對齊的邊界框。
圖2 失真圖,顯示了每個像素的?(p)的大小。為了找到目標姿態(tài),我們應用閾值化和擬合一個軸對齊的邊界框。

3.3 姿勢生成

圖3 示例性姿態(tài)選擇狀態(tài)。頂部:色散指數(shù)。左:經(jīng)過一個(洋紅色)和兩個(黃色)細分步驟后的固有標定候選位置。右:已經(jīng)訪問過的區(qū)域的扭曲地圖。
圖3 示例性姿態(tài)選擇狀態(tài)。頂部:色散指數(shù)。左:經(jīng)過一個(洋紅色)和兩個(黃色)細分步驟后的固有標定候選位置。右:已經(jīng)訪問過的區(qū)域的扭曲地圖。
圖3 示例性姿態(tài)選擇狀態(tài)。頂部:色散指數(shù)。左:經(jīng)過一個(洋紅色)和兩個(黃色)細分步驟后的固有標定候選位置。右:已經(jīng)訪問過的區(qū)域的扭曲地圖。


4.2 用戶指導
為了指導用戶,目標相機姿態(tài)投影使用當前估計的內(nèi)在參數(shù)。然后,這個投影被顯示為一個覆蓋在直播視頻流的頂部(參見圖1和補充材料中的視頻)。驗證用戶是否足夠接近目標姿態(tài)我們使用Jaccard指數(shù)J(A,B)(交集聯(lián)合)計算的投影模式的目標姿態(tài)T和面積的投影從當前姿態(tài)估計e我們假設用戶已經(jīng)達到所需的姿態(tài)如果J(T,E)>0.8。比較投影重疊而不是直接使用估計的姿態(tài)是更穩(wěn)健的,因為姿態(tài)估計通常是不可靠的——特別是在初始化期間。
4.3 啟發(fā)法
在整個過程中,我們強制執(zhí)行通用啟發(fā)式約束[6,7.2],即約束的數(shù)量應該超過未知數(shù)的5倍。所使用的校準方法[16]不僅估計了固有參數(shù)C,而且還估計了模型平面和圖像平面的相對姿態(tài),即參數(shù)R、三維旋轉(zhuǎn)和t、三維平移。當使用M校準圖像時,我們有d=9+6M未知數(shù),每個點對應提供了兩個約束。對于初始化(M=2),我們有21個未知數(shù),這意味著總共需要52.5個點對應或每幀需要27個對應。對于任何后續(xù)的幀,只需要15個點。為了防止由于運動模糊和滾動快門偽影而導致的不準確的測量,圖案應該是靜止的。為了確保這一點,我們要求在連續(xù)的幀中重新檢測到所有的點,并且這些點的平均運動要小于1.5px(根據(jù)經(jīng)驗確定)。
05 評估
在合成數(shù)據(jù)和真實數(shù)據(jù)上對該方法進行了評價。合成實驗旨在驗證第3節(jié)中提出的參數(shù)分割和姿態(tài)生成規(guī)則,并使用真實數(shù)據(jù)與其他方法進行比較。此外,通過對測試集進行直接優(yōu)化,估計了結(jié)果與真實數(shù)據(jù)的緊致性。
5.1 合成數(shù)據(jù)

圖4 姿態(tài)選擇策略和校準參數(shù)不確定性的相關(guān)性(因此誤差條意味著“σ的方差”)。
我們進行了多次校準,每一次都使用了20個合成圖像。按照第3.4節(jié)所述,選擇了前兩個相機姿態(tài),以允許一個粗略的初始解決方案。接下來的8個姿勢被選擇來優(yōu)化,而最后10個姿勢是優(yōu)化(反之亦然)。相機參數(shù)是基于羅技C525相機的校準參數(shù)。然而,實際參數(shù)在周圍使用協(xié)方差矩陣進行抽樣,允許每個參數(shù)有10%的偏差:因此,每個合成校準對應于使用一個不同的相機與已知的真實標簽參數(shù)。為了推廣到不同的相機模型,我們保留了上述姿態(tài)生成序列,但使用了20個不同的相機C。圖4顯示了各參數(shù)的平均標準差σC。值得注意的是,如果使用與參數(shù)組匹配的姿態(tài),σ值會顯著下降。我們還評估了MaxIOD作為誤差度量的使用,通過比較其與MaxERE[10]和已知估計誤差的。與MaxERE一樣,MaxIOD與集合相關(guān)(見圖5a)。此外,如圖5b所示,IOD的減少適用于平衡校準質(zhì)量和所需的校準幀的數(shù)量。
5.2 真實數(shù)據(jù)

表1:我們的方法與AprilCal和OpenCV的真實數(shù)據(jù)進行了比較。顯示五次以上的平均值。對測試集的訓練結(jié)果在中。
為了用真實的圖像來評估我們的方法,我們記錄了一個單獨的測試集,其中包括50張不同距離和不同角度的圖像,覆蓋了整個視場。所有的圖像都是用羅技C525的網(wǎng)絡攝像頭拍攝的,分辨率為1280x720px。在整個評估過程中是固定的,而每個序列的曝光是固定的。我們的方法與AprilCal[10]進行比較,并使用OpenCV對沒有任何姿態(tài)限制進行校準。我們使用了第2.2節(jié)中描述的模式,該模式為OpenCV和我們的方法提供了每幀40個測量值。在AprilCal中,我們使用了5x7的AprilTag目標,它產(chǎn)生了大致相同的測量量。我們的方法的收斂閾值設置為10%,AprilCal的停止精度參數(shù)設置為2.0。由于OpenCV方法不提供收斂性監(jiān)測,我們在這里的10幀后停止了校準。表1顯示了每種方法5次校準運行的平均結(jié)果,測量所需的幀數(shù)和。在這里,我們的方法只需要AprilCal所需要的70%的幀,而達到比值低36%(比OpenCV低64%)。
5.3 標定緊致度的分析
前一節(jié)的結(jié)果表明,我們的方法能夠提供最低的校準誤差,同時使用更少的校準幀比可比方法的校準誤差。然而,目前還不清楚該解決方案是使用最小的幀量,還是有可能在達到相同的校準錯誤的同時使用幀的子集。因此,我們進一步測試了我們的校準結(jié)果的緊致性。我們使用了一個貪婪算法,給定由我們的方法捕獲的一組幀,試圖找到一個更小的子集。它優(yōu)化了測試集,直接最小化了估計誤差。算法計算如下:給定一組訓練圖像(校準序列):
無條件地添加如第3.4節(jié)中所述的初始化幀;
現(xiàn)在將剩余的每個幀單獨添加到關(guān)鍵幀集中,并計算校準。
對于每個校準,使用測試幀計算估計誤差。
使值最小化的幀被合并到關(guān)鍵幀集中。在步驟2中繼續(xù)。
如果不能進一步減少或所有幀都已被使用,則終止。
在保持相同估計誤差的情況下,貪婪最優(yōu)解需要75%的幀,同時(見表1)。這表明,雖然比[10]有了顯著的改進,但我們的方法在緊性意義上還不是最優(yōu)的。貪心算法需要一個先驗記錄的測試集,并且只找到現(xiàn)有校準序列的最小子集,但不能生成任何校準姿態(tài)。
5.4 用戶調(diào)查
我們在5名同事中進行了一項非正式的調(diào)查,以測量在使用我們的方法時所需的校準時間。該工具是第一次使用,唯一給定的指令是覆蓋應該與校準模式匹配。照相機是固定的,標定板必須被移動。用戶平均需要1:33分鐘才能以最高的捕獲8.7幀。
06 結(jié)論和未來的工作
我們提出了一種校準方法來生成一組緊湊的校準框架,適合于交互式用戶指導。避免了奇異的姿態(tài)配置,從而捕獲約9個關(guān)鍵幀就足以進行精確的校準。這比可比的解決方案少了30%。所提供的用戶指導允許沒有經(jīng)驗的用戶在2分鐘內(nèi)完成校準。校準精度可以根據(jù)收斂閾值與所需的校準時間進行加權(quán)。攝像機參數(shù)的不確定性在整個過程中都被監(jiān)測,以確??梢苑磸瓦_到給定的置信水平。我們的評估表明,所需的幀的數(shù)量仍然可以減少,以進一步加快這個過程。我們只使用一個廣泛而簡單的失真模型,在未來的工作中需要考慮薄棱鏡[15]、徑向[8]和傾斜傳感器。最終,我們可以加入對未使用的參數(shù)的檢測。這將允許從最復雜的失真模型開始,它可以在校準過程中逐漸減少。此外,該方法需要適應特殊情況,如顯微鏡,其中視野深度限制可能的校準角度或在大距離的校準,因此縮放標定板是不需要的。該算法的基于OpenCV的實現(xiàn)是開源的:https://github.com/paroj/pose_calib.
07 參考文獻


本文僅做學術(shù)分享,如有侵權(quán),請聯(lián)系刪文。
干貨下載與學習
在微信公眾號「3D視覺工坊」后臺回復:巴塞羅那自治大學課件,即可下載國外大學沉淀數(shù)年3D Vison精品課件
在微信公眾號「3D視覺工坊」后臺回復:計算機視覺書籍,即可下載3D視覺領域經(jīng)典書籍pdf
在微信公眾號「3D視覺工坊」后臺回復:3D視覺課程,即可學習3D視覺領域精品課程
3D視覺工坊精品課程官網(wǎng):3dcver.com
1.面向自動駕駛領域的多傳感器數(shù)據(jù)融合技術(shù)
2.面向自動駕駛領域的3D點云目標檢測全棧學習路線!(單模態(tài)+多模態(tài)/數(shù)據(jù)+代碼)
3.徹底搞透視覺三維重建:原理剖析、代碼講解、及優(yōu)化改進
4.國內(nèi)首個面向工業(yè)級實戰(zhàn)的點云處理課程
5.激光-視覺-IMU-GPS融合SLAM算法梳理和代碼講解
6.徹底搞懂視覺-慣性SLAM:基于VINS-Fusion正式開課啦
7.徹底搞懂基于LOAM框架的3D激光SLAM: 源碼剖析到算法優(yōu)化
8.徹底剖析室內(nèi)、室外激光SLAM關(guān)鍵算法原理、代碼和實戰(zhàn)(cartographer+LOAM +LIO-SAM)
9.從零搭建一套結(jié)構(gòu)光3D重建系統(tǒng)[理論+源碼+實踐]
10.單目深度估計方法:算法梳理與代碼實現(xiàn)
11.自動駕駛中的深度學習模型部署實戰(zhàn)
12.相機模型與標定(單目+雙目+魚眼)
13.重磅!四旋翼飛行器:算法與實戰(zhàn)
14.ROS2從入門到精通:理論與實戰(zhàn)
15.國內(nèi)首個3D缺陷檢測教程:理論、源碼與實戰(zhàn)
16.基于Open3D的點云處理入門與實戰(zhàn)教程
重磅!3DCVer-學術(shù)論文寫作投稿 交流群已成立
掃碼添加小助手微信:dddvision,可申請加入3D視覺工坊-學術(shù)論文寫作與投稿 微信交流群,旨在交流頂會、頂刊、SCI、EI等寫作與投稿事宜。
同時也可申請加入我們的細分方向交流群,目前主要有3D視覺、CV&深度學習、SLAM、三維重建、點云后處理、自動駕駛、多傳感器融合、CV入門、三維測量、VR/AR、3D人臉識別、醫(yī)療影像、缺陷檢測、行人重識別、目標跟蹤、視覺產(chǎn)品落地、視覺競賽、車牌識別、硬件選型、學術(shù)交流、求職交流、ORB-SLAM系列源碼交流、深度估計等微信群。
一定要備注:研究方向+學校/公司+昵稱,例如:”3D視覺 + 上海交大 + 靜靜“。請按照格式備注,可快速被通過且邀請進群。原創(chuàng)投稿也請聯(lián)系。