相機的那些事兒-概念、模型及標定

無懸發表於2016-10-28

canon

說起相機大家都比較熟悉,現在已經是手機的標配和賣點,而且做的非常便捷易用,隨便按都能拍出不錯的照片,但如果想更手動、更專業一點,或者將相機用於工業應用(如機器視覺、攝影測量等),還是需要了解一下成像方面的東西,本文力求通俗易懂,先介紹一些相機相關的基本概念,然後對相機的標定過程進行簡單的闡述。

一、基本概念

1、景深

我們拍照片的時候常有“虛化”的效果,其實就是利用“景深”來突出重點:

dof

上圖只有中間部分是清晰的,遠景和近景都模糊掉,原理上從下圖可以理解

dof2

即理論上只有處於鏡頭焦點距離的景物是成像清晰的,而在焦點前後,光線開始擴散,成像變的模糊,成像點形成一個擴大的圓:彌散圓(circle of confusion),而人眼的分辨能力有限,只有當彌散圓直徑大到一定程度,我們才感覺到模糊,比如上圖的草地看起來中間一段都是清晰的,這一段“看起來清晰”的距離就是景深(Depth of Field)。

景深的”深、淺“、“大、小”就是指這個距離的“長、短”,影響景深的因素主要有光圈、焦距和拍攝距離,後面會提到,景深有前景深和後景深的區分,以及一些計算公式,對攝影感興趣的可以研究研究。

2、光圈

如果把相機拍照理解成小孔成像,那麼光圈就是小孔的大小,即光圈就是控制光線進入鏡頭面積的裝置,經典的如採用葉片組的方式來實現:

aperture

光圈數值分母越大,表示光圈越小,光圈主要有兩方面的作用:控制進光量和景深:

  • 進光量

這個容易理解,光圈越大,相同的快門,成像進來的光越多,照片就越亮,反之光圈越小照片越暗。

  • 景深

這個可以通過如下圖理解:

aperture2

即光圈越大,景深越小,適合做背景虛化效果,如人像;反之光圈越小,景深越大。

3、快門

之前說光圈可以控制進光量,快門也可以,光圈從空間上限制進光面積來控制進光量,而快門則是從曝光時間上來控制。可以簡單地理解為:快門擋在鏡頭或底片前,平時處於關閉狀態,成像時快門開啟一段時間再關閉,完成成像,這個快門開啟的時間就是快門時間,通常以1/N秒為單位。快門除了可以控制進光量從而影響照片曝光,還可以製造一些特別的拍照效果。

shutter

如圖子彈穿過燈泡的照片,需要極高的快門速度,而有些照片效果又需要長時間的快門才行,如城市的車流效果:

shutter2

需要注意的是,當快門時間較長時,相機的抖動可能會造成成像模糊,使用三腳架是不錯的選擇。

4、焦距

焦距指鏡頭光學中心(主點)到成像平面的距離,平常說的長焦鏡頭就是指焦距較大的鏡頭,焦距是相機的重要引數,對成像有多方面的影響,首先是成像大小和視場角(FOV):焦距越大,成像越大,FOV越小:

fov

因此,如果想從遠距離拍攝野生動物,往往需要採用長焦鏡頭,而與長焦鏡頭對應的廣角鏡頭,焦距小,能拍攝較大的場景,如建築、風景等。

焦距對景深也有影響,通常焦距越大,景深越小,如長焦鏡頭的景深比較小,而廣角鏡頭的景深都比較大。焦距還影響照片的透視效果,如下圖:

fov2

可以看出,廣角鏡頭下透視效果比較明顯,人臉有一定變形,而長焦鏡頭下則沒什麼失真。

5、感光度

感光度表示的是底片或感光器件對光線的敏感度,常稱為ISO(國際標準),對光線的敏感度也可理解為感光速度,感光度可以配合進光量來控制照片的曝光,比如光線不足時可以提高感光度以獲得亮度足夠的照片,但感光度越高,照片中的噪點也會相應增加,取決於器件的工藝質量。

6、色差

aberration

由於透鏡對不同波長的折射率不同,相當於鏡頭對不同波長的光的焦距不同,特別是鏡頭的邊緣處,從而會造成成像模糊。如下圖,鏡頭中心的成像(左)色差不明顯,而邊緣處的成像則可以看到明顯的色差現象。

7、畸變

畸變指真實成像點與理想成像點間的偏移,產生原因是鏡頭工藝的不完美,從而導致了不規則的折射。畸變有多種型別,如下圖所示的枕形畸變和桶形畸變。後面相機標定部分會對畸變進行更詳細的討論。

distortion

二、成像模型

相機在計算機視覺應用中起著重要作用,作為影像資料來源,影響著後續各個處理步驟。成像模型就是用數學公式刻畫整個成像過程,即被拍攝物體空間點到照片成像點之間的幾何變換關係。

總體上,相機成像可以分為四個步驟:剛體變換、透視投影、畸變校正和數字化影像。

c1

1、剛體變換

剛體變換隻改變物體的空間位置(平移)和朝向(旋轉),而不改變其形狀,可用兩個變數來描述:旋轉矩陣R和平移向量t

c2

齊次座標下可寫為:

c3

旋轉矩陣R是正交矩陣,可通過羅德里格斯(Rodrigues)變換轉換為只有三個獨立變數的旋轉向量:

c4

因此,剛體變換可用6個引數來描述,這6個引數就稱為相機的外參(Extrinsic),相機外參決定了空間點從世界座標系轉換到相機座標系的變換,也可以說外參描述了相機在世界座標系中的位置和朝向。

2、透視投影

我們可以將透鏡的成像簡單地抽象成下圖所示:

c5

設 f=OB 表示透鏡的焦距,m=OC 為像距,n=AO 為物距,有:

c6

一般地,由於物距遠大於焦距,即 n>>f,所以 m≈f,此時可以用小孔模型代替透鏡成像:

c7

可得:

c8

齊次座標下有:

c9

如果將成像平面移到相機光心與物體之間,則有中心透視模型:

c10

可得:

c11

齊次座標下有:

c12

總體上看,透視投影將相機座標系中的點投影到理想影像座標系,其變換過程只與相機焦距 f 有關。

3、畸變校正

理想的針孔成像模型確定的座標變換關係均為線性的,而實際上,現實中使用的相機由於鏡頭中鏡片因為光線的通過產生的不規則的折射,鏡頭畸變(lens distortion)總是存在的,即根據理想針孔成像模型計算出來的像點座標與實際座標存在偏差。畸變的引入使得成像模型中的幾何變換關係變為非線性,增加了模型的複雜度,但更接近真實情形。畸變導致的成像失真可分為徑向失真和切向失真兩類:

c13

畸變型別很多,總體上可分為徑向畸變和切向畸變兩類,徑向畸變的形成原因是鏡頭製造工藝不完美,使得鏡頭形狀存在缺陷,包括枕形畸變和桶形畸變等,可以用如下表示式來描述:

c14

切向畸變又分為薄透鏡畸變和離心畸變等,薄透鏡畸變則是因為透鏡存在一定的細微傾斜造成的;離心畸變的形成原因是鏡頭是由多個透鏡組合而成的,而各個透鏡的光軸不在同一條中心線上。切向畸變可以用如下數學表示式來描述:

c15

在引入鏡頭的畸變後,成像點從理想影像座標系到真實影像座標系的變換關係可以表示為:

c16

實際計算過程中,如果考慮太多高階的畸變引數,會導致標定求解的不穩定。

4、數字化影像

光線通過相機鏡頭後最終成像在感光陣列(CCD或CMOS)上,然後感光陣列將光訊號轉化為電訊號,最後形成完整的影像。我們用dx和dy分別表示感光陣列的每個點在x和y方向上物理尺寸,即一個畫素是多少毫米,這兩個值一般比較接近,但由於製造工藝的精度問題,會有一定誤差,同樣的,感光陣列的法向和相機光軸也不是完全重合,即可以看作成像平面與光軸不垂直。

c17

我們用仿射變換來描述這個過程,如上圖,O點是影像中心點,對應影像座標(u0,v0),Xd – Yd是真實影像座標系,U-V是數字化影像座標系,有:

c18

齊次座標下有:

c19

上式中的變換矩陣即為相機的內引數矩陣 K,其描述了相機座標系中點到二維影像上點的變換過程。

綜上所述,在不考慮鏡頭畸變的情況下,相機的整個成像過程可表示為:

c20

三、引數標定

引數標定即通過一定方法求得上述成像模型中的各個未知量(5個內參、6個外參以及畸變引數)。相機標定主要有傳統標定方法和自標定方法兩類,傳統標定方法需要標定參照物,參照物的引數已知,然後分析拍攝到的參照物影像,求得相機引數,如直接線性變換(DLT)方法、Tsai兩步標定法和張正友平面標定法等。傳統方法操作相對複雜,但精度較高。

自標定方法不需要標定參照物,只需要多幅影像點的對應關係就能求解出相機引數,如基於無窮遠平面、絕對二次曲面的自標定方法、基於Kruppa方程的自標定方法等。自標定方法靈活方便,但由於是非線性標定,精度和魯棒性都不高。

這裡主要介紹張正友平面標定法,其操作相對簡單,且精度較高,實際應用中很常用。

論文原文:A Flexible New Technique forCamera Calibration

整個標定過程包括如下步驟:

  1. 列印一張棋盤格,把它貼在一個平面上,作為標定物。
  2. 通過調整標定物或攝像機的方向,為標定物拍攝一些不同方向的照片。
  3. 從照片中提取棋盤格角點。
  4. 估算理想無畸變的情況下,五個內參和六個外參。
  5. 應用最小二乘法估算實際存在徑向畸變下的畸變係數。
  6. 極大似然法,優化估計,提升估計精度。

calib

由於棋盤格上所有的角點都位於同一平面上,角點的世界座標系的Z軸全部取0,即假定模板平面位於世界座標系Z=0的平面上,因此,旋轉矩陣減少一維,得到如下變換:

calib2

令 H=[h1 h2 h3]=K[r1 r2 t],H即為單應性矩陣,由旋轉矩陣R正交性質,有:

calib3

變換一下,可得約束方程:

calib4

K中有5個未知變數,因此當拍攝3幅影像後,即可得3個H,在上述2個約束下可產生6個方程,就可以解出K的全部5個變數。再求得K後,可通過如下變換求得外參R、t:

calib5

此時得到的內參K和外參[R|t]都是假設理想無畸變的情況,張正友標定法在此基礎上,接著應用最小二乘法估計徑向畸變係數,最後用極大似然法進行整體的估計優化。

實際應用中,常使用MATLAB標定工具箱進行相機標定 Camera Calibration Toolbox for Matlab,只需匯入拍攝的棋盤格照片,輸入一些引數,然後對每張照片選擇棋盤區域,就可以自動完成整個標定過程,並得到視覺化的標定結果。


相關文章