自动化学报
ACTA AUTOMATICA SINICA
1997年 第23卷 第5期 Vol.23 No.5 1997



一种基于摄像机模型的畸变图象校正方法
王亚东　丁明跃　彭嘉雄
关键词　像机模型，像机定标，畸变图象校正.
CORRECTION OF DISTORTED IMAGE BASED ON CAMERA MODEL
WANG YADONG　　DING MINGYUE　　PENG JIAXIONG
(Institute of Pattern Recognition & Artificial Intelligence,Huazhong University
of Science and Technology,Wuhan 430074)
Key words　Camera model,camera calibration,distorted image correction.
1　引言
　　在图象分析和图象匹配中，为了获得大视场图象，需要使用广角镜头.但是，这会导致图象发生畸变，直接影响了对图象的理解和匹配性能，因此必须对它进行校正.1989年，A.Goshtasby［1］提出了一种利用理想图象和畸变图象之间的转换曲面对畸变图象进行校正的方法，然而转换曲面难以获得.本文从像机针孔模型中得出图象畸变是由像机的非线性失真系数α0和α1产生的.Tsai［2］和许志祥等［3］研究了像机内外参数的定标方法，但这些方法必须求解像机模型的非线性方程.本文提出了一种利用实验将该非线性方程简化为线性方程，从而直接求解α0和α1的方法，并采用视场角为110°广角镜头的CCD摄像机所拍摄的图象进行了校正实验，获得了令人满意结果.
2　图象畸变的产生
　　图象畸变是指图象的形状发生了变化，如直线变弧线，矩形变桶形等等.为分析其原因，首先介绍一下像机模型.常用的像机模型是针孔模型，如图1所示.假定(xc,yc,zc)为像机坐标系，oc与像机的针孔重合，zc与像机的靶面(即像平面)垂直，设像平面坐标系为XOY，(xw,yw,zw)为测量坐标系.测量坐标系与像机坐标系之间可以用旋转矩阵R和平移矢量来确定，即对空间一点P(xc,yc,zc)有

(1)

图1　摄像机模型
　　根据文献［2］，忽略高阶项，则像机模型为

(2)

(3)
其中f为像机焦距，(xw,yw,zw)为空间某一点的测量坐标，(x,y)为像平面上对应于(xw,yw,zw)点的像点坐标，(xH,yH)为焦点偏差，a0和a1为像机的非线性失真系数，
为像点的径向距离.对大小为MXN的离散图象来说，设(i,j)为图象上离散坐标值，Sx和Sy分别表示靶面水平和垂直标度因子，则上式中

　　由上式可知，影响成像的要素有和a0，a1.称为像机的外参数，f,(xH,yH),Sx,Sy,a0,a1为像机的内参数，其中像机内参数是由像机本身所决定的.为了简化分析，先不考虑像机外参数及(xH，yH)的影响，则(2)，(3)式变为

(4)

(5)
　　(4)，(5)式表明空间一点P的坐标与图象上对应点P′的坐标之间的关系是非线性的，因此图象发生畸变，可见，畸变是由于a0和a1引起的，一般来说，a0和a1均大于0，此时矩形畸变成桶形.当考虑像机的外参数时，图象不仅存在桶形失真，还有旋转失真和平移失真.本文主要考虑桶形失真.
3　像机定标方法
　　所谓像机定标，就是要找出像机的内外参数.本文是为了解决畸变图象的校正问题，因此只要找到a0和a1即可.由文献［3］，(xH,yH)不会引起明显的定标误差，故设xH=yH=0,又设R为单位矩阵(即无旋转)，Sx和Sy可通过测量靶面得到，则(2)，(3)式为

(6)

(7)
　　(6)，(7)式中只有一个方程是独立的，因此，利用三组对应点即可求解a0和a1.
　　由于tx,ty为定值，因此可归入xw,yw中，当对应点的坐标及tz均已知时，即可方便地得到a0和a1.为此，设计了如下实验：1)找一平面物体，对平面上的点，tz为一定值，故可归入zw中；2)使像平面与该物体平面平行，消除Z轴方向旋转；3)保证在平面上无旋转；4)摄取一幅图象；5)找到图象上与物体平面上的至少三组对应点，并量出它们的坐标，分别记为(xi,yi),(xwi,ywi,zwi);6)测量zw,Sx和Sy；7)对每一组对应点，代入(6)或(7)式，利用最小二乘法，找到(以(6)式为例)为最小时的估计值，作为a0和a1的真实值.
　　当不满足条件2)，3)时，所得a0和a1将存在估计误差.设测量坐标系与像机坐标系X，Y，Z轴之间的夹角分别为α，β，γ，则旋转矩阵R不为单位矩阵，导致(6)，(7)式中(xw,yw,zw)发生变化.将变化后的值对a0和a1重新估计，当α，β，γ变化小于3°时，a0和a1变化均在10%以内，这对畸变图象的校正来说是可以接受的.
4　畸变图象校正方法
　　图象畸变是由a0和a1所引起的，它们主要使图象上坐标点的位置发生变化，而对相应点的灰度级无影响，因此，几何校正就是使畸变图象上的点恢复到无失真时的位置上.该位置由假想中的理想像机与非理想像机在同一条件下拍摄决定，设用非理想像机拍摄时某点坐标为(xd,yd)，用理想像机则为(xu,yu)，不妨设xH=yH=0,则由(2)，(3)式得
xu=xd.(1+a0r2+a1r4),
(8)
yu=yd.(1+a0r2+a1r4),
(9)
从(8)，(9)式可以看出，(xu,yu)与(xd,yd)之间并非都一一对应整数，因此，需要对那些无整数对应点的点进行插值，本文中利用八邻域均值代替插值.
5　实验结果
　　本文对一种带有视场角为110°的广角镜头的CCD像机进行了实验，取10组对应点，并测得zw=431.8mm.采用本文提出的定标方法，得到a0=0.014，a1=0.001.用它们对该像机摄取的畸变图象进行校正，如图2，3所示.从图2可以看出，场景中的物体有明显的桶形失真，图3为校正后的图象，失真基本消除。可见，校正结果良好.

图2　桶形失真图象

图3　校正后的图象
作者单位：华中理工大学图象识别与人工智能研究所　武汉　430074
参考文献
［1］　Goshtasby A.Correction of image deformation from lens distortion using bezier patches,CVGIP,1989,47,385―394.
［2］　Tsai R Y.A Versatile camera calibration technique for high accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses,IEEE Journal of Robotics and Automation,1987,3(4):323―344.
［3］　许志详等.摄像机定标及其误差分析.自动化学报，1993，19(1)：115―117.
收稿日期：1994-11-14
