相机成像模型

这篇具有很好参考价值的文章主要介绍了相机成像模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相机模型

相机成像模型,opencv,计算机视觉,视觉检测

坐标系变换

针孔相机模型存在四个坐标系:世界坐标系、摄像机坐标系、图像物理坐标系和图像像素坐标系

  • 世界坐标系:绝对坐标系,物体在真实世界中的坐标系(3D)
  • 摄像机坐标系:以相机的光心为坐标系的原点,以平行于图像的x和y方向为x轴和y轴, z轴和光轴平行, x,y, z互相垂直,单位是长度单位。(3D)
  • 图像物理坐标系:以主光轴和图像平面交点为坐标原点, x’和y’方向如图所示,单位是长度单位(2D)
  • 图像像素坐标系:以图像的顶点为坐标原点, u和v方向平行于x’和y’方向, 单位是以像素计。(2D)
世界坐标系转换到摄像机坐标系

基础知识复习
坐标变换

摄像机在不断的运动(旋转+平移),所以摄像机的坐标系也跟随着移动,而世界坐标系是不动的,要完成世界坐标系到摄像机坐标系的转换,需要将坐标系进行旋转和平移
为了便于将平移转换为线性运算,把坐标转换到齐次坐标(用N+1维来代表N维坐标)下。
N=3,N+1=4
在二维坐标变换里,
旋转
因为是坐标系的变换,所以旋转矩阵R( 3 ∗ 3 3*3 33)为点旋转的逆矩阵
R = R x R y R y R =R_{x}R_{y}R_{y} R=RxRyRy
平移
因为是坐标系的变换,所以矩阵T( 3 ∗ 3 3*3 33)为点平移的逆矩阵
T = [ 1 0 0 x 0 0 1 0 y 0 0 0 1 z 0 0 0 0 1 ] T=\begin{bmatrix} 1 & 0&0 & x_{0}\\ 0& 1&0 & y_{0} \\ 0& 0 &1&z_{0} \\ 0& 0 &0&1\end{bmatrix} T=100001000010x0y0z01
可得三维平移向量为
t = [ x 0 y 0 z 0 ] t=\begin{bmatrix}x0 \\ y0\\z0 \end{bmatrix} t=x0y0z0
平移旋转放到一起就得到了
[ x c y c z c 1 ] = [ R t 0 1 ] [ x w y w z w 1 ] \begin{bmatrix} x_{c}\\y_{c} \\z_{c}\\1\end{bmatrix}=\begin{bmatrix} R& t\\ 0&1\end{bmatrix}\begin{bmatrix} x_{w}\\ y_{w}\\ z_{w}\\1\end{bmatrix} xcyczc1=[R0t1]xwywzw1
其中下角标c表示相机坐标系下,w表示在世界坐标系下,R为三轴旋转矩阵,t为三维平移向量,
由此得到了世界坐标系到相机坐标系的转换

摄像头坐标系图像物理坐标系的转换

相机成像模型,opencv,计算机视觉,视觉检测

根据图中两个三角形相似可得
f Z c = y y c \frac{f}{Z_{c}} = \frac{y}{y_{c}} Zcf=ycy
f Z c = x x c \frac{f}{Z_{c}} = \frac{x}{x_{c}} Zcf=xcx
解得
y = y c f Z c y=\frac{y_{c}f}{Z_{c}} y=Zcycf
x = x c f Z c x=\frac{x_{c}f}{Z_{c}} x=Zcxcf

划成矩阵形式,并且因为图像坐标系由三维降到了二维,z轴丢失了,要使矩阵能够相乘,需把矩阵补成 3 ∗ 4 3*4 34
[ x y 1 ] = [ f Z c 0 0 0 0 f Z c 0 0 0 0 1 Z c 0 ] [ x c y c z c 1 ] \begin{bmatrix} x\\y \\1\end{bmatrix}=\begin{bmatrix} \frac{f}{Z_{c}} &0 & 0 &0 \\ 0& \frac{f}{ Z_{c}} & 0 & 0\\ 0& 0& \frac{1}{ Z_{c}} &0\end{bmatrix}\begin{bmatrix} x_{c}\\ y_{c}\\ z_{c}\\1\end{bmatrix} xy1=Zcf000Zcf000Zc1000xcyczc1
左右同乘 Z c Z_{c} Zc得:
Z c [ x y 1 ] = [ f 0 0 0 0 f 0 0 0 0 1 0 ] [ x c y c z c 1 ] Z_{c}\begin{bmatrix} x\\y \\1\end{bmatrix}=\begin{bmatrix} f &0 & 0 &0 \\ 0& f & 0 & 0\\ 0& 0& 1 &0\end{bmatrix}\begin{bmatrix} x_{c}\\ y_{c}\\ z_{c}\\1\end{bmatrix} Zcxy1=f000f0001000xcyczc1
由此得到了物理图像坐标系的x,y坐标,注意该x,y的单位还是为现实世界里的(米,毫米…)
同时也完成了由三维到二维的转化。

图像物理坐标系转化到图像像素坐标系

相机成像模型,opencv,计算机视觉,视觉检测

O o v O_{ov} Oov坐标系表示像素坐标系, O x y O_{xy} Oxy表示物理坐标系,这两个坐标系之间存在缩放平移
缩放:真实世界的坐标单位和图像里的像素存在一定的比例关系
假设一个像素对应真实世界的距离dx,dy
平移:两个坐标系原点不重合,假设图像中心在像素系的坐标为( u 0 , v 0 u_{0},v_{0} u0,v0
缩放和平移矩阵运算:坐标变换
可得出该两个坐标系之间的转换关系为:
[ u v 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ x y 1 ] \begin{bmatrix} u\\v \\1\end{bmatrix}=\begin{bmatrix} \frac{1}{d_{x}} &0 & u_{0} \\ 0& \frac{1}{d_{y}} & v_{0} \\ 0& 0& 1 \end{bmatrix}\begin{bmatrix} x\\ y\\1\end{bmatrix} uv1=dx1000dy10u0v01xy1

模型总结

把上述所有变换总结在一起,得到以下关系式
Z c [ u v 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ f 0 0 0 0 f 0 0 0 0 1 0 ] [ R t 0 1 ] [ x w y w z w 1 ] = [ a x 0 u 0 0 a y v 0 0 0 1 ] [ R t 0 1 ] [ x w y w z w 1 ] Z_{c}\begin{bmatrix} u\\ v\\1\end{bmatrix}=\begin{bmatrix} \frac{1}{d_{x}} &0 & u_{0} \\ 0& \frac{1}{d_{y}} & v_{0} \\ 0& 0& 1 \end{bmatrix}\begin{bmatrix} f &0 & 0 &0 \\ 0& f & 0 & 0\\ 0& 0& 1 &0\end{bmatrix}\begin{bmatrix} R& t\\ 0&1\end{bmatrix}\begin{bmatrix} x_{w}\\ y_{w}\\ z_{w}\\1\end{bmatrix}=\begin{bmatrix} a_{x} &0 & u_{0} \\ 0& a_{y} & v_{0} \\ 0& 0& 1 \end{bmatrix}\begin{bmatrix} R& t\\ 0&1\end{bmatrix}\begin{bmatrix} x_{w}\\ y_{w}\\ z_{w}\\1\end{bmatrix} Zcuv1=dx1000dy10u0v01f000f0001000[R0t1]xwywzw1=ax000ay0u0v01[R0t1]xwywzw1
其中 a x = f / d x a_{x}=f/d_{x} ax=f/dx , a x = f / d y a_{x}=f/d_{y} ax=f/dy 都是常数,所以把他化为一个
其中矩阵 [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] \begin{bmatrix} \frac{1}{d_{x}} &0 & u_{0} \\ 0& \frac{1}{d_{y}} & v_{0} \\ 0& 0& 1 \end{bmatrix} dx1000dy10u0v01和矩阵 [ f 0 0 0 0 f 0 0 0 0 1 0 ] \begin{bmatrix} f &0 & 0 &0 \\ 0& f & 0 & 0\\ 0& 0& 1 &0\end{bmatrix} f000f0001000只和相机本身有关,他们相乘等于矩阵 [ a x 0 u 0 0 a y v 0 0 0 1 ] \begin{bmatrix} a_{x} &0 & u_{0} \\ 0& a_{y} & v_{0} \\ 0& 0& 1 \end{bmatrix} ax000ay0u0v01称之为内参矩阵,矩阵 [ R t 0 1 ] \begin{bmatrix} R& t\\ 0&1\end{bmatrix} [R0t1]随着相机运动变化,R和旋转有关,t和平移有关,称之为外参矩阵

可这是理想情况的内外参,而真实世界总是存在许多误差

真实情况

理想的透视模型是针孔成像模型,物和像会满足相似三角形的关系。但是实际上由于相机光学系统存在加工和装配的误差,透镜就并不能满足物和像成相似三角形的关系,所以相机图像平面上实际所成的像与理想成像之间会存在畸变。畸变属于成像的几何失真,是由于焦平面上不同区域对图像的放大率不同形成的画面扭曲变形的现象,这种变形的程度从画面中心至画面边缘依次递增,主要在画面边缘反映比较明显。为了减小畸变,拍摄图片时应尽量避免用镜头焦距的最广角端或最远端拍摄。
相机成像模型,opencv,计算机视觉,视觉检测

从图像物理坐标系到像素图像坐标系的误差分析

存在,缩放,偏移,偏斜误差。
相机成像模型,opencv,计算机视觉,视觉检测
考虑这些误差后表达式变为:
相机成像模型,opencv,计算机视觉,视觉检测

把这些常数都用一个变量表示可以把内参矩阵表示为 K = [ f x s c x 0 f y c y 0 0 1 ] K = \begin{bmatrix}f_x & s & c_x \\0 & f_y & c_y \\0 & 0 & 1\end{bmatrix} K=fx00sfy0cxcy1

参数标定

内参:一般由厂商标定完成
外参:棋盘格标定法,直接线性OLT

参考

相机模型详解_已有的相机成像模型有哪些种类-CSDN博客
计算机视觉之相机模型-CSDN博客
相机模型都没弄懂,怎么搞机器人视觉算法?_哔哩哔哩_bilibili文章来源地址https://www.toymoban.com/news/detail-833043.html

到了这里,关于相机成像模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机竞赛 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

    🔥 优质竞赛项目系列,今天要分享的是 基于机器学习的二维码识别检测 - opencv 二维码 识别检测 机器视觉 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 物体检测就是对数字图像中一类特定的物体的

    2024年02月11日
    浏览(62)
  • 计算机视觉+深度学习+机器学习+opencv+目标检测跟踪(代码+视频)

    计算机视觉、深度学习和机器学习是当今最热门的技术,它们被广泛应用于各种领域,如自动驾驶、医学图像分析、安防监控等。而目标检测跟踪技术则是计算机视觉中的一个重要分支,它可以帮助我们在图像或视频中自动识别和跟踪特定的目标。 下面我们来一一介绍这些技

    2024年02月01日
    浏览(108)
  • 计算机竞赛 机器视觉人体跌倒检测系统 - opencv python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 机器视觉人体跌倒检测系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/

    2024年02月07日
    浏览(63)
  • 计算机毕设 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

    今天学长向大家介绍一个机器视觉的毕设项目,二维码 / 条形码检测与识别 基于机器学习的二维码识别检测 - opencv 二维码 识别检测 机器视觉 物体检测就是对数字图像中一类特定的物体的位置进行自动检测。基本的检测框架有两种: 一种是以滑动窗口为单位对图像进行扫描

    2024年02月10日
    浏览(51)
  • 【计算机视觉中的多视图几何系列】深入浅出理解针孔相机模型

    温故而知新,可以为师矣! 《计算机视觉中的多视图几何-第五章》-Richard Hartley, Andrew Zisserman. 1.1 投影中心/摄像机中心/光心 投影中心 称为 摄像机中心 ,也称为 光心 。投影中心位于一个欧式坐标系的原点。 1.2 图像平面/聚焦平面 平面 Z = f Z=f Z = f 被称为 图像平面 或 聚焦

    2024年02月03日
    浏览(55)
  • 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习多目标跟踪 实时检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-sen

    2024年02月05日
    浏览(66)
  • 计算机竞赛 深度学习人体跌倒检测 -yolo 机器视觉 opencv python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https

    2024年02月08日
    浏览(75)
  • 基于 OpenCV 的车辆变道检测,计算机视觉+图像处理技术

    本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否在改变车道!大家一定听说过使用 OpenCV 的 haar 级联文件可以检测到面部、眼睛等,但是如果目标是汽车,公共汽车呢? 01. 数据集 我们将道路上汽车的视频文件用作数据

    2024年01月25日
    浏览(67)
  • 计算机设计大赛 深度学习人体跌倒检测 -yolo 机器视觉 opencv python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https

    2024年02月21日
    浏览(84)
  • 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https:/

    2024年02月05日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包