鱼眼摄像头畸变校正方法概述

1. 摘要

鱼眼摄像头以其独特的广阔视场和其他特点,在各个领域得到了广泛应用。然而,与针孔相机相比,鱼眼摄像头存在显著的畸变,导致拍摄的图像失畸变严重。鱼眼摄像头畸变是数字图像处理中常见的问题,需要有效的校正技术来提高图像质量。本综述全面概述了用于鱼眼摄像头畸变校正的各种方法。文章探讨了多项式畸变模型,该模型利用多项式函数对径向畸变进行建模和校正。此外,还讨论了全景映射、网格映射、直接方法和基于深度学习的方法等替代方法。综述突出了每种方法的优势、局限性和最新进展,使读者能够根据其特定需求做出明智的决策。

2. 介绍

鱼眼镜头因其广阔的视场和独特的视觉效果,在摄影、计算机视觉、机器人学和虚拟现实等各个领域中都变得越来越受欢迎。然而这些镜头通常会对拍摄的图像引入显著的畸变,这可能使对象的形状变形并降低图像质量。为了克服这一挑战,人们开发了鱼眼摄像头畸变校正方法,以纠正图像并恢复其原始外观。

鱼眼摄像头畸变的校正是数字图像处理中的一项关键任务。它涉及应用数学模型和算法来补偿鱼眼镜头引入的非线性畸变。校正畸变可以提高测量的准确性,促进准确的物体识别,并增强各种应用的整体图像质量。本综述旨在全面概述用于校正鱼眼摄像头畸变的不同方法。该综述将涵盖传统方法和较新方法,讨论它们的基本原理、优势、局限性和潜在应用。

2.1. 相机投影模型 

鱼眼相机的成像过程通常近似为一个单位球投影模型。鱼眼相机的成像过程可以分解为两个步骤:首先,将空间中的三维点线性投影到虚拟单位球上;然后,将单位球上的点投影到图像平面上,这是一个非线性过程。在鱼眼相机的背景下,有四个常用的投影模型:等距投影模型、等角投影模型、正交投影模型和立体投影模型。

Image

2.2. 等距投影模型

等距投影模型假设通过镜头的光线并投影到图像传感器上的光线与光轴成等角。在此投影模型中,相机坐标系中的三维点(X、Y、Z)与二维图像坐标(u、v)之间的映射可以表达如下:

Image

这里,(θ, φ) 表示单位球上的球坐标,r 是光学中心到点的径向距离,(u, v) 表示归一化图像坐标,f 是鱼眼镜头的焦距。

2.3. 等角投影模型

等角投影模型通常用于使用鱼眼镜头捕捉全景或360度图像。它涉及使用等角网格将单位球上的3D点映射到2D图像坐标。在这个投影模型中,单位球上的3D点 (X, Y, Z) 与2D图像坐标 (u, v) 之间的映射可以表示如下:

Image

这里,(θ, φ) 表示单位球上的球坐标,而 (u, v) 表示归一化的图像坐标,取值范围从 0 到 1。

2.4. 正交投影模型

正交投影模型是一种摄像机投影模型,假设场景中的光线是平行且垂直于图像平面的。在这个模型中,3D 点直接投影到 2D 图像上,没有任何透视失真。3D 点 (X, Y, Z) 在相机坐标系中与 2D 图像坐标 (u, v) 之间的映射可以表示如下:

Image

这里,(u, v) 代表图像坐标,(X, Y) 代表相机坐标系中的 3D 点。

2.5. 立体投影模型

立体投影模型具有保存角度的特性,这是数学中一种称为保角性的理想特性。保角性意味着任何相交线所形成的角度在变换后保持不变,尽管这些线本身可能会变成曲线。在保角变换下,圆仍然保持为圆(其中一条直线可以被认为是半径无限的圆)。因此,在模拟的场景中,圆柱表面上的所有边界线都被变换成了圆弧,并且所有相交线形成的角度保持在90度。

Image

3. 畸变校正方法

相机畸变是由相机的镜头、传感器或其他因素引起的图像透视变形。有几种类型的畸变,包括径向畸变、切向畸变以及非线性畸变。相机畸变校正的目的是将相机捕获的畸变图像转换为类似针孔相机产生的理想图像。这种校正旨在提高图像的准确性,增强其视觉质量,并满足各种应用的特定要求。在计算机视觉中使用鱼眼相机通常需要先进的畸变校正方法,以确保进行准确可靠的图像分析。鱼眼镜头引入了显著的畸变,可能影响测量的准确性、对象识别和场景理解。在本节中,我们讨论了各种用于鱼眼相机畸变校正的最新方法,旨在将畸变的鱼眼图像转换为经过校正的图像,使其类似于理想针孔相机捕获的图像。

3.1. 畸变类型

对称径向畸变:对称径向畸变通常是在讨论图像畸变时想象到的。通常情况下,这种类型的畸变将根据其是否为正向(凹形)或负向(凸形)而特征化。 

非对称径向畸变:非对称径向畸变是类似于上述的径向畸变效应,但与对称径向畸变不同,非对称径向畸变表征的是依赖于图像中心距离以及被成像对象距离有多远的畸变效应。非对称径向效应在两种情况下最为显著:具有长焦距和非常短的相对物体距离的相机。例如,捕捉非常近的许多对象的远场望远镜镜头。通过高折射率介质或不同折射率介质观察对象。例如,水下的两个对象,其中一个离得很近,另一个离得很远。这种类型的畸变通常难以可视化和量化,因为它依赖于环境。在大多数机器人和自动化车辆的背景中,非对称径向畸变并不是一个很大的问题!为什么呢?嗯,畸变的差异取决于物体之间的距离差异。这通常是因为被成像的两个对象之间存在某种折射差异,或者因为这些对象超出了相机的焦距范围(即焦距相对于物体距离太大)。以上两种情况都不太典型,因此,在遇到这些情况时,非对称径向畸变是建模校准的重要方面。在大多数机器人环境中,成像和视觉测距的主要用途是在相对短的距离范围内使用焦距较短的摄像头完成的,并且光传播的主要介质是空气。由于靠近的物体之间通常没有大的大气变化,而且光都通过相同的介质传播,因此没有太多非对称折射效应可供表征或测量。因此,在为这些应用校准相机时,这种径向畸变并不常见。如果我们无法测量它,就不应该尝试对其进行建模! 

切向(去中心)畸变:切向畸变有时也称为去中心畸变,因为其主要原因是由于镜头组件不在图像平面上居中且平行。切向畸变的几何效应不仅沿径向轴纯粹发生。相反,如上图所示,它可以对图像平面进行旋转和倾斜,具体取决于距图像中心的半径! 

3.2. 多项式畸变模型

多项式畸变模型是最常用的鱼眼摄像头畸变校正方法之一。它依赖于一种数学模型,描述了鱼眼图像中存在的径向畸变。通常,该模型使用多项式函数来近似畸变并进行校正。校正过程涉及将图像的像素坐标转换为标准化坐标,并应用多项式函数以矫正畸变。由于其在解决鱼眼图像中的径向畸变方面的简单性和有效性,该方法被广泛采用。尽管存在比此处描述的更多模型,但该行业主要已经标准化了以下两个畸变模型。

3.2.1. 布朗-畸变模型

布朗-畸变模型可能是大多数人认为的“标准”径向和切向畸变模型。它最早由布朗和康拉迪于1966年首次发表,并在许多应用中得到应用。该模型将径向畸变表征为一系列高阶多项式:

Image

3.2.2. Kannala-Brandt畸变模型

Juho Kannala和Sami Brandt发表了关于镜头畸变的论文。该论文的主要贡献是将镜头畸变建模优化,以适用于广角、超广角和鱼眼镜头。布朗-康拉迪的建模主要基于Seidel像差的物理学,这是围绕1867年首次制定的,用于当时的标准镜头物理学,不包括超广角和鱼眼镜头。使用这个模型时,大多数人会注意到的主要区别在于对称径向畸变。与以往的径向畸变模型不同,后者是基于点距离图像中心的远近(半径),康拉-布兰特将畸变表征为通过镜头的光的入射角度的函数。之所以这样做,是因为畸变函数在相对于这个角度(θ)参数化时更加平滑,这使得更容易将其建模为幂级数:

Image

3.3. 基于特征的方法

在鱼眼相机畸变校正的背景下,基于特征的方法通过利用鱼眼图像的特性来推断和矫正相机的畸变参数,发挥着至关重要的作用。

角点检测与矫正:角点检测和矫正方法涉及在鱼眼图像中检测角点,例如利用Harris角点检测或Shi-Tomasi角点检测。随后,通过利用检测到的角点之间的距离和角度的关系来估计相机的畸变参数,执行畸变矫正。通过采用这些参数,整个图像可以被矫正以减轻鱼眼畸变。

特征点匹配与矫正:特征点匹配和矫正方法依赖于提取和匹配鱼眼图像中的特征点。采用流行的技术,如SIFT特征点或SURF特征点,进行特征点提取。然后,检测到的特征点与矫正图像中的相应点进行匹配,从而推断相机的畸变参数并进行后续矫正。

直线检测与矫正:直线检测和矫正方法利用鱼眼图像中直线的存在。通过使用Hough变换等技术检测直线,可以推断相机的畸变参数。随后利用获得的参数对整个图像进行矫正,确保直线在矫正后的图像中保持线性。

基于光流的方法:基于光流的方法利用鱼眼图像中光流提供的信息进行畸变校正。通过计算鱼眼图像中的像素位移,可以推断相机的畸变参数并用于矫正。可以采用光流算法,如Lucas-Kanade方法或基于深度学习的光流估计,来估计像素位移。 

3.4. 直接法去畸变

鱼眼相机畸变校正的直接方法涉及检测和分析图像中的特定特征或图案,以估计畸变参数。这些方法通常依赖于畸变图像坐标与未畸变对象坐标之间的关系。可以使用RANSAC(随机抽样一致性)等技术,从特征对应关系中鲁棒地估计畸变参数。在没有校准数据或对畸变模型的先验知识可用的情况下,直接方法具有优势。 

水平扩展方法:水平扩展方法是用于鱼眼图像矫正和畸变校正的技术。它旨在将畸变的鱼眼图像转换为矩形图像,具有直线和更自然的透视。该方法涉及扩展鱼眼图像的水平视场,并将畸变的像素映射到矩形图像中的相应位置。 

纬经度映射方法:纬经度映射方法是一种将鱼眼图像转换为全景或等矩形投影的技术。该方法涉及将畸变的鱼眼像素映射到球形或柱形坐标系上的相应纬度和经度坐标,然后投影到2D等矩形网格上。 

全景映射方法:全景映射方法是用于鱼眼图像矫正和畸变校正的技术。它旨在将畸变的鱼眼图像转换为矩形图像,具有直线和更自然的透视。该方法涉及将畸变的鱼眼像素映射到矩形图像中的相应位置。 

3.5. 基于深度学习去畸变

随着深度学习的最新进展,基于神经网络的方法已经出现用于鱼眼相机畸变校正。这些方法涉及训练神经网络以学习畸变和未畸变图像之间的映射函数。使用已知畸变的成对图像的大型数据集对网络进行训练。训练完成后,网络可以对新的输入图像进行畸变校正。基于深度学习的方法具有学习复杂畸变模式并能有效处理各种畸变的优势。然而,它们需要大量的训练数据和计算资源。本节概述了常用于鱼眼相机畸变校正的深度学习方法。 

卷积神经网络(CNNs):卷积神经网络(CNNs)已广泛应用于鱼眼相机畸变校正。这些网络包含多个卷积层,从输入图像中提取分层特征。通过在大量畸变和未畸变鱼眼图像对的数据集上训练CNNs,它们可以学习预测给定鱼眼图像的无畸变版本的基本模式和关系。 

生成对抗网络(GANs):生成对抗网络(GANs)也已用于鱼眼相机畸变校正。GANs包括生成器网络和鉴别器网络,它们以对抗方式同时进行训练。生成器网络生成无畸变的鱼眼图像,而鉴别器网络旨在区分生成的无畸变图像和真实的无畸变图像。通过这种对抗训练过程,GANs可以学习生成高质量的无畸变鱼眼图像。

4. 总结

鱼眼相机畸变校正是数字图像处理中的一项关键任务,旨在纠正鱼眼镜头引入的畸变并提高图像质量。在本综述中,讨论了多项式畸变模型,该模型利用多项式函数对径向畸变进行建模和校正。由于其简单性和有效性,这种方法得到了广泛应用。此外,还探讨了全景映射、网格映射、直接方法和基于深度学习的替代方法。每种方法都有其优点和局限性,其适用性取决于具体的需求和约束。

通过这次综述,数字图像处理领域的研究人员、专业人士和爱好者更深入地了解了用于鱼眼相机畸变校正的可用技术。综述突显了每种方法的基本原理、优势、局限性和潜在应用,有助于做出明智的决策。

为了评估畸变校正方法的性能,可以进行各种实验,包括合成数据评估、标定图像评估、比较研究、实时性能评估和特定应用的评估。这些实验为了解方法在不同场景中的准确性、计算效率和适用性提供了见解。

总之,鱼眼相机畸变校正方法在提高图像质量和实现各个领域的准确分析方面发挥着至关重要的作用。通过了解不同的技术并进行适当的实验,研究人员可以选择最适合其特定需求的方法,为数字图像处理领域的进展做出贡献。

参考文献

鱼眼摄像头畸变校正方法概述

一文讲透鱼眼相机畸变矫正,及目标检测项目应用_进行_潘大强_棋盘

https://blog.51cto.com/domi/6457174

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/540606.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

产品3D模型在线展示快速实现教程

产品3D模型可以向潜在客户提供360度的观察角度,比平面图形的效果更好。快速实现产品3D模型的在线展示最简单的方法是使用NSDT 3DConvert的模型内嵌特性,无需任何开发工作,5分钟就可以完成: NSDT工具推荐: Three.js AI纹…

Python网络爬虫中JSON格式数据存储详解

目录 一、引言 二、JSON格式数据简介 三、Python中处理JSON数据 四、网络爬虫中获取JSON数据 五、存储JSON数据到文件 六、从文件中读取JSON数据 七、注意事项和常见问题 八、总结 一、引言 在网络爬虫的应用中,JSON格式数据以其轻量级、易读易写的…

备忘录模式:恢复对象状态的智能方式

在软件开发中,备忘录模式是一种行为型设计模式,它允许捕获并外部化对象的内部状态,以便在未来某个时刻可以将对象恢复到此状态。这种模式是撤销操作或者回滚操作的关键实现机制。本文将详细介绍备忘录模式的定义、实现、应用场景以及优缺点。…

基于51单片机智能家居空气质量监控—温湿度PM2.5

基于51单片机智能家居空气质量监控 (仿真+程序+原理图+PCB+设计报告) 功能介绍 具体功能: 1.检测温度、湿度、PM2.5浓度,并在LCD1602实时显示; 2.可以使用按键设置温湿度上下限、P…

rabbitmq安装rabbitmq-delayed-message-exchange插件

下载地址:Community Plugins | RabbitMQ 上传到rabbitmq安装目录的/plugins目录下 我的是/usr/lcoal/rabbitmq/plugins/ 直接安装 [rootk8s-node1 rabbitmq]# rabbitmq-plugins enable rabbitmq_delayed_message_exchange [rootk8s-node1 rabbitmq]# rabbitmq-pl…

UE源码编译报了403之后

今天编译一个早期版本的ue引擎,发现报了一个错误,如下图: 如上图所示。 第一反应是被墙了,然后发现并不是。查了下官方文档,发现是更新了一个下载检测。更新地址https://github.com/EpicGames/UnrealEngine/releases/t…

图片壁纸社区app前后端开源小程序源码

图片壁纸社区APP前后端开源小程序源码,修改了开源版的前端样式,变成图片社区,也可以用来作为壁纸 源码下载地址抄笔记 (chaobiji.cn)

信号完整性的常见术语概念(面试常用)

目录 术语 概念一览 1.信号完整性(Signal Integrity) 2.传输线(Transmission Line) 3.特性阻抗(Characteristic Impedance) 4.反射(Reflecti…

【分享】跨境虾皮Shopee各区域商品详情API返回值(商品,订单,面单等)♥

虾皮(shopee)是一个亚洲区域的电商平台,主要在东南亚地区提供电商服务。虾皮提供了丰富的电商数据,包括商品数据、订单数据、会员数据、评价数据等。 虾皮Shopee♥♥​​​​​​​♥​​​​​​​♥​​​​​​​♥​​​​​​​♥ 1.授权 ​ 接口…

SpringBoo利用 MDC 机制过滤出单次请求相关的日志

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1.前言 2.MDC 是什么 3.代码实战 4.总结 1.前言 在服务出现故障时&#xff…

动态规划-简单多状态dp问题1

文章目录 1. 按摩师(面试题 17.16)2. 打家劫舍 II(213)3. 删除并获得点数(740)4. 粉刷房子(LCR 091) 1. 按摩师(面试题 17.16) 题目描述: 状态表…

字节码文件的组成

字节码文件的组成 字节码文件的组成1 以正确的姿势打开文件2 字节码文件的组成2.1 基本信息2.2 常量池2.3 字段2.4 方法2.5 属性 3 字节码常用工具3.1 javap3.2 jclasslib插件3.3 Arthas 4 字节码常见指令 字节码文件的组成 1 以正确的姿势打开文件 字节码文件中保存了源代码…

【数据结构】习题之链表的回文结构和相交链表

👑个人主页:啊Q闻 🎇收录专栏:《数据结构》 🎉前路漫漫亦灿灿 前言 今日的习题是关于链表的,分别是链表的回文结构和相交链表的判断。 链表的回文结构 题目为:链表的回文结…

校园通用型发生网络安全事件解决方案

已知校园多教学楼、多教学机房、非标网络机房缺乏防护设备、检测设备、安全保护软件(杀软) 切断所有外网,断网处理!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 部署路由系统可选择爱快、routeros、openwrt。等。可将日志上传到日志分析系统。《这项非必要的》 部署开源防火…

JVM—对象的创建流程与内存分配

JVM—对象的创建流程与内存分配 创建流程 对象创建的流程图如下: 对象的内存分配方式 内存分配的方式有两种: 指针碰撞(Bump the Pointer)空闲列表(Free List) 分配方式说明收集器指针碰撞&#xff08…

Aritest+python+Jenkins解放双手iOS/Android自动化

ARITest、Python 和 Jenkins 可以结合在一起创建一个自动化测试解决方案,实现持续集成和持续测试的目标。以下是三者如何协同工作的基本概念: 1. **ARITest**: ARITest 是一款功能全面的自动化测试工具,提供 UI 自动化、接口自…

加强金融行业关键信息基础设施安全保护,有效防范网络安全风险

当前,随着数字化发展的不断深入,关键信息基础设施作为国家的重要战略资源,面临着国内外严峻的网络安全风险。为了确保国家安全,在国家发展各领域和全过程中,需要将安全发展贯穿始终,筑牢国家安全屏障。金融…

C++从入门到精通——类和对象(下篇)

1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} private:int _year;int _mont…

【CSS疑难点汇总】1.bor-box失效情况总结以及高宽设置为auto的情况

1. box-sizing box-sizing是改变盒子宽高的计算方式,一般使用bor-box,消除padding和border对整个盒子的影响,但在没有明确给出宽高的情况下,box-sizing是没有效果的 1.1 box-sizing不生效的情况 1.1.1块级盒子嵌套 ​ 宽度继承…

使用快捷回复软件的好处

在现代的客服工作中,尤其是店铺大促期间,咨询量的激增往往让客服人员应接不暇。即使打字速度再快,也难以跟上源源不断的客流。想应对这样的情况,快捷回复软件就非常适合客服人员了。 以我个人正在使用的客服宝为例,我想…