1. 基于Python進(jìn)行相機(jī)校準(zhǔn)

        共 2460字,需瀏覽 5分鐘

         ·

        2020-09-25 20:16

        點擊上方AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”

        重磅干貨,第一時間送達(dá)

        來源:小白學(xué)視覺
        相機(jī)校準(zhǔn)的目的是找到相機(jī)的內(nèi)在和外在參數(shù)。

        總覽

        為了校準(zhǔn)相機(jī),我們對3D對象(例如圖案立方體)成像,并使用3D對象與其2d圖像之間的3D-2D點對應(yīng)關(guān)系來查找相機(jī)參數(shù)。

        我們需要找到兩組參數(shù):內(nèi)在參數(shù)和外在參數(shù)。固有參數(shù)是攝像機(jī)內(nèi)部的那些參數(shù),例如焦距,主要點等,而固有參數(shù)是規(guī)定攝像機(jī)相對于攝像機(jī)的位置t(平移矢量)和方向R(旋轉(zhuǎn)矩陣)的參數(shù)。外部坐標(biāo)系(通常稱為世界坐標(biāo)系)。在第一部分中,我們將僅計算內(nèi)部參數(shù)(假設(shè)外部參數(shù)是已知的),而在第二部分中,我們將共同計算內(nèi)部參數(shù)和外部參數(shù)。

        內(nèi)部參數(shù)計算

        我們使用的校準(zhǔn)對象是魔方。

        我們對立方體進(jìn)行成像,如下圖所示。然后,我們獲得許多3D-2D點對應(yīng)關(guān)系。在這一部分中,我們已經(jīng)計算了點對應(yīng)關(guān)系,您要做的就是從它們中計算出固有參數(shù)。3D-2D對應(yīng)關(guān)系在數(shù)據(jù)文件“ pt_corres.mat”中給出。該文件包含“ pts_2D”,2D點和“ cam_pts_3D”以及所有對應(yīng)的3D點。現(xiàn)在,我們必須找到K矩陣

        K矩陣

        使3D與2D點相關(guān)的矩陣K是具有以下形狀的上三角矩陣。

        其中αx,αy表示以x和y像素尺寸表示的焦距,px和py是主要點,s是偏斜參數(shù)。

        2D點(x,y)與相應(yīng)3D點(X,Y,Z)之間的關(guān)系由下式給出

        1. x =αx(X / Z)+ s(Y / Z)+ px

        2. y =αy(Y / Z)+ py

        內(nèi)部和外部參數(shù)計算

        在上一部分中,我們假設(shè)已知外部參數(shù),然后計算了內(nèi)部參數(shù),即假設(shè)我們知道了相機(jī)坐標(biāo)系中的3D點對應(yīng)關(guān)系。但是這種情況很少發(fā)生。幾乎總是我們僅在世界坐標(biāo)系中知道3D點的對應(yīng)關(guān)系,因此我們需要估算內(nèi)在和外在參數(shù)。但是在此之前,我們需要獲取3D-2D點對應(yīng)關(guān)系。如圖1所示,相對于世界坐標(biāo)系描述了3D點。該圖顯示了世界坐標(biāo)系的x,y和z軸以及一些示例3D點,它們是正方形的角。有28點。

        1. 世界坐標(biāo)系中的3D點在rubik_3D_pts.mat中提供,圖像上相應(yīng)的2D點在rubik_2D_pts.mat中提供

        2. 接下來,我們要計算相機(jī)投影矩陣P = K [R t],其中K是內(nèi)部/本征校準(zhǔn)矩陣,R是旋轉(zhuǎn)矩陣,用于指定相機(jī)坐標(biāo)系與世界坐標(biāo)系的方向,而t是轉(zhuǎn)換向量,可以確定攝影機(jī)中心在世界坐標(biāo)系中的位置。

        3. 為了計算P,我們使用“直接線性變換(DLT)”。DLT是要理解的重要算法,下面將對其進(jìn)行詳細(xì)說明。

        離散線性變換(DLT)

        離散線性變換(DLT)是一種簡單的線性算法,用于從相應(yīng)的3空間和圖像實體估計攝像機(jī)投影矩陣P。相機(jī)矩陣的這種計算稱為切除。最簡單的這種對應(yīng)關(guān)系是在未知相機(jī)映射下的3D點X及其圖像x之間。給定足夠多的這種對應(yīng)關(guān)系,可以確定相機(jī)矩陣。

        算法

        假設(shè)給出了3D點和2D圖像點之間的許多點對應(yīng)關(guān)系。相機(jī)矩陣是一個3x4矩陣,它通過xi = P.Xi將點關(guān)聯(lián)起來。對于每個對應(yīng)關(guān)系Xi xi xi,我們得到三個方程,其中兩個線性獨立,在下面進(jìn)行描述
        步驟
        1. 從一組n個點對應(yīng)關(guān)系中,我們通過為每個對應(yīng)關(guān)系堆疊以上形式的方程式來獲得2nx12矩陣A
        2. 獲得A的SVD。對應(yīng)于最小奇異值的單位奇異向量是解p。具體來說,如果A = UDVT,D對角線帶有對角線正項,并按對角線降序排列,則p是V的最后一列
        3. 獲得p并以矩陣形式寫入以獲得矩陣P

        通過解方程組Ap = 0來計算投影矩陣P,其中p是包含矩陣P項的向量。


        計算P所需的最小點對應(yīng)數(shù)量

        3×4矩陣P具有12個元素,但比例是任意的,因此具有11個自由度。由于每個點的對應(yīng)關(guān)系都有2個方程,因此至少需要5.5個對應(yīng)關(guān)系才能求解P。0.5表示從第六個點開始僅使用一個方程,即我們選擇x坐標(biāo)或y-第六個圖像點的坐標(biāo)。

        在此最小數(shù)量的對應(yīng)關(guān)系下,該解決方案是精確的,并且可以通過求解Ap = 0來獲得,其中A在這種情況下為11x12矩陣。

        如果數(shù)據(jù)不精確,則給出n≥6個點對應(yīng)關(guān)系,那么將沒有精確的解決方案,我們通過最小化代數(shù)或幾何誤差來解決。

        從投影矩陣P獲得參數(shù)K,R和t

        通過RQ分解將P分解為K,R,t。它涉及計算分解A = RQ,其中Q為unit /正交,R為上三角。

        驗證計算參數(shù)的準(zhǔn)確性

        為此,我們將計算重新投影誤差,該誤差是對2D點與通過使用計算出的相機(jī)參數(shù)投影3D點而獲得的2D點之間距離的度量。

        該圖以橙色顯示了原始2D點,并以綠色顯示了重新投影的點。可以看出,重新投影的點與實際點非常匹配。

        參考文獻(xiàn)

        [1] R. Hartley and A. Zissermann, Multiview geometry, 2nd edition, Cambridge University Press.

        [2] Z. Zhang. A flexible new technique for camera calibration. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11):1330–1334, 2000.

        有關(guān)詳細(xì)代碼,請訪問https://github.com/sreenithy/Camera-Calibration。


        下載1:OpenCV黑魔法


        AI算法與圖像處公眾號后臺回復(fù):OpenCV黑魔法,即可下載小編精心編寫整理的計算機(jī)視覺趣味實戰(zhàn)教程


        下載2 CVPR2020

        AI算法與圖像處公眾號后臺回復(fù):CVPR2020,即可下載1467篇CVPR?2020論文
        個人微信(如果沒有備注不拉群!
        請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱


        覺得有趣就點亮在看吧


        瀏覽 48
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
          
          

            1. а天堂中文在线官网 | 欧美大乱交| www.日韩精品 | 精品人妻少妇一级毛片免费 | 国产性爱免费 |