相机标定基础

相机标定基础一.什么是摄像机标定从二维图像中恢复物体的三维信息,必须要知道空间坐标系中的物体点同它在图像平面上像点之间的对应关系,而这个对应关系是由摄像机的成像几何模型所决定的,这些几何模型参数就是摄像机参数。在大多数情况下这些参数必须通过实验才能得到,这个过程被称为摄像机标定。摄像机标定就是确定摄像机内部几何和光学特性(内部参数)以及摄像机坐标系相对于世界坐标系的三维位置和方向(外部参数)的过程。

大家好,又见面了,我是你们的朋友全栈君。

一. 什么是摄像机标定

从二维图像中恢复物体的三维信息,必须要知道空间坐标系中的物体点同它在图像平面上像点之间的对应关系,而这个对应关系是由摄像机的成像几何模型所决定的,这些几何模型参数就是摄像机参数。在大多数情况下这些参数必须通过实验才能得到,这个过程被称为摄像机标定。
摄像机标定就是确定摄像机内部几何和光学特性(内部参数)以及摄像机坐标系相对于世界坐标系的三维位置和方向(外部参数)的过程。

二. 摄像机标定理论基础

摄像机标定包括成像模型和求摄像机参数。不同的摄像机成像模型对应不同的参数集合,不同的参数集合又对应不同的求解方法。因此,应根据实际应用场合选择合适的摄像机标定方法。摄像机成像模型包括线性模型和非线性模型。
线性模型是根据小孔成像原理,建立像点和对应物体表面空间点的几何位置关系,描述的是理想情况,即像点、投影中心和空间点三者是共线关系。实际应用中,由于立体视觉系统,摄像机的物理构造产生各种畸变,使得实际像点位置会偏移理想像点位置,造成像点、投影中心和相应的空间点之间的共线关系受到破坏,所以需要建立畸变校正模型,即非线性模型。一个完整的成像模型应当包括线性模型和非线性模型。基于此,下面首先介绍摄像机线性模型。
⑴四个常用坐标系
为定量描述光学成像过程,定义四个坐标系,如图1。

这里写图片描述
这里写图片描述 是相机坐标系,

① 图像坐标系
在图像上定义直角坐标系u-v,原点O在图像平面的左上角,每一像素的坐标(u, v)分别是该像素在数组中的列数和行数,所以(u, v)是以像素为单位的图像坐标系的坐标。求图中特正点的坐标都是以此为坐标系。

② 成像平面坐标系
由于图像坐标系只表示像素位于数组中的列数和行数,并没有用物理单位表示出该像素在图像中的位置,因此需要再建立以物理单位(如毫米)表示图像坐标,我们称它为成像平面坐标系x-y。在x-y坐标系中,原点O1(即图像主点坐标)定义在摄像机光轴与图像平面的交点,x,y轴分别平行于u,v轴。若O1在图像坐标系中的像素坐标为(u0,v0),dx,dy分别为图像平面在x,y方向上单位象素间的距离,则两个坐标系间的关系可表示为:

这里写图片描述

这里写图片描述
写成齐次坐标形式为:

这里写图片描述

③ 摄像机坐标系:
摄像机坐标系这里写图片描述 是固定在摄像机上的直角坐标系,其原点Oc定义在摄像机的光心,Xc,Yc轴分别平行于成像平面坐标系的x, y轴,z 轴与光轴重合,即 z 轴垂直于摄像机的成像平面。光心到图像平面的距离作为摄像机的有效焦距 f 。

这里写图片描述
由于Oc,P和pu三点共线,由相似性得

这里写图片描述

这里写图片描述
写成齐次坐标形式:

这里写图片描述
④世界坐标系:
由于摄像机和物体可以安放在环境中的任何位置,因此还需要在环境中选择一个基准坐标系来描述摄像机的位置,并用它来描述环境中任何物体的位置,这个坐标系就叫做世界坐标系 。这是一个假想的坐标系,用作一般参考,可根据具体情况来选择。由于它的选取具有随意性,故在计算机视觉中通常以所测物体的中心三维坐标系或摄像机坐标系来定义世界坐标系的。世界坐标系与相机坐标系关系式

这里写图片描述

其中R为3*3旋转正交矩阵,t为1*3平移向量,代表了摄像机光心与世界坐标系中心点的偏离量。
将上式写成齐次坐标形式:

这里写图片描述
注意:
fu,fv,u0,v0这四个参数只与摄像机内部结构有关,fu,fv 是以像素为单位的焦距, 我们称之为摄像机内部参数。内参数矩阵不依赖场景的视图,一旦计算出,可以被重复使用(只要焦距固定)。R , t完全由摄像机和世界坐标系的相对位置决定,称之为摄像机外部参数。

由以上矩阵等式得:
这里写图片描述

三. 相机的非线性畸变

理想的透镜成像满足针孔模型,是近似的三角相似关系,但实际上一般透镜由于加工和装配误差的存在都是畸变成像,也就是说其正真的像点位置在上图点pd而非点pu。尤其是在近距、广角和高精度测量的情形下,两者位置偏差更大,因此必须对这种成像偏差进行补偿,即建立非线性模型。非线性模型中影响图像畸变的因素主要有三个:径向畸变、离心畸变和薄棱镜畸变。
如果只考虑一阶二阶径向畸变和切向畸变则有公式:

这里写图片描述
注:上式有错误,p1,p2相互调换就对了
其中k1,k2是一阶、二阶径向畸变系数,p1,p2是一阶、二阶切向畸变系数。
正因为畸变,所以相机标定就是要求出这些参数。然后对畸变图像的每一个像素点进行矫正。相关标定算法后续给出。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144097.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springcloudfeign原理面试题_微服务feign作用

    springcloudfeign原理面试题_微服务feign作用Feign原理简述启动时,程序会进行包扫描,扫描所有包下所有@FeignClient注解的类,并将这些类注入到spring的IOC容器中。当定义的Feign中的接口被调用时,通过JDK的动态代理来生成RequestTemplate。 RequestTemplate中包含请求的所有信息,如请求参数,请求URL等。 RequestTemplate声明Request,然后将Request交给cl…

    2022年9月26日
    3
  • 数据库主从复制_sqlserver主从复制

    数据库主从复制_sqlserver主从复制一、什么是主从复制?主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。二、主从复制的作用(好处,或者说为什么要做主从)重点!1、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,物理服务器增加,负荷增加。2、读写分离,使数据库能支撑更大的并发。主从只负责各自的写和读,极大程度的缓解X锁和S锁争用。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那

    2022年8月13日
    6
  • Set集合实现有序

    Set集合实现有序今天面试问到Set集合实现有序的问题,发现集合这部分知识要补一补…. 以下所有api描述来源:https://docs.oracle.com/javase/7/docs/api/实现Set接口的类如下,其中最常见的HashSet和TreeSet。InterfaceSet<E>AllKnownImplementingClasses:AbstractSet, Concurren…

    2022年5月28日
    82
  • java.util.ResourceBundle用法详解

    java.util.ResourceBundle用法详解java.util.ResourceBundle用法详解

    2022年7月13日
    15
  • 网络视频教程(共57个)全实战过程

    网络视频教程(共57个)全实战过程01ping命令的使用http://images.enet.com.cn/eschool/wmv/ping.wmv02netstat命令的使用http://images.enet.com.cn/eschool/wmv/netstat.wmv03tasklist和taskkill的使用http://images.enet.com.cn/eschool/wmv/tasklist.wmv0

    2022年6月14日
    43
  • pytest-allure_什么是思想报告

    pytest-allure_什么是思想报告前言allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。mac环境:

    2022年7月29日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号