基于几何成像模型的鱼眼镜头图像校正算法和技术研究

2013-09-13 06:05费章君杨仕友
机电工程 2013年10期
关键词:鱼眼视场畸变

李 根,费章君,杨仕友*

(1.浙江大学 电气工程学院,浙江 杭州 310007;2.南自信息技术有限公司,江苏 南京 210012)

0 引 言

由于鱼眼镜头具有视场角广(可达180 °)的优点,特别适合于大场景视频监控应用,近年来在视频监控领域的应用日渐广泛。由于鱼眼镜头拍摄图像带有大量的桶形径向畸变[1],故鱼眼图像不符合人类视觉习惯。为解决这个问题,国内外学者提出了多种方法以校正鱼眼镜头图像。应用最早的方法为基于多项式模型的校正算法[2-3],Basu 等[4]提出了基于对数运算的FET 变换方法(Fish-Eye Transform),以及基于抛物面成像模型的漫游及深度恢复算法[5-6],Kedzierski 等人[7]提出了一种基于微分几何的精确校正算法,Wang 等人[8]提出了基于参数方程的鱼眼镜头畸变数学模型,并将主光轴偏转也包含在内。需要说明的是,这些现有算法不是从鱼眼镜头的构造出发,或者没有区分不同类型的鱼眼镜头,因此无法针对不同的镜头类型的图像给出校正参数的解析解。

有鉴于此,本研究基于“非相似”成像理论,类比小孔成像模型构造不同鱼眼镜头的几何模型,提出一种鱼眼镜头图像校正算法;同时,为保证算法的实时性,还对算法的快速实现问题进行研究。

1 非相似成像理论

鱼眼镜头是人们模仿鱼眼工作原理而设计的镜头。其特点是视场角广,可以达到180 °范围,但所获得的图像具有径向桶形畸变的特征。鱼眼镜头摄像机在水平视场角180 °、垂直视场角160 °拍摄的图像如图1 所示。

图1 鱼眼镜头拍摄的图像

根据相似成像原理,普通光学镜头远距成像像高公式为:

式中:y0′—理想像高度,f—镜头物方焦距,ω—物方半视场角。

鱼眼镜头远距成像模型为非相似成像模型,针对不同镜头,有以下成像公式[9-10]:

式(2~5)都可提供相应的径向桶形畸变,但是特点各不相同。其中式(3)称为“等距投影”成像,是应用最为广泛的鱼眼镜头成像模式。

2 等距投影成像几何模型

笔者以式(3)和式(5)为例,研究鱼眼镜头的几何模型。上述式(1)的几何模型为“小孔成像”模型,如图2 所示。

图2 小孔成像模型

根据图2,如果把像平面π替换为原点为O、半径为 f 的半球面π2,则像高y′0 满足式(5)。由此推广,通过替换不同的曲面作为像面,可以做出不同鱼眼镜头的几何模型,几何模型如图3 所示。

图3 鱼眼镜头成像几何模型

图3 中,曲面 π2 为球面,曲面π1 即满足式(3)的“等距成像”的像曲面。由式(3)以及鱼眼镜头的对称性,可知π1的解析式为:

3 鱼眼镜头图像的校正算法

平面校正,就是去掉鱼眼镜头图像的畸变,使输出图像符合人类视觉习惯的操作。具体来说,没有畸变的图像是由小孔成像原理得出的,也就是在平面π上的成像。因此,如果能根据曲面π1上的像计算出π 上的像,即可得到校正图像。图3 中的物点p 在平面π 和曲面π1上分别形成像点q 和q1,像高分别为和。由式(1)和式(3)可得:

通过左右移动平面π,也就是改变小孔成像的焦距,就可以改变校正后图像的视场角,实现“拉近推远”(zoom)的效果。设校正后图像的成像焦距为 f′,原图像焦距为 f,则有:

式(7)即为由几何模型得到的等距影鱼眼镜头图像平面校正公式。

同理可得对于式(2,4,5)的鱼眼镜头模型,其平面校正公式分别为:

4 实时实现技术

计算机内部以像素为单位存储图像,所以必须将式(7)转化为以像素为单位的图像。为此,首先需要确定原图像的光学中心,即主光轴通过的位置。由图3 知,水平和竖直视场角都为180 °的鱼眼镜头拍摄的图像为圆形,其圆心就是光学中心,图像的其他部分为空白(实际为黑色)。如果图像的光学中心固定,可以事先获取一幅图像,鱼眼镜头图像如图4 所示,本研究先使用形态学方法找到图像的圆形边缘,再使用Hough 变换计算圆心坐标,应用于后续图像。光学中心示意图如图5 所示。

图4 鱼眼镜头图像

图5 光学中心示意图

为实现实时确定上述圆心(光学中心),本研究提出了一种快速计算方法。

通过观察图4 可知,圆上最靠近图像左边缘的点和最靠近右边缘的点连接起来就是一条直径,而直径的中点就是圆心。所以本研究可以通过扫描图像找到这两个距边缘最近的灰度不为零的像素 p 和q,从而快速求取圆心坐标。实际图像中由于采样间隔,可能找不到相应的像素,同时由于边缘找取的结果可能不光滑,从而影响算法的精确度。此时研究者可将与左、右边缘距离最小的各3 个像素纵坐标分别取平均值,横坐标不变,构造出p 和q 的坐标。具体实现时,图像数据存储为二维数组,像素坐标即数组下标。如果从第一行开始扫描,将当前距左、右边缘距离最小的3 个像素坐标分别缓存在数组中,如果遇到距离更小的点就替换缓存中的数据。最终找到距左边缘距离最小的3 个点 p1、p2、p3,距右边缘距离最小的3 个点q1、q2、q3,则可得出圆心坐标(x,y)和半径r 分别为:

另外,根据式(3)可知,摄像机焦距为:

式中:r—圆的半径;f—焦距,单位为像素。

设校正后的图像高为h,宽为w,其上有一点A(x,y),对应原图像像点 A′(x′,y′)。假设校正后图像的光学中心位于几何中心,重合于O(w/2,h/2),则A′点像高和坐标为:

由式(11,12)可得校正后图像的任意像点对应原图像的像点位置,一般不为整数,笔者使用插值方法计算出像素颜色值。遍历所有像素点得到的校正后的图像如图6 所示。

图6 校正后图像

在实际应用中,式(11,12)涉及到多次根号和三角函数运算,研究者可以采用映射表的方法提高算法效率。另外,具体实现中研究者可以根据需要,在满足精度要求的前提下,选择快速的插值算法以提高效率。

5 实时性优化

由于式(11,12)包含多次平方根和三角函数运算,如果逐点运算,复杂度太高,实际应用中可能达不到实时性要求。为了提高效率,研究者可以在参数确定的前提下提前算出所有结果,将其缓存为文件,程序启动时将数据读入内存。

由于式(11,12)的计算结果不为整数。为了减少计算量,可以直接缓存插值所需的参数。以双线性差值为例,某一点p(x,y)的灰度值 f(x,y)计算公式为:

式中:Qij—p 左上、右上、左下、右下的4 个相邻点,kij—双线性插值参数。

如果摄像机的参数不变,那么Qij和kij 都不变,可以将它们缓存起来使用。数据结构可如下设计:

这样的数据结构可以方便地存入磁盘或从磁盘中读取。

采用缓存之后,由于系数kij不为整数,依然无法避免浮点数计算。在满足精度要求的前提下,可以使用整形变量近似浮点数变量。当浮点数赋值给整形变量时,小数部分将被忽略,无法保证精度,所以需要额外的处理。

观察式(13),如果将kij乘以一个相同的系数,等式左边只要乘以同一个系数等式依然成立。所以可以使用“将kij乘以一个系数m”的方法,将kij 的小数部分中的一部分,移至整数部分。这样将kij赋值给整形变量时,忽略的小数部分就可以按照研究者的要求增大或减小,改变m 的值就可以改变精度。计算出结果后,只要将 f(x,y)除以m,即可得到实际的结果。因为计算机中的移位操作比除法效率高,笔者建议m 的取值为2 的幂级数的形式,这样便可以用移位操作代替除法操作。

为说明本研究优化算法的计算效率,现以典型图像处理为例,计算考察了不同算法的实时处理能力。两种不同方法的性能比较结果如表1 所示。显然,本研究算法的计算效率明显高于原算法的计算效率。

表1 不同算法性能对比

6 结束语

本研究基于几何成像模型研究了鱼眼镜头图像的校正算法和技术。这种方法基于镜头成像原理,可对不同镜头的图像进行精确校正,并可通过参数调节实现校正后图像的视场角变化。本研究以“等距投影”模型为例,给出了其实现方法。最后,为解决算法工程应用的实时性,本研究提出了基于缓存的优化的快速计算方法和快速双线性插值实现方法。经过实验验证,根据上述方法开发的图像校正系统可以实现鱼眼图像实时精确校正。

因为鱼眼镜头图像畸变为非线性畸变,离光学中心越远的点畸变越大,校正后的图像较边缘的区域存在模糊和锯齿现象。如何减少锯齿和模糊现象,将是下一步研究工作的重点。

(References):

[1]KANNALA J,BRANDT S S.A generic camera model and calibration method for conventional,wide-angle,and fisheye Lenses[J].IEEE Transactions Pattern Analysis and M achine Intelligence,2006,28(8):1335-1340.

[2]NOMURA Y,SAGARA M,NARUSE H,etal.Simple cali⁃bration algorithm for high-distortion lens camera[J].IEEE Transactions on Pattern Analysis and M achine Intelli⁃gence,1992,14(11):1095-1099.

[3]廖士中,高培焕,苏 艺,等.一种光学镜头摄像机图象几何畸变的修正方法[J].中国图象图形学报,2000,5A(7):593-596.

[4]BASU A.Alternative models for fish-eye lenses[J].Pat⁃tern Recognition Letters,1995,16(4):433-441.

[5]汪嘉业,杨兴强,张彩明.基于鱼眼镜头拍摄的图像生成漫游模型[J].系统仿真学报,2001(13):66-68.

[6]张 诚,汪嘉业.利用鱼眼照片恢复景物的深度信息[J].工程图学学报,2002(3):71-84.

[7]KEDZIERSKI M,FRYSKOWSKA A.Precise method of fisheye lens calibration[C]//The International Archives of the Photogrammetry,Remote Sensing and Spatial Informa⁃tion Sciences.China:[s.n.],2008:765-768.

[8]WANG J,SHIF,ZHANG J,etal.A new calibration model of camera lens distortion[J].Pattern Recognition,2008,41(2):607-615.

[9]陈晃明,陈向颖.鱼眼镜头光学设计[J].北京理工大学学报,1989,9(12):35-42.

[10]王永仲,鱼眼镜头光学[M].北京:科学出版社,2006.

猜你喜欢
鱼眼视场畸变
一种晶圆自动光学检测系统的混合路径规划算法
面向鱼眼图像的人群密度估计
星模拟器光学系统视场拼接方法的研究
一种基于基准视场扩散拼接的全景图像投影方法
医用内窥镜矩形视场下入瞳视场角的测试方法研究
微信扫一扫马上看视频鱼眼视频 小程序每天带你看最有意思的摄影视频
在Lightroom中校正镜头与透视畸变
鱼眼明目鱼头补脑是真的吗?
辐射诱导染色体畸变的快速FISH方法的建立
《癌变·畸变·突变》2014年第26卷索引