以下內(nèi)容來自系統(tǒng)教程如何搞定單目/魚眼/雙目/陣列 相機標(biāo)定?
點擊領(lǐng)取相機標(biāo)定資料和代碼
為什么需要對相機標(biāo)定? 我們所處的世界是三維的,而相機拍攝的照片卻是二維的,丟失了其中距離/深度的信息。從數(shù)學(xué)上可以簡單理解為,相機本身類似一個映射函數(shù),其將輸入的場景,通過某種關(guān)系映射為一張RGB圖片,即 而相機標(biāo)定,就是使用數(shù)學(xué)模型和數(shù)學(xué)方法來近似逼近這一復(fù)雜映射函數(shù)的過程。標(biāo)定后的相機即具有了描述這一過程的能力,從而可以用于各種計算機視覺的任務(wù),如深度恢復(fù)、三維重建等,本質(zhì)上都是對丟失的距離信息的恢復(fù)。
為什么說是逼近,因為我們永遠也不可能百分之百得知一個真實的相機是如何投影圖像的
相機標(biāo)定到底在標(biāo)什么? 機器視覺中,需要標(biāo)定的應(yīng)用場景可以簡單分為如下幾類:
單目視覺應(yīng)用,如單幀測距、車載 ADAS 輔助、單目SLAM等 這類應(yīng)用,我們通常需要相機自身的成像模型參數(shù)以及相機相對某個坐標(biāo)系下的相對位姿。
比如下圖簡單場景,我們知道相機的朝向以及和地面的高度,就可以大致估計出相機某個像素對應(yīng)物體的距離(物體高度已知或貼近地面) 這種模型在一些簡單的車載的任務(wù)上比較常見,比如推測前車距離
再如工業(yè)上比較常見的機器人控制,需要構(gòu)建機器人坐標(biāo)系和其視覺坐標(biāo)系之間的相對位置關(guān)系(也就是手眼標(biāo)定) 再比如單目深度恢復(fù),一些傳統(tǒng)的單目深度恢復(fù)通常使用固定尺寸的物體作為標(biāo)志物,之后移動物體,通過相機中物體大小來判斷實際的拍攝距離。
再比如大家熟知的一些SLAM方法
目前有一些自監(jiān)督的深度學(xué)習(xí)方法也會使用相對姿態(tài)信息作為監(jiān)督,比如最近的 ManyDepth:
雙目/多目/RGB-D組合 這類應(yīng)用更加常見,我們需要獲取相機自身信息,以及各個相機之間的相對位姿關(guān)系,有時也需要獲取其和某固定坐標(biāo)系之間的關(guān)系,舉幾個例子:
如車載全景環(huán)視(圖片來自網(wǎng)絡(luò)) 我們需要獲取四個相機相對位姿以及其和地面坐標(biāo)系的關(guān)系,才能得到最終的全景拼接結(jié)果(圖片來自網(wǎng)絡(luò))。
再如AR應(yīng)用 或者更復(fù)雜的相機陣列
標(biāo)定方法簡述 目前相機標(biāo)定方法主要分為三類:
而傳統(tǒng)相機標(biāo)定中張正友標(biāo)定法僅使用一個規(guī)格已知的平面標(biāo)定板進行標(biāo)定,制作成本較低,因此是目前主流的標(biāo)定方案。
張正有標(biāo)定操作步驟 張正友標(biāo)定方案使用平面標(biāo)志物,通常是規(guī)整的棋盤格或者點陣圖,如下 當(dāng)然,通常情況下為了方便區(qū)分圖片中棋盤格朝向,我們一般使用寬高不同的棋盤格。
將標(biāo)志物打印后,使用待標(biāo)定相機拍攝不同角度多組標(biāo)定圖案 ,三張圖片就可以完成標(biāo)定,但是為了減小標(biāo)定誤差,拍攝圖片會稍微多一些
標(biāo)定圖案需要保證平整 每張圖片中標(biāo)志物盡量占據(jù)畫面1/4以上,不同標(biāo)定板角度盡量存在一個相對明顯的旋轉(zhuǎn)和平移 拍攝時應(yīng)盡量保證相機參數(shù)不變 這里主要是焦距不變,焦距變化會導(dǎo)致部分fov變化,從而影響幾乎全部的標(biāo)定參數(shù)。當(dāng)然,大多數(shù)場景中相機本身焦距都是固定的,而消費級,如手機鏡頭由于其本身畸變不大,且焦距較短,因此影響會比較小。
拍攝圖案的總和需要覆蓋整個畫面 由于圓點在模糊情況不會改變其中心點位置,精度理論上會更好一些
拍攝圖案的總和需要覆蓋整個畫面 我們知道標(biāo)定本身可以理解為一個擬合各個像素位置成像的過程,如果覆蓋不完全,就會導(dǎo)致某些區(qū)域像素處于無約束狀態(tài),從而出現(xiàn)標(biāo)定錯誤。我們常見的圖片去畸變后邊緣扭曲大多是該原因?qū)е碌摹?/p>
使用標(biāo)定工具進行標(biāo)定計算 不同標(biāo)定板的優(yōu)缺點 以下部分圖片來自數(shù)據(jù)來自文章 Accurate camera calibration using iterative refinement of control points
棋盤格本身存在角點檢測不精確的問題
如角點邊緣并不一定滿足正交的要求,而這是亞像素角點提取的一種要求。
圓點檢測更精確,但是會存在偏心誤差 AprilTag 如果部分被遮擋也是可用的
以上內(nèi)容來自系統(tǒng)教程如何搞定單目/魚眼/雙目/陣列 相機標(biāo)定?文章來源:http://www.zghlxwxcb.cn/news/detail-464429.html
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!文章來源地址http://www.zghlxwxcb.cn/news/detail-464429.html
到了這里,關(guān)于為什么需要對相機標(biāo)定?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!