在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

相機標定的邏輯和學習資料詳細概述

電子工程師 ? 來源:未知 ? 2019-06-01 09:54 ? 次閱讀

相機標定可以說是計算機視覺/機器視覺的基礎,但是初學者不易上手,本文將給讀者整理一遍相機標定的邏輯,并在文末回答評論區提出的問題。分為以下內容:

相機標定的目的和意義

相機成像過程的簡化與建模

針孔相機模型的數學描述

標定針孔相機模型的參數

相機標定的目的和意義

我們所處的世界是三維的,而照片是二維的,這樣我們可以把相機認為是一個函數,輸入量是一個場景,輸出量是一幅灰度圖。這個從三維到二維的過程的函數是不可逆的。

相機標定的目標是我們找一個合適的數學模型,求出這個模型的參數,這樣我們能夠近似這個三維到二維的過程,使這個三維到二維的過程的函數找到反函數。

這個逼近的過程就是「相機標定」,我們用簡單的數學模型來表達復雜的成像過程,并且求出成像的反過程。標定之后的相機,可以進行三維場景的重建,即深度的感知,這是計算機視覺的一大分支。

相機成像過程的簡化與建模

提到相機的成像,從根本上來說,就是在討論相機的鏡頭。固定結構的相機鏡頭決定了一對固定的物像共軛關系,所謂「共軛」,意思是鏡頭前某個位置的物,它的像一定在鏡頭后的某個位置,這個關系是固定的。舉個最簡單的例子,無窮遠處的物必然會在鏡頭的焦點處成像。這里說的固定結構,指的是鏡頭的焦距固定,光圈固定。

上圖是Canon EF 85mm/F1.2L II USM,我們可以找一個與這個鏡頭具有相同的物像共軛關系的凸透鏡來等效這個鏡頭,我們把這個凸透鏡稱作等效透鏡,用朝外的雙箭頭表示,如下圖。

這里說的等效,只是針對物像共軛關系的等效,也就是光路的等效,鏡頭中之所以用了形態各異的透鏡主要是為了消除各種各樣的像差,提高清晰度。換句話說,等效透鏡的目的絕不是為了在實際應用中取代鏡頭(畢竟一個鏡頭都好貴),只是為了幫助我們理解。這樣我們就可以畫出相機拍攝到清晰的蠟燭燃燒場景的草圖,如下圖。

其中, 是火苗尖的物點, 是火苗尖的像點 , 是蠟燭根的物點,是蠟燭根的像點, ?是等效透鏡的中心(也稱為光心),紅色虛線表達了物點 ?到 像點成像光路中的兩條,綠色虛線表達了物點 到像點 成像光路中的兩條,紅色是CCD面。注意,剛剛說到我們畫的是「相機拍攝到清晰的蠟燭燃燒場景的草圖」,這表明像點 和像點 剛好落在CCD面上,那么假如像點沒有落在CCD面上,也就是CCD拍攝的圖像不清晰,我們如何確定像點的位置?

根據幾何光學的作圖法,由過等效透鏡的焦點 的光線和過光心 的光線,我們可以作出像點 的位置,現在我們對「相機拍攝到清晰的蠟燭燃燒場景的草圖」同樣用作圖法,只考慮 點的物像關系。

這樣我們就能夠得到成像光路中的4條:①是過透鏡上邊沿的光路,④是過透鏡下邊沿的光路,②是過等效透鏡焦點的光路,③是過光心的光路。它們都表達了物點 與像點 的物像共軛關系,顯然③過光心的光路是最容易建立物像共軛關系數學模型,因此我們用③來代表成像光路,對相機成像過程進行簡化。

到這里我們發現,簡化后的相機模型和針孔相機的成像原理很相似,因此我們把簡化后的相機模型稱為針孔相機模型。上圖中的 是針孔相機模型的焦距,但請注意,此針孔相機「焦距」非彼等效透鏡「焦距」,只是借用了「焦距」匯聚光線的概念,表達的是CCD面到光心的距離。

但是我們說的是簡化后的相機模型和針孔相機的成像原理僅僅是相似,絕不能等同,由于針孔相機的原理是光沿直線傳播,所以真實的針孔相機是沒有「焦距」的概念的,也不存在像差,其物像關系不具有一一對應性,如下圖。

所以準確的講把相機的成像過程簡化成針孔相機模型,只是借用了針孔相機中簡單的數學關系來表達一些本來難以表達的數學關系,使得數學上大大降低了復雜性,但是這個簡化的代價同樣很大,它本身不考慮像差(雖然針孔相機模型補充了消畸變模型)、不考慮景深(針孔相機模型物像關系不具有一一對應性,認為凡是物總能成清晰像),并且假定等效透鏡是薄透鏡。所以說針孔相機模型僅僅是一種真實相機的成像過程的近似,甚至于我們可以說這是一種非常粗糙的近似,這使得這個模型對越符合針孔相機模型的真實相機近似程度越高,如網絡攝像頭、手機鏡頭、監控探頭等等。

針孔相機模型的描述

我們對相機成像過程進行簡化和建模得到了針孔相機模型,如下圖示。

首先建立相機坐標系,我們以光心 為坐標系的原點, 方向是CCD像素排列的水平和豎直兩個方向, 方向垂直與CCD面,建立右手坐標系,這是一個三維坐標系。其次,我們還需要建立CCD標號坐標系:以CCD左上角像素標號為原點,CCD像素排列的水平和豎直兩個方向為 方向,這是一個二維坐標系。為了方便描述,我們之后將把針孔相機模型對稱翻轉過來,如下圖所示,從數學的角度,它們是等價的。

由光心著光軸出發,像平面在上,是相機的物理焦距(單位:)。

在空間中,在相機坐標系下的位置是

在像平面上,有兩個等價的位置描述:1. 在相機坐標系下的位置是;2. 在CCD標號坐標系下的位置是

在無鏡頭畸變的條件下,光心、點與點在一條直線上。

是CCD單個像素在水平和豎直兩個方向上的尺寸(單位:/像素),因此定義焦距為(單位:像素)。

CCD標號坐標系原點到光軸的偏移量為(單位:像素)。根據相似三角形關系,可以得出:

(1) 二維CCD標號坐標二維CCD像素坐標建立CCD像面上的點標號坐標與物理坐標之間關聯,由于像平面在上,可省略。

(2) 像點的二維像素坐標物點的三維空間中的坐標建立CCD像面上像點物理坐標與對應的三維空間中物點坐標之間關聯。

(3) 像點的二維CCD標號坐標物點的三維空間中的坐標連接(1)和(2)的兩個關聯,也是實際進行標定得到參數

由以上三個關聯可以得到:像點標號像點坐標物點坐標

在OpenCV及Matlab標定工具箱直接使用了(3)關聯,不需要知道CCD單個像素的尺寸,因此在標定過程是得不到物理焦距的,只能得到像素焦距

很容易發現,(3)關聯是不約束的,也就是說,針孔相機模型本身是欠定的,通過被點亮的CCD像素我們只能知道物點在射線上,但無法確定具體的點,所以我們講,針孔相機模型是一個射線方程模型,點的射線方程:

以上的關系是在無鏡頭畸變的條件下建立的,但是實際上存在鏡頭畸變,可以理解成像點和物點之間的光線是彎曲的,要得到射線模型,要進行消除畸變。

(4) 補充消畸變模型

以像面中心像素坐標為中心,像面上的點到中心的距離為

合成畸變其中:

徑向畸變

切向畸變

把消畸變模型補充進針

孔相機模型,因此「像點標號像點坐標物點坐標」被修正為:像點標號像點坐標物點坐標消畸變后的射線方程是:

標定針孔相機模型的參數

針孔相機模型中,只要確定這9個參數就可以唯一的確定針孔相機模型, ,這個過程就稱為「相機標定」,其中前4個我們稱為內參數,后5個稱為畸變參數,畸變參數是為了補充內參的。所以一旦相機結構固定,包括鏡頭結構固定,對焦距離固定,我們就可以用這9個的參數去近似這個相機。這里說的「鏡頭結構固定」,按我個人的理解,除了焦距固定之外,也應當包含光圈固定,因為改變光圈的大小,除了景深之外,是有可能改變針孔相機模型中的光心位置,但是影響并不是很大。這意味著標定好的相機如果改變光圈大小,會使得標定誤差變大但應該不會大到難以接受的地步。對于針孔相機本身需要擬合的方程如下:

其中 代表了畸變圖像和消畸變圖像之間的變換。因此,我們現在的任務就是找出一大堆具有對應關系的像點 和物點 的點對作為樣本,來訓練出模型的9個參數 。那么這里就引發了兩個問題:(1) 這么多像點和物點到底誰和誰是一對兒?(2) 即便我知道物點在哪里,可是我怎么樣用相機坐標系來表達物點的位置 ?為了解決上述的兩個問題,標定板應運而生。標定板的第一大作用,確定物點和像點的對應性。這里用到的原理主要是「透視不變性」,打個比方,你近看一個人和遠看一個人,雖然他的鼻子大小變了,你看鼻子的視角也變了,但是拓撲結構肯定是不變的,你也不可能把鼻子看成是嘴巴。

所以在標定板中,印刷了拓撲結構,廣泛應用的是棋盤格和圓點格,這兩種之所以成為主流,不僅是因為它們的拓撲結構明確且均勻,更重要的是檢測其拓撲結構的算法簡單且有效。棋盤格檢測的是角點,只要對拍攝到的棋盤格圖像橫縱兩個方向計算梯度就可獲得;而圓點格的檢測只需要對拍攝到的圓點格圖樣計算質心即可。假如你開發了一套非常完美的檢測人臉全部特征的算法,你完全可以用你的照片當作標定板。按照我的經驗,圓點格的效果應該是好于棋盤格,因為圓點質心的「透視不變性」要比棋盤格的角點穩定的多。下圖是同樣尺寸、同樣比例棋盤格和圓點在最大重投影誤差處的誤差對比,紅色十字是提取的角點/質心,綠色圓圈是針孔相機模型計算出來認為的角點/質心位置。

下圖是棋盤格與圓點格的重投影誤差圖,顯然圓點格的重投影誤差的誤差空間要小。

但是圓點格的檢測似乎是Halcon的專利(存疑),因此OpenCV和Matlab標定工具箱用的是棋盤格,要用圓點格得要自己寫算法。下文中提到的標定板說的都是棋盤格。標定板的第二大作用是把標定板中的角點變換到相機坐標系下的坐標 。對于標定的初學者來說,很容易忽略的一點是標定板是具有標定板坐標系的。換句話說,標定板中的每個角點,在標定板坐標系下的位置是確定并且是已知的。

而標定板坐標系變換到相機坐標系的變換矩陣,我們稱它的元素為外參數,所以在我眼中,相機標定的外參根本就是標定內參的副產品,它會隨著標定板的擺放不同而不同,由標定板坐標系變換到相機坐標系的變換矩陣可以由下式表達:

其中, 稱為旋轉矩陣, 稱為平移矩陣,下表 代表board to camera。注意這個坐標系的變換是一個線形變換,反應到物理上講,這意味者標定板必須盡可能的平,如果標定板不平,這個變換就不是線形的了。我們把這個變換帶到原本要擬合的方程中去:

如此一來,我們就把能夠把CCD上拍攝的到角點的像素標號 和每一個角點已知的在標定板坐標系下的坐標 對應起來,通過各種各樣的姿態作為樣本,訓練出全部參數

至于參數訓練的方法,最小二乘,極大似然估計等等,很容易找到相關的資料,在此不再贅述。如果用OpenCV或Matlab標定工具箱進行標定,需要給出棋盤格的物理尺寸,這其實就是在建立標定板坐標系,從測量的角度講,標定板的精度是相機標定精度的基準,是誤差傳遞鏈上的第一個環節。所以為了使針孔相機模型更逼近真實相機,對標定板的質量有以下要求(按重要性順序):

標定板的平面度高,棋盤格是直角;

標定板每個格子尺寸的高一致性;

真實尺寸與標稱尺寸的差異小。

向祖師爺張正友致敬。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 相機
    +關注

    關注

    4

    文章

    1369

    瀏覽量

    53914
  • 機器視覺
    +關注

    關注

    162

    文章

    4406

    瀏覽量

    120734
  • 計算機視覺
    +關注

    關注

    8

    文章

    1700

    瀏覽量

    46128

原文標題:相機標定究竟在標定什么?

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    相機標定示例(OpenCV /C++ /matlab工具箱TOOLBOX_calib)精選資料分享

    這里相機標定主要內容包括:圖像的采集、相機參數獲取、TOOLBOX_calib可視化描述一、相機標定感謝博主的代碼分享,這里主要參考了一些(
    發表于 08-18 07:24

    CALIBRATION相機標定模塊

    matrox mil開發資料:CALIBRATION相機標定模塊
    發表于 12-10 16:32 ?8次下載

    相機標定介紹

    什么是攝相機標定?攝相機標定方法的分類?感興趣的小伙伴們可以瞧一瞧。
    發表于 09-22 12:04 ?0次下載

    opencv相機標定原理與步驟

    我們首先介紹下計算機視覺領域中常見的三個坐標系:圖像坐標系,相機坐標系,世界坐標系。以及他們之間的關系。然后介紹如何使用張正友相機標定標定相機。攝像機
    發表于 12-04 16:56 ?1.8w次閱讀
    opencv<b class='flag-5'>相機</b><b class='flag-5'>標定</b>原理與步驟

    TI的邏輯器件詳細中文資料概述

    本文檔的主要內容詳細介紹的是TI的邏輯器件中文資料概述
    發表于 07-02 08:00 ?10次下載
    TI的<b class='flag-5'>邏輯</b>器件<b class='flag-5'>詳細</b>中文<b class='flag-5'>資料</b><b class='flag-5'>概述</b>

    數字電子技術教程之邏輯代數基礎的詳細資料概述

    本文檔的主要內容詳細加速度是數字電子技術教程之邏輯代數基礎的詳細資料概述包括了:概述2 .邏輯
    發表于 10-17 08:00 ?0次下載
    數字電子技術教程之<b class='flag-5'>邏輯</b>代數基礎的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    數字電路基礎教程之時序邏輯電路的詳細資料概述

    本文檔的主要內容詳細介紹的是數字電路基礎教程之時序邏輯電路的詳細資料概述。內容包括了:1.時序邏輯電路分析2.若干常用時序
    發表于 10-17 08:00 ?0次下載
    數字電路基礎教程之時序<b class='flag-5'>邏輯</b>電路的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    STM32Cube學習教程之時鐘樹配置的詳細資料概述

    本文檔的主要內容詳細介紹的是STM32Cube學習教程之時鐘樹配置的詳細資料概述
    發表于 08-14 08:00 ?3次下載
    STM32Cube<b class='flag-5'>學習</b>教程之時鐘樹配置的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    應該如何學習STM32資料概述

    本文檔的主要內容詳細介紹的是教你應該如何學習STM32資料概述
    發表于 11-08 14:45 ?26次下載
    應該如何<b class='flag-5'>學習</b>STM32<b class='flag-5'>資料</b><b class='flag-5'>概述</b>

    HALCON的3D相機標定

    轉自:微信公眾號AI圖像 創建標定數據模型 你可以用算子create_calib_data創建一個標定數據模型,指定相機標定物體的數量。當用一個
    的頭像 發表于 10-31 11:31 ?4101次閱讀
    HALCON的3D<b class='flag-5'>相機</b><b class='flag-5'>標定</b>

    相機標定含義(解決什么是相機標定

    在大多數條件下,這些參數必須通過實驗與計算才能得到。無論是在圖像測量或者機器視覺應用中,相機參數的標定都是非常關鍵的環節,其標定結果的精度及算法的穩定性直接影響相機工作產生結果的準確性
    的頭像 發表于 06-21 11:12 ?8467次閱讀

    基于深度學習相機標定技術挑戰

    該數據集包括了不同仿真環境下生成的合成數據,以及不同場景下由各類真實相機采集到的圖像和視頻序列。每一個數據樣本均提供了準確的標定結果、相機參數、或視覺線索。
    發表于 04-10 10:45 ?434次閱讀

    如何學習相機模型與標定

    相機標定是通過輸入帶有標定patter的標定板來獲得相機參數的一個過程。實際的光學成像是一套非常復雜的過程,從三維世界投影到
    的頭像 發表于 06-01 14:36 ?805次閱讀
    如何<b class='flag-5'>學習</b><b class='flag-5'>相機</b>模型與<b class='flag-5'>標定</b>?

    雙目相機標定的原理和方法

    首先,課程介紹了雙目相機標定的基礎知識。我了解到雙目相機是由兩個相機組成的系統,通過同時拍攝目標物體的兩個視角來獲取三維信息。
    的頭像 發表于 07-03 14:25 ?3316次閱讀
    雙目<b class='flag-5'>相機</b><b class='flag-5'>標定</b>的原理和方法

    相機標定究竟在標定什么?

    這個逼近的過程就是「相機標定」,我們用簡單的數學模型來表達復雜的成像過程,并且求出成像的反過程。標定之后的相機,可以進行三維場景的重建,即深度的感知,這是計算機視覺的一大分支。
    的頭像 發表于 10-18 17:00 ?1059次閱讀
    <b class='flag-5'>相機</b><b class='flag-5'>標定</b>究竟在<b class='flag-5'>標定</b>什么?
    主站蜘蛛池模板: 亚洲高清美女一区二区三区 | 亚洲天天综合网 | 456主播喷水在线观看 | 啊用力太猛了啊好深视频免费 | 亚洲国产精品婷婷久久 | 日日噜噜噜噜人人爽亚洲精品 | 国产不卡毛片 | 天堂福利视频 | 欧美三级视频在线播放 | 免费人成激情视频在线观看冫 | 拍拍拍交性免费视频 | 婷婷视频网 | 四虎久久影院 | 日本免费色网站 | 操美女免费视频 | 亚洲国产成人久久99精品 | 乌克兰毛片 | 亚洲精品一区二区中文 | 日本三级吹潮 | 俄罗斯小屁孩cao大人免费 | 可以免费看黄色的网站 | 成人看片免费无限观看视频 | 日韩精品免费一区二区三区 | 日本天堂影院在线播放 | 天天射夜夜爽 | av72成人 | 久久好色| 2018国产大陆天天弄 | 亚洲综合激情六月婷婷在线观看 | 欧美特黄三级在线观看 | 国产精品亚洲色图 | 福利视频网址 | 日韩一级特黄毛片在线看 | 91成人免费观看 | 亚洲zscs综合网站 | 日本午夜大片a在线观看 | 亚洲黄色录像 | 欧美午夜激情影院 | 四虎永久免费在线观看 | 亚洲一区二区影视 | 久久这里只有精品免费视频 |