1. 程式人生 > >世界座標系與攝像機座標系的變換

世界座標系與攝像機座標系的變換

該文章是對《計算機視覺增強現實應用概論》中《增強現實的攝像機空間理論》這一節進行摘錄和公式推導。


      攝像機得到的是一個二位平面圖像,而增強現實的元素是三維動畫。增強現實系統可以將攝像機獲取的外部世界影象通過矩陣變化,重構出一個三維的虛擬空間。該空間以攝像機為座標原點,稱為攝像機座標系。而以實物為原點建立的座標系稱為世界座標系。

       攝像機運用稜鏡將獲取到的影象通過小孔成像的方式縮小倒立著呈現在攝像機內部的感光元件上。

                            

                                                                   攝像機稜鏡三維原理投影圖

      焦距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