针对鱼眼图像边缘校正缺失的快速校正算法

2021-03-21 05:11李江华李恩德
小型微型计算机系统 2021年3期
关键词:鱼眼球面畸变

李江华,李恩德

(江西理工大学 信息工程学院,江西 赣州 341000)

1 引 言

近年来,各个领域对于计算机视觉技术的应用日愈广泛.尤其在机器人视觉及视频监测领域,更宽的视野是基本需求,机器人视觉需要对尽可能大的视野内的目标做出实时而准确的判断来获取导航信息.除了在机器人视觉领域,在大单位视频监控及虚拟实景等领域中,鱼眼镜头因其特有的大视角所形成的宽视场的优势,基于鱼眼的成像系统受到越来越多的关注[1].然而由于鱼眼相机引入了径向畸变,鱼眼图像除中心小部分区域外都存在失真,这不同于正常人类视觉习惯.为从鱼眼镜头摄像机获得一幅普通的矩形图像,恢复实际场景问题则需要对鱼眼图像进行校正,准确的鱼眼扭曲校正至关重要.鱼眼图像的校正方法一般分为基于标定的校正法和基于投影变换模型.其中基于投影变换模型的校正法是寻找一种能够将球面图像映射到平面图像的方法.基于标定的校正方法需要建立对于镜头的复杂数学模型,同时需要对设备进行标定,甚至需要相机的内部参数,校正成本高且对于人眼视觉观察并无显著提升.

为简化传统校正算法复杂度,提高校正后的视觉效果及提升校正算法的可行性和有效性,使鱼眼图像更符合人类视觉习惯同时尽可能全面的获取鱼眼图像内完备客观的物景信息,国内外相关领域研究人员提出了一系列有价值的算法.

Stenfan Hensel[2]等人通过结合对校正参数的估计,对鱼眼图像的径向畸变进行校正,实验结果验证了此算法在针对特定畸变问题方面的可行性.Zhang[3]等人在建立椭圆函数模型的基础上初步校正鱼眼图像,其次将椭圆函数模型中的参数进行调整从而对图像进行修正以获得更好的校正效果.Zhang[4]等人通过分步校正方法.第一步将经纬度校正以自适应的形式进行展开,进而利用霍夫变换检测直线,其次,以统一性优化直线方向检查直线从而以获得校正图像,实验结果表明,此算法在主要视野内物体完整且线条自然方面取得较好校正效果.上述方法在鱼眼图像的边缘效果、算法适应性以及效率方面都存在着局限性,对于鱼眼图像的完整性保持方面也不够理想.如椭圆函数模型在校正过程中造成鱼眼图像中心画面的缺失.鱼眼图像映射到椭球面,再将半球面的像素点根据特定的映射关系映射到平面上.而在此过程中,边缘部分的损失较大,对于边缘物景的缺失必定影响信息的获取.

Tien-Ying Kuo[5]等人利用加权联合残差细化获得更好的畸变参数并产生更准确的鱼眼失真图像,经过验证表明该方法可以充分校正径向变形和拉伸边界的鱼眼图像,但是此算法在设计中存在算法复杂度过高,时间复杂度较大,实现较为繁琐.Ma[6]在通过改进传统经度坐标校正,提出了一种通过位置不同求取不同圆心坐标与半径的算法,有效校正了桶形畸变.Si[7]针对畸变问题,在经线模型的基础上提出改进算法.该算法在经线模型基础上以校正算法和修正算法两部分进行,改进算法校正后通过半圆模型修正校正图以达到理想效果.此算法摒除繁琐过程,以整体模型实验以取得理想结果.Zhao[8]等针对不同区域畸变率不同,划分鱼眼图像有效区域,该算法改善图像横纵畸变问题,同时存在边缘模糊,边缘区域信息缺失的问题.Wei[9]针对鱼眼图像桶形畸变大的问题,通过地球仪经纬线的思想加以改进以得到双经度球面,经过相应的映射公式将图像转换,再建立与图像对应的异向经度坐标体系,在此基础上展开映射图以得到完整校正图,然而此算法通过引入极点来映射时会对极点附近的边缘部分拉伸严重.

故本文在上述前提下,在球面透视投影和经纬映射的基础上,对模拟镜头球面进行了改进,同时为应对鱼眼图像边缘部分校正后仍存在一定量失真的问题,提出了相对应的边缘部分校正算法与之结合,针对边缘部分进行修正,解决了鱼眼图像畸变问题.

2 相关研究

2.1 鱼眼图像成像系统

在鱼眼相机成像的过程中普通相机与鱼眼相机存在较大差别,其中在于相机视角达到往常相机不能达到的视野时,图像趋于无穷大,于是鱼眼相机为满足相应要求从而产生一定量的畸变,且主要为径向畸变[10].鱼眼图像点与空间点成像关系可以总结如图1所示.

图1 鱼眼镜头成像模型Fig.1 Fisheye lens imaging model

其中x点与xoy平面的点m的映射过程即为鱼眼图像的成像过程.成像后的平面上m与成像中心o的距离称之为像高.像高的多少取决于投影成像模型函数[11].鱼眼成像过程中投影函数以及其表达式如下所示:

等距模型:r=fθ

(1)

等立体角投影模型:r=fsin(θ/2)

(2)

正交投影模型:r=fsinθ

(3)

体视投影模型:r=ftan(θ/2)

(4)

其中:θ是镜头光轴与入射光线的夹角,r是成像点到图像主点的距离亦即像高,f为焦距.本文中,利用等距模型作为鱼眼图像成像投影模型.

由于上述鱼眼图像的成像原理,鱼眼图像在成像的过程中在垂直和水平方向都发生了一定量的畸变,边缘部分的畸变尤其明显.

2.2 传统单位球面的确定

传统的球面透视投影模型由英向华,胡占义[12]提出,其基本原理为建立空间直线与畸变鱼眼图像上相对应曲线的映射关系,且该映射为球面大圆.如图1所示,q是球面点,其坐标为q(θ,φ),与畸变图像点的关系如下:

(5)

以畸变中心建立极坐标以表示畸变点的r与θ1.选取合适的点进行拟合,进而得到畸变图像点到单位球面的映射关系,即求出公式(5)中的参数最优值.在获得鱼眼图像映射的单位球面后,下一步为建立球面的外切正方体,将球面点映射到正方体的各个表面.

3 鱼眼图像校正过程

3.1 鱼眼有效区域提取

在鱼眼图像的校正过程中,所有工作的前提是将畸变鱼眼图像的有效区域提取出来,并同时计算出鱼眼图像有效区域的半径和畸变中心用于下一步的图像校正.鱼眼图像的有效区域的传统提取算法有面积统计法,最小二乘拟合法,区域增长法和扫描线逼近法[13-15]文在已有提取算法的前提下,利用扫描线逼近法的思想加入中垂线的作用,以缩短提取时间,增加提取效率为目的,对提取过程进行改进.提取算法示意图如图2所示.

图2 提取算法示意图Fig.2 Extraction algorithm diagram

在提取过程中,第一步先将设置一个合适的阈值[16]将鱼眼图片二值化处理,在此基础上设置第二个扫描阈值,以逐行逐列扫描法从图片左方开始进行扫描,确定鱼眼图片左切点后过此切点做鱼眼图像的左边界的垂线,在此垂线上做像素点的遍历,通过扫描阈值确定右切点.在确定左右切点之后,做此条线段的中垂线,以相同方式确定上下切点.以n·m的鱼眼图片为例,此种鱼眼图像提取方法计算量为:

n·(m-2R)/2+(n-2R)-(m-2R)/2

(6)

3.2 获取校正关系

3.2.1 中心区域映射关系

本文通过改进提取算法提取到鱼眼图像有效区域以及其半径和畸变中心后,提出改进的双垂面鱼眼图像校正方法,具体流程如下:

第1步找到鱼眼图像的畸变点(x,y),将其转化为极坐标形式(r,α).假设鱼眼镜头的半视角为θm,入射角为θ.

θ=r·θm/R

(7)

假设球面半径为Rλ,球面上各点的坐标(θ,α),如图所示,其直角坐标为(x,y,z),将球面上各个点的坐标转换成经纬度坐标(θ′,φ′).

第2步将球面图像映射到平面图像上,在以往算法理论中往往需要在球面周围建立外切正方体,以映射到各个正方体的表面上,不同角度范围的点映射到不同的正方体表面上,最后再进行拼接.本文中,为避免繁琐的计算过程以及图像拼接的过程,首先采用主视图基于三角计算的双垂面映射法.如图3所示.

图3 双垂面示意图Fig.3 Double vertical plane图4 映射图Fig.4 Map

首先本文以互相垂直的两个映射面中一个面进行算法解释,如图4所示.

有任一点位于球面,在已确定的球体中心o周围存在圆面与平面ABCD,平面ABCD为映射平面,连接圆面上点与球中心可得ok′相交于点k,k是球面点k′在平面上的投影点.根据如上映射关系,可找到球面图像到平面图像之间的映射关系.假设k在平面上的点坐标为(x,y),图中线段EF的中点为M,N是线段HI的中点,EF//HI,KQ//MN.平面图像长度为h1,宽为w1,球面图像长度为h2,宽为w2,ΔMOK和ΔMOE为直角三角形,圆心角∠KOE=∠MOE-∠MOK.由图中可知,MN=y-h1/2,NO=lNO根据勾股定理可得MO的长度:

(8)

由三角几何关系可得:

(9)

故KE对应的弧长为:

(10)

同理,在纵轴方向上QN=w1/2-x,NO=lNO,同样根据三角几何关系可得:

(11)

故KQ对应的弧长为:

(12)

以上通过建立校正关系逐个将经纬坐标点映射至平面图像,同样地,另外一个与此映射面互相垂直的映射面以相同的方法映射相对应的球面图像部分.

3.2.2 调整参数

在传统校正算法中,球面半径一般等于鱼眼图像半径或者是以单位一作为半径进行计算,但是本文考虑到现实中存在的误差,为了更好的进行球面映射,使得到的球面映射图更客观,校正效果更好,本文采用可调整参数来设置球面半径.

本文得到球面的方法为选取原始图像上的一条弧线,在其上选取若干点进行直线拟合,在本文中,利用最小二乘法进行直线拟合.为获取更合适的球面半径,文中引入相关系数rΔ作为评价指标.

(13)

3.2.3 边缘校正

本文在校正完鱼眼图像的主视图区域后,针对边缘部分的校正采用边缘部分动态视野经纬校正法对边缘畸变部分进行校正,以满足更好的整体校正效果.

鱼眼畸变图像边缘部分如图5所示.

图5 边缘示意图Fig.5 Edge diagram

相对于传统校正法中将映射面进行固定而言,本文将映射面进行动态可调整化处理改进.引入angle变量对主视图以及边缘部分进行控制,建立映射面与angle的关系,同时对边缘部分进行区域整合.已知映射面的宽度为w1,建立起与angle的关系:

w1=lNO·(2·tan(angle·π/360))

(14)

在此基础之上,寻找各个参数之间最合适的关系,建立对于边缘部分与主视图部分最优的校正效果.

对于横轴上面的畸变,可将其看作在纬线上的畸变,将不同的纬线看作在同一条轴上的同心圆Oi,设畸变点所在纬线的圆心z坐标为zi,则此圆的圆心坐标为Oi(x0,y0,zi),此圆半径为:

(15)

在此纬线圆上,假设畸变点坐标为(a,b),校正点为(u,v),圆心点在zi面上为(x0,y0),根据几何关系可得:

(16)

整理可得:

(17)

以上畸变点的校正均在z=zi平面上,故z坐标均为zi.

对于在纵轴上面的畸变,可将其看作经线上的畸变,将不同经线所围成的同心圆上的畸变点进行校正,同样地,与纬线圆上的校正相比,在几何关系上相同,然而圆的大小不变,圆心与半径始终保持相同,畸变点与校正点的关系可表示为:

(18)

本文通过以上边缘畸变部分的经纬校正法对主视图以外的边缘部分进行了校正,与上文中主视图的校正相辅相成,达到对畸变图像的整体校正.

3.3 灰度插值

本文在校正过程中,考虑到后向映射的特点相对于其相反过程的映射在像素赋值时更加有效且存在问题更少,故在文中采用从结果到问题的后向映射[17].通过建立校正关系得到校正前后坐标点转换后因为映射的原因,校正后坐标出现非整值点的问题,故需要经过插值算法填充相应点[18].在图像校正过程中常见的插值方法主要有最邻近插值、双线性插值、三次卷积插值,其中双线性插值[19]相对其他两种在时间复杂度和计算复杂度方面都有一定优势,故本文采用双线性插值来对坐标变换后的图像进行插值运算.

图6 双线性插值Fig.6 Bilinear interpolation

双线性插值方法以不同方向分别插值为其基础,过程示意图如图6所示.

N点为待插值点,Maa、Mab、Mbb、Mba为与N相邻的4个点,在横坐标轴方向上第一次插值运算,过程为:

(19)

在此结果上在竖直方向进行以上述相同的过程:

他直起身子,身旁是横七竖八睡着的兵士。宿晚勾起嘴角,笑容苦涩。是啊,梦中的一切是多么温暖,温暖得不真实。

(20)

根据上述两个方向的相同过程,可得:

(21)

经过插值运算填充匹配,最终完成校正图像的描绘.

4 实验结果及分析

文中实验在Matlab2019a与QT平台进行实验操作,选取尺寸在标准测试鱼眼图像作为实验图像.在本部分对文献[6]、文献[8]以及文献[12]中的算法与文中算法进行了性能比较.

文中实验首先对实验图片的有效区域进行个提取,利用本文第三节中改进的鱼眼有效区域提取算法将原始鱼眼图像的有效区域进行提取.本文在保证提取效率的同时,因考虑到提取精度对于整体实验而言至关重要,为验证本文提取算法的提取精度,首先利用文中改进的提取算法与传统的扫面线逼近法对同一副鱼眼轮廓图像有效区域进行提取以进行对比实验,同时对有效区域半径与圆心进行测量.如图7所示,对于同一个圆的提取,本文提取算法用时0.37s,传统提取算法用时1.27s,同时在提取精度方面占据优势.

图7 鱼眼图像轮廓提取图Fig.7 Bilinear interpolation

然后对图像的主视图进行校正,同时在大视角的鱼眼图像中,边缘校正更显重要,第一步操作后,利用角点检测得到鱼眼图像上一定个数的样点,以相关系数为参考标准求得最合适的Rλ和angle值.为验证算法有效性,使用两幅不同的鱼眼图片在不同angle下对算法进行验证,如图8所示.

在求得最合适的半球面半径以及angle后,对鱼眼图像进行校正,图9(b)为提取后的鱼眼图像有效区域,分别利用

图8 不同angle校正示意图Fig.8 Diagram of different angle correction

图9 校正结果示意图Fig.9 Calibration result diagram

由图9可以看出,与已有算法相比,本文算法在校正效果上更优,对于水平方向的畸变校正效果明显,同时对于边缘物体的捕捉更加全面,减少了图片中有效信息的损失,更好的改善了视觉效果.

以图9作为评价标准,分别从畸变角度与结构相似度以及算法运行时间放面进行算法比较,通过数据分析本文算法的有效性和可行性,如表1所示.

其中结构相似度是以数值表示的方式反映两幅图像在结构方面的异同,图像中物体的结构细节以及轮廓的相似程度可由其量化表示,这个量化的数值趋于1表征两幅图像在相似性方面愈接近,在本文中,通过比较未畸变源图像与校正图像的结构相似性对比来进行校正算法的评定,结构相似性计算公式为:

表1 算法性能比较Table 1 Algorithm performance comparison

SSIM(f,g)=l(f,g)·c(f,g)·s(f,g)

(22)

式中f、g分别表示未畸变源图像,和校正后的图像,l表示亮度变化,c表示差异变化,s表示结构变化.

从表1可以看出,本文算法相对于文献[6]与文献[8]以及文献[12]中的算法,平均畸变角度更小,在对图片中景物的校正更加理想,更加符合现实,对于鱼眼图片信息的恢复要优胜于其他对照组算法.

为验证边缘校正效果,是否囊括必要的边缘信息,从而实现更准确客观的校正图像,以及经过改进的球面半径参数对于校正图片质量的改良,本文引入图像边缘熵指标[20]与近似信噪比概念来对改进算法的性能进行评价.其中图像边缘熵标书了图像边缘的信息平均持有量,是一种表征边缘部分信息量的统计形式,图像边缘熵越大,说明边缘校正效果越好,图像熵的公式为:

s=-∑f(i,j)lgf(i,j)

(23)

f(i,j)为在(i,j)点这个灰度的概率值.近似信噪比则根据信噪比在图像中的意义,以一种近似的方式,对校正后的图像质量进行衡量,其公式可表达为:

s/n=10 lg(ps/pn)

(24)

将pn近似为图像的标准差与均值的差值,ps为图像的均值.实验结果如表2所示:

表2 算法性能试验结果Table 2 Algorithm performance test results

在与自身未畸变源图像的比较中,本文利用结构相似度公式进行比较,从表1中可看出,经过本文校正算法校正得出的图片在结构方面更加贴合源图像,从而说明校正效果更好.同时为保证校正算法的可行性,本文在验证时通过算法的运行时间来进行比较,本文算法经过改进的提取鱼眼图像有效区域的算法,在校正时间上大大提高,相对于文献[6]中2.72s的校正时间和文献[8]中1.71s的校正时间以及文献[12]中2.86s的校正时间,本文算法在增加算法复杂度的同时,却没有显著增加时间复杂度,本文校正算法效率更高.如表2所示,文中改进算法在增加提取与校正效率,实现实时快速校正的前提下,并没有损失过多的图片质量,同时对鱼眼图像边缘部分的校正更加准确有效,涵盖了更多地细节,同时更符合人眼观察习惯,对于人们于鱼眼图像中摄取有效客观信息的目的有更大帮助.通过各个方面性能的比较,可以看出本文改进算法在鱼眼图像校正方面更具有可行性和有效性.

5 结束语

针对现阶段鱼眼图像校正算法的需求以及现阶段算法中存在的问题,提出一种快速的鱼眼图像有效区域提取技术以及改进的映射校正方法.快速提取算法通过遍历垂直平分线的思想,进一步缩短了提取有效区域的时间复杂度;改进的校正方法针对边缘部分校正的不足,通过对边缘部分范围进行参数控制,进一步对边缘部分进行了较好的校正,更大程度上保留了原图片内容信息;算法通过融合三角计算以及参数变换,在保证鱼眼图像主视图校正效果更好的前提下,使映射面与鱼眼图像匹配,同时使用双线性插值对校正后的图像进行填充,实现鱼眼图像的快速提取以及校正.实验结果表明,文中算法在边缘部分的校正上有显著提高,并且校正效果更好,更符合人类视觉习惯,畸变角度明显减小,与未畸变源图像相比,结构相似性高,边缘信息保留程度高,校正图片质量高,同时算法运行时间缩短近50%,具有较好的可行性和有效性.

猜你喜欢
鱼眼球面畸变
面向鱼眼图像的人群密度估计
薄壁箱梁畸变的Galerkin解法*
新能源汽车电机转轴条形槽的渗碳淬火畸变控制
大型焊接容器局部热处理防畸变工装优化设计
《癌变·畸变·突变》中国科技核心期刊收录证书
球面距离的几种证明方法
鱼眼明目鱼头补脑是真的吗?
囊括宇内
鱼眼里的爱情