該文章是對《計算機視覺增強現實應用概論》中《增強現實的攝像機空間理論》這一節進行摘錄和公式推導。
攝像機得到的是一個二位平面圖像,而增強現實的元素是三維動畫。增強現實系統可以將攝像機獲取的外部世界圖像通過矩陣變化,重構出一個三維的虛擬空間。該空間以攝像機爲座標原點,稱爲攝像機座標系。而以實物爲原點建立的座標系稱爲世界座標系。
攝像機運用棱鏡將獲取到的圖像通過小孔成像的方式縮小倒立着呈現在攝像機內部的感光組件上。
攝像機棱鏡三維原理投影圖
焦距F是棱鏡與攝像機感光片上投影出的圖像的距離,從圖中來看的話,感光片是在棱鏡的前面,這可能與攝像機的構造或成正像有關。Oc爲攝像機座標系的原點,對應的三個軸分別爲Xc、Yc、Zc,其中Zc稱爲主座標軸。C爲圖像的座標原點,位於圖像中心,U、V分別爲它的橫縱座標。
由圖可知,U和Xc、V和Yc分別相互平行
假設A點的座標爲(x,0),則根據三角形相似理論,投影到圖像上的座標爲U=F*X/Z;同理,V=F*Y/Z。
在這有個問題不太清楚,攝像機座標的(x,y)一定在感光片的範圍內嗎?有待解決。
由以上分析還可得出,將真實環境中的三維物體呈現在攝像機的平面圖像上,需要經過兩個步驟:
(1)將世界座標系上的一個點通過在三個軸上的旋轉以及位移變換,得到其在攝像機座標系中的位置。
(2)將該點的攝像機座標系位置通過攝像機自身的投影矩陣投影到平面圖像上。
第一步:
由上面的攝像機棱鏡三維原理投影圖可知,將攝像機座標系進行旋轉後再平移,可與世界座標系完全重合。
也就是說,這兩個座標系可以通過旋轉和平移來實現相互轉換,這可通過一個變換矩陣實現,這個矩陣稱爲攝像機的外部參數矩陣。
這個矩陣是怎麼得到的呢?現在作如下定義:
爲世界座標系中的座標;
爲攝像機座標系對應的座標;
Rcam是攝像機在世界座標系中的旋轉角度,即攝像機經過這個旋轉矩陣變換可與世界座標系平行;
Tcam是攝像機在世界座標系中的位移量,即攝像機經過Rcam後再經過Tcam平移可得到世界座標系;
Rc是作用於Pw並將其轉換到攝像機座標的旋轉矩陣,(具體推導代數學的不好,沒推,但很好理解,這兩個旋轉過程是互爲逆過程的嘛)
Tc是作用於Pw的位移矩陣,Tc=Tcam。
其中,,。
根據前面的分析,將攝像機旋轉平移可得到世界座標系,即
將上式進行變換,可得
由於Tc=Tcam,,所以
於是乎,只要知道旋轉矩陣Rc和平移矩陣Tc的具體參數,便可求出攝像機座標,完成first step。
怎麼求呢?且往下看。
(1)首先假定位移變換爲0,只有旋轉變換,即。爲了便於理解,首先假設世界座標系的旋轉變化只圍繞Z軸旋轉,不旋轉X軸和Y軸。
上圖中,黑色代表世界座標系,藍色代表經旋轉後得到的攝像機座標系,設旋轉角度爲,根據上圖的幾何關係可以得到:
所以Pc=RcPw可以展開爲如下形式:
同理可以得出只旋轉Y軸和只旋轉X軸情況下的旋轉矩陣。
由於整個旋轉過程可拆分爲分別只繞某一軸旋轉,所以Rc可得
敲得好心累啊,誰叫他是複雜的旋轉呢。。
外部參數矩陣是由旋轉矩陣和平移矩陣構成,Rc求出了,下一個要解決的就是Tc,這個比較直觀,將Pw減去兩個座標系原點差值即可。
根據,得
上式只是爲了說明,不一定滿足矩陣相乘的條件,計算時可再添加行或列。
第二步:
第二步是通過內部參數矩陣來實現的。
內部參數矩陣的作用是將攝像機座標系下的三維物體投影到感光片的二維平面上。
二位平面圖像一般是以像素爲單位計算長和寬的。內部參數包括:焦距F(米),單個像素寬Sx(米)和高Sy(米),焦距f=F/s(像素),圖像中心點(Ox,Oy)(像素),棱鏡的畸變參數k(一般可以忽略).
圖像平面示意圖
上圖中有兩個座標系,一個是以圖像中心爲原點的圖像座標系,單位爲米;另一個是以像素爲單位的像素座標系。前面提到計算圖像座標是以圖像座標系來計算的,轉換爲像素座標系則爲
u=(F/Sx)*(Xc/Zc)+Ox=fx*(Xc/Zc)+Ox
v=(F/Sy)*(Yc/Zc)+Oy=fy*(Yc/Zc)+Oy
所以,同一個平面點的像素單位表示(u,v)和常規單位表示(米)(x,y)之間的關係爲:
u=x/Sx+Ox
v=y/Sy+Oy
令S=(0,0,1),轉換爲矩陣表達形式爲:
Mint即爲內部矩陣。
一般來說,攝像機的內部參數矩陣是未知的,需要人工測量得到,這一過程稱爲攝像機校準。
整個變換過程完成了,第一次寫這麼長的博客,有點tired。簡單總結如下:
end at Library Wenzheng Li