六、張正友標定法小結
? ? ? ? ? 這一博文,是玉米后補上的。因為覺得前面用了三篇博文來描述張氏標定法,略顯散亂。在這里總結一下,使條理清晰一點。另外關于張氏標定所得參數也還有兩點需要澄清。下面這個總結,其實也是在“A Flexible New Technique forCamera Calibration”中出現的。
一、張氏標定的過程:
? ? ? ?1.??????打印一張棋盤格,把它貼在一個平面上,作為標定物。
? ? ? ?2.??????通過調整標定物或攝像機的方向,為標定物拍攝一些不同方向的照片。
? ? ? ?3.??????從照片中提取特征點(如角點)。
? ? ? ?4.??????估算理想無畸變的情況下,五個內參和所有外參。
? ? ? ?5.??????應用最小二乘法估算。實際存在徑向畸變下的畸變系數。
? ? ? ?6.??????極大似然法,優化估計,提升估計精度。
? ? ? ? ?通過這樣的過程,我們就獲得了具有高估計精度的五個內參,三個外參和兩個畸變系數。利用這些信息,我們可以進行畸變矯正、圖像校正和最終的三維信息恢復。
?
二、以下是對于張氏標定求得的內參,需要注意的一點:
? ? ? ? ?通過張氏標定,我們并不能得到:焦距(f)和像素的物理尺寸(sx,sy)兩個參數。因為我們在求解內參陣A時,求解出的是α和β。
α=f/ sx,β= f/ sy 。分別代表焦距長度上,x軸和y軸像素的個數。
? ? ? ? 雖然,沒有求得焦距,但這并不影響,我們在三維坐標恢復時,進行三角運算。因為彼時,我們的計算中用到的也是α和β。
?
?????? 大家可能會有疑問,既然我們無法得到焦距(f)和像素的物理尺寸(sx,sy)兩個參數。那么在opencv中,調用的cvCalibrateCamera2時返回的參數中是包含焦距(f)的。Opencv的這個函數也是用了張氏標定法。為什么可以得到f呢?
?????? 答案是這條opencv函數對內參陣做了簡化,其認為γ=0即像素的物理尺寸(sx,sy)兩個參數相等。然后統一約掉物理尺寸s。得到的B陣如下:
? ? ? ?這樣我們就可以解出f了。
?????? 張氏標定的精確度可達到0.5個像素,這樣的指標已經可以滿足絕大多數的應用了。所以如此簡單的方法,得到了這么高的精度。這樣的方法是值得人們膜拜的。在此,在次向張正友教授致敬!
?
? ? ? ?在此,玉米又對張氏標定法進行了一個總結。張氏標定的原理分析就到此為止了。但是它的作用還會延續到下面兩篇博文中。
? ? ? ?玉米才疏學淺,文中如有紕漏,請大家批評指正。