各類相機以及圖片-SLAM14CP5

——2020.10.20學習

開始學習SLAM。想着從SLAM開始而後作三維重建。前面的李羣李代數以及旋轉四元數有點複雜。都看過了一遍。但不太理解就先放放。但願接下去可以順利進行。數學基礎可能不是很好,公式推導書中以及寫得十分詳細,主要是記錄我看SLAM的筆記,以及一些理解。blog

相機經過把三維世界的座標點映射到二維圖像平面。從單位米到單位像素。這個過程可以用一個幾何模型進行描述。咱們從最簡單的針孔相機模型提及。圖片

設O-x-y-z爲相機座標系。O爲攝像機的光心,也就是攝像頭的針孔。現實世界的空間點的P,通過小孔O投影以後成像P‘。由於成的是倒像因此要加一個負號。咱們對所成的像進行關於O點鏡像對稱。數學

 

大多數的相機輸出的圖像都不是倒像——相機自身的軟件會幫你反轉,因此也就是對稱的成像平面。在相機中,咱們最終得到的是一個一個的像素,咱們要對他進行採樣以及量化。咱們在物理成像平面固定一個像素平面o-u-v。咱們在像素獲得P‘的像素座標。基礎

像素座標系一般的定義方式:原點o’位於圖像的左上角,u軸向右,v軸向下。像素座標系與成像平面直接差了一個縮放和一個原點的平移。軟件

上面是關於相機內參的推導方式。上式中的K即是相機內參(內參數矩陣)。相機的內參在出廠後便已經肯定。咱們也能夠經過標定的方式來肯定相機內參。除了內參以外還有對應的外參。咱們使用的P是在相機座標系下的座標。可是,由於相機是在世界座標系下運動的,因此,相機的位置須要用相機的旋轉矩陣以及位移組成。反射

因此上式中對應的R,t即是相機的外參,隨相機的運動而變化。而後咱們對其進行歸一化處理以後。獲得對應的二維齊次座標Pc=[x/z,y/z,1]T,即是對應屏幕上的uv座標。im

爲了獲得更好的成像效果,咱們須要在鏡頭前增長一層透鏡,這樣會致使對圖形有影響。也就是會產生畸變。而畸變分爲兩種一種是徑向畸變,第二種就是切向畸變。第一種致使的緣由是光線在穿過透鏡的時候會致使光線的折射,致使原先在現實生活中的直線在圖像中呈曲線。這種如今越靠近邊緣越明顯,又由於透鏡成中心對稱,則在圖像中呈徑向對稱。又分爲兩種一種是桶形畸變,一種是枕形畸變。桶形是因爲圖像放大率隨着光軸的距離增長而減少,枕形則反之。d3

在相機組裝過程當中不能使得透鏡和成像平面嚴格平行會引入切向畸變。margin

咱們能夠用數學表達式對其進行表述。能夠用笛卡爾座標系以及極座標的形式來對屏幕上面的點進行描述。[X,Y]T->[Xcorrected,Ycorrected]T這個過程就是糾正事後的座標。要注意他們如今是歸一化平面上的點,不是像素平面上的點。

上式是對應的徑向畸變的座標調整公式。對於畸變比較小的圖像中心區域,畸變主要是k1起做用。對於畸變比較大的邊緣區域則是k2起做用。對於畸變比較大的鏡頭採用k3.下面則是切向畸變對座標的調整。主要由係數p1,p2進行修正.

 經過咱們學習上面的兩個模型,針孔相機模型以及畸變模型。咱們能夠把整個過程進行梳理。從相機座標系(X,Y,Z)->像素平面(u,v)
1.將三維空間點投影到歸一化圖像平面。
2.對歸一化平面上的進行徑向畸變和切向畸變糾正。

3.將糾正後的點經過內參數矩陣投影到像素平面。獲得該點在圖像平面的正確位置。

咱們能夠選擇先對圖像進行去畸變,而後討論他在空間中的位置。也能夠先考慮圖像中的某個點。進行去畸變,而後討論他在空間中的位置。

雙目相機模型
經過左右攝像機獲得視差來判斷物體距離咱們的位置,計算獲得視差以後估計每個像素的深度。

 

 

在左右攝像機,咱們能夠把他們當作兩個針孔相機。他們是水平放置的,意味着兩個相機的光圈中心位於x軸上,他們之間的距離稱爲雙目攝像機的基線。如今空間中一點P,在左眼以及右眼中各呈一像。因爲基線的存在,兩個成像位置不一樣,理想狀況下,兩個像只有在x軸上有差別。

視差與距離成反比,視差越大,距離越遠。因爲最小視差是一個像素,因而深度具備一個理論最大值。由fb決定。實際上看上去公式十分的簡潔,可是d在u行中很差肯定。可能雙目估計須要使用GPU或FPGA來計算。

RGB-D相機

1.紅外結構光。
2.飛行時間法(ToF)。
RGB-D都須要向探測目標發射一束光線。在結構光中,根據返回的結構光圖案,計算物體與自身的距離。飛行時間法,經過計算光線返回時間,ToF能直接對整個圖像發射激光獲得深度。而不用逐一像素進行發射。RGB-D須要多個相機進行放置,同時由於條件過於苛刻,爲了排除戶外因素必須在室內,對於透明的物體由於接受不到反射光則沒法肯定其位置。

圖像咱們從灰度圖開始提及。每一個像素位置對應一個灰度值。用一個字節來表示咱們能夠用二維矩陣來表示能夠設定第一個下標爲行,第二個下標爲列。而後在像素平面內原點在左上角。但當咱們想記錄比顏色更多的信息的時候咱們的一個字節就不夠用了。好比說咱們須要記錄深度可能須要用十六位整數進行記錄。當咱們使用彩色圖片的時候,則須要通道的概念此時RGB便須要24位,3個字節。當有透明度的時候則又要增長一位。用通道的方式進行訪問。

相關文章
相關標籤/搜索