第24卷 第5期 应用光学 Vol . 24 No . 52003年9月JOURNAL OF APPLIED OPTICS September , 2003文章编号:1002-2082(2003) 05-036-03
用射影不变性纠正鱼眼镜头畸变
邱志强, 陆宏伟, 于起峰
(长沙国防科学技术大学航天与材料工程学院, 湖南长沙 410073)
摘 要: 计算机视觉通常采用针孔摄像机模型, 但对于存在较大畸变的鱼眼镜头或广角镜头, 必须首先纠正镜头畸变才能应用针孔模型。为了从同时存在透视变形和鱼眼畸变的图像中纠正鱼眼畸变, 采用了以下射影不变性:空间中直线的投影为直线; 平行直线束的投影平行或相交于一点; 直线段投影的交比不变。首先, 用待纠正的鱼眼镜头对一幅等间隔正交网格图成像, 提取网格结点作为控制点, 然后用射影不变性求解畸变模型, 达到纠正畸变的目的。该算法巧妙地运用三次方程的Cardan 解法, 大大提高了速度。结果表明, 运用该方法纠正鱼眼镜头畸变速度快、精度高。关键词: 鱼眼镜头畸变; 射影不变性; 摄像机标定中图分类号:TB851 文献标识码:A
引言
计算机视觉分析中大多数镜头的畸变可以忽略, 因此经常采用针孔摄像机模型。对存在较大畸变的鱼眼镜头或广角镜头, 应用针孔模型之前应纠正鱼眼镜头畸变。事实上, 有时虽采用了普通镜头, 但要求的测量精度非常高时, 也应先纠正镜头畸变。
如图1所示, 三维空间中的任一点P
投影到图像
图2 变形前后的正交网格
Fig . 2 The Orthogonal grid patterns before
and after distortion
径向畸变是沿畸变中心到图像点方向的畸变; 切向畸变与该方向垂直。
图1 从物点P 到像点p 的过程
Fig . 1 The process from objective point P
to image point p
标
[3]
由于在畸变模型中, 通常使用规一化图像坐, 而不是以像素为单位的帧存坐标, 所以在获得x =(u -u 0) /f y =(v -v 0) α/f
像素坐标(u , v ) 后, 用下式将其转换为规一化坐标。
(1)
面上, 可认为发生了两次变换:首先, 是射影变换(实
际应用中常采用透视变换) ; 然后是镜头畸变。在发生射影变换过程中, 也就是从三维物点投影到无畸变的理想像点的过程遵守射影不变性, 这样就有可能通过分析射影不变性纠正鱼眼镜头畸变。图2为一个等间隔正交网格的原图和同时发生射影变换及镜头畸变后的图像。从图2中不难看出, 经过鱼眼畸变后的网格线由直线变成了曲线。不难理解, 纠正鱼眼畸变也就是从图2(c ) 恢复成图2(b ) 。
式中, (u 0, v 0) 为镜头畸变中心; f 为焦距;α为图像像素纵横比。对实际的摄像机镜头来说, 镜头畸变中心与图像中心并不重合, 图像像素纵横比α亦不为1。本文旨在纠正镜头畸变, 并不要求解算出实际摄像机焦距f 。不失一般性, 本文不妨假设焦距为1。
本文采用如下多项式畸变模型:x u =x d (1+kr 2d ) y u =y d (1+kr 2d )
(2)
1 鱼眼镜头畸变模型
鱼眼镜头畸变可以分解为径向畸变和切向畸变
:
收稿日期:2002-12-29
式中, r d =x y 论是(x u , y u ) 还d +d 称为畸变半径。无
作者简介:邱志强(1972-) , 男, 湖南浏阳人, 国防科学技术大学航天与材料工程学院博士生, 主要从事精密光测图像分析、计算机视觉研究工作。
是(x d , y d ) 都是用(1) 式变换后的规一化图像坐标。许多实验证明, 只用二次项的模型精度及其它透视参数就足以使三维测量精度达到0. 1像素[5]。而且, 高次项的畸变还可以用畸变中心、图像纵横比等效。由于本方法将畸变中心与图像纵横比也看成待标定参数, 因此只考虑二次项就完全可行。
综上所述, 求解畸变模型的任务是求解4个参数:畸变系数k 、畸变中心坐标(u 0, v 0) 和纵横比α。
为A 1x +B 1y +C 1=0, A 2x +B 2y +C 2=0, A 3x
+B 3y +C 3=0, 则此三条直线相交于一点的公式为
A 1B 1C 1
δ=A 2
B 2
C 2=0
(4)
A 3B 3C 3
将检测到的畸变图像坐标先按(2) 式规一化, 然后代入(1) 式的畸变模型纠正鱼眼畸变, 最后对每条网格线用最小二乘法求拟合直线, 也就是求出系数A , B , C 。以每三条平行(纵或横) 网格线为一组, 分别求出δ。如果全图像面上共有n 组平行网格线, 则所求畸变模型应使
i =1
2 射影不变性
常用的射影不变性有共线点的投影仍然共线, 平
行直线的投影平行或相交于一点, 直线段投影的交比不变等。
如图2(b ) 所示, 原来位于同一条网格线的点应仍然共线, 各网格线仍平行或相交于一点, 相邻网格线段交比不变。以这些射影不变性为条件, 按照(1) 式的畸变模型建立约束方程, 就能解算出畸变模型。2. 1 共线点的投影仍然共线
如图3所示, 实线表示发生畸变后的直线段, 虚线表示拟合后的直线。如果一条网格线由n
个网格
∑δi 最小。
n
2. 3 直线段的交比不变
如图4所示, O 是投影中心, A ′, B ′, C ′, D ′是一条直线上的4点, A , B , C , D 分别为对应的投影点, 则直线段的交比不变, 即
(5) A D BC A ′D ′ B ′C ′
针对使用的等间隔正交网格, 显然上述比值恒为
n
4∶3
。与2. 1和2. 2节类似, 也可以建立关于i ∑δi 的=1约束方程。
图3 直线的变形Fig . 3 The distorted line
结点控制, 某结点畸变后的规一化图像坐标为(x i ,
y i ) , 则该点偏离量可按如下计算:
δ=a sin φ-2|b ||sin φ|cos φ+c cos φ
2
2
2
(3)
图4 交比不变
Fig . 4 The invariability of cross ratio
式中,
a =
i =1
n
∑
n
n
x 2i
-n
b =∑x i y i -n
i =1c =
i =1
n i =1n
∑x i
n
2
n
3 纠正鱼眼畸变
首先, 假设畸变中心与图像中心一致, 纵横比为1, 也就是只存在一个未知数k , 用基于射影不变性建立的约束方程为目标函数求解k 。然后, 将图像中心、纵横比和畸变系数一起考虑, 精确求解。
对畸变图像的处理, 可以采取两种方法:(1) 先提取畸变图像的特征, 然后纠正它们的畸变; (2) 对全图先进行纠正, 然后提取无畸变图像特征。事实上, 对全图像进行畸变纠正的过程需要计算每个畸变点的坐标。所以, 经常需要求取畸变图像点的坐标, 也就是从r u 求解r d 。实际应用中, 从无畸变点到畸变点的变换用得比逆变换更普遍。
(1) 式从r u 求解r d 时, 需令r u =x y u +u , 根据
要解一个关于r d 的三次方程:
r 3r d +d =0d +c
(6)
式中, c =1/k 1; d =-cr u 。按照Cardan 公式, 它有一个或三个解, 这取决于判别式:
y i ∑x i i ∑=1
2
∑i =1
y 2i
-n
y i ∑i =1
|sin φ|=|cos φ|=
22a +4b +c -2ac
+22a +4b +c -2ac
用(2) 式的像差模型纠正像差后的图像点应该尽量与直线重合, 亦即偏移量之和
i =1
∑δi 最小。
n
2. 2 平行直线投影后为平行直线或相交于一点
事实上, 在对标定网格板成像时, 一般网格平面不与成像面平行, 所以平行网格线在成像后应该相交于一点。
由解析几何可知, 如果三条直线的一般方程分别
Δ=Q +R (7) 式中, Q =; R =-。如果Δ>0, 则只有一个
32
实根
3
r d =R (8)
R Δ
如果Δ
r d =-S cos T +S 3sin T
3
32
(9)
。R
图6 纠正鱼眼变形前后的图像
Fig . 6 The im ages before and after
fish -eye distortion correctio n
式中, S =
R -Δ;T arctan
3
4 实验结果分析
先绘制一个等间隔正交网格图, 用待标定的鱼眼镜头对它成像, 获得如图5(a ) 所示的畸变图像, 用本文算法求解像差系数并纠正畸变。图5(b ) 是纠正了畸变的网格图。可以看出, 网格线已全部拉直。用同样的镜头拍摄了几幅人像图, 把刚才得到的畸变系数代入, 也可得到纠正畸变后的图像, 如图6(b ) 。从人
像图可看出, 人像已无变形, 背景天花板中的直线接缝也已由曲线拉直。
利用射影不变性, 从既有投影变形又有鱼眼畸变的图像中纠正了鱼眼畸变, 从而使得到的图像只含有透视变形。从实验结果可以看出, 本方法速度快, 精度高, 可通用于处理鱼眼镜头或存在畸变的其它摄像镜头拍摄的图像。此外, 本方法巧妙地运用Cardan 公式求解了三次方程, 大大加快了求解速度。当然在实际应用中还有其它一些问题需要解决, 如采用更精确的球形畸变模型, 而不采用多项式畸变模型, 这是下一步的研究方向。
参考文献:
[1] 于起峰, 等. 基于图像的精密测量与运动测量[M ]. 北京:科学出版社. 2002.
[2] Shishir shah , J K Aggarwal . Intrins ic parameter calibration pro -cedure for a (high -distortion ) fish -eye lens camera with distor -tion model and accuracy estimation [J ]. pattern Recognition , 1996, 29(11) :1175~1178. [3] 马颂德, 等. 计算机视觉-计算理论与算法基础[M ]. 北
图5 用来纠正鱼眼变形的网格图Fig . 5 The grid
pattern used in correction
京:科学出版社. 1998. [4] 邱志强, 等. 基于神经网络模型的CCD 像差修正[J ]. 光学技术. 2003, 29(1) :86~88. [5] 于起峰, 等. 数字式光测胶片图像自动分析系统[J ]. 应
用光学, 2001, 22(4) :30~34.
5 结论
A Correction Method of Fish -eye Lens Distortion
Using Projective Invariability
QI U Zhi -qiang , LU Hong -wei , YU Qi -feng
(National University of Defense Technology , Changsha 410073, China )
A bstract :Man y algorithms in computer vision usually use pin -hole camera model . Since fis h -eye lens have large distortion , it is necessary to cor -rect it first . In order to correct lens distortion from an i mage which is caused b y both the lens distortion and projective transform , three projective
invariants should be used . Stratight line s hould be straight after projection . Parallelline should be intersect at one point or still parallel . Cross -ratio should be constant after projection . During the correction , firstly , capture an equal -space orthogonal grid image by the fish -lens and then use the projective invariant to find out a polynomial distortion model . In order to speed up the algorith m , the Cardan method is used to solve the cubic e -quation , result show hat the new distortion correction method is fast and accurate . Keywords :projective invariant ; fis h -lens distortion ; cameral calibration
第24卷 第5期 应用光学 Vol . 24 No . 52003年9月JOURNAL OF APPLIED OPTICS September , 2003文章编号:1002-2082(2003) 05-036-03
用射影不变性纠正鱼眼镜头畸变
邱志强, 陆宏伟, 于起峰
(长沙国防科学技术大学航天与材料工程学院, 湖南长沙 410073)
摘 要: 计算机视觉通常采用针孔摄像机模型, 但对于存在较大畸变的鱼眼镜头或广角镜头, 必须首先纠正镜头畸变才能应用针孔模型。为了从同时存在透视变形和鱼眼畸变的图像中纠正鱼眼畸变, 采用了以下射影不变性:空间中直线的投影为直线; 平行直线束的投影平行或相交于一点; 直线段投影的交比不变。首先, 用待纠正的鱼眼镜头对一幅等间隔正交网格图成像, 提取网格结点作为控制点, 然后用射影不变性求解畸变模型, 达到纠正畸变的目的。该算法巧妙地运用三次方程的Cardan 解法, 大大提高了速度。结果表明, 运用该方法纠正鱼眼镜头畸变速度快、精度高。关键词: 鱼眼镜头畸变; 射影不变性; 摄像机标定中图分类号:TB851 文献标识码:A
引言
计算机视觉分析中大多数镜头的畸变可以忽略, 因此经常采用针孔摄像机模型。对存在较大畸变的鱼眼镜头或广角镜头, 应用针孔模型之前应纠正鱼眼镜头畸变。事实上, 有时虽采用了普通镜头, 但要求的测量精度非常高时, 也应先纠正镜头畸变。
如图1所示, 三维空间中的任一点P
投影到图像
图2 变形前后的正交网格
Fig . 2 The Orthogonal grid patterns before
and after distortion
径向畸变是沿畸变中心到图像点方向的畸变; 切向畸变与该方向垂直。
图1 从物点P 到像点p 的过程
Fig . 1 The process from objective point P
to image point p
标
[3]
由于在畸变模型中, 通常使用规一化图像坐, 而不是以像素为单位的帧存坐标, 所以在获得x =(u -u 0) /f y =(v -v 0) α/f
像素坐标(u , v ) 后, 用下式将其转换为规一化坐标。
(1)
面上, 可认为发生了两次变换:首先, 是射影变换(实
际应用中常采用透视变换) ; 然后是镜头畸变。在发生射影变换过程中, 也就是从三维物点投影到无畸变的理想像点的过程遵守射影不变性, 这样就有可能通过分析射影不变性纠正鱼眼镜头畸变。图2为一个等间隔正交网格的原图和同时发生射影变换及镜头畸变后的图像。从图2中不难看出, 经过鱼眼畸变后的网格线由直线变成了曲线。不难理解, 纠正鱼眼畸变也就是从图2(c ) 恢复成图2(b ) 。
式中, (u 0, v 0) 为镜头畸变中心; f 为焦距;α为图像像素纵横比。对实际的摄像机镜头来说, 镜头畸变中心与图像中心并不重合, 图像像素纵横比α亦不为1。本文旨在纠正镜头畸变, 并不要求解算出实际摄像机焦距f 。不失一般性, 本文不妨假设焦距为1。
本文采用如下多项式畸变模型:x u =x d (1+kr 2d ) y u =y d (1+kr 2d )
(2)
1 鱼眼镜头畸变模型
鱼眼镜头畸变可以分解为径向畸变和切向畸变
:
收稿日期:2002-12-29
式中, r d =x y 论是(x u , y u ) 还d +d 称为畸变半径。无
作者简介:邱志强(1972-) , 男, 湖南浏阳人, 国防科学技术大学航天与材料工程学院博士生, 主要从事精密光测图像分析、计算机视觉研究工作。
是(x d , y d ) 都是用(1) 式变换后的规一化图像坐标。许多实验证明, 只用二次项的模型精度及其它透视参数就足以使三维测量精度达到0. 1像素[5]。而且, 高次项的畸变还可以用畸变中心、图像纵横比等效。由于本方法将畸变中心与图像纵横比也看成待标定参数, 因此只考虑二次项就完全可行。
综上所述, 求解畸变模型的任务是求解4个参数:畸变系数k 、畸变中心坐标(u 0, v 0) 和纵横比α。
为A 1x +B 1y +C 1=0, A 2x +B 2y +C 2=0, A 3x
+B 3y +C 3=0, 则此三条直线相交于一点的公式为
A 1B 1C 1
δ=A 2
B 2
C 2=0
(4)
A 3B 3C 3
将检测到的畸变图像坐标先按(2) 式规一化, 然后代入(1) 式的畸变模型纠正鱼眼畸变, 最后对每条网格线用最小二乘法求拟合直线, 也就是求出系数A , B , C 。以每三条平行(纵或横) 网格线为一组, 分别求出δ。如果全图像面上共有n 组平行网格线, 则所求畸变模型应使
i =1
2 射影不变性
常用的射影不变性有共线点的投影仍然共线, 平
行直线的投影平行或相交于一点, 直线段投影的交比不变等。
如图2(b ) 所示, 原来位于同一条网格线的点应仍然共线, 各网格线仍平行或相交于一点, 相邻网格线段交比不变。以这些射影不变性为条件, 按照(1) 式的畸变模型建立约束方程, 就能解算出畸变模型。2. 1 共线点的投影仍然共线
如图3所示, 实线表示发生畸变后的直线段, 虚线表示拟合后的直线。如果一条网格线由n
个网格
∑δi 最小。
n
2. 3 直线段的交比不变
如图4所示, O 是投影中心, A ′, B ′, C ′, D ′是一条直线上的4点, A , B , C , D 分别为对应的投影点, 则直线段的交比不变, 即
(5) A D BC A ′D ′ B ′C ′
针对使用的等间隔正交网格, 显然上述比值恒为
n
4∶3
。与2. 1和2. 2节类似, 也可以建立关于i ∑δi 的=1约束方程。
图3 直线的变形Fig . 3 The distorted line
结点控制, 某结点畸变后的规一化图像坐标为(x i ,
y i ) , 则该点偏离量可按如下计算:
δ=a sin φ-2|b ||sin φ|cos φ+c cos φ
2
2
2
(3)
图4 交比不变
Fig . 4 The invariability of cross ratio
式中,
a =
i =1
n
∑
n
n
x 2i
-n
b =∑x i y i -n
i =1c =
i =1
n i =1n
∑x i
n
2
n
3 纠正鱼眼畸变
首先, 假设畸变中心与图像中心一致, 纵横比为1, 也就是只存在一个未知数k , 用基于射影不变性建立的约束方程为目标函数求解k 。然后, 将图像中心、纵横比和畸变系数一起考虑, 精确求解。
对畸变图像的处理, 可以采取两种方法:(1) 先提取畸变图像的特征, 然后纠正它们的畸变; (2) 对全图先进行纠正, 然后提取无畸变图像特征。事实上, 对全图像进行畸变纠正的过程需要计算每个畸变点的坐标。所以, 经常需要求取畸变图像点的坐标, 也就是从r u 求解r d 。实际应用中, 从无畸变点到畸变点的变换用得比逆变换更普遍。
(1) 式从r u 求解r d 时, 需令r u =x y u +u , 根据
要解一个关于r d 的三次方程:
r 3r d +d =0d +c
(6)
式中, c =1/k 1; d =-cr u 。按照Cardan 公式, 它有一个或三个解, 这取决于判别式:
y i ∑x i i ∑=1
2
∑i =1
y 2i
-n
y i ∑i =1
|sin φ|=|cos φ|=
22a +4b +c -2ac
+22a +4b +c -2ac
用(2) 式的像差模型纠正像差后的图像点应该尽量与直线重合, 亦即偏移量之和
i =1
∑δi 最小。
n
2. 2 平行直线投影后为平行直线或相交于一点
事实上, 在对标定网格板成像时, 一般网格平面不与成像面平行, 所以平行网格线在成像后应该相交于一点。
由解析几何可知, 如果三条直线的一般方程分别
Δ=Q +R (7) 式中, Q =; R =-。如果Δ>0, 则只有一个
32
实根
3
r d =R (8)
R Δ
如果Δ
r d =-S cos T +S 3sin T
3
32
(9)
。R
图6 纠正鱼眼变形前后的图像
Fig . 6 The im ages before and after
fish -eye distortion correctio n
式中, S =
R -Δ;T arctan
3
4 实验结果分析
先绘制一个等间隔正交网格图, 用待标定的鱼眼镜头对它成像, 获得如图5(a ) 所示的畸变图像, 用本文算法求解像差系数并纠正畸变。图5(b ) 是纠正了畸变的网格图。可以看出, 网格线已全部拉直。用同样的镜头拍摄了几幅人像图, 把刚才得到的畸变系数代入, 也可得到纠正畸变后的图像, 如图6(b ) 。从人
像图可看出, 人像已无变形, 背景天花板中的直线接缝也已由曲线拉直。
利用射影不变性, 从既有投影变形又有鱼眼畸变的图像中纠正了鱼眼畸变, 从而使得到的图像只含有透视变形。从实验结果可以看出, 本方法速度快, 精度高, 可通用于处理鱼眼镜头或存在畸变的其它摄像镜头拍摄的图像。此外, 本方法巧妙地运用Cardan 公式求解了三次方程, 大大加快了求解速度。当然在实际应用中还有其它一些问题需要解决, 如采用更精确的球形畸变模型, 而不采用多项式畸变模型, 这是下一步的研究方向。
参考文献:
[1] 于起峰, 等. 基于图像的精密测量与运动测量[M ]. 北京:科学出版社. 2002.
[2] Shishir shah , J K Aggarwal . Intrins ic parameter calibration pro -cedure for a (high -distortion ) fish -eye lens camera with distor -tion model and accuracy estimation [J ]. pattern Recognition , 1996, 29(11) :1175~1178. [3] 马颂德, 等. 计算机视觉-计算理论与算法基础[M ]. 北
图5 用来纠正鱼眼变形的网格图Fig . 5 The grid
pattern used in correction
京:科学出版社. 1998. [4] 邱志强, 等. 基于神经网络模型的CCD 像差修正[J ]. 光学技术. 2003, 29(1) :86~88. [5] 于起峰, 等. 数字式光测胶片图像自动分析系统[J ]. 应
用光学, 2001, 22(4) :30~34.
5 结论
A Correction Method of Fish -eye Lens Distortion
Using Projective Invariability
QI U Zhi -qiang , LU Hong -wei , YU Qi -feng
(National University of Defense Technology , Changsha 410073, China )
A bstract :Man y algorithms in computer vision usually use pin -hole camera model . Since fis h -eye lens have large distortion , it is necessary to cor -rect it first . In order to correct lens distortion from an i mage which is caused b y both the lens distortion and projective transform , three projective
invariants should be used . Stratight line s hould be straight after projection . Parallelline should be intersect at one point or still parallel . Cross -ratio should be constant after projection . During the correction , firstly , capture an equal -space orthogonal grid image by the fish -lens and then use the projective invariant to find out a polynomial distortion model . In order to speed up the algorith m , the Cardan method is used to solve the cubic e -quation , result show hat the new distortion correction method is fast and accurate . Keywords :projective invariant ; fis h -lens distortion ; cameral calibration