鱼眼相机模型

news/2025/2/11 15:39:07/

文章目录

  • 1鱼眼相机模型
  • 2鱼眼等距投影坐标计算
  • 3鱼眼相机标定

1鱼眼相机模型

f f f为焦距, θ \theta θ为光线与光轴的夹角, r r r为像点到图像坐标系原点的距离。
则对于针孔相机模型有:
r = f t a n θ r=ftan\theta r=ftanθ
鱼眼相机模型通常有四种
(1)等距投影
r = f . θ r=f.\theta r=f.θ
(2)等立体角投影
r = 2 f . s i n ( θ 2 ) r=2f.sin(\frac{\theta}{2}) r=2f.sin(2θ)
(3)正交投影
r = f . s i n θ r=f.sin\theta r=f.sinθ
(4)体视投影
r = 2 f . t a n ( θ 2 ) r=2f.tan(\frac{\theta}{2}) r=2f.tan(2θ)
对于畸变改正,应用Kannala-Brandt 模型,则上面四种投影方式会得到相同的改正形式,改正后的 θ d \theta_d θd
θ d = k 0 . θ + k 1 . θ 3 + k 2 . θ 5 + k 3 . θ 7 + . . . \theta_d=k_0.\theta+k_1.\theta^3+k_2.\theta^5+k_3.\theta^7+... θd=k0.θ+k1.θ3+k2.θ5+k3.θ7+...
最常用的为等距投影模型。

2鱼眼等距投影坐标计算

假设相机坐标系为 O c X c Y c Z c O_cX_cY_cZ_c OcXcYcZc,图像坐标系为 x o y xoy xoy,物体在相机坐标系下的坐标为 P ( x , y , z ), p 1 P(x,y,z),p_1 Px,y,z),p1(黑色点)为针孔相机投影到图像平面的点, p 2 p_2 p2(红色点)为鱼眼相机等距投影点, r 1 ( o p 1 ) , r 2 ( o p 2 ) r_1(op_1),r_2(op_2) r1(op1),r2(op2)分别为针孔模型、鱼眼模型的像点到图像坐标系原点的距离,P’为P在相机坐标系 O c X c Y c O_cX_cY_c OcXcYc的投影。
(1)解算 θ \theta θ

计算方式1:,则 θ = a r c t a n ( ( x 2 + y 2 ) 0.5 / z ) \theta=arctan((x^2+y^2)^{0.5}/z) θ=arctan((x2+y2)0.5/z)
计算方式2:对xy进行归一化,令 a = x / z , b = y / z , R 2 = a 2 + b 2 , θ = a r c t a n ( R ) a=x/z,b=y/z,R^2=a^2+b^2,\theta=arctan(R) a=x/z,b=y/z,R2=a2+b2,θ=arctan(R)
两种方法等效。
(2)计算图像坐标
对于针孔模型而言,光束是沿直线传播的,即 P , O c , p 1 P,Oc,p1 P,Oc,p1三点共线。所以:有三角形 O c P P ′ O_cPP' OcPP相似于三角形 O c p 1 o O_cp_1o Ocp1o,所以:向量 p ′ O c p'O_c pOc平行于向量 o p 1 op_1 op1,所以:二者与y轴的夹角相等,记为 β \beta β。在相机坐标系中有 s i n ( β ) = a / R sin(\beta)=a/R sin(β)=a/R。在图像坐标系中,有 s i n ( β ) = x 1 / r 1 = x 2 / r 2 sin(\beta)=x_1/r_1=x_2/r_2 sin(β)=x1/r1=x2/r2。所以鱼眼相机的图像坐标:
x 2 = a . r 2 / R y 2 = b . r 2 / R x_2=a.r_2/R\\ y_2=b.r_2/R x2=a.r2/Ry2=b.r2/R
a,b,R可以根据坐标和计算出来,现在的问题是怎么求解 r 2 r_2 r2
针对等距模型而言: r = f . θ r=f.\theta r=f.θ,这里不妨让 f = 1 f=1 f=1,则 r = θ = a r c t a n ( R ) r=\theta=arctan(R) r=θ=arctan(R),所以对于等距模型而言,其畸变改正后的图像坐标为:
x 2 = a . θ d / R y 2 = b . θ d / R x_2=a.\theta_d/R\\ y_2=b.\theta_d/R x2=a.θd/Ry2=b.θd/R
像素坐标系下坐标为:
u = f x ( x 2 + α . y 2 ) + c x v = f y . y 2 + c y u=f_x(x_2+\alpha .y_2)+cx\\ v=f_y.y_2+cy u=fx(x2+α.y2)+cxv=fy.y2+cy
f x , f y f_x,f_y fx,fy为焦距, α \alpha α为扭曲系数(不太理解这里为什么引入这个参数), c x , c y cx,cy cx,cy为像主点坐标。

3鱼眼相机标定

opencv提供了两种模型的标定方法
CMei模型,位于cv::omnidir命名空间中
以及Kannala模型,位于cv::fisheye命名空间。
此外matlab也提供了基于CMei模型的标定方法。
参考:
opencv文档
1
2
球面投影
CMei模型:《Single View Point Omnidirectional Camera Calibration from Planar Grids》
《A generic camera model and calibration method for conventional, wide-angle, and fish-eye lenses》
《车载鱼眼相机自标定研究》–石恬


http://www.ppmy.cn/news/305167.html

相关文章

激光雷达考试基础知识

一、技术介绍 1.激光雷达 概念:激光探测与测量,Light Detection And Ranging,英文缩写为LiDAR,LiDAR的光源一般采用激光,原理与雷达原理相同,故都将LiDAR翻译为激光雷达,也可称为激光扫描仪。工…

点云三维重建有关原理

3D信息采集常使用移动测绘系统(Mobile Mapping System),MMS包括移动激光扫描系统和数码相机。移动激光扫描系统主要由激光扫描仪和惯性导航系统组成,用于测量点的三维坐标和激光反射强度;数码相机用于测量点的三维坐标和颜色信息。根据移动激…

NVIDIA Jetson Xavier 平台入门【3】NVIDIA平台Xavier/TX2板相机视频输入方案

学习大佬的文章 :https://blog.csdn.net/jzwjzw19900922/category_9147221.html 文章目录 相机概述Camera系统 & Fpdlink相机概述FPDLink接口相机方案选择FPDLink接口相机同步方案模拟相机视频输入方案-----模拟转MIPI /DVP方案4&6路模拟相机输入TP2850方案开发TI954解…

ADAS-CIS相机内外参模型与标定实战

前言 原文发表于我的公众号:ADAS之眼,链接原文连接 “ CIS可见光相机是ADAS的眼睛,而相机标定则是其应用的基础,本文为初学者讲述了相机标定的模型以及逻辑,最后使用opencv中自带的例程演示了相机标定的demo。” 01…

海康相机ROS驱动使用

1、海康MV-CS050-10GC 镜头 MVL-HF1624M-10MP f16mm MVL-HF0624M-10MP f6mm 两个镜头都是1000万分辨率 2、支持POE供电 使用网线连接支持POE的交换机或网卡 3、下载linux客户端 4、查找相关ros驱动 https://github.com/luckyluckydadada/HIKROBOT-MVS-CAMERA-ROS.git 按照readm…

vue3中的nextTick()

目录 nextTick() 方法用法回调函数方式使用await方式使用 实现原理使用nextTick() 方法时的注意事项 nextTick() 方法 nextTick() 方法是一个非常强大的工具,是一个等待下一次 DOM 更新刷新的工具方法。用于将一个函数以异步的方式推迟到下一个 DOM 更新周期执行。…

【数据库中事务的隔离级别】—— 每天一点小知识

💧 数据库中事务的隔离级别 \color{#FF1493}{数据库中事务的隔离级别} 数据库中事务的隔离级别💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 🐳 《数据结构与算…

IP组播5_PIM-SM(ASM)详解

目录 1.PIM-SM(ASM)简介 2.PIM-SM(ASM)工作原理 2.1 什么是DR? 2.2 什么是RP? 2.2.1 静态RP 2.2.2 动态RP 2.3 组播源注册和RPT建立 2.4 SPT切换 3. PIM-SM(ASM)实验 3.1 …