計算機視覺中,常用的有三個坐標系:圖像坐標系、相機坐標系和世界坐標系。
它們之間的關系,可以通過三個變換來表示:仿射變換,投影變換,剛體變換,這三個變換是三維重構幾何框架的基礎。
通過這三個變換,可將三維空間中的點坐標 (Xw, Yw, Zw),與二維圖像中的像素坐標 (u, v) 對應起來。
1 圖像坐標系
圖像坐標系,是在像平面內,以二維圖像為基准所建立的坐標系。根據單位的不同,可分為 像素坐標 (單位 = 像素個數) 和 物理尺寸坐標 (單位 = mm)
1.1 分類
像素坐標 (u, v) 中,原點 為圖像左上角點,坐標軸 為 u 軸 和 v 軸,表示物體所在的行數和列數
物理尺寸坐標 (x, y) 中,原點 為圖像的主點,也即光軸與像平面的交點,坐標軸 為 x 軸 (平行 u 軸) 和 y 軸 (平行 v 軸),表示物體的尺寸大小
1.2 仿射變換
當相機調整好焦距后,相機透鏡中心點到像平面的距離是固定的,此時,像平面內每個像素的尺寸大小也變成了固定值。
假設每個像素在 x 軸和 y 軸 方向上的物理尺寸分別為 dx 和 dy,則在忽略相機成像畸變的情況下,像素坐標和物理尺寸坐標的轉換關系如下:
$\begin{cases} u = \dfrac{x}{d_{x}} + u_{0} \\ v = \dfrac{y}{d_{y}} + v_{0} \end{cases} $
兩者的齊次坐標轉換關系為:
$\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \dfrac{1}{d_{x}} & 0 & u_{0} \\ 0 & \dfrac{1}{d_{y}} & v_{0} \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y \\ 1 \end{bmatrix} $
這樣,就建立了圖像中,像素坐標和物理尺寸坐標之間的對應關系。
2 相機坐標系
相機坐標系 $(Xc, Yc, Zc)$中,原點 為相機透鏡的中心,坐標軸 Xc 軸與 x 軸平行,Yc 軸與 y 軸平行,Zc 軸與相機光軸重合
2.1 小孔成像
相機是三維物體和所成二維圖像之間的一種映射,常用的小孔成像模型,如下圖所示:
2.2 投影變換
設相機的焦距為 f,則根據小孔成像模型,可知相機坐標系下空間點 $(Xc, Yc, Zc)$,與物理尺寸坐標 $(x, y)$ 的關系如下:
$\begin{cases} \dfrac{x}{f} = \dfrac{X_{c}}{Z_{c}} \\ \dfrac{y}{f} = \dfrac{Y_{c}}{Z_{c}} \end{cases} $ => $\begin{cases} Z_{c} \cdot x = f \cdot {X_{c}} \\ Z_{c} \cdot y = f \cdot {Y_{c}} \end{cases} $ => $ Z_{c} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = \begin{bmatrix} f & 0 & 0 & 0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \\ 1 \end{bmatrix} $
像素坐標 $(u, v)$ 與相機坐標點 $(Xc, Yc, Zc)$ 的關系為:
$ Z_{c} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \dfrac{1}{d_{x}} & 0 & u_{0} \\ 0 & \dfrac{1}{d_{y}} & v_{0} \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} f & 0 & 0 & 0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \\ 1 \end{bmatrix} = \begin{bmatrix} \dfrac{f}{d_{x}} & 0 & u_{0} & 0 \\ 0 & \dfrac{f}{d_{y}} & v_{0} & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \\ 1 \end{bmatrix}$
3 世界坐標系
世界坐標系,是實際物體位置的參考系,它和 相機坐標系 的轉換關系,就是一個剛體變換,具體見 立體視覺 之 剛體變換
$ \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \end{bmatrix} = \begin{bmatrix} R & T \end{bmatrix} \begin{bmatrix} X_{w} \\ Y_{w} \\ Z_{w} \end{bmatrix}$
這樣,就建立了圖像中的 像素點 (u, v) 和 世界坐標中的 空間點 (Xw, Yw, Zw) 之間的對應關系。
世界坐標系,可根據運算的方便,來自由放置。若世界坐標系和相機坐標系重合,則 $R$ 為單位矩陣,$T$ 為零矩陣,即:
$ \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} X_{w} \\ Y_{w} \\ Z_{w} \end{bmatrix}=\begin{bmatrix} X_{w} \\ Y_{w} \\ Z_{w} \end{bmatrix}$
小結
這樣,像素點 (u, v), 通過相機內參 A,轉換為相機坐標下的 (Xc, Yc, Zc),再經過 $RT$ 變換,便可得到世界坐標下的 (Xw, Yw, Zw)
$ Z_{c} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \dfrac{f}{d_{x}} & 0 & u_{0} & 0 \\ 0 & \dfrac{f}{d_{y}} & v_{0} & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} R & T \\ 0^{T} & 1 \end{bmatrix} \begin{bmatrix} X_{w} \\ Y_{w} \\ Z_{w} \\ 1 \end{bmatrix}$
后記
兩個問題:第一,上式 $Z_{c}$ 未知,也即投影變換的縮放比例不確定;第二,一個像素坐標點 (u,v),雖能轉化為空間點坐標 (Xw, Yw, Zw),但並沒有 成像物體的特征點 與其對應
針對上述問題,有三個解決思路:一是放置 比例尺,另一個是 雙目視覺,最后是 結構光
參考資料
<視覺測量> 張廣軍,第2章,第 7章