IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 鱼眼相机内参模型fisheye详解 -> 正文阅读

[Python知识库]鱼眼相机内参模型fisheye详解

本博客主要从fisheye论文角度,详细介绍该内参模型。

参考论文:A Generic Camera Model and Calibration Method for Conventional, Wide-Angle, and Fish-Eye Lenses

1. 论文总述

本论文介绍了一种可以建模传统相机和鱼眼相机的通用的内参模型(radially symmetric projection model):Kannala Brandt 模型 / opencv中的fisheye / kalibr中的 pinhole + equidistant 都是指该模型。
成像示意如下:
在这里插入图片描述

In this paper, we concentrate on accurate geometric modeling of real cameras. We propose a novel calibration method for fish-eye lenses that requires that the camera observes a planar calibration pattern. The calibration method is based on a generic camera model that will be shown to be suitable for different kind of omnidirectional cameras as well as for conventional
cameras.

2. pinhole+radtan无法建模鱼眼相机

(1)透视映射无法将fisheye映射到有限的平面上

The pinhole camera model accompanied with lens distortion models is a fair approximation for most conventional cameras with narrow-angle or even wide-angle lenses [1], [6], [7]. But it is still not suitable for fish-eye lens cameras. Fish-eye lenses are designed to cover the whole hemispherical field in front of the camera and the angle of view is very large, about 180度. Moreover, it is impossible to project the hemispherical field of view on a finite image plane by a perspective projection so fish-eye lenses are designed to obey some other projection model.
This is the reason why the inherent distortion of a fish-eye lens should not be considered only as a deviation from the pinhole model [14].

3. 内参模型

3.1 Radially Symmetric Model

  • r(θ)是一种投影模型,只不过建模的时候重点考虑fisheye的特性,建模了径向畸变?
  • θ表示入射光线和Z轴的夹角,θ = acos(Zc / norm),norm = sqrt(Xc^2 + Yc^2 + Xc^2)
  • r(θ)表示映射到图像坐标系上的点到中心点的距离,r = sqrt(x^2 + y^2)
  • φ表示相机坐标系下的入射光线和X轴的夹角,φ = atan(Yc / Xc)
  • 根据(7)式,这个模型有个假设:就是相机坐标系下的φ和图像坐标系下的φ是相等的
  • (2)-(5)已经建模了焦距f,但在(6)式时又将其去掉了,还是将其建模到了内参fx中?
  • 根据鱼眼相机的特性,是用(2)-(5)来建模的,但作者为了通用性,统一用(6)式来建模,多项式近似,一般都是用前5项

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.2 Full Model

  • 由于镜头的制造工艺等,并不是所有的鱼眼相机都是Radially Symmetric,因此作者又额外建模了径向畸变和切向畸变(14个参数),p9 + 14 = p23
  • 但在各大开源工具对该模型的复现中,一般只用p9模型,并不用p23,可能是因为如今的镜头工艺比较成熟了。
    在这里插入图片描述

3.3 affine transformation

  • 式(10)添加了3.2的畸变模型
  • 式(11)从图像坐标系变化到像素坐标系,这里的mu 并不是fx , 是dx ?
  • 式(12)表示整体的内参模型
    在这里插入图片描述
    Pc = A * D * F

3.4 Backward Model

  • 一般来说:projection是指将相机坐标系的一个3D point映射到2D像素坐标系中
  • 一个内参模型的精确度还要看它的back-projection,即从2D 映射到 3D。

在这里插入图片描述

4. 标定

  • 估计模型的参数
  • 本文提供的内参估计算法如果用圆形标靶,精度更高
  • 具体的算法还是去paper里具体看

Next we describe a procedure for estimating the parameters of the camera model. The calibration method is based on viewing a planar object which contains control points in known positions. The advantage over the previous approaches is that also fish-eye lenses, possibly having a field of view larger than 180度, can be calibrated by simply viewing a planar pattern. In addition, a good accuracy can be achieved if circular control points are used, asdescribed in Section IV-B.

在这里插入图片描述

4.1 ORIFL190-3 lens 可以被标定

  • 标定靶

It was originally obtained by capturing a single image of a calibration object consisting of two orthogonal planes, each with 256 circular control points. The camera.

  • 实验结果

在这里插入图片描述

  • 190度的fisheye可以被标定的原因:(1)标靶不一样,采集的数据可能没有畸变特别严重的(2)标定算法的影响? 可能不太大

5. 内参结果验证

  • 利用额外的test images,根据train里的images估计内参之后,用该内参来计算test images的外参,然后算重投影误差rms
    在这里插入图片描述

参考文献

[1] 鱼眼镜头是怎么「鱼眼」的
[2] opencv fisheye示例
[3] camodocal: fisheye内参估计算法复现(和本paper提供的算法不一致)
[4] kalibr: pinhole+equi表示fisheye

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:04:45  更:2022-06-25 18:05:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 15:01:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码