Thanks Mark W. Spong for his great work of Robot Modelling and Control.
相機外部參數與內部參數
相機座標系與像素座標系
爲簡化公式,用以相機爲中心的座標系來表示物體座標是十分有效的。因此,定義相機座標系如下:包含檢測陣列的平面定義爲圖像平面;軸線
xc
和
yc
組成圖像平面的座標基,軸線
zc
垂直於圖像平面且與光軸對準,即它穿過鏡頭的焦點;相機座標系的原點位於圖像平面後距離爲一個焦距
λ
的位置;該店被稱爲投影中心 (center of projection);光軸與圖像平面的交點被稱爲主點(principal point)。
圖像平面中的任何一點都將具有座標
(u,v,λ)
,我們用
(u,v)
來指代圖像平面座標(image plane coordinate)。令
P
表示相對於相機參考系座標爲
(x,y,z)
的一個點,令
p
表示
P
在圖像平面內的投影,其座標爲
(u,v,λ)
。在針孔模型假設下:
k⎛⎝⎜xyz⎞⎠⎟=⎛⎝⎜uvλ⎞⎠⎟
即:
u=λxz,v=λyz
這些被稱爲
透視投影方程(perspective projection)。
圖像是一個離散的灰度值陣列,我們使用
(r,c)
來表示一個像素的行索引和列索引。下面我們確定平面座標
(u,v)
和像素座標
(r,c)
之間的關係。像素座標系的原點通常被取在圖像的邊角處,使用
(or,oc)
來表示包含主點的像素的像素座標。一般情況下感測元件不具有單位尺寸也未必是正方形。使用
sx
和
sy
來分別表示一個像素在水平和垂直兩個方向上的尺度。由於我們通常將相機投影中心放在圖像後方,像素陣列的水平和垂直軸線與相機座標系的水平和垂直軸線方向往往相反。基於以上描述,我們得到:
−usx=(r−or),−vsy=(c−oc)
這種關係僅是一種近似,由於像素座標是整數,現實中可以四捨五入。
外部參數
下面我們推導如何讓某一點
P
的座標
(x,y,z)
與其在圖像中的像素座標
(r,c)
聯繫起來,這叫做相機的標定。在典型的機器人應用中,任務往往是相對於世界座標系進行表達的,如果知道了相機座標系相對於世界座標系的位置和姿態,我們有:
xw=Rwcxc+Owc
或者說:
xc=Rcw(xw−Owc)
方便起見,我們定義:
R=Rcw,T=−RcwOwc
那麼
xc=Rxw+T
其中
R
和
T
一起被稱爲相機的
外部參數(extrinsic camera paramter)。
內部參數
從世界座標系到像素座標系可以通過以下公式得到:
r=−λsxxz+or,c=−λsyyz+oc
也就是說,一旦知道了
λ,sx,or,sy,oc
的取值,我們就可以由
(x,y,z)
確定
(r,c)
,其中
(x,y,z)
是相對於相機參考系的。事實上,如果知道以下比率:
fx=λsx,fy=λsy
就可以不需要
λ,sx,sy
。 參數
fx,or,fy,oc
被稱爲相機的
內部參數(intrinsic camera parameter),對於一個相機,這些參數是常數。
圖像中物體的位置和方向
下面我們介紹如何根據圖像得到被操作物體的位置和方向。
圖像矩
圖像矩是定義在圖像上的函數,用來描述圖像中物體的形狀大小等信息,對於圖像中的第
k
個物體, 其
i,j
矩記作
mij(k)
,定義如下:
mij(k)=∑r,cricjIk(r,c)
其中
Ik
是
指示函數(indicator function)定義如下:
Ik(r,c)={1像素 (r,c) 包含在區域 k 內0其它情況
那麼,可以看出,
m00
等於物體中像素的數目。圖像矩的階被定義爲
i+j
。
質心和中心矩
計算一個物體的質心時,一階矩十分有用:
m10(k)=∑r,crIk(r,c),m01(k)=∑r,ccIk(r,c)
物體的位置由
質心(centroid)定義。一個物體的質心爲座標等於
(r¯,c¯)
的點,並滿足以下條件:如果一個物體的所有質量集中在點
(r¯,c¯)
處,其一階矩保持不變。因此,我們有:
∑r,cr¯iIi(r,c)=∑r,crIi(r,c)⇒r¯i=∑r,crIi(r,c)∑r,cIi(r,c)=m10(i)m00(i)
∑r,cc¯iIi(r,c)=∑r,ccIi(r,c)⇒c¯i=∑r,ccIi(r,c)∑r,cIi(r,c)=m01(i)m00(i)
我們可以相對於物體的質心來計算圖像矩,通過這種方式,我們可以得到某些不隨物體平移而變化的特徵。這些圖像矩被稱爲
中心矩。第
k
個物體的
i,j
階中心矩定義如下:
Cij(k)=∑r,c(r−r¯k)i(c−c¯k)jIk(r,c)
物體的方向
我們將圖像中某個物體的方向定義爲穿過該物體軸線的方向,此時使得物體關於軸線的二階矩最小。這個軸線是最小慣量軸線的二維等價。對於圖像中一條給定的直線,物體關於該線的二階矩定義如下:
L=∑r,cd2(r,c)I(rj
Ik
(
r
,
c
)
物體的方向
我們將圖像中某個物體的方向定義爲穿過該物體軸線的方向,此時使得物體關於軸線的二階矩最小。這個軸線是最小慣量軸線的二維等價。對於圖像中一條給定的直線,物體關於該線的二階矩定義如下:
L=∑r,cd2(r,c)I(r,c)
其中
d(r,c)
是座標爲
(r,c)
的像素距離該直線的最小距離。儘可能減小
λ
才能夠使我們找到�