首页 > 其他分享 >摄像机模型

摄像机模型

时间:2023-11-26 14:59:48浏览次数:33  
标签:begin end dfrac 模型 摄像机 bmatrix alpha

title: 摄像机模型
banner_img: https://drive.studyinglover.com/api/raw/?path=/photos/blog/background/1679396994125.png
date: 2022-12-29 21:47:00
categories:
- 工具
tags:
- 机器视觉

摄像机模型

本文是鲁鹏老师机器视觉课程的笔记

针孔模型与透镜

image.png

image.png

虚拟像平面是倒着的

image.png

image.png

\(\dfrac{y'}{f}=\dfrac{y}{z}\quad\implies y'=f\dfrac{y}{z}\)

\(\dfrac{x'}{f}=\dfrac{x}{z}\quad\implies x'=f\dfrac{x}{z}\)
\(P=\begin{bmatrix}x\\ y\\ z\end{bmatrix}\to P'=\begin{bmatrix}x'\\ y'\end{bmatrix}\quad\quad\)

\(\begin{cases}x'=f\dfrac{x}{Z}\\ y'=f\dfrac{y}{Z}\end{cases}\)

光圈尺寸

光圈偏大会导致场景模糊

光圈偏小会场景清晰,但偏暗
image.png

增加透镜

  • 透镜将多条光线聚焦到胶片上,增加了照片的亮度:
    • 所有平行于光轴的光线都会会聚到焦点,焦点到透镜中心的距离称为焦距
    • 穿过中心的光线的方向不发生改变

image.png
根据折射定律: \(f=\frac{ {R} }{ {2}({n}-1)}\) ,\(R\) 是透镜球面半径,\(n\)是透镜折射系数

\(z'=f+z_0\quad\begin{cases}x'=z'\dfrac{x}{z}\\ y'=z'\dfrac{y}{z}\end{cases}\)

要是透镜不合适,则会发生失焦
image.png

透镜将光线聚焦到胶片上

  • 物体“聚焦”有特定距离
  • 景深

径向畸变

图像中所成的像发生形变

径向畸变:图像像素点以畸变中心为中心点,沿着径向产生的位置偏差,从而导致

image.png

枕形畸变:畸变像点相对于理想像点沿径向向外偏移,远离中心
桶形畸变:畸变像点相对于理想点沿径向向中心靠拢

摄像机几何

齐次坐标

\(E\to H\)
图像点的齐次坐标\(\text{}(x,y)\Rightarrow\left[\begin{array}{c}x\\ y\\ 1\end{array}\right]\)

空间点的齐次坐标\((x,y,z)\Rightarrow\left[\begin{array}{c}x\\ y\\ z\\ 1\end{array}\right]\)

\(H \to E\)
\(\left[\begin{array}{c}x\\ y\\ w\end{array}\right]\Rightarrow\left(x/w,y/w\right)\)

\(\left[\begin{array}{c}x\\ y\\ z\\ w\end{array}\right]\Rightarrow\left(x/w,y/w,z/w\right)\)

\(H \to E\) 的转变不是唯一的,但\(E \to H\) 的转变是唯一的

像素坐标系

建立像平面到像素平面关系

  1. 偏置

image.png

image.png

\((x,y,z)\to(f\dfrac{x}{z}+c_x,f\dfrac{y}{z}+c_y)\)

  1. 单位变换
    \((x,y,z)\to({fk}\frac{x}{z}+c_x,{fl}\frac{y}{z}+c_y)\)
    单位:k.l:pixel/m , f:m
    k表示竖直方向上多少米表示一个像素,l表示水平方向上多少米表示一个像素

记\(fk\)为\(\alpha\) ,\(fl\)为\(\beta\)
\(P=(x,y,z)\rightarrow P^{\prime}=\left(\alpha{\frac{x}{z} }+c_{x},\beta{\frac{y}{z} }+c_{y}\right)\) ,这里的\(c_x,c_y\)是像素上的偏置

\(P=(x,y,z)\rightarrow P^{\prime}=\left(\alpha{\frac{x}{z} }+c_{x},\beta{\frac{y}{z} }+c_{y}\right)\)是非线性变换

在齐次坐标系下
\(P_h'=\begin{bmatrix}\alpha x+c_x z\\ \beta y+c_yz\\ z\end{bmatrix}=\begin{bmatrix}\alpha&0&c_x&0\\ 0&\beta&c_y&0\\ 0&0&1&0\end{bmatrix}\begin{bmatrix}x\\y\\z\\1\end{bmatrix}\)

\(P'_h\to P'=(\alpha\dfrac{x}{z}+c_x,\beta\dfrac{y}{z}+c_y)\)

\(P'_h\)是齐次,\(P'\) 是欧式

摄像机的投影矩阵

image.png

\(P'=\begin{bmatrix}\alpha&0&c_x&0\\ 0&\beta&c_y&0\\ 0&0&1&0\end{bmatrix}\begin{bmatrix}x\\ y\\ z\\ 1\end{bmatrix}=MP\)

其中\(M=\begin{bmatrix}\alpha&-\alpha\cot\theta&c_x&0\\ 0&\dfrac{\beta}{sin\theta}&c_y&0\\ 0&0&1&0\end{bmatrix}\)

此时\(P\)和\(P'\) 是线性表示
\(P'\)是\(3*1\)矩阵,\(P\) 是\(4*1\)矩阵

摄像机偏斜

image.png
\(P'=\begin{bmatrix}\alpha&-\alpha\cot\theta&c_x&0\\ 0&\frac{\beta}{sin\theta}&c_y&0\\ 0&0&1&0\end{bmatrix}\begin{bmatrix}x\\ y\\ z\\ 1\end{bmatrix}\)

摄像机坐标系下的摄像机模型

\(P'=\begin{bmatrix}\alpha&-\alpha\cot\theta&c_x&0\\ 0&\frac{\beta}{sin\theta}&c_y&0\\ 0&0&1&0\end{bmatrix}\begin{bmatrix}x\\ y\\ z\\ 1\end{bmatrix}=MP\)

\(M=\begin{bmatrix}\alpha&-\alpha\cot\theta&c_x&0\\ 0&\frac{\beta}{sin\theta}&c_y&0\\ 0&0&1&0\end{bmatrix}\)被称为投影矩阵,

\(K=\begin{bmatrix}\alpha&-\alpha\cot\theta&c_x\\ 0&\frac{\beta}{sin\theta}&c_y\\ 0&0&1\end{bmatrix}\) 被称为摄像机内参数矩阵,内参数矩阵决定了摄像机坐标系下空间点到图像点的映射

摄像机内参数为\(\alpha,\beta,c_x,c_y,\theta\),K有五个自由度

规范化投影变换

\(P'=\begin{bmatrix}x\\ y\\ z\end{bmatrix}=\begin{bmatrix}1&0&0&0\\ 0&1&0&0\\ 0&0&1&0\end{bmatrix}\begin{bmatrix}x\\ y\\ z\\ 1\end{bmatrix}\)

已知摄像机矩阵\(M\) , \(P'=I(MP)\),\(I=\begin{bmatrix}1&0&0\\ 0&1&0\\ 0&0&1\end{bmatrix}\)

\(\begin{array}{c}\Re^4\xrightarrow{H}\Re^3\\ \boldsymbol{P'}=M\boldsymbol{P}\end{array}\)

\(P\) 的欧式坐标\(\left[\begin{array}{c}{ {\frac{x}{z} }}\\ { {\frac{y}{z} }}\\ \end{array}\right]\)

世界坐标系

image.png

\(O_w\) 为世界坐标系 \(O\)摄像机坐标系,\(C'\)像平面坐标系

齐次坐标系\(P=\left[\begin{matrix}{R}&{T}\\ {0}&{1}\\ \end{matrix}\right]\boldsymbol{P}_{w}\) , \(\begin{bmatrix}x_w\\ y_w\\ z_w\\ 1\end{bmatrix}\) ,即摄像机坐标系是世界坐标系经过一个旋转,再经过一个平移得到的

世界坐标系下\(P_w=R^T(P-T)\)

从世界坐标系到像素坐标系\(P'=K[I\quad0]P=K[I\quad0]\begin{bmatrix}R&T\\ 0&1\end{bmatrix}P_w=K[R\quad T]P_w=MP_w=\left[{\begin{matrix}{m_{1} }\\ {m_{2} }\\ {m_{3} }\end{matrix} }\right]P_{\mathrm{w} }\)
\(\begin{bmatrix}R & T\end{bmatrix}\)称为外参数矩阵,K是内参数,这就是完整的摄像机模型

\(M\) 称为投影矩阵,有11个自由度

摄像机O点坐标为\(-R^TT\)

\(\left[{\begin{matrix}{m_{1} }\\ {m_{2} }\\ {m_{3} }\end{matrix} }\right]P_{\mathrm{w} }\) 是转换为欧式坐标系的写法,\(m_i\) 是一个\(1*4\) 的矩阵

image.png

投影变化的性质

  1. 点投影为点
  2. 线投影为线
  3. 近大远小
  4. 角度不再保持
  5. 平行线相交

其他摄像机模型

透视投影摄像机

^b240bc

image.png

\(P'_{3\times1}=MP_W=K_{3\times3}[R\quad T]_{3\times4}P_{W4\times1}=\begin{bmatrix}m_1\\ m_2\\ m_3\end{bmatrix}P_w=\begin{bmatrix}m_1P_w\\ m_2P_w\\ m_3P_w\end{bmatrix}\stackrel{E}{\longrightarrow}(\dfrac{m_1P_w}{m_3P_w},\dfrac{m_2P_w}{m_3P_w})\quad,M=\begin{bmatrix}m_1\\ m_2\\ m_3\end{bmatrix}\)

弱透视投影摄像机

image.png

\(\begin{cases}x'=\dfrac{f'}{z}x\\ y'=\dfrac{f'}{z}y\end{cases}\rightarrow\begin{cases}x'=\dfrac{f'}{z_0}x\\ y'=\dfrac{f}{z_0}y\end{cases}\)

从投影(透视)到弱透视\(M=K[RT]=\begin{bmatrix}A_{2\times3}&b_{2\times1}\\ v_{1\times2}&1\end{bmatrix}\quad\to M=\begin{bmatrix}A&b\\ 0&1\end{bmatrix}\quad\)

\(P'=MP_w=\begin{bmatrix}m_1\\ m_2\\ m_3\end{bmatrix}P_w=\begin{bmatrix}m_1P_w\\ m_2P_w\\ 1\end{bmatrix}\stackrel{E}{\longrightarrow}\left(m_{1}P_{W},m_{2}P_{w}\right)\) ,\(m_1,m_2\) 为放大率

\(M=\begin{bmatrix}A&b\\ v&1\end{bmatrix}=\begin{bmatrix}m_1\\ m_2\\ m_3\end{bmatrix}=\begin{bmatrix}&m_1&\\ &m_2&\\ 0&0&0&1\end{bmatrix}\)

正交投影摄像机

image.png

\(\begin{cases}x'=\dfrac{f'}{z}x\\ y'=\dfrac{f'}{z}y\end{cases}\quad\to\quad\begin{cases}x'=x\\ y'=y\end{cases}\)

各种摄像机模型的应用场合

  • 正交投影
    • 更多应用在建筑设计(AUTOCAD)或者工业设计行业
  • 弱透视投影在数学方面更简单
    • 当物体较小且较远时准确,常用于图像识别任务
  • 透视投影对于3D到2D映射的建模更为准确
    • 用于运动恢复结构或SLAM

标签:begin,end,dfrac,模型,摄像机,bmatrix,alpha
From: https://www.cnblogs.com/studyinglover/p/17857235.html

相关文章

  • LeetCode 354. (经典问题) 俄罗斯套娃信封问题 (俄罗斯套娃模型 + 最长下降子序列
    packageleetcode;importjava.util.Arrays;publicclasslec154{/***首先是思路来源:https://leetcode.cn/problems/russian-doll-envelopes/solutions/19681/zui-chang-di-zeng-zi-xu-lie-kuo-zhan-dao-er-wei-er/*思路:先按照宽度降序(升序)接着......
  • zemax导入外部模型
    一:在三维软件(Catia、Solidworks)中绘制实体,将文件转存为STP格式(其他格式也可以,放到不同文件夹里面就行)。提前将此文件放入Zemax安装包的文件中,例如:C:\Users\59118\Documents\zemax\OBJECTS\CADFiles\.STP。二:在Zemax序列模式下,在透镜数据编辑器中双击一个面的surf:type——Type选......
  • 数据分享|Eviews用ARIMA、指数曲线趋势模型对中国进出口总额时间序列预测分析
    全文链接:https://tecdat.cn/?p=34361原文出处:拓端数据部落公众号研究的背景及意义众自20世纪80年代至今,随着改革开放的深入以及中国最终加入WTO,我国的对外贸易实现了跨越式的发展,中国已经成为世界第一大出口国和第二大进口国,中国经济对世界经济做出了重大贡献。与此同时,中国经......
  • 中伟视界:AI算法模型自训练平台技术难点及解决方法
    搭建AI算法模型自训练平台是当今人工智能领域的热门话题,但是其中存在着许多技术难点需要克服。自训练平台需要具备高效的算法模型,这就要求能够处理庞大的数据量并进行高速计算。平台需要具备强大的数据管理及存储能力,以满足训练过程中的数据需求。再者,平台还需要考虑如何进行模型的......
  • 空间三维模型的编码结构光方法实现:基于EinScan-S软件
      本文介绍基于EinScan-S软件,实现编码结构光方法的空间三维模型重建的具体操作。目录1相关原理1.1编码结构光成像原理1.2编码结构光编码方式1.3编码结构光与侧影轮廓方法比较1.4编码结构光方法流程2三维模型制作2.1防晒霜罐三维模型制作2.1.1前期准备工作2.1.2软件配......
  • PyTorch团队重写「分割一切」模型,比原始实现快8倍
    前言 我们该如何优化Meta的「分割一切」模型,PyTorch团队撰写的这篇博客由浅入深的帮你解答。本文转载自机器之心仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署......
  • LLMLingua:集成LlamaIndex,对提示进行压缩,提供大语言模型的高效推理
    大型语言模型(llm)的出现刺激了多个领域的创新。但是在思维链(CoT)提示和情境学习(ICL)等策略的驱动下,提示的复杂性不断增加,这给计算带来了挑战。这些冗长的提示需要大量的资源来进行推理,因此需要高效的解决方案,本文将介绍LLMLingua与专有的LlamaIndex的进行集成执行高效推理。LL......
  • ChatGLM3革新:推理速度提升2-3倍,成本降低一半的AI大模型
    引言随着人工智能技术的飞速发展,自然语言处理(NLP)已成为最具挑战性和活跃的研究领域之一。在这个领域,大型预训练模型已被证明是实现卓越性能的关键。智谱AI最近发布的ChatGLM3,作为其第三代对话大模型,不仅在性能上有了显著提升,还在多个方面展现了其技术优势。推理速度和成本ChatGL......
  • 人工智能概述之06模型评估
    机器学习模型评估是确保模型性能良好并能泛化到新数据的关键步骤。下面是一些机器学习模型评估的详解、最佳实践和示例:1. 评估指标:1.1 分类问题:准确度(Accuracy): 正确预测的样本数除以总样本数。精确度(Precision): 正类别预测正确的样本数除以所有被预测为正类别的样本数。......
  • 【行行AI公开课】AIGC从模型到落地:促进技术落地与产业变革
    11月26日北京大学的北大创新学社将举行“AI-FUSION”系列活动第十期。北大创新学社是北京大学团委和光华管理学院团委指导成立,是2023HICOOL全球创业者峰会唯一受邀参展的高校社团。“首都高校创新创业大赛”发起方及主办单位。“AI-FUSION”是AI创投部人工智能行业社群打造的系列......