總結(jié)|機(jī)器視覺中三大坐標(biāo)系及其相互關(guān)系
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
作者:林青春 鏈接:https://zhuanlan.zhihu.com/p/59289459 本文轉(zhuǎn)載自知乎,作者已授權(quán),未經(jīng)許可請勿二次轉(zhuǎn)載。
機(jī)器視覺系統(tǒng)有三大坐標(biāo)系,分別是:1、世界坐標(biāo)系,2、攝像機(jī)坐標(biāo)系,3、圖像(像素)坐標(biāo)系。
1、世界坐標(biāo)系
世界坐標(biāo)系(Xw,Yw,Zw)是目標(biāo)物體位置的參考系,根據(jù)運(yùn)算方便自由設(shè)置圓點(diǎn)位置,可以位于機(jī)器手底座或者機(jī)器手前端執(zhí)行器上。
其主要作用有
(1)盛放物體的三維坐標(biāo);
(2)標(biāo)定的時候根據(jù)原點(diǎn)確定標(biāo)定物的位置;
(3)給定出兩個攝像機(jī)相對于世界坐標(biāo)系的位置,從而求出兩個或多個相機(jī)之間的坐標(biāo)關(guān)系;
2、攝像機(jī)坐標(biāo)系
攝像機(jī)坐標(biāo)系(Xc,Yc,Zc)是攝像機(jī)在自己角度上的坐標(biāo)系,原點(diǎn)在攝像機(jī)的光心上,Z軸與攝像機(jī)光軸平行,即攝像機(jī)的鏡頭拍攝方向。
3、圖像(像素)坐標(biāo)系
3.1、圖像坐標(biāo)系
圖像坐標(biāo)系(x,y)單位米或毫米,是連續(xù)圖像坐標(biāo)或者空間坐標(biāo),以圖片對角線交點(diǎn)作為基準(zhǔn)原點(diǎn)建立的坐標(biāo)系。
3.2、像素坐標(biāo)系
像素坐標(biāo)系(u,v)單位尺度為一個pixel,是離散圖像坐標(biāo)或像素坐標(biāo),原點(diǎn)在圖片的左上角。
4、坐標(biāo)系之間的關(guān)系
當(dāng)我們在圖片中確定了某個物體的位置,如何讓機(jī)器手去到空間中的實(shí)際位置進(jìn)行抓取呢?這就需要對坐標(biāo)進(jìn)行轉(zhuǎn)換。而從像素點(diǎn)到空間點(diǎn)的轉(zhuǎn)換與空間點(diǎn)到像素點(diǎn)的轉(zhuǎn)換是相反的,我們先將后者的推導(dǎo)過程。
4.1、圖像坐標(biāo)系與像素坐標(biāo)系
圖像坐標(biāo)系與像素坐標(biāo)系的關(guān)系為:
dx代表一個像素的寬度(x方向),與x同單位,x/dx表示x軸上有多少個像素,同理y/dy表示y軸上的像素個數(shù),(u0,v0)是圖像平面中心。

將上述關(guān)系轉(zhuǎn)換為矩陣形式:
4.2、相機(jī)坐標(biāo)系與圖像坐標(biāo)系
從相機(jī)坐標(biāo)系到圖像坐標(biāo)系是一個三維坐標(biāo)到二維坐標(biāo)(3D->2D)的過程,稱之為透視投影變換。為了求解它們之間的關(guān)系,將普通圖像坐標(biāo)(x,y)拓展為齊次坐標(biāo)(x,y,1)。空間中的某點(diǎn),投影到圖像平面上的點(diǎn)與相機(jī)的光心在一條直線上。以光心為原點(diǎn)建立相機(jī)坐標(biāo)系:

根據(jù)相似三角形關(guān)系可以得到以下:
f為相機(jī)焦距(相機(jī)光心到成像平面的距離)
用矩陣形式表示為:
統(tǒng)一將成像平面上的點(diǎn)用(u,v)表示:
得圖像點(diǎn)與空間點(diǎn)的關(guān)系為:
4.3、世界坐標(biāo)系與相機(jī)坐標(biāo)系
世界坐標(biāo)(Xw,Yw,Zw)與相機(jī)坐標(biāo)(Xc,Yc,Zc)同為三維坐標(biāo)(右手系,三軸互相垂直),兩個坐標(biāo)系的關(guān)系為剛體變換(剛體變換:當(dāng)物體不發(fā)生形變時,對一個幾何物體作旋轉(zhuǎn),平移的運(yùn)動)??梢韵葢{空想象下,有兩個坐標(biāo)系A(chǔ)與B,如何將A坐標(biāo)系下的坐標(biāo)轉(zhuǎn)換到B坐標(biāo)系表示,首先將A坐標(biāo)系以原點(diǎn)為基準(zhǔn)任意旋轉(zhuǎn),使其x軸,y軸,z軸與B坐標(biāo)軸平行且同方向,接著平移AB坐標(biāo)系原點(diǎn)的直線距離,就可以將A坐標(biāo)系下的坐標(biāo)轉(zhuǎn)換到B坐標(biāo)系,這個旋轉(zhuǎn)Rotation與平移Transport就是需要求得的兩個三維坐標(biāo)之間的關(guān)系。
用以下等式表示兩個坐標(biāo)系之間的關(guān)系:
其中旋轉(zhuǎn)矩陣R可以看成空間坐標(biāo)分別沿著X,Y,Z軸的三個旋轉(zhuǎn)矩陣點(diǎn)乘得到的結(jié)果。
當(dāng)繞Z軸旋轉(zhuǎn)θ角度,新舊坐標(biāo)的關(guān)系為:
用矩陣表示為:
同理,繞X軸,Y軸旋轉(zhuǎn)φ和ω角度,可以得到:
于是,得到旋轉(zhuǎn)矩陣R = R1*R2*R3,維度為3X3,T為平移矩陣,維度為3X1。
拓展為其次坐標(biāo):

4.4、從世界坐標(biāo)到像素坐標(biāo)
綜合上面推導(dǎo)的過程,世界坐標(biāo)(Xw,Yw,Zw)—>相機(jī)坐標(biāo)(Xc,Yc,Zc)—>圖像坐標(biāo)(x,y)—>像素坐標(biāo)(u,v),以上順序用矩陣表示為不斷左乘下一步,即:
等式右邊的前兩個矩陣稱的乘積為相機(jī)內(nèi)參,第三個矩陣稱為相機(jī)外參,后面的單目相機(jī)標(biāo)定,就是為了求解相機(jī)的內(nèi)外參數(shù)。
好消息!
小白學(xué)視覺知識星球
開始面向外開放啦??????
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程 在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講 在「小白學(xué)視覺」公眾號后臺回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計算機(jī)視覺。 下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講 在「小白學(xué)視覺」公眾號后臺回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個基于OpenCV實(shí)現(xiàn)20個實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。 交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

