【计算机视觉-从入门到精通系列】 第二章 相机模型

       

2.1 针孔模型

        计算机视觉是一门研究如何让计算机“看”世界的学科。人要看到世界需要眼睛,计算机要看到世界同样也需要“眼睛”,计算机的“眼睛”主要就是相机。实际应用中,相机的种类纷繁复杂,包括手机和平板电脑的相机,传统的胶片相机、普通的数码相机、专业的量测相机等,还包括双目相机、RGBD相机、激光雷达等新型相机。为了精准描述相机成像过程,需要建立起对应的数学模型,这就是相机模型。相机模型是用来描述相机将三维世界中的坐标点映射到二维图像平面的过程,其中最常用也是最简单的是针孔模型,如(图2-1)所示。其中O为相机的光心,称为摄站中心P是三维空间点,P'是成像点,f是相机焦距。针孔模型对应的物理过程是小孔成像。

        需要说明的是,相机镜头实际使用的是凸透镜 (图2-2),但由于小孔成像和凸透镜成像具有相同的成像几何关系,因此针孔模型对凸透镜成像同样适用。

       在介绍针孔模型之前,需要先简单介绍一下计算机视觉里常用的几个坐标系,它们分别是像素坐标系、相机坐标系世界坐标系像素坐标系是平面坐标系,原点一般为影像的左上角,也可以是左下角或影像中心,XY轴分为影像行、列方向。相机坐标系一般以摄站中心O为原点,XY轴与分别影像XY轴方向一致,以光轴为Z轴。世界坐标系是相机拍摄的三维场景的参考坐标系,相机位置和姿态(拍摄角度)以此作为参考。

        针孔模型中,∆PAO与∆P'BO为相似三角形,可以得到式(2.1),式中的负号用来表示成的像是倒立的。

        为了方便,可等价地将像平面放到物方同侧图(2-3),此时像点为P''。其中,∆P'BO与∆P''B'O也为相似三角形,且各边长相等,此时成像不再是倒立,式(2.1)中的负号可以去掉,得式(2.2)。

       推广到三维场景可得式(2.3),其中 y是物体在相机坐标系Y轴上的坐标, y'是像素坐标系y轴上的坐标。 

      像素坐标系和成像平面(相机坐标系),相差一个缩放和平移。假设像点在成像平面的坐标在X轴上缩放了α倍,在Y轴上缩放了β倍,且坐标系原点平移了,则成像点P'的像素坐标与世界坐标的关系为(2.4)式。

       将式(2.3)代入式(2.4)得式(2.5)

         将合并成合并成,得式(1.6),的单位是像素。

        用矩阵形式来表示(2.6)式,

       组成的矩阵称为相机的内参数(Camera Intinsics)矩阵K。相机的内参与相机自身硬件相关,在相机出厂之后是固定的,有的厂家直接提供内参数,但更多的情况是需要自己确定相机内参,这就是所谓的相机标定。具体的标定方法相对比较成熟,这里不做介绍。从式(2.7)可以看出, P点坐标乘上任何非零常数,它对应的像素坐标系始终不会发生变化,这就数学上说明了单目相机无法确定物方点深度。我们假设z=1时,P点坐标为,可理解为将原来的P点沿着PO线移动至,此时对应像素坐标也不会变化,该坐标称为归一化坐标z=1的平面称为归一化平面。归一化坐标与归一化平面使用上会更加简洁方便。 

        与相机内参数相对的概念就是相机外参数。为了将每一次拍摄时的相机位姿统一在世界坐标系中,需要对各个相机坐标系进行旋转平移操作,对应的旋转矩阵R和平移向量t称为相机外参数(Camera Extinsics)。相机的外参数与相机自身硬件无关,只取决于拍摄时的位置和姿态。假设相机坐标系下P点在世界坐标系的坐标为,像素坐标系的坐标为

         将式(2.7)代入式(2.8)得式(2.9)

       式(2.9)隐含了将坐标由非齐次坐标到齐次坐标的转换,并用T矩阵代替Rt的旋转平移操作。

2.2 畸变模型

       针孔模型是一个理想模型,它与实际情况存在差异,最显著的差异就是相机畸变。造成相机畸变主要有三个原因:一是透镜自身形状对光线传播的影像;二是透镜光学中心和几何中心不一致;三是镜头设计缺陷与加工安装误差。根据畸变对不同方向影响可以分为径向畸变切向畸变(图2-4)。其中P点为理想的像点,P'为实际的像点。dr为径向畸变,dt为切向畸变。

       根据造成畸变的原因来分类,可以更具体地分为径向畸变离心畸变、薄棱镜畸变。大多相机薄棱镜畸变可以忽略,这里也不进行详细介绍。我们将重点介绍更为常用的径向畸变、离心畸变。径向畸变又可以细分为桶形畸变和枕形畸变。

       为了能够数值描述径向畸变,需要两个前提,一是径向畸变是中心对称的;二是径向畸变是连续变化的。这就要求出厂的相机硬件是中心对称且表面光滑的,对于大多数的厂商而言这个并不难做到。前面提到,单目相机无法感知深度。因此,在相机坐标系中,相机畸变只影响x,y值。为了方便,在畸变模型中,我们将统一采用归一化坐标。对于相机坐标系内的P点,它的坐标是,因为存在相机畸变,通过相机看到它的坐标为。记rP与坐标系原点的距离,因为径向畸变为中心对称,因而径向畸变与r相关。又因为径向畸变连续变化,因此可以使用一个多项式来拟合在不同的r处畸变前后的P位置的关系。可以用式(2.10)来描述。二项式系数多少可以根据具体的精度需要来决定,一般就已经够用。

       离心畸变的几何分析与公式推导相对比较复杂,这里我们直接给出最后公式(2.11),有兴趣可以参考相关论文。

        同时考虑径向畸变与离心畸变,于是有式(2.12)

        最后根据相机内参可以得到在考虑畸变时相机坐标系与像素坐标系之间的关系,如式(2.13)

        实际应用中对于相机畸变一般使用k1k2k3 p1p2这几个参数。

        总结:针孔模型描述了相机的成像过程,但针孔模型是理想模型,它与实际的相机成像存在差异,为了消除这个差异需要使用畸变模型。在计算机视觉领域中,针孔模型和畸变模型适用于绝大多数的光学相机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1383136.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

5分钟入门Cinemachine智能相机系统

摘要:相机是Unity世界的眼睛,一个智能相机更是能帮咱们节省大把的时间和精力。Cinemachine现在已经大量应用到各种项目中,如果你还没有用过Cinemachine,墙裂建议你来体验一下。 你好,我是跟着大智学Unity的萌新&#x…

立体视觉入门指南(1):坐标系与相机参数

亲爱的同学们,我们的世界是3D世界,我们的双眼能够观测三维信息,帮助我们感知距离,导航避障,从而翱翔于天地之间。而当今世界是智能化的世界,我们的科学家们探索各种机器智能技术,让机器能够拥有…

camera学习入门指南

等待补充。 1.背景介绍 近年来,随着消费电子领域市场的快速增长,如安防、图像等领域,camera市场得到了快速发展。智能手机这几年以拍照作为主打卖点,带动了camera(CCM)出货。 具体可以看电子行业分析或者券…

机器视觉——入门基础(三)——相机镜头选型

目录 相机选型 分辨率、快门、帧率、色彩、靶面、接口 镜头选型 分辨率、靶面、焦距、接口、光圈畸变工作距离 常用计算示例 相机选型 分辨率、快门、帧率、色彩、靶面、接口 镜头选型 分辨率、靶面、焦距、接口、光圈畸变工作距离 常用计算示例 1. 面阵相机和镜头选型 已…

划重点!| 必须了解的工业相机入门级知识

工业相机是机器视觉系统的核心部件,其相关基础知识是行业内人员必须熟知的。那么分辨率、像素深度、行频、信噪比具体是指什么?CCD和CMOS又该如何去进行选择?今天我们就对这些内容进行一个简单的梳理,希望能够帮助大家了解更多。 …

机器视觉——入门基础(一)—— 相机篇

目录 一,相机就是CCD么? 二,像素。 三,像素直径。 四,CCD的大小。 五,快门速度。 六,增益。 七,1D相机(线扫描相机) 八,3D相机。 九&…

IP 协议的相关特性和数据链路层相关知识总结

目录 IP 协议的相关特性 一、IP协议的特性 二、 IP协议数据报格式 三、 IP协议的主要功能 1. 地址管理 动态分配 IP地址 NAT机制 NAT背景下的通信 IPV6 2. 路由控制​​​​​​​ 3.IP报文的分片与重组 数据链路层相关知识 1、以太网协议(Ethernet) 2.M…

掌握Python的X篇_28_python包管理工具pip命令

本篇将会介绍在实际使用python中最能节省效率的内容,利用第三方库拿来就用。 文章目录 1. pip命令是什么2. pip相关操作2.1 list2.2 install2.3 uninstall2.4 导出和导入2.4.1 freeze命令2.4.2 “-r” 3. 国内镜像4. Python Packges Index网站 1. pip命令是什么 p…

DiskGenius分区移动硬盘

打开DiskGenius 右键点击1T(实际显示是900多G)的移动硬盘,选择快速分区 分区个数按自己需要来选,卷标也按自己需要来修改,取消主分区的勾选框,因为是移动硬盘,不需要转操作系统,所以…

AUtoCAD Civil 3D-曲面-原始数据处理

Civil3D中,曲面是最重要的一个对象之一。曲面涉及到的知识点比较多,作为一个刚接触Civil3D的学习者,可能对于各种概念和各种概念之间的关系比较迷惑。这篇文章及梳理下曲面的一些重要的概念框架。 1、 曲面的分类 曲面可以分为四种类型&…

如何将卫星影像或者航拍影像叠加到CAD设计图上(Auto CAD版)

同步视频教程:卫星图像应用到AutoCAD工程设计(套合、叠加、配准)-Bigemap GIS Office 视频教程:如何选择中央子午线或者分度带 第一步 工具准备 BIGEMAP地图下载器:Bigemap系列产品-GIS行业基础软件kml\shp 相关教…

AutoCAD套合(叠加)卫星影像和矢量路网数据-CAD配准

BIGEMAP无偏移影像叠加配准(Auto CAD版) ​ 同步视频教程:http://www.iqiyi.com/w_19rubyfogh.html 专题地图制作视频教程:http://www.iqiyi.com/w_19rvlbep4l.html#vfrm16-1-1-1 下载:全国路网数据、全国水系矢量 …

cad图转成shp文件并把其平面坐标投影配准成大地坐标(配准针对没有底图的情况)

所需工具:arcmap,supermap(这里安装过程就不写了,网上一堆,自行搜搜吧。) 一、先将cad图转成shp文件 打开arcmap中,在图层中加入数据。 在arcmap中导入cad图后,选择需要的要素导出。比如,这里需要面要素,右击面要素,选择数据,点击导出数据。 选择将要导出shp文件…

history记录日期时间和日志记录操作

history命令能查看到操作日期和时间的配置方法: 1)在/etc/profile文件中添加一行: export HISTTIMEFORMAT"%F %T whoami " 2)保存后,执行加载命令: source /etc/profile 3)然后检…

ASP.NET Core - 缓存之分布式缓存

分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时。 与其他将缓存数据存储在单个应用服务器上的缓存方案相比&am…

【SWAT水文模型】SWATCUP率定参数实例-以洮河流域为例

SWATCUP率定参数实例 以SWATCUP首次模拟结果为例,具体模拟结果如下: 模拟参数结果如下: Parameter_Name Fitted_Value Min_value Max_value 1:R__CN2.mgt -0.180000 -0.200000 0.200000 2:V__SUR…

深入浅出流批一体理论篇——数据架构的演进

一、前大数据时代 人人都知道罗马不是一天建成的,但没人告诉过你罗马是怎样一天天建成的。你看见罗马时,它就已经是罗马了。当我进阿里时,正是这样的感觉。我没有经历过阿里数据架构(包括平台工具)从0到1的过程。我相…

linux镜像下载与安装

https://www.kernel.org/ 中国科技大学网站:http://centos.ustc.edu.cn/centos/ 清华大学网站:https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/ http://mirror.centos.org/centos/7/isos/ Centos7.6 安装 1、引导进入安装界面后,选择安…

linux系统镜像官方下载地址

Centos镜像 http://mirror.nsc.liu.se/centos-store/7.2.1511/isos/x86_64/ #所有镜像下载地址 https://www.centos.org/download/ 这里选择的是centos7,64位系统 选择国内的镜像即可 选择第一个镜像文件下载 Ubuntu镜像 ubuntu 后面跟LTS(Long Term Support )&#xff0…

Linux系统各发行版镜像下载

标题Linux系统各发行版镜像下载,包括CentOS、RedHat Enterprise Linux、Ubuntu、Fedora、SUSE等。 建议选择地域离您比较近的服务器。 1、搜狐 http://mirrors.sohu.com/ 例如: CentOS7.7的下载目录是http://mirrors.sohu.com/centos/7.7.1908/isos…