国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一文理清相機(jī)內(nèi)參和外參矩陣的來(lái)龍去脈 -- review向

這篇具有很好參考價(jià)值的文章主要介紹了一文理清相機(jī)內(nèi)參和外參矩陣的來(lái)龍去脈 -- review向。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


Auther:SeaHIRobot
date: 2023-05-03


最近在做一門(mén)課程的項(xiàng)目,在pybullet中復(fù)現(xiàn)GGCNN的機(jī)械臂視覺(jué)抓取的深度學(xué)習(xí)網(wǎng)絡(luò)。在搭建仿真環(huán)境時(shí),又回到了繞不開(kāi)的相機(jī)內(nèi)參和外參。借此機(jī)會(huì)對(duì)相機(jī)內(nèi)參外參這一套進(jìn)行一個(gè)review,對(duì)這個(gè)問(wèn)題進(jìn)行一個(gè)邏輯梳理。

因此本文不建議純小白閱讀,很多基礎(chǔ)概念不會(huì)細(xì)講,適合對(duì)相機(jī)內(nèi)參外參有一定了解但不完全熟練的同學(xué)。

下面的鏈接是來(lái)自pybullet官方Doc中對(duì)相機(jī)內(nèi)參的推薦閱讀,講的非常生動(dòng)。

Dissecting the Camera Matrix, Part 3: The Intrinsic Matrix ←

這里的知乎文章也推薦閱讀,內(nèi)容詳細(xì):

zhuanlan.zhihu.com

Problem Defination - 問(wèn)題定義

我們?yōu)槭裁匆芯績(jī)?nèi)參外參呢?這些東西有什么意義呢?

思考一下你目前想干的事情,你有一個(gè)相機(jī),你想通過(guò)相機(jī)來(lái)提取場(chǎng)景信息,而通過(guò)相機(jī)你能獲得到的僅僅是由rgb像素構(gòu)成的2d畫(huà)面。從3d的世界中,映射出一個(gè)2d的畫(huà)面,這是相機(jī)的功能。你想做的,是通過(guò)相機(jī)輸出的2d畫(huà)面,獲取3d信息,那么這中間就存在著2d的像素空間和3d的真實(shí)空間的一個(gè)變換

我們要做的恰恰是尋找這種變換的一種數(shù)學(xué)表達(dá),借助相機(jī)2d的由像素構(gòu)成的畫(huà)面,完成我們提取場(chǎng)景信息的任務(wù)。

”圖片里2d的像素點(diǎn)位 → \rightarrow 3d的世界坐標(biāo)系中的點(diǎn)位“

這個(gè)任務(wù)既有3d的坐標(biāo)變換,又有像素的2d點(diǎn)位向?qū)嶋H的空間坐標(biāo)之間的尺度變換,怎么進(jìn)一步拆分好讓我們理解呢?那就是一步一步來(lái)咯。

”2d像素點(diǎn)位 → \rightarrow 3d相機(jī)坐標(biāo)系點(diǎn)位 → \rightarrow 3d世界坐標(biāo)系點(diǎn)位“

到這里不熟悉相機(jī)坐標(biāo)系和齊次變換的同學(xué)請(qǐng)自行上網(wǎng)百科學(xué)習(xí)。

Pinhole Camera - 針孔相機(jī)

為什么講針孔相機(jī)?這個(gè)模型有什么用?

因?yàn)樗且粋€(gè)很好理解這個(gè)問(wèn)題的簡(jiǎn)單的模型,你可以簡(jiǎn)單得認(rèn)為所有相機(jī)都是這么成像的;

內(nèi)參矩陣,數(shù)碼相機(jī),計(jì)算機(jī)視覺(jué),人工智能,深度學(xué)習(xí)

(圖源http://ksimek.github.io/2013/08/13/intrinsic)

圖中的box就是相機(jī),小孔就是鏡頭。光路從環(huán)境中射入,通過(guò)小孔,最終在film上呈現(xiàn)倒像。倒像看起來(lái)比較煩,不如我們把按照相似三角形(或著說(shuō)沿著Pinhole對(duì)稱一下)到樹(shù)的一邊,就成了正像,如下圖。(不用糾結(jié)這樣做有什么意義,問(wèn)就是方便看/doge,下面聊內(nèi)參的時(shí)候你將會(huì)看到有了操作有多奇妙)

內(nèi)參矩陣,數(shù)碼相機(jī),計(jì)算機(jī)視覺(jué),人工智能,深度學(xué)習(xí)

(圖源https://zhuanlan.zhihu.com/p/389653208)

使用簡(jiǎn)單的相似三角形,貌似就可以解決針孔相機(jī)的問(wèn)題。但如果事情再?gòu)?fù)雜一點(diǎn)呢?

比如:

  • 被拍攝平面(圖里的樹(shù))和film不是平行的
  • film中心并不在Pinhole軸線上,有垂直軸線平面的偏移
  • 實(shí)際的鏡頭有畸變,不符合針孔攝像頭的簡(jiǎn)單的相似三角形變換
  • blablabla…

下面就有請(qǐng)內(nèi)參矩陣(intrinsic matrix)登場(chǎng),進(jìn)一步刻畫(huà)這個(gè)問(wèn)題。

Intrinsic Matrix - 內(nèi)參矩陣

首先,內(nèi)參矩陣長(zhǎng)這個(gè)熊樣子:
I n t r i n s i c ? M a t r i x = ( f x s x 0 0 f y y 0 0 0 1 ) Intrinsic \ Matrix=\left(\begin{array}{c} f_x & s & x_0 \\ 0 & f_y & y_0 \\ 0 & 0 & 1 \end{array}\right) Intrinsic?Matrix= ?fx?00?sfy?0?x0?y0?1? ?

先不糾結(jié)里面的參數(shù),他干了一件什么事呢?見(jiàn)公式
( u v 1 ) = 1 z c ( f x s x 0 0 f y y 0 0 0 1 ) ( x c y c z c ) \left(\begin{array}{c} u \\ v \\ 1 \end{array}\right) = \frac{1}{z_c}\left(\begin{array}{c} f_x & s & x_0 \\ 0 & f_y & y_0 \\ 0 & 0 & 1 \end{array}\right) \left(\begin{array}{c} x_c \\ y_c \\ z_c \end{array}\right) ?uv1? ?=zc?1? ?fx?00?sfy?0?x0?y0?1? ? ?xc?yc?zc?? ?

它連接了像素平面的2d點(diǎn)相機(jī)系;

u和v指定了像素平面內(nèi)的點(diǎn)位,腳標(biāo)c代表了相機(jī)坐標(biāo)系。 z c z_c zc?是相機(jī)坐標(biāo)系的z方向坐標(biāo),換一個(gè)說(shuō)法,就是“深度”。前面的 1 z c \frac{1}{z_c} zc?1?也就是做z方向歸一化,也可以把它寫(xiě)進(jìn)后面的 ( x c , y c , z c ) T (x_c,y_c,z_c)^T (xc?,yc?,zc?)T里,那么相機(jī)坐標(biāo)系里的坐標(biāo)就變成了在z方向歸一化之后的坐標(biāo)了。下面的圖很好的闡釋了這個(gè)過(guò)程,同時(shí)也解釋了把真實(shí)像對(duì)稱過(guò)來(lái)的妙處(因?yàn)榭雌饋?lái)真的舒服)。

內(nèi)參矩陣,數(shù)碼相機(jī),計(jì)算機(jī)視覺(jué),人工智能,深度學(xué)習(xí)

(自己畫(huà)的,湊合看吧)

把上面的式子求個(gè)逆,就從像素坐標(biāo)得到了在相機(jī)系中的坐標(biāo):
( x c y c z c ) = z c ( f x s x 0 0 f y y 0 0 0 1 ) ? 1 ( u v 1 ) \left(\begin{array}{c}x_c \\ y_c \\ z_c \end{array}\right) = {z_c}\left(\begin{array}{c} f_x & s & x_0 \\ 0 & f_y & y_0 \\ 0 & 0 & 1 \end{array}\right)^{-1} \left(\begin{array}{c} u \\ v \\ 1 \end{array}\right) ?xc?yc?zc?? ?=zc? ?fx?00?sfy?0?x0?y0?1? ??1 ?uv1? ?

那 Intrinsic Matrix 里面的參數(shù)是干嘛的呢???為什么x和y方向都有一個(gè)焦距???s究竟是什么??? x 0 x_0 x0? y 0 y_0 y0?到底用什么convention???

這里我簡(jiǎn)短回答一下:

  • 有兩個(gè)焦距的原因是實(shí)際傳感器和理想模型的偏差,工藝、像素的幾何形狀等原因
  • s s s描述了axis skew,傳感器繞主軸的旋轉(zhuǎn)程度,理想情況如仿真環(huán)境中,那 s s s就是0了(總不可能在相機(jī)組裝的時(shí)候懟的準(zhǔn)準(zhǔn)的吧,不是吧不是吧)
  • x o x_o xo? y 0 y_0 y0?描述了主軸偏移。因?yàn)閦軸都?xì)w一化了,歸一化的便利是可以用scaling的方式描述像素尺寸,那 x 0 x_0 x0? y 0 y_0 y0?的單位順理成章的也是像素了。因?yàn)槲覀兠枋鰣D片的像素坐標(biāo)時(shí)候,一般都是左上角為原點(diǎn),x軸向右,y軸向下,在理想情況如仿真環(huán)境中,那 x 0 x_0 x0?就是1/2的傳感器寬度(像素值), y 0 y_0 y0?就是1/2的傳感器高度(像素值);當(dāng)圖片是640x480的時(shí)候, x 0 x_0 x0?就是320, y 0 y_0 y0?就是240。

詳細(xì)的話還是參考http://ksimek.github.io/2013/08/13/intrinsic文章里的解釋,作者還配上了交互式窗口,可以直觀的感受內(nèi)參矩陣的參數(shù)帶來(lái)的影響(真的不是我懶,不是…)

Extrinsic Matrix - 外參矩陣

上面我們借助內(nèi)參矩陣完成了像素點(diǎn) ( u , v ) (u,v) (u,v)到對(duì)應(yīng)的相機(jī)坐標(biāo)系下的點(diǎn) ( x c , y c , z c ) (x_c,y_c,z_c) (xc?,yc?,zc?),那么想要最重要獲得 ( u , v ) (u,v) (u,v)對(duì)應(yīng)的世界坐標(biāo)系中的點(diǎn),那還不好辦,只需要知道變換矩陣 Transfer Matrix 就可以了。所以外參矩陣就是單純的相機(jī)系到約定的世界坐標(biāo)系的 4by4 的 齊次變換矩陣

齊次變換掌握不牢固的自行補(bǔ)一補(bǔ)。

到這里,我們最后用公式梳理一下怎么從二維像素點(diǎn)位鼓搗到三維世界坐標(biāo)點(diǎn)位的:
第一步: ( x c y c z c ) = z c ( f x s x 0 0 f y y 0 0 0 1 ) ? 1 ( u v 1 ) 第二步: ( x w y w z w ) = H c w ( x c y c z c ) M i s s i o n ? c o m p l e t e d . 第一步:\left(\begin{array}{c}x_c \\ y_c \\ z_c \end{array}\right) = {z_c}\left(\begin{array}{c} f_x & s & x_0 \\ 0 & f_y & y_0 \\ 0 & 0 & 1 \end{array}\right)^{-1} \left(\begin{array}{c} u \\ v \\ 1 \end{array}\right) \\ \\ 第二步:\left(\begin{array}{c} x_w \\ y_w \\ z_w \end{array}\right) = H_{c}^{w}\left(\begin{array}{c} x_c \\ y_c \\ z_c \end{array}\right) \\ \\ Mission \ completed. 第一步: ?xc?yc?zc?? ?=zc? ?fx?00?sfy?0?x0?y0?1? ??1 ?uv1? ?第二步: ?xw?yw?zw?? ?=Hcw? ?xc?yc?zc?? ?Mission?completed.

相機(jī)標(biāo)定

在仿真環(huán)境中,是不用標(biāo)定的,按照理想情況構(gòu)造就行了。

使用真實(shí)攝像頭就涉及到標(biāo)定的環(huán)節(jié),通過(guò)標(biāo)定我們其實(shí)就是為了擬合出像模像樣的Intrinsic Matrix和Extrinsic Matrix,好讓我們完成這個(gè)從二維像素平面提取世界中的三維信息的任務(wù)。

完結(jié)

覺(jué)得有用點(diǎn)個(gè)贊文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-762634.html

到了這里,關(guān)于一文理清相機(jī)內(nèi)參和外參矩陣的來(lái)龍去脈 -- review向的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 計(jì)算機(jī)視覺(jué)(相機(jī)標(biāo)定;內(nèi)參;外參;畸變系數(shù))

    計(jì)算機(jī)視覺(jué)(相機(jī)標(biāo)定;內(nèi)參;外參;畸變系數(shù))

    目錄 一、預(yù)備知識(shí) 1、坐標(biāo)系變換過(guò)程(相機(jī)成像過(guò)程) (1)相機(jī)坐標(biāo)系轉(zhuǎn)換為圖像坐標(biāo)系(透視投影變換遵循的是針孔成像原理) (2)齊次坐標(biāo)的引入原因:(為什么引入齊次坐標(biāo)???) 2、內(nèi)參與外參矩陣的構(gòu)成 3、畸變參數(shù) 二、相機(jī)標(biāo)定 1、張正友標(biāo)定法(光學(xué)標(biāo)

    2024年02月07日
    瀏覽(23)
  • (九)相機(jī)內(nèi)參、外參、反透視變換python  opencv

    (九)相機(jī)內(nèi)參、外參、反透視變換python opencv

    任務(wù)需求:將相機(jī)上的一個(gè)點(diǎn)投影到真實(shí)世界平面上去。 原則上單目相機(jī)是不可以的,因?yàn)橹挥涗浟硕S信息,真實(shí)世界是三維的,雙目相機(jī)可以通過(guò)視差,或者單目+IMU組合,但是 由于特征點(diǎn)在地面上的先驗(yàn)知識(shí) ,因此可以進(jìn)行反透視變換。方法有很多種那個(gè),這里采用計(jì)

    2024年02月06日
    瀏覽(35)
  • 相機(jī)校準(zhǔn)—外參矩陣

    相機(jī)校準(zhǔn)—外參矩陣

    在本文中,我們將探討攝影機(jī)的外參,并通過(guò)Python中的一個(gè)實(shí)踐示例來(lái)加強(qiáng)我們的理解。 相機(jī)外參 攝像頭可以位于世界任何地方,并且可以指向任何方向。我們想從攝像機(jī)的角度來(lái)觀察世界上的物體,這種從世界坐標(biāo)系到攝像機(jī)坐標(biāo)系的轉(zhuǎn)換被稱為攝像機(jī)外參。 那么,我們

    2023年04月16日
    瀏覽(23)
  • 相機(jī)內(nèi)參矩陣K和fov的相互轉(zhuǎn)換

    相機(jī)內(nèi)參矩陣K和fov的相互轉(zhuǎn)換

    fov? f? height之間關(guān)系 ?????????從圖可以很直觀的看出fov_y 焦距f和圖像高之間的關(guān)系,tan(fov_y/2) = 2/h / fy.所以正反向的轉(zhuǎn)換過(guò)程就很直接。f以pixel為單位。

    2024年02月11日
    瀏覽(29)
  • 標(biāo)定(內(nèi)參、外參)

    在計(jì)算機(jī)視覺(jué)中,特別是在相機(jī)標(biāo)定和立體視覺(jué)領(lǐng)域,內(nèi)參(intrinsic parameters)和外參(extrinsic parameters)是非常重要的概念。它們與相機(jī)的幾何屬性和姿態(tài)有關(guān)。 內(nèi)參(Intrinsic Parameters) : 內(nèi)參是描述相機(jī)內(nèi)部屬性的參數(shù),包括焦距、主點(diǎn)(光學(xué)中心)坐標(biāo)、畸變系數(shù)等。

    2024年02月14日
    瀏覽(25)
  • OpenCV開(kāi)發(fā)筆記(七十七):相機(jī)標(biāo)定(二):通過(guò)棋盤(pán)標(biāo)定計(jì)算相機(jī)內(nèi)參矩陣矯正畸變攝像頭圖像

    OpenCV開(kāi)發(fā)筆記(七十七):相機(jī)標(biāo)定(二):通過(guò)棋盤(pán)標(biāo)定計(jì)算相機(jī)內(nèi)參矩陣矯正畸變攝像頭圖像

    若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/136616551 各位讀者,知識(shí)無(wú)窮而人力有窮,要么改需求,要么找專業(yè)人士,要么自己研究 紅胖子(紅模仿)的博文大全:開(kāi)發(fā)技術(shù)集合(包含Qt實(shí)用技術(shù)、樹(shù)莓派、三維、OpenCV、OpenGL、

    2024年03月13日
    瀏覽(32)
  • 一文解釋mapState的來(lái)龍去脈

    一文解釋mapState的來(lái)龍去脈

    mapState Vuex 提供的輔助函數(shù)之一,將 store 中的狀態(tài)映射到組件的計(jì)算屬性中,使得在組件中可以輕松地訪問(wèn) Vuex store 中的狀態(tài)值 MapState(映射狀態(tài)) 在我們的 Count.vue 組件中,可以使用 mapState 來(lái)更簡(jiǎn)潔地獲取 count 的狀態(tài)值 首先,導(dǎo)入 mapState : 然后,在 computed 中使用 mapState :

    2024年02月07日
    瀏覽(20)
  • 【相機(jī)標(biāo)定】相機(jī)內(nèi)參

    【相機(jī)標(biāo)定】相機(jī)內(nèi)參

    相機(jī)在計(jì)算機(jī)視覺(jué)方面的一些應(yīng)用一般需要相機(jī)標(biāo)定。我們總是聽(tīng)到標(biāo)定這個(gè)詞,那么具體標(biāo)定的是什么呢?相機(jī)的拍攝是一個(gè)三維到二維(透視投影)的過(guò)程,這個(gè)過(guò)程可以用數(shù)學(xué)模型去表述,標(biāo)定便是計(jì)算這個(gè)數(shù)學(xué)模型中的參數(shù),我們最終希望通過(guò)這些參數(shù)能夠從二維的

    2023年04月10日
    瀏覽(29)
  • matlab相機(jī)標(biāo)定求得相機(jī)內(nèi)參

    matlab相機(jī)標(biāo)定求得相機(jī)內(nèi)參

    可以去官網(wǎng)下載標(biāo)定板,然后使用我們的相機(jī)進(jìn)行拍照(10~15張即可): 下載請(qǐng)點(diǎn)擊這里:here 在拍攝照片之前,先量取對(duì)應(yīng)的每個(gè)方格的長(zhǎng)度: 如下: 打開(kāi)MATLAB的命令行: 輸入 cameraCalibrator #調(diào)用標(biāo)定的工具箱 添加的是剛剛我們拍照標(biāo)定板的圖片。 點(diǎn)擊運(yùn)行按鈕 參數(shù)導(dǎo)出

    2024年02月09日
    瀏覽(31)
  • 相機(jī)內(nèi)參標(biāo)定理論篇------相機(jī)模型選擇

    相機(jī)內(nèi)參標(biāo)定理論篇------相機(jī)模型選擇

    當(dāng)拿到一款需要標(biāo)定內(nèi)參的相機(jī)時(shí),第一個(gè)問(wèn)題就是選擇那種的相機(jī)模型來(lái)標(biāo)定相機(jī)。首先對(duì)相機(jī)類型進(jìn)行分類,然后針對(duì)相機(jī)類型選擇相機(jī)模型。工程上相機(jī)類型的劃分并不是十分嚴(yán)格,一般來(lái)說(shuō)根據(jù)相機(jī)FOV可以把相機(jī)大概分為以下幾類: 長(zhǎng)焦相機(jī):=? 標(biāo)準(zhǔn)相機(jī):~; 廣角

    2024年02月04日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包