一种改进的鱼眼图像有效区域提取方法

马朋飞+穆春阳+马行+李柳群
摘 要: 鱼眼镜头拍摄的图像具有严重的变形,要想利用鱼眼图像的信息,就必须将其校正为常规的线性图像。提取鱼眼图像有效区域是进行校正的前提,同时,鱼眼图像有效区域提取的精度将影响到鱼眼图像校正的效果。传统最常用的方法是扫描线逼近法,计算量较小,速度较快,但也具有抗干扰性差的缺陷。针对有效区域边界存在黑色像素点影响传统算法精度的缺点,提出通过改变扫描步长,垂线缩进的改进算法。实验结果表明,改进算法能准确确定有效区域的中心坐标和半径,具有精度高、耗时少、满足实时性要求的特点,具有较强的实用价值。
关键词: 鱼眼图像; 有效区域提取; 扫描线逼近; 垂线缩进; 实时性高
中图分类号: TN911.73?34; TP391.41 文献标识码: A 文章编号: 1004?373X(2017)15?0010?04
Abstract: Since the image taken by the fish?eye lens has serious distortion, in order to take advantage of the information of the fish?eye image, it must be corrected as the conventional linear image. The extraction of the fish?eye effective area is a prerequisite for correction. The extraction accuracy of the fish?eye image effective area can affect on the correction effect of the fish?eye image. The scanning line approximation method of the commonly?used ones has small calculated amount and fast speed, as well as poor anti?interference ability. To eliminate the shortcoming that the black pixel existing in the effective area boundary can affect on the accuracy of the traditional algorithms, an improved algorithm of changing the scanning step size and retracting the vertical line is proposed. The experimental results show that the algorithm can determine the center coordinate and radius of the active area accurately, has high precision and short time?consuming, can meet the real?time requirements, and has strong practical value.
Keywords: fish?eye image; effective region extraction; scanning line approximation; vertical?line indentation; high real?time performance
0 引 言
随着图像处理硬件的发展,机器视觉技术也取得了长足的进步。传统机器视觉技术一般都是通过普通镜头来获取场景的信息。但常规镜头的视场角较小,只能获取有限的视场局部信息,这样导致视觉系统的盲区较大,限制了机器视觉技术的应用范围。鱼眼镜头是一种焦距极短、并且视角可以达到180°~270°的镜头。这种摄像镜头的前镜片直径很短且呈抛物状向镜头前部凸出,与鱼的眼睛颇为相似,“鱼眼镜头”因此而得名[1]。中国已于2013年底发射“嫦娥三号”,搭载的“玉兔号”月球车配备的就是此种摄像头,拍摄的全景图和展开图如图1所示。在相同面积下,鱼眼镜头捕获的视角范围远远大于平面镜头,但是除拍摄的图像中心的画面保持不变外,其他垂直、水平方向的画面都发生了严重偏移畸变。要想利用这些具有严重畸变图像的透视投影信息,就需要将这些畸变图像校正为符合人眼观察的透视投影图像。
将鱼眼图像校正为实际场景的图像,其前提是提取出鱼眼图像的有效区域,精确地求出鱼眼图像的光学中心和半径即除去鱼眼图像四周的黑色部分,中间位置的图像即为鱼眼图像的有效区域。
目前常用的提取鱼眼图像有效区域的算法有面积统计法[2]和扫描线逼近法[3?4]。面积统计算法的优点是计算量小、容易实现,但是鱼眼图像有效区域内存在较多黑色像素点时,该方法将产生巨大偏差,并且加大了计算量,对实时性要求存在一定程度的制约[5]。扫描线逼近法对鱼眼图像内部的黑色像素点不是很敏感,可有效地弥补面积统计算法的不足,但是如果在图像的边界处存在大量黑色像素点时,结果也会出现较大误差[6]。本文通过建立新的坐标系、控制步长、垂线缩进等方法对传统扫描线逼近法进行改进。经实验表明,改进的扫描线逼近法在保证精度的前提下,显著降低了提取鱼眼图像有效区域的计算量和时间。
1 鱼眼图像成像原理
鱼眼镜头可近似为半球面,相机沿其光轴的方向拍摄,成像平面为平面(如图2所示),设半球面的方程为[7]:
对拍摄对象上的任意一点连结交半球面于点过点作的平行线,交成像平面于点则点就是空间点在成像平面所投射出的像。因此,对于鱼眼镜头而言,所拍摄的场景信息布满一个圆。
2 扫描线逼近法
图像像素点的亮度在RGB模型下的计算公式为:
式中:分别为像素点的红色、绿色、蓝色分量[8]。
图像中某一行(列)的最大亮度与最小亮度之差,叫做该行(列)的极限亮度差
鱼眼图像的圆形有效区域集中了大部分图像信息,且该区域内的图像像素亮度值远远大于有效区域之外的像素点的亮度,因此区域内的极限亮度差比有效区域之外的极限亮度差要大得多,根据鱼眼图像的这种内外像素亮度差很大的特点,给出鱼眼图像有效区域提取的扫描线逼近法[9]。
以位图像素点阵的行(列)建立扫描线(left,right,top,bottom),从左至右、从上至下逐次向鱼眼图像中心扫描,如图3所示。由于鱼眼图像有效区域含有彩色像素点,当扫描线扫描到该区域时,图像像素点的极限亮度差逐渐增大。可通过预设一个阈值判断该行(列)的图像像素点的极限亮度差是否满足条件:
如果满足式(4),即可认为已经扫描到鱼眼图像的边界。依照此种方法可依次求得有效区域的左右边界线和上下边界线。求出left,right,top,bottom四个参数之后,就可以根据式(5),式(6)提取出鱼眼图像圆形有效区域,确定圆心坐标及半径参数[10]:
3 改进的扫描线逼近法
对于扫描线逼近法而言,如果鱼眼图像的边界存在黑色区域时,将会造成求得的有效区域向中间偏移,使得提取出的有效区域变成长方形,从而影响鱼眼图像的校正。同时在扫描过程中对于图像的4个顶角先后扫描了两次,如图3所示,造成了重复性的操作,降低了实时性。
为解决上述问题,本文提出通过建立新的可控步长扫描线、垂线缩进及半径修正方法对扫描线逼近法予以改进。
3.1 建立新的扫描线
步骤1:以鱼眼图像的左下角顶点为原点,以图像下边界为轴、上边界为轴,建立新的坐标系,如图4所示。
步骤2:以求取左边界线为例,left扫描线以轴为初始线,以步长沿轴正方向扫描[11]。计算扫描线left当前所在列图像像素点的极限亮度差判断极限亮度差是否满足式(4)。如果满足条件,可认为此行像素点属于有效区域内;如果不满足条件,则计算下一条扫描线所在列的图像像素点的极限亮度差当满足极限亮度差大于阈值时,left扫描线以步长1沿轴反方向扫描,当满足极限亮度差小于阈值时,取上一列扫描线为鱼眼图像有效区域的左边界left。同理,可求得鱼眼图像有效区域的右边界right。记鱼眼图像左边界切点为右边界切点为可确定左边界切点的横坐标为右边界切点的横坐标为。
步骤3:提取鱼眼图像有效区域边界,上下边界算法流程如图5所示。
确定出鱼眼图像有效区域的左右边界线之后,以左边界切点和右边界切点的中点作线段的垂线垂线段交鱼眼图像上边界于点。垂线段从点开始向内缩进,计算当前像素点和下一像素点的亮度值之差并判断亮度值之差是否满足式(4)。如果不满足条件,则取下一像素点为点,计算当前点像素点和下一像素点的亮度值之差如果满足条件,则取当前像素点为临时上边界点,记该点为
步骤4:过点作平行于轴的线top作为临时上边界线,计算该行像素点的极限亮度差如果极限亮度差大于阈值则确定出鱼眼图像有效区域的上边界;如果极限亮度差小于阈值则取下一行为临时上边界线,计算当前行的极限亮度差与阈值的关系。同理,可求得鱼眼图像的下边界线bottom。确认并标记有效区域上边界切点和下边界切点的坐标值,判断上下边界切点的横坐标是否相等。如果不相等,可确定有效区域上下边界存在大量黑色像素点干扰,取上下边界切点的横坐标为两切点之间的较小值。圆心坐标及半径可由式(4),式(5)求得。
3.2 半径的修正
如果鱼眼图像有效区域为椭圆时,可得鱼眼图像的有效区域不是标准圆形,而是会畸变成椭圆形。对于这种图像,需要乘以式(7)进行修正,使其变换为标准圆,半径修正为如图6所示,其中为鱼眼图像的中心点,为鱼眼图像行像素点与列像素点的比值。
4 算法分析与实验结果
4.1 算法计算量分析
假设鱼眼图像的分辨率为鱼眼图像有效区域的半径为步长为则传统扫描线逼近法的计算量为:
改进的扫描线逼近算法的计算量为:
随着高清鱼眼镜头的发展,鱼眼图像分辨率越来越大,在对1 080P图像进行处理时可以将原算法的200万计算量降低到万量级以下。改进算法能大大减少计算量,实时性得到了明显的提高。
4.2 实验结果对比
为了验证本文改进算法的有效性,选用3幅鱼眼图像分别进行100次试验求取平均试验数据。实验环境为:IntelCoreTM I3 CPU 2 GB内存计算机,以Matlab R2011a为工具,分别使用扫描线逼近法和本文改进的算法对鱼眼图像有效区域进行提取。实验数据如表1,表2所示,其中圆心坐标与半径由算法计算得到,标准值由人工手绘测量得到,误差是算法计算值与标准值相比得到。鱼眼图像有效区域提取的试验结果如图7所示。
由表1,表2中数据可得,改进的算法圆心坐标平均误差由原来的(2.0,2.6)降到了(2.0,0.7),误差率降低了69.2%,半径平均误差由原来的3.6降到1.5,误差率降低了58.3%。尤其是对于图3,由于存在亮点干扰,导致使用传统扫描线逼近法求得的数据误差较大,而改进算法可以较为精确地提取出有效区域。同时,改进算法能大大减少计算量,相应提取时间也减少,具有更好的实时性。
5 结 语
本文提出一种改进的鱼眼图像有效区域提取算法,相比于传统的扫描线逼近算法,改进算法能有效弥补传统扫描线逼近算法的不足,减少提取鱼眼图像有效区域的时间。实验结果表明,该算法能准确计算出鱼眼图像圆心坐标和有效区域半径,能快速准确地提取出鱼眼图像的有效区域。为下一步鱼眼图像的校正打下重要的基础。
参考文献
[1] 王永仲.鱼眼镜头光学[M].北京:科学出版社,2006:65?68.
[2] 常丹华,赵丹,杨峰明,等.提取鱼眼图像轮廓的算法改进及图像校正[J].激光与红外,2012,42(4):448?451.
[3] 王大宇,崔汉国,陈军.鱼眼圖像轮廓提取及校正研究[J].计算机工程与设计,2007,28(12):2878?2882.
[4] 汪丹,刘辉,李可.一种不断重定位圆心的鱼眼图像校正方法[J].电脑与信息技术,2016,24(2):30?33.
[5] 王波涛,闫跃,赵轩.基于最小二乘法的鱼眼镜头轮廓提取算法[J].国外电子测量技术,2015,34(4):31?35.
[6] 肖诗勤,杨关良.一种改进的鱼眼图像轮廓提取算法[J].计算机与数字工程,2010,15(1):147?150.
[7] 汪嘉业,杨兴强,张彩明.基于鱼眼镜头拍摄的图像生成漫游模型[J].系统仿真学报,2001,11(13):66?68.
[8] 冈萨雷斯.数字图像处理[M].阮秋琦,阮宇智,译.2版.北京:电子工业出版社,2006.
[9] 程德强,刘洋,柳雪,等.分割线扫描鱼眼图像有效区域提取算法[J].电视技术,2015,39(6):1?4.
[10] 江芳,袁纵横.鱼眼图像轮廓提取方法的对比[J].计算机系统应用,2011,20(4):214?218.
[11] 韩迎辉.基于改进扫描线逼近的鱼眼图轮廓提取算法的研究[J].电子器件,2013,36(6):784?788.