
說起相機大家都比較熟悉,現在已經是手機的标配和賣點,而且做的非常便捷易用,随便按都能拍出不錯的照片,但如果想更手動、更專業一點,或者将相機用于工業應用(如機器視覺、攝影測量等),還是需要了解一下成像方面的東西,本文力求通俗易懂,先介紹一些相機相關的基本概念,然後對相機的标定過程進行簡單的闡述。
我們拍照片的時候常有“虛化”的效果,其實就是利用“景深”來突出重點:
上圖隻有中間部分是清晰的,遠景和近景都模糊掉,原理上從下圖可以了解
即理論上隻有處于鏡頭焦點距離的景物是成像清晰的,而在焦點前後,光線開始擴散,成像變的模糊,成像點形成一個擴大的圓:彌散圓(circle of confusion),而人眼的分辨能力有限,隻有當彌散圓直徑大到一定程度,我們才感覺到模糊,比如上圖的草地看起來中間一段都是清晰的,這一段“看起來清晰”的距離就是景深(depth of field)。
景深的”深、淺“、“大、小”就是指這個距離的“長、短”,影響景深的因素主要有光圈、焦距和拍攝距離,後面會提到,景深有前景深和後景深的區分,以及一些計算公式,對攝影感興趣的可以研究研究。
如果把相機拍照了解成小孔成像,那麼光圈就是小孔的大小,即光圈就是控制光線進入鏡頭面積的裝置,經典的如采用葉片組的方式來實作:
光圈數值分母越大,表示光圈越小,光圈主要有兩方面的作用:控制進光量和景深:
進光量
這個容易了解,光圈越大,相同的快門,成像進來的光越多,照片就越亮,反之光圈越小照片越暗。
景深
這個可以通過如下圖了解:
即光圈越大,景深越小,适合做背景虛化效果,如人像;反之光圈越小,景深越大。
之前說光圈可以控制進光量,快門也可以,光圈從空間上限制進光面積來控制進光量,而快門則是從曝光時間上來控制。可以簡單地了解為:快門擋在鏡頭或底片前,平時處于關閉狀态,成像時快門打開一段時間再關閉,完成成像,這個快門打開的時間就是快門時間,通常以1/n秒為機關。快門除了可以控制進光量進而影響照片曝光,還可以制造一些特别的拍照效果。
如圖子彈穿過燈泡的照片,需要極高的快門速度,而有些照片效果又需要長時間的快門才行,如城市的車流效果:
需要注意的是,當快門時間較長時,相機的抖動可能會造成成像模糊,使用三腳架是不錯的選擇。
焦距指鏡頭光學中心(主點)到成像平面的距離,平常說的長焦鏡頭就是指焦距較大的鏡頭,焦距是相機的重要參數,對成像有多方面的影響,首先是成像大小和視場角(fov):焦距越大,成像越大,fov越小:
是以,如果想從遠距離拍攝野生動物,往往需要采用長焦鏡頭,而與長焦鏡頭對應的廣角鏡頭,焦距小,能拍攝較大的場景,如建築、風景等。
焦距對景深也有影響,通常焦距越大,景深越小,如長焦鏡頭的景深比較小,而廣角鏡頭的景深都比較大。焦距還影響照片的透視效果,如下圖:
可以看出,廣角鏡頭下透視效果比較明顯,人臉有一定變形,而長焦鏡頭下則沒什麼失真。
感光度表示的是底片或感光器件對光線的敏感度,常稱為iso(國際标準),對光線的敏感度也可了解為感光速度,感光度可以配合進光量來控制照片的曝光,比如光線不足時可以提高感光度以獲得亮度足夠的照片,但感光度越高,照片中的噪點也會相應增加,取決于器件的工藝品質。
由于透鏡對不同波長的折射率不同,相當于鏡頭對不同波長的光的焦距不同,特别是鏡頭的邊緣處,進而會造成成像模糊。如下圖,鏡頭中心的成像(左)色差不明顯,而邊緣處的成像則可以看到明顯的色差現象。
畸變指真實成像點與理想成像點間的偏移,産生原因是鏡頭工藝的不完美,進而導緻了不規則的折射。畸變有多種類型,如下圖所示的枕形畸變和桶形畸變。後面相機标定部分會對畸變進行更詳細的讨論。
相機在計算機視覺應用中起着重要作用,作為圖像資料來源,影響着後續各個處理步驟。成像模型就是用數學公式刻畫整個成像過程,即被拍攝物體空間點到照片成像點之間的幾何變換關系。
總體上,相機成像可以分為四個步驟:剛體變換、透視投影、畸變校正和數字化圖像。
剛體變換隻改變物體的空間位置(平移)和朝向(旋轉),而不改變其形狀,可用兩個變量來描述:旋轉矩陣r和平移向量t
齊次坐标下可寫為:
旋轉矩陣r是正交矩陣,可通過羅德裡格斯(rodrigues)變換轉換為隻有三個獨立變量的旋轉向量:
是以,剛體變換可用6個參數來描述,這6個參數就稱為相機的外參(extrinsic),相機外參決定了空間點從世界坐标系轉換到相機坐标系的變換,也可以說外參描述了相機在世界坐标系中的位置和朝向。
我們可以将透鏡的成像簡單地抽象成下圖所示:
設 f=ob 表示透鏡的焦距,m=oc 為像距,n=ao 為物距,有:
一般地,由于物距遠大于焦距,即 n>>f,是以 m≈f,此時可以用小孔模型代替透鏡成像:
可得:
齊次坐标下有:
如果将成像平面移到相機光心與物體之間,則有中心透視模型:
總體上看,透視投影将相機坐标系中的點投影到理想圖像坐标系,其變換過程隻與相機焦距 f 有關。
理想的針孔成像模型确定的坐标變換關系均為線性的,而實際上,現實中使用的相機由于鏡頭中鏡片因為光線的通過産生的不規則的折射,鏡頭畸變(lens distortion)總是存在的,即根據理想針孔成像模型計算出來的像點坐标與實際坐标存在偏差。畸變的引入使得成像模型中的幾何變換關系變為非線性,增加了模型的複雜度,但更接近真實情形。畸變導緻的成像失真可分為徑向失真和切向失真兩類:
畸變類型很多,總體上可分為徑向畸變和切向畸變兩類,徑向畸變的形成原因是鏡頭制造技術不完美,使得鏡頭形狀存在缺陷,包括枕形畸變和桶形畸變等,可以用如下表達式來描述:
切向畸變又分為薄透鏡畸變和離心畸變等,薄透鏡畸變則是因為透鏡存在一定的細微傾斜造成的;離心畸變的形成原因是鏡頭是由多個透鏡組合而成的,而各個透鏡的光軸不在同一條中心線上。切向畸變可以用如下數學表達式來描述:
在引入鏡頭的畸變後,成像點從理想圖像坐标系到真實圖像坐标系的變換關系可以表示為:
實際計算過程中,如果考慮太多高階的畸變參數,會導緻标定求解的不穩定。
光線通過相機鏡頭後最終成像在感光陣列(ccd或cmos)上,然後感光陣列将光信号轉化為電信号,最後形成完整的圖像。我們用dx和dy分别表示感光陣列的每個點在x和y方向上實體尺寸,即一個像素是多少毫米,這兩個值一般比較接近,但由于制造技術的精度問題,會有一定誤差,同樣的,感光陣列的法向和相機光軸也不是完全重合,即可以看作成像平面與光軸不垂直。
我們用仿射變換來描述這個過程,如上圖,o點是圖像中心點,對應圖像坐标(u0,v0),xd - yd是真實圖像坐标系,u-v是數字化圖像坐标系,有:
上式中的變換矩陣即為相機的内參數矩陣 k,其描述了相機坐标系中點到二維圖像上點的變換過程。
綜上所述,在不考慮鏡頭畸變的情況下,相機的整個成像過程可表示為:
參數标定即通過一定方法求得上述成像模型中的各個未知量(5個内參、6個外參以及畸變參數)。相機标定主要有傳統标定方法和自标定方法兩類,傳統标定方法需要标定參照物,參照物的參數已知,然後分析拍攝到的參照物圖像,求得相機參數,如直接線性變換(dlt)方法、tsai兩步标定法和張正友平面标定法等。傳統方法操作相對複雜,但精度較高。
自标定方法不需要标定參照物,隻需要多幅圖像點的對應關系就能求解出相機參數,如基于無窮遠平面、絕對二次曲面的自标定方法、基于kruppa方程的自标定方法等。自标定方法靈活友善,但由于是非線性标定,精度和魯棒性都不高。
這裡主要介紹張正友平面标定法,其操作相對簡單,且精度較高,實際應用中很常用。
整個标定過程包括如下步驟:
列印一張棋盤格,把它貼在一個平面上,作為标定物。
通過調整标定物或錄影機的方向,為标定物拍攝一些不同方向的照片。
從照片中提取棋盤格角點。
估算理想無畸變的情況下,五個内參和六個外參。
應用最小二乘法估算實際存在徑向畸變下的畸變系數。
極大似然法,優化估計,提升估計精度。
由于棋盤格上所有的角點都位于同一平面上,角點的世界坐标系的z軸全部取0,即假定模闆平面位于世界坐标系z=0的平面上,是以,旋轉矩陣減少一維,得到如下變換:
令 h=[h1 h2 h3]=k[r1 r2 t],h即為單應性矩陣,由旋轉矩陣r正交性質,有:
變換一下,可得限制方程:
k中有5個未知變量,是以當拍攝3幅圖像後,即可得3個h,在上述2個限制下可産生6個方程,就可以解出k的全部5個變量。再求得k後,可通過如下變換求得外參r、t:
此時得到的内參k和外參[r|t]都是假設理想無畸變的情況,張正友标定法在此基礎上,接着應用最小二乘法估計徑向畸變系數,最後用極大似然法進行整體的估計優化。