鱼眼镜头自标定和畸变校正的实现
鱼眼镜头图像畸变的校正方法(英文)

0926002-1
第9期
红外与激光工程
第 48 卷
0 Introduction
In many applications of photography, such as machine vision, security monitoring, medical diagnostics, and the projection reality and so on, an imaging lens with very large field angle is often required. A fisheye lens usually satisfies the demands, since it has the field angle of 180° or even larger, and does not need stitching of several pictures without the blind area. However, very serious image distortion exists. In many applications, it is necessary to correct the image distortion of fisheye lens.
收 稿 日 期 :2019-04-05 ; 修 订 日 期 :2019-05-03 基 金 项 目 : 国 家 自 然 科 学 基 金 (11274223) 作 者 简 介 :吕 丽 军 (1963-) , 男 ,教 授 , 博 士 生 导 师 ,主 要 从 事 真 空 紫 外 、软 X 射 线 光 学 及 超 大 视 场 光 学 系 统 方 面 的 研 究 。
鱼眼侍 业
基于圆分割的鱼眼镜头图像畸变校正算法

226
此特点,对丁均匀分割的同心蚓曲线映射成方形曲 线的lq时,根摧I刮心旧榷近边缘f自稗度,可以相麻 的对校正斤的^彤曲线问的距离进行微调,使得图 像的校正教粜更理想。 微调算j王如F:
5结论
本文研究丁一种基j圆分割f日鱼眼镜头校正算 法。通过将鱼眼州像舒割成若T同心吲线,利刖投
f“’=Ⅳ+m(0≤¨≤wJ
具有相同的,0坐标值.如图中H和世点在无扭曲的
3基于圆分割的鱼眼镜头校正算法
本文提出的基于圆分割的鱼眼校正算法采用 了同心圆分割的方法,将鱼眼图像分割成一系列的 圆线,再利用函数法,将畸变图像中的圆线经过一 定的算法映射成方形线,这样从图像中心的小圆开 始,将畸变的鱼眼圆形图像校正为人们习惯的透视 投影图像。有效的解决了基于经度校正方法还存在 的拱形失真问题,
的距离成正比.,取值越大.则边缘处微调物件之
法中采用的嘲分割山沾,充分利用了鱼崛图像的圆 对称返特征,JE其对于鱼眼l割像边缘处的{交『F敏 粜,与墓_’经度的畸变校正算法比较.本文提出的 算泣赦果更理想。微调系数的引入,使得算泣更灵
问的距离就越远,,的驭值可以根据宴%-情I兄设定。
4
MatLab实验结果
uses
the function method image distortion correction.Matlab
our
that the application of
algorithm has
corrected
can
the
fisheye
image
satisfactorily and the calculation of the algorithm takes less time,SO that it monitoring system. Key words:fish-eye lens;image distortion;circle
鱼眼相机外参标定函数 opencv

鱼眼相机外参标定函数 opencv鱼眼相机外参标定函数 OpenCV鱼眼相机是一种广角摄像头,由于其光学结构的特殊性,导致重要的成像参数与其他相机不同。
因此,鱼眼相机的标定与校正是摄影学和计算机视觉领域的一个重要研究领域。
本文介绍了OpenCV中鱼眼相机外参标定函数的使用和操作方法。
鱼眼相机的成像原理是一种广角投影模型,与标准透视投影模型不同,鱼眼相机的成像有很大的失真,导致了相机成像参数的独特性。
鱼眼相机的标定包括内参标定与外参标定。
内参标定是通过拍摄多个不同的图案来确定焦距、光斑偏移、球形变形等参数。
而外参标定则是使用鱼眼相机拍摄标准平面或球面上的图案,并通过拟合重建图案来确定相机的姿态和位置。
OpenCV提供了一系列鱼眼相机标定函数,这些函数主要包括fisheye::calibrate和fisheye::stereoCalibrate等。
这些函数的使用与普通相机的标定类似,但是需要指定鱼眼相机的投影模型类型和特定的参数。
在调用这些函数之前,需要准备好标定所需的图像和相应的图案,并通过手动或自动的方式确定一些参数,例如相机和标志的大小、布局和位置。
在进行鱼眼相机外参标定时,需要首先调用cv::calibrateCamera函数对相机内参进行标定,得到相机的投影矩阵和畸变系数。
接着,我们需要准备一组标定图案,并使用鱼眼相机拍摄标定图案获得图像与3D世界坐标之间的关系。
OpenCV中提供的fisheye::findChessboardCorners 函数可以自动从鱼眼相机图像中检测棋盘格标定图案的角点。
之后,我们需要使用cv::solvePnP进行姿态估计,将像素坐标系映射为相机坐标系。
最后,通过fisheye::calibrate函数拟合反投影误差,得到相机的外参,包括旋转矩阵和平移矩阵。
值得一提的是,鱼眼相机的标定和校对是一个非常耗时的过程,需要耐心细致的操作。
同时,鱼眼相机的投影模型与其他相机不同,因此需要特殊的算法和处理方式。
快速矫正镜头畸变 Adobe Premiere Pro技巧指南

快速矫正镜头畸变:Adobe Premiere Pro技巧指南镜头畸变是摄影师在使用广角镜头或鱼眼镜头时经常会遇到的一个问题。
它导致图像出现扭曲、变形或拉伸等现象,影响了画面的美感和真实性。
然而,使用Adobe Premiere Pro软件,你可以轻松而快速地矫正镜头畸变,让你的影片更加专业和高质量。
以下是一些在Adobe Premiere Pro中矫正镜头畸变的常用技巧:1. 导入素材:首先,将拍摄的素材导入到Adobe Premiere Pro软件中。
你可以通过拖放文件或使用“导入”选项来导入你的视频片段。
2. 创建序列:在导入素材后,创建一个新的序列来编辑你的视频片段。
选择适当的序列设置,例如帧速率、分辨率和纵横比,以保持与素材一致。
3. 找到畸变修复效果:在效果面板中,搜索并找到“拼接修复”(Warp Stabilizer)效果。
这个效果不仅可以用来稳定图像,还可以矫正镜头畸变。
4. 应用效果:将“拼接修复”效果拖放到你的视频片段上,然后将其应用到需要矫正镜头畸变的镜头上。
这个效果将自动分析和调整图像以修复畸变。
5. 调整效果设置:在效果控制选项中,你可以调整“拼接修复”效果的设置,以实现更好的矫正效果。
通常,你可以尝试调整“拼接风格”、“镜头类型”和“剧场解析度”等选项,直到得到满意的结果。
6. 预览和导出:完成调整后,你可以在预览面板中预览效果。
如果效果不理想,你可以返回效果控制选项,再次进行调整。
当你满意结果后,可以将视频导出为最终的影片。
此外,Adobe Premiere Pro还提供了其他一些高级技巧和插件,可以进一步提升镜头畸变矫正的效果:1. 使用“镜头失真”效果:除了“拼接修复”效果外,Adobe Premiere Pro还提供了“镜头失真”(Lens Distortion)效果。
通过调整该效果的参数,你可以进一步修正和校准镜头畸变。
2. 使用第三方插件:除了内置的效果,你还可以使用一些第三方插件来增强镜头畸变矫正的能力。
摄影中的镜头畸变与校正技巧

摄影中的镜头畸变与校正技巧摄影是一门充满艺术性和技术性的创作形式。
在摄影过程中,摄影师常常会面临各种技术挑战,其中之一就是镜头畸变。
镜头畸变是在拍摄过程中产生的图像变形现象,它可能会影响到照片的质量和真实性。
为了解决这一问题,摄影师需要熟悉镜头畸变的类型和校正技巧。
一、什么是镜头畸变镜头畸变是指镜头在成像过程中引起的图像变形。
它主要分为三种类型:桶形畸变、枕形畸变和畸形畸变。
1. 桶形畸变桶形畸变是在照片中出现图像向中心收缩的现象,形状类似于桶子。
这种畸变通常出现在广角镜头和鱼眼镜头中,由于广角镜头的视角较大,所以图像边缘会向中心收缩。
2. 枕形畸变枕形畸变是在照片中出现图像向边缘收缩的现象,形状类似于枕头。
这种畸变通常出现在长焦镜头中,由于长焦镜头的视角较窄,所以图像边缘会向中心收缩。
3. 畸形畸变畸形畸变是在照片中出现一些不规则的图像变形现象,如弯曲或拉伸等。
这种畸变通常由于镜头的质量较差或者使用不当造成。
二、镜头畸变的校正技巧镜头畸变可以通过以下几种方法进行校正,以保证照片的质量和真实性。
1. 镜头校正大部分相机和摄像机都具有镜头校正功能,可以通过设置菜单中的参数进行校正。
通过选择恰当的校正参数,可以有效减轻或消除镜头畸变。
2. 后期校正在后期处理中,我们可以使用专业的图像编辑软件来进行镜头畸变的校正。
这种方法可以更加精确和灵活地处理畸变问题,同时也可以对图像进行其他的调整和修饰。
3. 畸变校正镜头一些专业的摄影镜头具有畸变校正的功能。
这些镜头内部集成了特殊的光学组件,可以在成像过程中主动校正镜头畸变,提供更加真实和准确的图像。
4. 构图和摄影技巧在实际拍摄中,合理的构图和摄影技巧也可以帮助减轻或掩盖镜头畸变。
通过选择恰当的角度、距离和焦距等因素,可以最大程度地优化图像的透视和比例关系,减少畸变的出现。
总结:镜头畸变是摄影过程中常见的技术挑战之一。
摄影师可以通过了解镜头畸变的类型和校正技巧,有效地解决这一问题,保证照片的质量和真实性。
镜头畸变矫正标定

镜头畸变矫正标定
镜头畸变矫正是一种计算机视觉技术,旨在纠正照片或视频中由镜头畸变引起的图像形变。
镜头畸变分为桶形畸变和垫形畸变两种类型。
桶形畸变是一种常见的镜头畸变,它会使图像中心部分凹陷,形成一个桶状的形变。
垫形畸变则使图像中心部分凸起,呈现垫状形变。
这些畸变会影响图像的几何形状,使直线变形或弯曲。
为了纠正镜头畸变,需要进行相机的标定,即确定相机内参和外参参数。
相机内参包括焦距、光轴偏移和像素尺寸等参数,而相机外参包括相机的位置和姿态参数。
在标定过程中,通常使用棋盘格或者标定板这样的模板作为标定物体。
通过拍摄多张包含标定物体的照片,可以计算出相机的内参和外参参数。
一旦相机标定完成,就可以利用得到的参数进行镜头畸变矫正。
通过对每个像素进行坐标变换,可以将畸变图像恢复为无畸变的原始图像。
这样,人们可以看到更真实、更准确的图像。
镜头畸变矫正在很多领域都有应用,比如计算机视觉、机器人导航和增强现实等。
它可以改善图像质量,提高计算机算法的准确性。
因此,对于需要准确图像的应用来说,镜头畸变矫正是一个重要的步骤。
Final Cut Pro中的镜头校正和畸变修正技巧
Final Cut Pro中的镜头校正和畸变修正技巧镜头校正和畸变修正是Final Cut Pro(以下简称FCP)中非常重要的技巧,它可以帮助我们修复镜头畸变问题,使我们的影片呈现出更出色的视觉效果。
本文将介绍一些常用的镜头校正和畸变修正技巧,帮助读者更好地运用FCP来完善影片。
首先,我们要了解镜头畸变的类型。
常见的镜头畸变有两种,分别是畸变和倾斜。
畸变分为桶形畸变和枕形畸变,前者使直线向边缘弯曲,后者使直线向中心弯曲。
而倾斜则会导致画面的垂直或水平线倾斜。
对于桶形畸变,我们可以通过FCP中的“仿射变形”效果进行校正。
在应用该效果之前,我们需要将画面中的物体进行选中,然后打开编辑菜单中的“变形”选项。
在“变形”选项中,我们可以调整水平和垂直畸变的参数,以达到校正画面畸变的目的。
对于枕形畸变,我们可以使用FCP中的“校正镜头畸变”功能。
首先,将需要校正畸变的视频素材拖入时间线上。
然后,在浏览器中选择视频素材,右键点击,选择“使用校正镜头畸变”。
接下来,在“校正镜头畸变”选项卡中,我们可以调整参数来校正画面中的畸变。
FCP还提供了对倾斜的修正功能,可以在“扭曲和校正”选项中找到。
我们只需选择需要修正的视频素材,然后在浏览器中右键点击,选择“扭曲和校正”选项。
在弹出的选项卡中,我们可以使用水平、垂直或全局调整来修正影片中的倾斜问题。
除了以上的修正技巧,FCP还提供了一些其他的工具和效果,可以帮助用户进一步完善镜头校正和畸变问题。
例如,“校正形状”工具可以帮助我们调整画面中的形状和尺寸,进一步改善畸变问题。
同时,利用“鱼眼工具”可以有效地消除鱼眼效应,使画面更加真实。
总结起来,Final Cut Pro中的镜头校正和畸变修正技巧可以帮助我们修复画面中的畸变问题,使影片呈现出更好的视觉效果。
通过使用FCP提供的各种工具和效果,我们可以轻松地进行校正,并达到理想的修复效果。
希望本文的介绍对读者们在使用FCP时有所帮助,让你们可以更加熟练地运用这些技巧,制作出更加精彩的影片作品。
Photoshop中的纠正镜头畸变方法
Photoshop中的纠正镜头畸变方法Photoshop是一款功能强大的图像编辑软件,它不仅可以对图片进行修饰、调整和美化,还可以进行纠正镜头畸变的操作。
镜头畸变是指由于镜头设计或拍摄角度而引起的图像变形现象,常见的有鱼眼畸变、桶形畸变和枕形畸变等。
在这篇文章中,我将详细介绍使用Photoshop纠正镜头畸变的方法和步骤。
纠正镜头畸变的方法如下:1. 打开图像:首先,在Photoshop中打开需要进行镜头畸变纠正的图像。
可以选择“文件”-“打开”命令,或者使用快捷键“Ctrl+O”进行文件的导入。
2. 将图像转换为智能对象:在图层面板中,选中背景图层,并右键点击选择“转换为智能对象”。
这一步的目的是将图像转换为智能对象,以便后续的非破坏性编辑。
3. 选择滤镜:在顶部菜单栏中选择“滤镜”-“镜头校正”-“去畸变”。
这个滤镜可以自动校正图像的畸变,但需要设置一些参数以适应具体的畸变情况。
4. 调整参数:在弹出的“去畸变”窗口中,可以看到几个参数选项。
首先,选择针对何种类型的畸变进行校正,常见的有鱼眼畸变、桶形畸变和枕形畸变。
根据实际情况选择合适的畸变类型。
5. 设置畸变度:接下来,在“去畸变”窗口中,可以看到一个滑块,用于设置畸变度。
根据图像的具体情况,逐渐调整滑块的位置,观察图像的变化,直到达到满意的效果为止。
6. 应用滤镜:点击“确定”按钮后,滤镜将会应用到图像上,纠正镜头畸变。
可以通过对比原始图像和纠正后的图像来验证效果。
7. 保存图像:最后,保存经过纠正的图像。
选择“文件”-“另存为”命令,选择保存格式和存储位置,点击“保存”按钮即可。
需要注意的是,纠正镜头畸变是一项相对复杂的工作,具体的参数设置和效果预览需要根据实际情况进行调整。
在进行纠正之前,最好先观察图像的畸变情况,并确定适当的处理方法。
总结:使用Photoshop纠正镜头畸变是一项相对简单且非破坏性的编辑操作。
通过转换为智能对象并使用“去畸变”滤镜,可以快速有效地纠正图像的镜头畸变。
AE实现镜头放大与变形:拉伸、扭曲和矫正效果
AE实现镜头放大与变形:拉伸、扭曲和矫正效果AE(Adobe After Effects)是一款强大的视频编辑软件,可以实现镜头放大与变形的各种效果,包括拉伸、扭曲和矫正。
本文将详细介绍在AE中实现这些效果的步骤及技巧。
1. 拉伸效果步骤:1.1 导入素材:打开AE软件,点击文件-导入-文件,选择想要编辑的视频素材并导入到AE项目中。
1.2 新建合成:在项目面板中,右键点击空白处,选择新建合成。
根据视频素材的分辨率和帧率设置合成的属性,并创建新的合成。
1.3 创建图层:将视频素材从项目面板拖拽到合成中,创建一个新的图层。
1.4 调整图层长度:根据需要,在时间轴上调整图层的长度,确定需要拉伸的时间范围。
1.5 应用效果:在效果面板中,找到“时间”-“时间拉伸”效果,并将其拖拽到图层上。
1.6 设置拉伸比例:在效果控制面板中,调整拉伸比例的数值,实现视频的拉伸效果。
技巧:- 不同的拉伸比例会产生不同的效果,可以根据需要进行调整。
- 可以在图层上添加关键帧,实现时间的动态拉伸效果。
2. 扭曲效果步骤:2.1 导入素材:同上述步骤1.1-1.2。
2.2 创建图层:将导入的素材拖拽到合成中,创建一个新的图层。
2.3 应用效果:在效果面板中,找到“变形”-“鱼眼镜头”效果,并将其拖拽到图层上。
2.4 设置扭曲参数:在效果控制面板中,调整鱼眼镜头的参数,实现视频的扭曲效果。
技巧:- 可以使用其他变形效果如“球体”,“图像畸变”等来实现不同的扭曲效果。
- 还可以在图层上使用蒙版或遮罩工具来局部应用扭曲效果,实现更加细致的操作。
3. 矫正效果步骤:3.1 导入素材:同上述步骤1.1-1.2。
3.2 创建图层:将素材拖拽到合成中,创建一个新的图层。
3.3 调整图层位置:在合成中,使用变形工具(Ctrl+T)调整图层的位置和角度,使其与期望的位置对齐。
3.4 应用效果:在效果面板中,找到“变形”-“镜头畸变校正”效果,并将其拖拽到图层上。
鱼眼图像畸变的双向经度快速校正方法
第 41 卷 第 10 期 2019 年 10 月
赵丹阳等:鱼眼图像畸变的双向经度快速校正方法
ZHAO Danyang,LYU Yong,LI Xiaoying
(School of Instrument Science and Opto-electronics Engineering, Beijing Information Science and Technology University, Beijing 100192, China)
变形,这为识别和测量等应用带来了不便。针对传统经度校正方法的不足,将算法改进为双向经度
鱼眼图像快速校正算法。通过对鱼眼图像有效区域进行划分,并对不同区域内的畸变点在横、纵两
个方向上分别建立校正模型,确定畸变图像与理想图像之间坐标映射关系,求取校正坐标的位置。
最后对图像进行非线性拉伸,改善图像中心与边缘放大率不同而产生的“膨胀感”,获得符合人眼
给镜头带来的成像缺陷就是产生了一定的径向畸变, 使得视场角达到甚至超过 180范围的场景弯曲成像 在平面图像上,所以鱼眼图像通常不符合人们的视觉 习惯[2],在实际应用中需要对鱼眼图像做去畸变处理。
国内外学者也提出了很多去除鱼眼图像畸变的 方法,目前常用的去畸变方法可分为相机标定法和模 型校正法。相机标定法是运用标定工具对相机的内外 参数进行标定,主要分为棋盘格标定法[3-6]、同心圆模
0 引言
鱼眼镜头是一种超大视场的成像镜头,具有焦距 短、视场范围广的特点,鱼眼镜头的视场角通常可达 到甚至超过 180[1]。近年来,国内外鱼眼镜头的发展 十分迅速,应用也医疗内窥检查、安防监控、 视觉导航和国防军事领域等方面。同时,超大视场角
Abstract:Images taken with large field of view (FOV) fish-eye lenses exhibit distortion because of differing lateral magnification in different fields of view. This kind of distortion makes identification and measurement inconvenient. To resolve the shortcomings of the traditional longitude correction method, an improved rapid bidirectional longitude correction method is proposed. The effective area of the fish-eye image was divided into parts, and a correction model for different points in different vertical and horizontal areas was built to determine the coordinate mapping relationship between the distorted image and the ideal image. The position of the correction coordinates can then be obtained according to this relationship. Finally, nonlinear stretching was performed to abate the “swelling” caused by the difference of magnification between the center and edge of the image to obtain the image that accords with the human-perceived version. Three groups of images were corrected by using MATLAB. The results demonstrate that this method can correct the distortion of fish-eye images quickly and effectively. Key words:distortion, longitude correction, fish-eye image, coordinate mapping
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
鱼眼镜头自标定和畸变校正的实现郑亮;陶乾【摘要】鱼眼镜头视角大,但由鱼眼镜头组成的鱼眼摄像机拍摄的图片具有严重的畸变,不利于人眼观察和机器识别.为此,基于已有的九点非迭代优化算法,提出一种改进算法以完成鱼眼自标定和自动校正,包括将最稳定极限区域与尺度不变特征变换算法结合以自动获取一对鱼眼图像的特征匹配点.利用核密度估计方法代替随机抽样一致性算法,实现鱼眼自标定,选择最优参数代入畸变模型中进行鱼眼图像畸变校正.在事先不知道场景信息和摄像机镜头参数的前提下,通过输入两幅有重合区域的图片自动匹配其特征点,从而获取鱼眼图像的校正.标定及校正结果表明,与原算法需要人为选择匹配点不同,提出的算法可自动获取特征匹配点,校正结果精确,为自动匹配并获取鱼眼图像的校正提供了可能.【期刊名称】《计算机工程》【年(卷),期】2016(042)009【总页数】5页(P252-256)【关键词】鱼眼镜头;鱼眼图像;核密度估计;自标定;畸变校正【作者】郑亮;陶乾【作者单位】中山大学信息科学与技术学院,广州510006;中国电信综合平台开发运营中心,广州510000;中山大学信息科学与技术学院,广州510006;中国科学院深圳先进技术研究院,广东深圳518055;广东第二师范学院计算机科学系,广州510303【正文语种】中文【中图分类】TP391.41中文引用格式:郑亮,陶乾.鱼眼镜头自标定和畸变校正的实现[J].计算机工程,2016,42(9):252-256.英文引用格式: Zheng Liang,Tao Qian.Implementation of Self-calibration and Distortion Correction for Fish Eye Lens[J].ComputerEngineering,2016,42(9):252-256.鱼眼镜头是一种超广角镜头,其前镜片呈抛物状向前凸出,形似鱼眼,故称之为鱼眼镜头[1]。
鱼眼镜头具有广阔视野范围且焦距极短[2]。
它可以将一个半球范围内的景物拍摄到一张照片上,即一个鱼眼镜头可以获取多个普通镜头才可能获取到的场景信息,这大大减少了摄像机拼装的硬件成本和安装成本,也避免了采集过程中盲区问题和多镜头的图像拼合问题[3-4]。
但是鱼眼镜头拍摄的图像有严重畸变,想要利用这些具有严重变形图像的信息,就需要将发生畸变的图像校正为透视投影图像。
在许多应用中,对畸变进行校正是必要环节,而校正处理算法的前处理部分一般是摄像机标定获得模型参数。
摄像机标定是实现鱼眼畸变校正的首要环节,是鱼眼镜头在图像畸变校正中的关键研究点[5]。
利用摄像机标定后对鱼眼图像校正主要利用标定板进行标定,过程比较繁琐,首先标定板要足够精确,其次非线性迭代的初始值估计、局部最小值、迭代次数的选择也非常麻烦。
而鱼眼镜头自标定技术是一种新型方法,它可以通过对镜头的半自动甚至自动标定从而实现校正,而通过图像的特征点匹配来标定镜头畸变是自标定技术中一种常用的方法。
文献[6-7]均是利用两幅或多幅图像间的特征点匹配来实现自标定。
文献[8]将文献[9]提出的方法从一个参数扩展到了两个参数的径向畸变模型。
文献[10]利用自标定技术,完整标定了一个可移动的全景成像系统。
这些方法均属于非线性迭代的方法,需要使用迭代优化算法来求解未知参数,求解过程包含了畸变参数的计算。
非线性迭代算法除使用复杂的缺点外,另一个严重问题是:由于摄像机内外参数、畸变参数、新引入系数是相关联的,如果不能很好地解耦这些耦合,估计结果是不准确的。
另外一类方法就是使用非迭代的方法进行径向畸变参数的求解。
文献[11]通过实验仿真结果证明了摄像机参数关联的问题,提出可以通过其他算法来替代非线性迭代从而获得需要的参数。
文献[12-13]正式提出了九点算法,使用非迭代优化的方法求解径向畸变参数,同时这种方法也解决了参数耦合的问题。
但该方法的缺点是需要人工参与,需要人为选点匹配,另外对拍摄的鱼眼图片的质量要求较高。
本文使用非迭代的方法对鱼眼图像进行校正,提出一种基于MSER与SURF结合的改进校正算法。
改进算法可以自动获取一对鱼眼图像的特征匹配点,在不知道场景信息和摄像机镜头参数这些先验知识的前提下,仅利用2个奇异条件,通过对基本矩阵的求解可以获得畸变的参数。
通过核密度估计(Kernel Density Estimation,KDE)方法来代替传统的随机抽样一致性(Random Sample Consensus,RANSAC)算法,不需要估计初始值。
普通镜头的径向畸变一般可以忽略,鱼眼镜头径向畸变非常严重,主要考虑的是径向畸变,忽略或者减少考虑其他畸变。
畸变模型的描述是建立ru和rd之间的关系。
其中,ru为校正后图像像素点离畸变中心的距离;rd为畸变图像像素点离畸变中心的距离。
模型可以表示为:上述模型被称为除法(DM)模型。
文献[14]指出在较少的参数情况下,DM模型比其他模型有更强的描述较大畸变的能力。
为了易于仿真和减少计算量,本文仅使用单变量的畸变模型,并使用与下文统一的符号描述为:其中,向量e表示畸变中心坐标(Center-of-Distortion,COD);xd为向量,表示畸变图像像素坐标;xu也为向量,表示非畸变图像像素坐标。
3.1 算法步骤算法步骤如下:步骤1 输入2幅鱼眼畸变图像,分别提取最稳定极限区域(Maximally Stable Extremal Region,MSER),使用椭圆形来表达;归一化椭圆,使用圆形的区域进行表达。
步骤2 在圆形区域内使用尺度不变特征变换(Scale Invariant Feature Transformation,SURF)描述子进行描述;使用最近邻向量法进行特征匹配;保存自动获取的匹配特征点坐标。
步骤3 设置畸变中心,为了便于仿真、方便取值,利用文献普遍采用的方法,设定COD为原点。
步骤4 提取匹配特征点的坐标,从所有的特征点中随机抽取9个匹配特征点称之为一组,对于每一组的9个特征匹配点,建立一个6阶多项式方程并求解实根。
步骤5 使用N(N>>1)组匹配对,可以得到由N个非线性方程构成的非线性方程组。
非参数估计找到一个同时满足所有选取的非线性方程的实根即最优根。
步骤6 后向映射校正图片。
3.2 算法原理MSER完全由图像在该区域和其外边界的强度函数的极值属性定义,其算法构造的区域不受图像几何畸变的影响,可以在不同图像上有效地获取到具有相同内容的区域。
所以,在大视场角和大畸变的鱼眼图像中,MSER算法不会受非线性畸变影响,可以提取需要的稳定区域[15]。
SURF算法是SIFT算法的改进,从速度上看,SURF是SIFT速度的几倍。
为了加速算法,本文将这2种算法结合起来处理鱼眼图像。
先进行MSER区域提取,在特征提取时用MSER取代Hessian行列式(Determinant of Hessian,DOH)进行仿射不变特征区域的提取,可以有效避免提取特征过多、信息冗余、计算量太大的缺点[16]。
在提取MSER后,对提取的区域再进行归一化处理[16],得到的区域称为显著性区域[17],这样所有的MSER区域都被归一化为一个方向。
最后对得到的显著性区域进行SURF算子描述,利用SURF算法的快速特性对显著性区域进行SURF描述后生成用于后续匹配的描述子,这样可以加速进行图像处理。
将MSER和SURF这2种技术结合,可以自动获取一对鱼眼图像的特征匹配点。
虽然自动匹配存在误匹配点,但由于本文的非参数估计挑选最优根的方法对误匹配点有非常强的鲁棒性,得到的校正结果是足够精确的。
将提取的匹配点坐标进行保存后,可以随时应用于后面的鱼眼校正环节。
结合算法的相关理论,从所有的特征点中随机抽取9个匹配特征点构成多项式方程并求解,重复多组利用非参数估计获得最优值而得到畸变参数,将参数导入畸变模型,从而得到鱼眼图像的校正结果。
3.3 求解方程的匹配考虑2幅拍摄的场景图片,用和xu表示非畸变图像的一对匹配点。
对于这一对配点,由对极关系可以得到:x′TuFx u=0其中,F是基础矩阵。
引入式(2)的径向畸变模型,式(3)可以改写为:即:图像坐标用齐次坐标表示,进行坐标还原后在方程的两边均乘以),并使用直积(Kronecker 积)把基础矩阵F拉直,这样畸变参数就从基础矩阵F中得以分离。
很容易得到:⊗其中,表示F的拉直。
如果把9对匹配点堆积在一起,点的坐标均用矩阵表示,并把这9组匹配点得到的方程放在一起,可以得到一个齐次方程组:M(X′,X,k)f=0其中,f表示矩阵F的拉直;矩阵M称为测量矩阵,其仅依赖于输入畸变图像坐标和畸变参数k;X′,X表示堆积起来的9对匹配点坐标,为了书写简单,在后文的表达式中将省略坐标X′,X。
观察式(7),方程组有解,可以得到2个非线性方程组:det(M(k))=0det(Mtx[Ker[M(k)]])=0其中,Ker[]是零空间算子;Mtx[]表示把向量转化为矩阵的矩阵运算符。
本文算法不使用式(9),因为此公式将引入更高阶的多项式。
高阶多项式带来的不仅是计算上的复杂而且会对求解的结果精确性产生影响。
只有一个未知参数k需要去估计,仅利用式(8)是最优的选择。
经过运算,可以发现在矩阵M中,k仅出现在矩阵的5列中,这样对于第1个等式可以得到一个六阶单变量多项式,变量为k。
对于每一组的9个特征匹配点,可以建立一个6阶多项式方程。
多项式方程的求解存在很多有效的方法,这里选取友矩阵(companion matrix)的方法来求解6阶多项式方程,因为这种方法具有线性和简易性。
3.4 求解方程的核密度估计一般而言,使用多次测量将提高计算的稳定性。
如果使用N(N>>1)组匹配对,可以得到由N个非线性方程构成的非线性方程组。
参数k应该满足所有的这些非线性方程,但由于噪声等误差影响,不可能存在一个特定解同时满足所有的非线性方程。
换句话说,非线性方程组是没有解的。
所以,本文算法的关键一步就是找到一个同时满足所有选取的非线性方程的实根。
为了解决这个难题,提出了一种非参数估计的方法来挑选出最优根。
实验发现:解出的非线性方程的根实际上全部围绕着真正的根,多次测量得到的所有非线性方程的根呈现出一个峰值形状。
只要收集足够多组的匹配点,并解出得到的非线性方程,一个渐进的正确的根就能找到。
而仿真结果显示,参与计算的组数也不需要非常大,一般30组~50组就足够了,这样不会带来巨大的运算数据。
另外,这种方法的另外一个优点是对于误匹配点有非常强的鲁棒性,可以容许一定程度的非匹配点。
在这种挑选寻找方法中,使用核密度估计(Kernel Density Estimation,KDE)去寻找最大峰值的概率。