日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三维重建学习(2):相机标定基础

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三维重建学习(2):相机标定基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

在相機標定過程中,我們會碰到一些概念,比如:攝像機模型、世界坐標系、圖像坐標系等等。為便于理解推導,所以又整理了相關的筆記,介紹的都是些比較基礎的概念,也比較容易。

相機模型

針孔相機模型

注:下面的兩幅圖片摘自:
http://blog.csdn.net/xuelabizp/article/details/50314633

上圖是現實中針孔相機的成像模型,物體的投影與物體本身總是相反的。坐標也會是相反的,比較不方便。


正如前面所說的,實際的針孔相機模型,考慮起來不太方便,于是我們可以等效地表示成上圖所示形式(相似三角形,比例相同)。

注:下圖摘自:
https://www.cnblogs.com/Jessica-jie/p/6596450.html

如圖是一個小孔模型。

  • O點是相機中心,也就是小孔,同時也是整個相機坐標系的中心;
  • z軸是相機的主軸;
  • 坐標系oxyz構成了相機坐標系;
  • q點是點Q在像平面上的投影,所在平面為圖像坐標系;
  • O1點為主點,主軸與像平面相交的點;
  • 在像平面上的坐標系為圖像坐標系,其x、y軸與相機坐標系的x、y軸相平行;
  • O點到O1點的距離為相機的焦距f;

四個坐標系

攝像機中的坐標系有4個,均為右手坐標系,分別有:世界坐標系、相機坐標系、圖像坐標系、像素坐標系。后面用幾個簡寫字母分別表示:w、c、pic、pix。

  • 世界坐標系:(Xw,Yw,Zw),用戶自己定義的三維空間坐標系,表示物體在空間的實際位置,用來秒速三維空間中物體與相機之間的坐標位置關系,度量值為米(m);
  • 相機坐標系:(Xc,Yc,Zc),以相機的光心(前面的O點)為原點,Zc軸與光軸重合,垂直于成像平面,度量值為米(m);
  • 圖像坐標系:(Xpic,Ypic),位于圖像平面上,是個二維坐標系,XpicYpic分別與相機坐標系中的XcYc相平行,度量值為米(m);
  • 像素坐標系:(Xpix,Ypix),同樣位于圖像平面上,與圖像坐標系的區別:一、以左上角為原點;二、單位為像素。也經常表示為(u,v)
  • 坐標系之間的轉換

    世界坐標系 -> 相機坐標系

    設某點在世界坐標系中的坐標為(xw,yw,zw) (xw,yw,zw),在相機坐標系中的矩陣為(xc,yc,zc)
    則兩個坐標系之間的關系為:

    ???xcyczc???=R???xwywzw???+t
    其中: R為一個3×3的旋轉矩陣,T是一個 3×1的矩陣,表示偏移;
    表示成齊次形式:
    ?????xcyczc1?????=[R0t1]?????xwywzw1?????
    確定 R需要3個參數,確定t也需要3個參數,總計6個參數,稱為 外部參數

    相機坐標系 -> 圖像坐標系

    O點為原點建立相機坐標系,點Q(xc,yc,zc)為相機坐標系空間中的任意一點,假設該點被光線投影到平面上的q(xpic,ypic)點上。
    注意到小孔模型中的相似三角形關系,我們可以得到:

    fzc=xpicxc=ypicyc
    {xpic=fxczcypic=fyczc
    寫成矩陣形式:
    zc???xpicypic1???=???f000f0001000?????????xcyczc1?????

    圖像坐標系 -> 像素坐標系

    這里看下這個圖,很好理解:

    先設每個像素的物理尺寸為 dx×dy(mm2)
    那么對于點在像素坐標系中的坐標(u,v)

    ???u=u0+xpicdxv=v0+ypicdy
    寫成矩陣形式:
    ???uv1???=???????1dx0001dy0u0v01??????????xpicypic1???

    世界坐標系 -> 像素坐標系

    把前面幾個步驟都綜合一下:

    zc???uv1???=???????1dx0001dy0u0v01??????????f000f0001000????[R0t1]?????xwywzw1?????
    化簡一下:
    zc???uv1???=???fx000fy0u0v01000????[R0t1]?????xwywzw1?????
    其中: fx=fdx fy=fdy

  • 第一個矩陣中的fxfyu0v0這4個參數稱做相機的內部參數,因為他們只與相機有關,與其他因素無關;
  • 第二個矩陣中的RT,稱作相機的外部參數,因為只要世界坐標系和相機坐標系的相對位置關系發生改變,它們就會改變,每一張圖片的RT都是唯一的;
  • 單目攝像機標定就是在已知像素坐標系下的坐標和世界坐標系的坐標,求解出內部參數的過程。
  • 透鏡畸變

    到前面為止的內容都是有關針孔相機模型的,但是針孔可以透過的光線太少,成像慢且不清晰,所以往往都會加上凸透鏡以匯聚更多的光線。但是加上凸透鏡之后,不可避免地,就會產生透鏡畸變。透鏡畸變有兩種:徑向畸變、切向畸變。

    徑向畸變

    對于某些透鏡,光線在遠離透鏡中心的地方比靠近中心的地方彎曲更厲害,產生“筒形”或“魚眼”現象。
    一般來講,成像中興點的徑向畸變為0,越向邊緣移動,畸變越嚴重。通常,徑向畸變通過下面的公式來校正,常用偶次冪的泰勒公式描述徑向畸變:

    {xcorrected=x(1+k1r2+k2r4+k3r6)ycorrected=y(1+k1r2+k2r4+k3r6)
    其中: (x,y)為畸變點在成像平面上的原始位置, r為該點到成像面中心的距離,(xcorrected,ycorrected)為校正后的新位置。

    切向畸變

    切向畸變是由于攝像機制造上的缺陷使得透鏡本身與圖像平面不平行而產生的,可定量描述為:

    {xcorrected=x+[2p1y+p2(r2+2x2)]ycorrected=y+[p1(r2+2y2)+2p2x]
    其中: (x,y)為畸變點在成像平面上的原始位置, r為該點到成像面中心的距離,(xcorrected,ycorrected)為校正后的新位置。
    現在的攝像機一般不會產生切向畸變,所以通常不考慮其影響。

    透鏡畸變校正

    我們進行透鏡畸變校正,就是要確定k1k2k3p1p2這5個參數。

    相機標定

  • 相機標定得到的是4個內部參數,相機畸變校正得到的是5個畸變校正參數;
  • 單目相機標定常用的工具有OpenCV和MATLAB,下一篇博客再進行程序實現。
  • 參考資料:

  • http://blog.csdn.net/aptx704610875/article/details/48914043
  • http://blog.csdn.net/xuelabizp/article/details/50314633
  • https://www.cnblogs.com/Jessica-jie/p/6596450.html
  • 總結

    以上是生活随笔為你收集整理的三维重建学习(2):相机标定基础的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。