2D到3D 外參矩陣估計

2022-05-28 04:09:10 字數 1795 閱讀 5528

1. 背景

最近正在做姿態估計,簡單搜姿態估計的關鍵字得到的資訊不夠完整,所以把搜到的資訊加上自己的理解整合在這篇文章。

2. 正向3d到2d的過程

首先3d物體在世界座標系,也就是我們現實世界,物體是現實中的絕對尺寸,以m為單位。現實世界的物體認為成剛體,那麼這個剛體和相機之間會有乙個相對位置。對於物體來說,是以自身的中心為原點,需要把自身的尺寸對映到以相機光心為原點的相機座標系。也就是對物體的絕對座標做一些平移和旋轉,變換座標的圓心和軸向。

物體經過鏡頭(透鏡)在焦距位置成像,也就是圖中最左邊的像平面。這個像平面是以o1-xy為座標系的。根據透鏡成像原理,這個成像和實際物體相比是倒像,然而我們希望得到的是正像,所以就在對稱位置取了虛擬像平面,這個就是影象座標系。在影象座標系中的尺寸大小是和感光元件(sensor size)相關的,以mm為單位。通常在相機說明書裡以 μm 為單位給出,例如:image area:5856 μm x 3276 μm。看上圖的右半部分,相機座標系的物體平面和影象座標系與相機光心形成金字塔結構,所以可以利用相似性得出變化座標。下圖中的(xc,yc,zc)是指物體在相機座標系中的座標。

由圖就很容易得出:

畫素座標系是指視覺化後的座標系,也叫是通常左上角為原點,向右向下為正方向的座標系。在影象座標系還需要變換到畫素座標系才能得到我們看得到的。畫素是離散化的點,而成像是連續的,因此從影象座標系到畫素座標系的轉換也叫離散化。在不考慮畸變和仿設的情況下,變換公式如下:

(u,v)是畫素座標系座標,(x,y)是影象座標系座標。dx和dy是計算出來的畫素大小。

整個轉換過程如下:

影象物理轉畫素座標系和相機座標系到影象物理座標系的復合就是相機的內參矩陣,而世界座標系到相機座標系的轉換就是內參矩陣。

3. 2d到3d姿態估計

這個問題定義是:在有2d特徵點的情況下找到3d旋轉的外參矩陣,也就是找到上圖中的世界座標系到相機座標系的變換矩陣。很顯然,我們需要知道內參矩陣,畫素2d座標和3d世界座標才能求解外參矩陣。內參矩陣可以使用相機標定或者說明書引數估計方法。相機標定用棋盤格的方法很多部落格教程,就不在這裡重述,主要寫一下根據給定資料估算的方法:

假設攝像頭的焦距為4mm,像片的尺寸大小為640x480,感測器尺寸為5856 μm x 3276 μm,畫素大小為3μm x 3μm。即f=4, dx = 640/5.856, dy=480/3.276。u0 = 640/2, v0 = 480/2。從而內參矩陣可以直接代入引數得出。

以頭部姿態估計為例,3d世界座標就是給出實際物理模型(3dmm)的3d特徵點,對應的2d特徵點可以通過很多演算法獲得。之後可以通過solvepnp的方法求解外參矩陣。

參考:由相機的自身引數求解內參矩陣

3d點投影到2d螢幕,矩陣計算

最近在優化vibe輸出的3d關節點抖動問題。需要將3d點投影到2d螢幕上。3d點通過相機投影到2d螢幕上,通過一系列矩陣相乘可以求得。但是具體操作實現說明太少,本文用來記錄投影流程的實現。附python實現 3d 轉 2d 的流水線如下 世界座標系 相機座標系 投影矩陣 畫素對映 生成 世界座標系和...

2D轉換 3D轉換

轉換是使元素改變形狀 尺寸和位置的一種效果。能夠對元素進行移動 縮放 轉動 拉長或拉伸。2d轉換 瀏覽器相容 1 internet explorer 10 firefox 以及 opera 支援 transform 屬性。2 chrome 和 safari 需要字首 webkit 3 interne...

2D縮放和3D位移

2d 平面空間的元素變形。變形屬性 transform transform的屬性值為功能函式。2d功能函式 2d的位移 2d的旋 2d的縮放 2d的傾斜 transform translate x,y 位移 transform translatex x軸移動的距離 transform transla...