乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      相機標(biāo)定(Camera calibration)原理、步驟

       昵稱67837330 2019-12-13

      author@jason_ql(lql0716)


      • 在圖像測量過程以及機器視覺應(yīng)用中,為確定空間物體表面某點的三維幾何位置與其在圖像中對應(yīng)點之間的相互關(guān)系,必須建立相機成像的幾何模型,這些幾何模型參數(shù)就是相機參數(shù)。在大多數(shù)條件下這些參數(shù)必須通過實驗與計算才能得到,這個求解參數(shù)的過程就稱之為相機標(biāo)定(或攝像機標(biāo)定)。無論是在圖像測量或者機器視覺應(yīng)用中,相機參數(shù)的標(biāo)定都是非常關(guān)鍵的環(huán)節(jié),其標(biāo)定結(jié)果的精度及算法的穩(wěn)定性直接影響相機工作產(chǎn)生結(jié)果的準(zhǔn)確性。因此,做好相機標(biāo)定是做好后續(xù)工作的前提,提高標(biāo)定精度是科研工作的重點所在。

      • 常用術(shù)語
        內(nèi)參矩陣: Intrinsic Matrix
        焦距: Focal Length
        主點: Principal Point
        徑向畸變: Radial Distortion
        切向畸變: Tangential Distortion
        旋轉(zhuǎn)矩陣: Rotation Matrices
        平移向量: Translation Vectors
        平均重投影誤差: Mean Reprojection Error
        重投影誤差: Reprojection Errors
        重投影點: Reprojected Points

      1、坐標(biāo)系的轉(zhuǎn)換

      1.1 世界坐標(biāo)系

      世界坐標(biāo)系(world coordinate)(xw,yw,zw)(xw,yw,zw),也稱為測量坐標(biāo)系,是一個三維直角坐標(biāo)系,以其為基準(zhǔn)可以描述相機和待測物體的空間位置。世界坐標(biāo)系的位置可以根據(jù)實際情況自由確定。

      1.2 相機坐標(biāo)系

      相機坐標(biāo)系(camera coordinate)(xc,yc,zc)(xc,yc,zc),也是一個三維直角坐標(biāo)系,原點位于鏡頭光心處,x、y軸分別與相面的兩邊平行,z軸為鏡頭光軸,與像平面垂直。

      1.3 世界坐標(biāo)系轉(zhuǎn)換為相機坐標(biāo)系

      ?????xcyczc1?????=[R0t1]?????xwywzw1?????[xcyczc1]=[Rt01][xwywzw1]

      其中RR為3*3的旋轉(zhuǎn)矩陣,tt為3*1的平移矢量,(xc,yc,zc,1)T(xc,yc,zc,1)T為相機坐標(biāo)系的齊次坐標(biāo),(xw,yw,zw,1)T(xw,yw,zw,1)T為世界坐標(biāo)系的齊次坐標(biāo)。

      1.4 像素坐標(biāo)系、圖像坐標(biāo)系

      • 圖1:
        此處輸入圖片的描述

      • 像素坐標(biāo)系(pixel coordinate)
        如圖1,像素坐標(biāo)系uovuov是一個二維直角坐標(biāo)系,反映了相機CCD/CMOS芯片中像素的排列情況。原點oo位于圖像的左上角,uu軸、vv軸分別于像面的兩邊平行。像素坐標(biāo)系中坐標(biāo)軸的單位是像素(整數(shù))。

        像素坐標(biāo)系不利于坐標(biāo)變換,因此需要建立圖像坐標(biāo)系XOYXOY,其坐標(biāo)軸的單位通常為毫米(mm),原點是相機光軸與相面的交點(稱為主點),即圖像的中心點,XX軸、YY軸分別與uu軸、vv軸平行。故兩個坐標(biāo)系實際是平移關(guān)系,即可以通過平移就可得到。

      • 圖像坐標(biāo)系轉(zhuǎn)換為像素坐標(biāo)系

      ???uv1???=???1/dX0001/dY0u0v01??????XY1???[uv1]=[1/dX0u001/dYv0001][XY1]

      其中,dXdX、dYdY分別為像素在XX、YY軸方向上的物理尺寸,u0,v0u0,v0為主點(圖像原點)坐標(biāo)。

      1.5 針孔成像原理

      圖2:
      此處輸入圖片的描述

      如圖,空間任意一點PP與其圖像點pp之間的關(guān)系,PP與相機光心oo的連線為oPoP,oPoP與像面的交點pp即為空間點PP在圖像平面上的投影。
      該過程為透視投影,如下矩陣表示:

      s???XY1???=???f000f0001000????????xyz1?????s[XY1]=[f0000f000010][xyz1]

      其中,ss為比例因子(ss不為0),ff為有效焦距(光心到圖像平面的距離),(x,y,z,1)T(x,y,z,1)T是空間點PP在相機坐標(biāo)系oxyzoxyz中的齊次坐標(biāo),(X,Y,1)T(X,Y,1)T是像點pp在圖像坐標(biāo)系OXYOXY中的齊次坐標(biāo)。

      1.6 世界坐標(biāo)系轉(zhuǎn)換為像素坐標(biāo)系

      s???uv1???=???1/dX0001/dY0u0v01??????f000f0001000???[R0t1]?????xwywzw1?????=???αx000αy0u0v01000???[R0t1]?????xwywzw1?????=M1M2Xw=MXws[uv1]=[1/dX0u001/dYv0001][f0000f000010][Rt01][xwywzw1]=[αx0u000αyv000010][Rt01][xwywzw1]=M1M2Xw=MXw

      其中,αx=f/dXαx=f/dX、αy=f/dYαy=f/dY,稱為uuvv軸的尺度因子,M1M1稱為相機的內(nèi)部參數(shù)矩陣,M2M2稱為相機的外部參數(shù)矩陣,MM稱為投影矩陣。

      2 相機內(nèi)參與畸變參數(shù)

      2.1 相機內(nèi)參

      • 參看1.6節(jié)所述

      2.2 畸變參數(shù)

      • 畸變參數(shù)(distortion parameters)

        畸變(distortion)是對直線投影(rectilinear projection)的一種偏移。

        簡單來說直線投影是場景內(nèi)的一條直線投影到圖片上也保持為一條直線。

        畸變簡單來說就是一條直線投影到圖片上不能保持為一條直線了,這是一種光學(xué)畸變(optical aberration),可能由于攝像機鏡頭的原因。

      • 畸變一般可以分為:徑向畸變、切向畸變

        1、徑向畸變來自于透鏡形狀
        2、切向畸變來自于整個攝像機的組裝過程

        畸變還有其他類型的畸變,但是沒有徑向畸變、切向畸變顯著

      • 畸變圖示
        此處輸入圖片的描述

      • 徑向畸變

        實際攝像機的透鏡總是在成像儀的邊緣產(chǎn)生顯著的畸變,這種現(xiàn)象來源于“筒形”或“魚眼”的影響。

        如下圖,光線在原理透鏡中心的地方比靠近中心的地方更加彎曲。對于常用的普通透鏡來說,這種現(xiàn)象更加嚴(yán)重。筒形畸變在便宜的網(wǎng)絡(luò)攝像機中非常厲害,但在高端攝像機中不明顯,因為這些透鏡系統(tǒng)做了很多消除徑向畸變的工作。
        此處輸入圖片的描述

        對于徑向畸變,成像儀中心(光學(xué)中心)的畸變?yōu)?,隨著向邊緣移動,畸變越來越嚴(yán)重。

      • 徑向畸變包括:枕形畸變、桶形畸變

      • 切向畸變

        • 切向畸變是由于透鏡制造上的缺陷使得透鏡本身與圖像平面不平行而產(chǎn)生的。

        • 切向畸變可分為:薄透鏡畸變、離心畸變

        • 切向畸變圖示:
          此處輸入圖片的描述

      2.2.1 opencv中的畸變模型

      • 徑向畸變模型:

      以下公式由泰勒展式得出,在opencv中K=1K=1r2=x2+y2r2=x2+y2, (x,y)(x,y)為真實坐標(biāo)(發(fā)生畸變),(x,y)(x′,y′)為理想坐標(biāo)。

      δxr=x(k1r2+k2r4+k3r6+K)δxr=x(k1r2+k2r4+k3r6+K)
      δyr=y(k1r2+k2r4+k3r6+K)δyr=y(k1r2+k2r4+k3r6+K)
      • 切向畸變模型:

      δxd=2p1xy+p2(r2+2x2)+Kδxd=2p1xy+p2(r2+2x2)+K
      δyd=2p1(r2+2y2)+2p2xy+Kδyd=2p1(r2+2y2)+2p2xy+K
      • 理想坐標(biāo)(x,y)(x′,y′)與真實坐標(biāo)(x,y)(x,y)

      x=x+δxr+δxdx′=x+δxr+δxd
      y=y+δyr+δydy′=y+δyr+δyd

      也即:

      [xy]=(1+k1r2+k2r4+k3r6)[xy]+[2p1xy+p2(r2+2x2)2p1(r2+2y2)+2p2xy][x′y′]=(1+k1r2+k2r4+k3r6)[xy]+[2p1xy+p2(r2+2x2)2p1(r2+2y2)+2p2xy]

      實際計算過程中,如果考慮太多高階的畸變參數(shù),會導(dǎo)致標(biāo)定求解的不穩(wěn)定。

      2.2.2 張氏標(biāo)定中的畸變模型

      • 張正友的方法只考慮了徑向畸變,沒有考慮切向畸變

      • 模型:

        yˉ=y+y[k1(x2+y2)+k2(x2+y2)2]yˉ=y+y[k1(x2+y2)+k2(x2+y2)2]

        其中k1k1,k2k2是徑向畸變系數(shù)(coefficients of the radial distortion)。

        像素坐標(biāo)表示為:

        uˉ=u+(u?u0)[k1(x2+y2)+k2(x2+y2)2]uˉ=u+(u?u0)[k1(x2+y2)+k2(x2+y2)2]
        vˉ=v+(v?v0)[k1(x2+y2)+k2(x2+y2)2]vˉ=v+(v?v0)[k1(x2+y2)+k2(x2+y2)2]

        即:

        [(u?u0)(x2+y2)(v?v0)(x2+y2)(u?u0)(x2+y2)2(v?v0)(x2+y2)][k1k2]=[uˉ?uvˉ?v][(u?u0)(x2+y2)(u?u0)(x2+y2)2(v?v0)(x2+y2)(v?v0)(x2+y2)][k1k2]=[uˉ?uvˉ?v]
        • 理想情況下(沒有畸變)圖片的像素坐標(biāo)為:

          (u,v)(u,v)
        • 真實的像素坐標(biāo)為:

          (uˉ,vˉ)(uˉ,vˉ)
        • 真實坐標(biāo)與理想坐標(biāo)的關(guān)系式(泰勒展開):
          (x,y)(x,y) and (xˉ,yˉ)(xˉ,yˉ) are the ideal (distortion-free) and real (distorted) normalized image coordinates.

          xˉ=x+x[k1(x2+y2)+k2(x2+y2)2]xˉ=x+x[k1(x2+y2)+k2(x2+y2)2]

      2.2.3 Tasi畸變模型

      • Tasi畸變模型同張氏畸變模型類似,也只考慮了徑向畸變

      2.3 相機標(biāo)定

      • 相機標(biāo)定步驟:

        1、打印一張棋盤格,把它貼在一個平面上,作為標(biāo)定物。
        2、通過調(diào)整標(biāo)定物或攝像機的方向,為標(biāo)定物拍攝一些不同方向的照片。
        3、從照片中提取棋盤格角點。
        4、估算理想無畸變的情況下,五個內(nèi)參和六個外參。
        5、應(yīng)用最小二乘法估算實際存在徑向畸變下的畸變系數(shù)。
        6、極大似然法,優(yōu)化估計,提升估計精度。

      3 Matlab相機標(biāo)定

      • 打開matlab,找到“Camera Calibrator”并打開

      此處輸入圖片的描述

      此處輸入圖片的描述

      • 在新窗口中選擇添加圖片“Add Images”

      此處輸入圖片的描述

      • 添加圖片之后,會有如下提示,設(shè)置棋盤格的實際大小之后,點擊ok

      此處輸入圖片的描述

      • 點擊“Calibrate”開始計算

      此處輸入圖片的描述

      • 點擊“Export Camera Parameters”,輸出到matlab命令窗口

      此處輸入圖片的描述

      此處輸入圖片的描述

      • 導(dǎo)出的數(shù)據(jù)如下:

      cameraParams = 
      
        cameraParameters (具有屬性):
      
         Camera Intrinsics
          IntrinsicMatrix: [3x3 double]
              FocalLength: [510.6720 511.9534]
           PrincipalPoint: [332.3800 238.4849]
                     Skew: 0
      
         Lens Distortion
              RadialDistortion: [0.0618 -0.4877]
          TangentialDistortion: [0 0]
      
         Camera Extrinsics
            RotationMatrices: [3x3x50 double]
          TranslationVectors: [50x3 double]
      
         Accuracy of Estimation
          MeanReprojectionError: 0.1923
             ReprojectionErrors: [77x2x50 double]
              ReprojectedPoints: [77x2x50 double]
      
         Calibration Settings
                              NumPatterns: 50
                              WorldPoints: [77x2 double]
                               WorldUnits: 'mm'
                             EstimateSkew: 0
          NumRadialDistortionCoefficients: 2
             EstimateTangentialDistortion: 0
      
      
      estimationErrors = 
      
        cameraCalibrationErrors (具有屬性):
      
          IntrinsicsErrors: [1x1 intrinsicsEstimationErrors]
          ExtrinsicsErrors: [1x1 extrinsicsEstimationErrors]
      • 在命令窗口輸入以下命令即可獲得內(nèi)參矩陣和徑向畸變:

      >> cameraParams.IntrinsicMatrix
      
      ans =
      
        510.6720         0         0
               0  511.9534         0
        332.3800  238.4849    1.0000
      
      >> cameraParams.RadialDistortion
      
      ans =
      
          0.0618   -0.4877

      參考資料

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多