相机模型--Omnidirectional Camera

2024-03-26 06:40

本文主要是介绍相机模型--Omnidirectional Camera,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Omnidirectional Camera
Davide Scaramuzza

Definition 定义
omnidirectional camera (from omni, meaning all) 广角相机: 在一个水平面有360度视野的相机,或视野能覆盖半个球或近似整个球的相机

Background 背景知识
大多数商业相机可以使用 pinhole 相机模型来描述,使用一个 perspective projection 来建模。但是存在一些高畸变成像设备如广角相机,它们不能使用传统小孔相机模型来描述。
目前存在几种构建广角相机的方法。Dioptric cameras 使用一组 shaped lenses(如鱼眼镜头),可以得到大于180度视野,(稍微多余半球); Catadioptric cameras 则使用一个标准相机和一个 shaped mirror — such as a parabolic, hyperbolic, or elliptical mirror,其在水平面可以提供360度视野,仰角方向大于100度;polydioptric camera 通过组合多个相机来重叠相机视野
在这里插入图片描述

Theory 理论
0.1 Central omnidirectional cameras
一个视觉系统是 central 的话,那么 被观测物体的所有入射光线汇交于3D空间的一个点,这个点称为 projection center 或 single effective viewpoint。
A vision system is said to be central when the optical rays to the viewed objects intersect in a single point in 3D called projection center or single effective viewpoint
在这里插入图片描述
这个属性我们称之为 single effective viewpoint property。 perspective camera 就是一个 central projection system,因为所有的入射光线交于一点: camera optical center。

所有现代鱼眼相机都是 central,所以他们都满足这个属性 single effective viewpoint property。Central catadioptric cameras 由一个相机+mirror 构建,相机和 mirror 的距离需要选择合适。Baker and Nayar [6] 证明了满足 single viewpoint property 的 mirrors 具有什么数学形式, the class of rotated (swept) conic sections, that is, hyperbolic, parabolic, and elliptical mirrors

为什么 single effective viewpoint 是如此的重要了? 1)it allows the user to generate geometrically correct perspective images from the pictures captured by the omnidirectional camera,When the geometry of the omnidirectional camera is known, that is, when the
camera is calibrated, one can precompute this direction for each pixel. 2)Epipolar geometry holds for any central camera, both perspective and omnidirectional,这样就可以应用 Epipolar geometry 相关知识到广角相机的图像中了。

0.2 Omnidirectional camera model and calibration

omnidirectional camera 的建模要比标准的 perspective camera 复杂一些。因为在建模的时候需要考虑: catadioptric camera中的 mirror 反射 或者 fisheye camera 中的 镜头折射问题
the reflection operated by the mirror in the case of a catadioptric camera or the refraction caused by the lens in the case of a fisheye camera
这里我们介绍 omnidirectional vision and robotics 中标准的两个不同投影模型,这两个模型其对应的 Matlab toolboxes 可以直接下载应用,所以被广泛使用。

第一个模型就是 the unified projection model for central catadioptric cameras, Geyer and Daniilidis [7] 在2000年提出的,Barreto and Araujo [8]后来优化了一下。这个模型包括了 catadioptric cameras相机中三类 mirror: cameras using a hyperbolic, parabolic, or elliptical mirror. 这个模型是专门针对 central catadioptric cameras 的,不实用于 fisheye cameras。在文献[9]中分析了使用该模型近似分析鱼眼镜头,精度有限。

第二个模型是 unifies both central catadioptric cameras and fisheye cameras under a general model also known as Taylor model,由 Scaramuzza et al. [10,11]于2006年提出,优势就是使用一个模型( a Taylor polynomial)分析 catadioptric and dioptric cameras

0.3 Unified model for central catadioptric cameras
Geyer and Daniilidis 在 2000年那篇经典文献指出:任意的 catadioptric (parabolic, hyperbolic, elliptical) 和标准的 perspective
projection 都等同于一个 projective mapping ,该映射将 位于 single viewpoint 一个球上的点 投影到 一个平面内,该平面的 the projection center on the perpendicular to the plane and distant ǫ from the center of the sphere

在这里插入图片描述
scene point 和 image point 的投影关系如下:
the camera and mirror reference frames differ only by a translation along z 相机坐标系和 mirror 坐标系
1)投影的第一步是将 scene point 投影到 the unit sphere

2)将投影点的坐标变换到一个新坐标系下表示,新坐标系的原点位于 C ǫ = (0,0,−ǫ)
新坐标为
在这里插入图片描述
注意这个新坐标系原点的位置不同,对应的mirror( 曲线反射面)类型会不一样。
在这里插入图片描述
3)接着将点 投影到 normalized image plane
在这里插入图片描述
4)最后通过相机内参数矩阵 K 将点投影到相机图像坐标系
在这里插入图片描述

function g −1 is bijective and that its inverse g is given by
在这里插入图片描述
上面的映射是将 成像平面上的点映射到 the unit vector Ps in the mirror reference frame

方程(6)可以通过反转方程(3)得到,满足约束: Ps 在单位球上。

方程(6)是 central catadioptric cameras 投影模型的核心。It expresses the relation between the point m on the normalized
image plane and the unit vector Ps in the mirror reference frame.

这个模型可以准确用于描述 all central catadioptric cameras (parabolic, hyperbolic, and elliptical mirror) and standard perspective cameras. 将该模型用于鱼眼相机存在精度有限的问题。为了克服这个问题,一个新的统一模型被提出来。

0.4 Unified model for catadioptric and fisheye cameras

该模型 Scaramuzza et al. in 2006 提出来的。它与上面的模型主要区别在于 函数 g 的选择。为了克服针对鱼眼相机参数模型的知识缺乏。作者提出使用 Taylor polynomial, the relation between the normalized image point ˜ m = (x m ,y m ,1) and the unit vector P s in the fisheye (mirror) reference frame can be written as:

在这里插入图片描述

0.5 Omnidirectional camera calibration
这里主要介绍三个 开源的 Matlab 标定程序,which differ mainly for the projection model adopted and the
type of calibration pattern:
1) The toolbox of Mei 使用棋盘格图像标定,使用 Geyer and Daniilidis 的投影模型,该工具箱特征适用于 catadioptric cameras using hyperbolic, parabolic, folded mirrors, and spherical mirrors
2) The toolbox of Barreto 使用直线图像标定,没有使用棋盘格,它也使用 Geyer and Daniilidis 的投影模型,该工具箱特别适用于 parabolic mirrors
3) the toolbox of Scaramuzza 使用棋盘格图像标定,它使用 the unified Taylor model for catadioptric and fisheye cameras,该工具箱适用于 catadioptric cameras using hyperbolic, parabolic, folded mirrors, spherical,and elliptical mirrors. 此外它还使用于市面上大多数鱼眼相机, it works with a wide range of fisheye lenses available on the market — such as Nikon, Sigma, Omnitech-Robotics, and many others — with field of view up to 195 degrees

Application 应用

11

这篇关于相机模型--Omnidirectional Camera的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/847596

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G