車載雙目ADAS(一) 雙目相機為什麼要進行標定

2021-08-31 18:18:14 字數 2337 閱讀 7143

目錄

標定的緣由

1、拍攝光線

2、角點檢測的函式 

3、標定板的列印精細程度

關於相機標定的部落格和**現在已經多到魚龍混雜的層面,多數初學者在眾多資料中翻來翻去,然而對很多的標定細節和原理性知識知之甚少,以致於停留在跑demo的級別。本人在翻看大量的部落格**基礎上,深感有必要將相機標定的知識進行一些歸納總結。由於才疏學淺,可能會在下面的文章中出現這樣或者那樣的錯誤,懇請大家直接指出錯誤,我一定深刻反思,立即整改。

談到相機標定,我們首先便會從世界座標系,相機座標系,影象座標系和畫素座標系談起。然而,這其實會讓很多人有一種困惑:為什麼要進行相機標定?

因為相機的中存在畸變,主要為徑向畸變切向畸變;針對雙目相機,還要通過標定獲取兩個相機之間的引數(旋轉和平移)。首先,我們這裡順水推舟,主要介紹一下相機的畸變究竟為什麼無法從硬體層面消除,而一定要通過標定演算法。

相機的主要部件包括鏡頭(lens)和感光感測器(cmos/ccd)。相機的成像主要是基於理想的小孔成像模型,但是針孔模型難以收集足夠的光線,保證影象的清晰性。為了保證相機的收集光線的能力,透鏡應運而生,帶著各類畸變而生。很顯然,畸變是相機的與生俱來的東西。

其中,徑向畸變主要是由於鏡頭的球形形狀造成,影象畫素點以畸變中心為中心點,沿著徑向產生的位置偏差,從而導致影象中所成的像發生形變。切向畸變主要是由於相機的裝配造成。理想的相機裝配結果是sensor的法線和lens的主光軸完全重合,lens的光軸恰好垂直於cmos的圓心處,但是事與願違,即使最精密的加工精度和裝配精度也無法保證此類狀態。這也就意味著拍攝得到的影象中心不是光軸的中心,光心和影象中心之間存在xshift,yshift,最終導致,實際物體在影象的形狀發生歪曲。另外,雙目相機的要求的兩個相機的光軸完全是平行,相機的各引數越一致越好,從而保證左右拍攝影象的一致性,同樣,現在的相機裝配精度難以在低成本的條件下達到很高的精度,左右相機的光軸的位移和各個方向的轉角誤差,直接影響左右影象校正以後的有效畫面篇幅的大小。現階段國內的部分鏡頭廠商通過aa裝置能過達到左右相機的光軸在10pixel左右的裝配精度,和日韓企業還差乙個檔次。

徑向畸變和切向畸變圖(matlab 老版本工具箱繪製)

在此,我們不得不鄭重提醒很多雙目視覺研究者,應該更加關注那些成本低,測距精度高,適應性強的「雙目產品」。雙目視覺理論發展已經數十年,應用領域仍然侷限於很多固定場景,最近幾年也開始應用在無人機和自動駕駛領域,但是依然面臨著測距精度和相機結構相矛盾的現狀。測距精度越高,左右雙目相機的位置的越要求絕對不變,但是,由於外力或環境溫度變化往往會導致相機結果發生微小變化(微公尺級別),最終導致測距精度急劇下降,或是隨著時間的累積,精度變差。當然,現階段的自標定演算法的魯棒性有待進一步提高。

現階段影響標定的精度的主要因素:

拍攝光線不佳,影象噪點較多,影響角點檢測的準確性。

opencv和matlab提供的角點檢測函式檢測出的角點座標,存在差異。下圖為拍攝同一標定板獲取的平行等位誤差和視差,左圖為matlab,右圖為opencv。做了大量實驗發現,opencv提供的角點檢測函式得到資料的方差比matlab的結果均要偏大。

一般而言,如果自己的專案對測距精度要求不是很好,自己隨便列印一張黑白棋盤格的標定板即可。但是對於車載雙目adas必須要求整個系統的高可靠性能。因此,需要特別定製高精度的標定板。下圖為使用兩張**相差接近10倍的標定板求出的板上角點處的視差。

(有緣千里來相會,雙目技術研究群 595083461)

車載雙目ADAS(七) 雙目相機的設計

近年來,基於公釐波雷達和雷射雷達的方案已經廣泛用於高階汽車,公釐波雷達的主要優勢體現在具有很強的抵抗環境干擾的能力,可穿透霧 煙 灰塵等,具有全天候全天時工作的能力,可直接檢測前方車輛的距離和速度。雷射雷達的主要優勢體現在極精準的測距能力。然而,不論是公釐波雷達還是雷射雷達,均存在一些致命缺點,比如...

ZED2雙目相機 IMU標定

本文主要使用了kalibr工具標定zed2雙目相機 imu,並執行vins fusion。闡述了標定板的選擇方法,以及標定中的注意事項。zed2相機標定及執行vins mono 用imu utils標定imu,之後用於kalibr中相機和imu的聯合標定 ubuntu16.04利用kalibr工具進...

ORB SLAM2 雙目稀疏立體匹配學習

這部分主要在frame.cc檔案中 對應函式為 frame frame const cv mat imleft,const cv mat imright,const double tamp,orbextractor extractorleft,orbextractor extractorright,...