分析camera的參數(shù)
每個(gè)相機(jī)鏡頭都有不同的參數(shù), 因此針對每個(gè)鏡頭都需要做光學(xué)標(biāo)定. 首先需要對鏡頭進(jìn)行參數(shù)建模,分投影模型和畸變模型, 投影模型我們選用比較通用的pinhole模型, 包括焦距,光心. 畸變模型我們選用radtan模型, 包括徑向畸變,切向畸變.
Pinhole模型即針孔相機(jī)模型, 投影方程及示意圖為:
其中fx,fy為焦距, cx,cy為光心, (x,y,z)為相機(jī)坐標(biāo)系下的3d點(diǎn)坐標(biāo), (ix,iy)為圖像坐標(biāo)系下的像素點(diǎn)坐標(biāo).
Radtan模型即radial-tangential模型, 包括徑向畸變參數(shù)和切向畸變參數(shù).畸變方程及示意圖為:
以上是單個(gè)相機(jī)鏡頭的一些標(biāo)定參數(shù), 被稱為內(nèi)參. 如果具有多個(gè)相機(jī)鏡頭, 比如現(xiàn)在廣泛使用的雙目相機(jī), 則還存在相機(jī)與相機(jī)之間的變換關(guān)系, 被稱為外參, 模型及示意圖如下:
其中(x0,y0,z0)’和(x1,y1,z1)’分別是每個(gè)相機(jī)自身坐標(biāo)系下的同一3d點(diǎn)坐標(biāo), R是旋轉(zhuǎn)矩陣, T是平移向量, R和T被稱為外參, 表示相機(jī)間的相對旋轉(zhuǎn)和相對平移.
相機(jī)標(biāo)定是計(jì)算機(jī)視覺領(lǐng)域經(jīng)久不衰的研究方向, 一般都是使用非線性的迭代優(yōu)化方法求迭代解. 下面我們將使用兩個(gè)工具包來標(biāo)定手上的小覓相機(jī), 并與相機(jī)本身自帶標(biāo)定參數(shù)做對比.
首先是被廣泛使用的opencv的標(biāo)定方法. 我們使用了opencv自帶的stereo_calib例子. 使用小覓相機(jī)采集了1280*720分辨率大小(下同)的圖像, opencv默認(rèn)是使用黑白棋盤格作為標(biāo)定板, 我們使用A4紙打印了一個(gè)9X6大小的棋盤格, 采集了一組17對的雙目圖像, 共三組,用于標(biāo)定. 其中一對圖像樣例及特征提取結(jié)果如下圖所示:
基于標(biāo)定板的標(biāo)定算法一般是先為待求解參數(shù)設(shè)置初值, 由于標(biāo)定板上的特征點(diǎn)(如果是黑白棋盤格則是格子角點(diǎn))分布及坐標(biāo)已知, 則采用PnP初始化所有相機(jī)的pose, 然后使用非線性優(yōu)化方法迭代優(yōu)化. 目標(biāo)函數(shù)則是投影誤差方程.
程序優(yōu)化結(jié)束后,利用優(yōu)化得到的內(nèi)外參數(shù)值, 可以得到去畸變及雙目校正后的結(jié)果圖:
圖中紅色方框?yàn)閳D像有效區(qū)域, 而綠色直線為雙目的對極線.可以看出, 左右圖中任意一個(gè)相同的點(diǎn),都在同一條水平直線上, 即完成了雙目校正. 我們還可以看到校正后的圖像形變比較大, 這是因?yàn)樾∫捪鄼C(jī)采用的是FOV視角比較大比較接近魚眼的鏡頭, 而pinhole投影模型是平面投影模型, 因此這樣會(huì)導(dǎo)致形變比較大. 如果FOV視角過大, 則應(yīng)該采用魚眼投影模型比如omni模型來建模.
下面我們采用更加專業(yè)的標(biāo)定工具包Kalibr來進(jìn)行雙目標(biāo)定. Kalibr不僅支持多種相機(jī)模型,畸變模型, 還支持多相機(jī)標(biāo)定,卷簾相機(jī)標(biāo)定, imu-camera聯(lián)合標(biāo)定. 是目前開源工具包中功能較為全面的一個(gè).
Kalibr也支持多種類型標(biāo)定板目標(biāo),如棋盤格,原點(diǎn)整列, 二維碼棋盤格, 這里我們使用了kalibr默認(rèn)的二維碼棋盤格, 其中圖像樣例及特征提取效果圖如下,其中左圖是角點(diǎn)提取效果, 而右圖是二維碼中心的提取結(jié)果,這種基于區(qū)域的特征提取相比基于角點(diǎn)的特征提取的優(yōu)勢是, 對運(yùn)動(dòng)模糊更加魯棒:
運(yùn)行完kalibr標(biāo)定程序后, 會(huì)生成一個(gè)詳細(xì)的標(biāo)定結(jié)果報(bào)告, 以下是一些標(biāo)定結(jié)果示例:
從圖中及標(biāo)定結(jié)果可以看出小覓這款相機(jī)基本是平行的, 相機(jī)間的相對旋轉(zhuǎn)非常小. 而我們得到重投影誤差比較大, 這一般與采集數(shù)據(jù)的過程, 及標(biāo)定板的精密程度非常相關(guān).
在使用兩種工具包的多組數(shù)據(jù)進(jìn)行了標(biāo)定之后, 我們同時(shí)使用小覓相機(jī)的api獲取了相機(jī)出廠自帶的內(nèi)外參, 與我們自身標(biāo)定的結(jié)果對比, 我們使用kalibr標(biāo)定了5組數(shù)據(jù), 使用opencv標(biāo)定了3組數(shù)據(jù), 主要對比三類參數(shù), camera0的內(nèi)參, camera1的內(nèi)參, camera1相對camera0的外參:
由于opencv中的相機(jī)內(nèi)參沒有徑向畸變參數(shù), 我們將其設(shè)置為0, 從表中數(shù)據(jù)可以看出, 不同kalibr數(shù)據(jù)組之間的一致性比較好, 與小覓出廠數(shù)據(jù)也較為接近. 但是與opencv的標(biāo)定結(jié)果相差較大.
分析imu-camera聯(lián)合標(biāo)定
Kalibr最大的優(yōu)勢在于可以實(shí)現(xiàn)imu和camera的聯(lián)合標(biāo)定, 相比visual-odometry, visual-internal-odometry具有尺度可知, 重力方向可知, 旋轉(zhuǎn)預(yù)測精確等許多優(yōu)勢, 因此在camera系統(tǒng)中加入imu是許多slam系統(tǒng)的選擇, 但是imu和camera之間相對關(guān)系的標(biāo)定還是一個(gè)相對復(fù)雜的問題. 而Kalibr將這個(gè)問題納入了工具包, 提供了標(biāo)定的算法.
Kalibr做imu-camera聯(lián)合標(biāo)定的前提是提供camera標(biāo)定參數(shù), 及imu是已經(jīng)校正好的(kalibr也提供更復(fù)雜的算法聯(lián)合標(biāo)定時(shí)同時(shí)標(biāo)定imu的scale和misalignment, 但本文不考慮這個(gè)問題). 因此我們在對手中的小覓相機(jī)做聯(lián)合標(biāo)定時(shí), 使用了上一節(jié)kalibr標(biāo)出的相機(jī)內(nèi)外參作為固定參數(shù), 在采集imu的時(shí)候還設(shè)定了PROC_IMU_ALL模式,即同時(shí)校正了溫漂問題和scale/misalignment問題.
Kalibr做imu-camera聯(lián)合標(biāo)定的框架與camera標(biāo)定的框架基本一致. 需要標(biāo)定imu與camera的相對旋轉(zhuǎn)和平移. 但與camera標(biāo)定最大的不同是, camera標(biāo)定是靜態(tài)的標(biāo)定, 而imu數(shù)據(jù)是時(shí)序相關(guān)的, 每個(gè)數(shù)據(jù)都帶一個(gè)時(shí)間戳, 即動(dòng)態(tài)標(biāo)定. camera產(chǎn)生的圖像數(shù)據(jù)的時(shí)間戳與imu產(chǎn)生的gyro/acc數(shù)據(jù)的時(shí)間戳并不一定完全同步, 所以涉及到不同硬件的時(shí)間戳同步問題. 因此Kalibr還將camera與imu之間時(shí)間戳的延時(shí)加入了優(yōu)化參數(shù)中.
參照Kalibr的文檔, 我們同樣采集了5組數(shù)據(jù)用于標(biāo)定, 在數(shù)據(jù)采集過程中需要注意的主要有兩點(diǎn), 一是需要經(jīng)量激勵(lì)加速度計(jì)的各個(gè)軸, 因此只有imu產(chǎn)生足夠的數(shù)據(jù)變化, 一些參數(shù)才能變得可觀,即可優(yōu)化. 二是需要提高外部環(huán)境光強(qiáng)度, 降低快門和曝光時(shí)間, 因?yàn)樾枰\(yùn)動(dòng), 如果曝光時(shí)間長,則圖像會(huì)產(chǎn)生運(yùn)動(dòng)模糊, 會(huì)影響特征提取的精度. 下圖是運(yùn)行kalibr動(dòng)態(tài)標(biāo)定的重投影誤差結(jié)果示意圖:
從上圖可知, 結(jié)果有一些誤差比較大的outlier點(diǎn), 這可能會(huì)影響標(biāo)定的效果.
在和小覓的技術(shù)同學(xué)溝通后,小覓的技術(shù)也進(jìn)行了Kalibr標(biāo)定,從重投影誤差看,標(biāo)定的結(jié)果還可以,outlier較少。
標(biāo)定的結(jié)果有很多影響因素,這個(gè)問題,還可以進(jìn)一步深挖。
小覓的技術(shù)標(biāo)定結(jié)果如下圖:
我們使用api從小覓相機(jī)中讀出出廠標(biāo)定的結(jié)果, 與我們kalibr的標(biāo)定結(jié)果做對比, 數(shù)據(jù)如下:
從表中可以看出, 在imu與camera的相對平移值上, 我們的標(biāo)定結(jié)果與出廠數(shù)據(jù)差別較大,達(dá)到厘米級(jí), 但是kalibr結(jié)果本身的分布是相對一致的.
參考資料:
《學(xué)習(xí)OpenCV(中文版)》
imu_tk:https://bitbucket.org/alberto_pretto/imu_tk/src/master/
《A Robust and Easy to Implement Method for IMU Calibration without External Equipments》 http://www.dis.uniroma1.it/~pretto/papers/tpm_icra2014.pdf
imu_utils:https://github.com/gaowenliang/imu_utils
MYNTAI(小覓智能)2014年7月成立于美國硅谷,專注立體視覺技術(shù)整體解決方案,致力于為AI打造三維視覺慧眼。核心產(chǎn)品和技術(shù)包括以雙目為主的多傳感器融合模組、視覺慣性導(dǎo)航技術(shù)、量產(chǎn)級(jí)的雙目標(biāo)定技術(shù)、量產(chǎn)級(jí)的雙目自標(biāo)定技術(shù)等,以及核心產(chǎn)品和技術(shù)在服務(wù)機(jī)器人、掃地機(jī)器人、安防機(jī)器人、無人車、無人機(jī)和輔助駕駛ADAS中的應(yīng)用。
小覓智能由斯坦福大學(xué)機(jī)器人視覺專業(yè),硅谷連續(xù)創(chuàng)業(yè)者龐琳勇(Leo)博士創(chuàng)立,在北京、無錫、和硅谷擁有100人的研發(fā)團(tuán)隊(duì)。
MYNTAI(小覓智能)在開曼群島設(shè)有母公司Slightech, Inc. ,并在中國無錫設(shè)有全資子公司輕客智能科技(江蘇)有限公司,在中國北京設(shè)有全資子公司輕客小覓智能科技(北京)有限公司。
品牌理念
企業(yè)定位:專注于“立體視覺技術(shù)解決方案”的人工智能公司
企業(yè)使命:為人工智能時(shí)代應(yīng)用裝上一雙導(dǎo)航避障的雙眼
企業(yè)精神:誠信勤奮執(zhí)行協(xié)作
2025-06-26 16:59
2025-06-26 16:59
2025-06-26 16:58
2025-06-26 16:58
2025-06-26 16:52
2025-06-26 14:54
2025-06-26 14:53
2025-06-26 14:53
2025-06-26 14:44
2025-06-26 14:44