基于消失点的相机自标定

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

基于消失点的相机自标定

附赠最强自动驾驶学习资料:直达链接

相机是通过透视投影变换来将3D场景转换为2D图像。在射影变换中,平行线相交于一点称之为消失点。本文详细介绍了两种利用消失点特性的标定方法。目的是为根据实际应用和初始条件选择合适的标定方法提供一个实用的工具。这里详细介绍了两种不同消失点的方法进行相机标定,并进行了比较。首先,利用合成数据对这两个模型进行了分析。最后,对每种方法进行了实际标定结果进行测试,结果证明了标定的质量。

主要内容

当我们在使用相机实现三维重建或者虚拟现实等交互场景时,需要对相机进行校准或者称之为标定。常见的比如三维重建、目标检测、场景建图和物体重建或自定位等任务都需要对场景进行标定。仅仅捕捉图像是不够的。显式相机标定是指标定过程以一组物理参数结束,获得一个详细的模型,尽可能接近真实系统的完整描述。Salvi等人发表了一份相机校准方法与精度评估的对比评论。这项调查的一个显著优点是,它标准化了符号,便于比较著名的标定方法,如Tsai、Hall或Faugeras。后来Zhang、Chen[5]或Heikkila对所提出的模型进行了改进。最常见的相机模型是针孔相机,它通过从三维欧几里德空间到图像平面的投影变换来生成图像。假设一个理想的投影中,点的共线保持不变。因此,场景中的线作为线投影到图像平面上。射影空间的一个有趣的特性是平行线相交于图像上的一个点,这与我们熟悉的欧几里德空间中平行线从不相交的情况不同。所以我们我们可以说在射影空间下,平行线的交点位于无穷远处,它在图像像平面上的投影称为消失点(VP)。

在本文中,我们将使用简短的符号VPs来表示属于正交方向的消失点。人们提出了许多方法来精确检测VPs。VPs的特性直接与焦距和相机相对于世界坐标系的旋转有关。Caprile和Beardsley是最早使用VPs估计相机内部参数的公司之一。后来,Hartley和Zisserman、Cipolla等人或He使用VPs来计算相机参数。两个类似的工作提出了一种利用从包含两个vp的多幅图像中获得的calibration sphere来寻找本征参数的方法。作者解释了用于提取校准矩阵的绝对二次曲线图像与calibration sphere之间的关系。

这里我们知道射影变换由齐次坐标的非奇异线性变换组成:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

单应性矩阵P3×4,又称投影矩阵,可分解为相机内参矩阵与世界坐标系到相机机坐标系的变换矩阵的乘积:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

针孔相机的通用模型考虑了两个像轴之间的倾斜系数,用γ表示,以及纵横比,或者比例因子,用αu和αv表示。因此,摄像机矩阵K的形式如下:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

然而,通常采用的简化方法是将倾斜度设为零(γ=0),比例因子等于1,即αu=αv=1。构成旋转和平移矩阵的六个外部参数是对应于每个正交轴的三个旋转和三个平移。当内外参数确定后,对摄像机进行标定。

这里提出两种利用消失点特性的相机标定方法。Guillou等人提出的第一种方法只使用两个消失点。第二种方法由Cipolla等人提出,它使用三个消失点来确定摄像机模型的七个参数。两种方法产生的模型最初用于建筑物场景模型。(因为建筑物能够方便的提取出三个轴方向的消失点)

用两个消失点标定相机

以两个坐标系为中心。将摄像机投影中心置于Oc处,图像的中心用Oi表示,Oc为在像面上的正交投影。设两个消失点V1和V2为世界坐标系的两个轴xw和yw的消失点,如图1所示。消失点在图像平面上的坐标是V1=(v1i,v1j)和V2=(v2i,v2j)。Oi在直线(V1V2)上的投影用Vi表示,主点位于光轴与像面相交处。其位置对于校准过程中的进一步计算至关重要。假设主点位于图像中心,纵横比等于1,即αu=αv=f,则只需使用两个消失点,就可以通过几何关系获得相机的内参和外参(这里有一个强制的假设主点位于图像的中心)

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

内参计算

图像中心被认为与主点重合。因此,它的坐标(u0,v0)立即获得。考虑Oc和Oi是沿光轴线的,可以计算焦距f,如上图所示,得到:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

这里,OiVi是从图像中心到地平线的距离,由两个消失点计算可得

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

外参计算

世界坐标系和摄像机坐标系之间的旋转用矩阵R表示,考虑到两个消失点V1和V2在世界参考系的两个正交轴的方向上,以Ow为中心,所有平行线在一个消失点相交,我们可以建立一个矢量关系

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

与世界系统具有相同的方向。因此,新坐标系和相机坐标系之间的旋转与世界坐标系和相机坐标系之间的旋转相同。向量X′c,Yc′,Z′c为:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

最终的旋转矩阵R可得:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

相机校准的最后一步是计算平移向量t。假设我们已知场景中已知长度的一小段,其两个端点中的第一个位于世界原点。在不失概括性的情况下,世界的中心可以在场景中的任何一点上选择。线段由世界点P1=[0,0,0]T和P2=[xp2,yp2,zp2]T确定,如下图所示。

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

由于旋转矩阵R已知,我们可以将线段与其在相机坐标系中的图像对齐:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

现实世界的线段由相机通过投影变换成像,产生两个图像点pi1px和pi2px,以像素表示。在针孔模型中,可以通过不做像素变换来计算图像中任何点的公制坐标,则第三个坐标是焦距:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

现在可以在图像平面上进行线段平移,方法是将其第一个点设置在其图像PI1m上并计算第二个点的位置。因此,平移后的线段由点P′1和P′2表示:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

由此得到的△p1′p2与图中的两个三角形p1′Q平行。利用相似三角形的性质,我们可以得到:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

因此,从相机中心到世界中心的距离D可以计算为:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

那么平移矩阵可得

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

用三个消失点标定相机

该方法使用了从场景中正交方向确定的三个vp。假设图像中的三个消失点可以由已知的图像确定,例如两个正交的方格图案。本文不讨论非结构化场景中的VPs检测方法,因为这一主题超出了本文的主题。

内参计算

在当前的方法中,我们认为主点位于图像的中心,倾斜度为零(γ=0),比例因子等于1,即αu=αv=f。因此,相机矩阵具有简化形式:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

当图像大小已知时,直接确定主点的位置。唯一需要计算的固定参数是焦距。通过以下单应性,将三个相互正交方向对应的消失点投影到图像平面上:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

这三个消失点可以用比例来表示为:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

考虑到投影矩阵的分解,如等式(2)所示,可得:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

考虑到无穷远处齐次点与平移向量相乘的影响,我们得到:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

使用相机矩阵K,旋转矩阵R可以写成

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

利用旋转矩阵的正交性,并将其应用于前两列,我们得到

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

那么焦距可以计算如下

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

外参计算

外部参数是旋转矩阵R和平移向量t的一部分。如果确定了尺度因子λi,则可以计算方程中给出的旋转矩阵。为了计算它们,可以通过分离比例因子λi并使用无穷远处的齐次点与平移向量相乘来重新排列方程:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

将两边的方程乘以(KR)T,并考虑旋转矩阵的正交性约束,得到:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

这里定义Q矩阵为

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

包含尺度因子λi的向量可以通过重新排列方程(20)和(21)来分离得到:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

尺度因子可以通过方程组(22)上的奇异值分解来计算,并且可以确定旋转矩阵。注意,如果尺度因子已知,则确定方程(20)的左侧,并且可以通过在等式(21)中计算其值来直接计算固有参数。

当从场景中得到相互正交的方向的三个消失点时,可以使用另一种方法计算主点(u0,v0)的坐标,方法是找到由消失点形成的三角形的正交中心。平移向量t是从摄像机原点指向世界原点的向量,由投影矩阵的最后一列给出。世界坐标系的投影是从等式(1)中获得的,设定随机选择的原点的值Xi=0,Yi=0,Zi=0。在没有场景附加信息的情况下,从单个视图获得的平移将达到比例,其中λi具有任意值。如果有附加信息,如线段的长度或场景中点的坐标,则可以精确地提取平移矢量。设Ri为旋转矩阵的第i行,并且PWI=(X,Y,Zi,1)T是场景的点,投影到图像平面上

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

然后,得到以下方程组:

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

变换后得到

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

重新书写如下

基于消失点的相机自标定,自动驾驶,相机标定,灭点标定,VP,IPM,透视变换,相机自标定

平移向量的分量可以通过叠加多对图像和场景点的方程(26)来计算,并使用奇异值分解来求解得到。寻找三个消失点需要至少六个点,放置在场景中三个相互正交的轴上,这些点也可以用于计算平移向量。

实验结果

为了研究所实现方法对噪声的鲁棒性,我们进行了一系列实验。在合成环境中工作的优点是可以获得绝对的地面真实值。在真实场景中,噪声通常存在于图像层面,因此,高斯噪声逐渐被加入到图像中,并利用受影响的图像对相机进行标定。在知道VPs的位置后,可以使用前面介绍的标定方法来估计相机模型。这一步是为了增加高斯噪声水平而反复进行的。为了获得尽可能接近每个方法的典型行为的结果,已经进行了50次迭代。通过计算图像、内参数和外参数三种输出的误差,测量了噪声对标定模型的影响。图像误差计算为参考点和重新投影点之间的距离。比较了摄像机的内参数αu和αv以及外部参数,即摄像机与世界参考系之间的旋转和平移。文章来源地址https://www.toymoban.com/news/detail-841392.html

附赠最强自动驾驶学习资料:直达链接

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

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

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

相关文章

  • 自动驾驶感知传感器标定安装说明

    1. 概述 本标定程序为整合现开发的高速车所有标定模块,可实现相机内参标定和激光、相机、前向毫米波 至车辆后轴中心标定,标定参数串联传递并提供可视化工具验证各个模块标定精度。整体标定流程如下,标定顺序为下图前标0--1--2--3,相同编号标定顺序没有强制要求,

    2024年02月11日
    浏览(51)
  • 自动驾驶感知——激光雷达基本概念|激光雷达点云|激光雷达的标定

    激光探测及测距系统(Light Detection and Ranging,LiDAR) 激光雷达是一种通过发射激光束探测目标的位置、速度等特征量 的雷达系统 激光波段位于0.5μm-10μm,以光电探测器为接收器件,以光学望远镜为天线。 特点 • 角分辨率、距离分辨率高 • 抗干扰能力强 • 三维坐标、反射率

    2024年02月02日
    浏览(43)
  • 深入研究矫正单应性矩阵用于立体相机在线自标定

    文章:Dive Deeper into Rectifying Homography for Stereo Camera Online Self-Calibration 作者:Hongbo Zhao, Yikang Zhang, Qijun Chen,, and Rui Fan 编辑:点云PCL 欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。 公众号致力于点云处理,SLAM,三维视觉,高精地

    2024年01月17日
    浏览(55)
  • 【双目相机】基于matlab的参数标定2-使用matlab标定

    使用双目相机拍照并分割图片: 【双目相机】基于matlab的参数标定1-使用双目相机拍照 照片拍摄好后,进入matlab标定工具箱,如下图所示。可以使用matlab2020a版本。 进入工具箱以后,选择Add Images。 选择左右相机照片的路径,Size of checkerboard square为棋盘中每一个方格的长度,

    2024年02月15日
    浏览(41)
  • 基于Matlab的双目相机标定

    第一步,打开matlab 输入stereoCameraCalibrator ,进入工具箱  第二步:点击add images 第三步:添加图片路径,并且修改尺寸(根据格子边长) 工具箱会弹窗告诉你一共识别到多少组照片,多少组可以用,多少组被工具箱拒绝了。 我这里一共20张图片,都可以  第四步:点击 运行完

    2024年02月04日
    浏览(44)
  • 基于opencv的相机标定C++代码

    事先需要把标定图片放在images目录下:  calibdata.txt的内容是标定图片的路径+图片文件名称: 希望对大家有帮助!!!(目前我使用的VS是2019版本,opencv4_1_2)。 拍摄图像示例  标定结果保存在一个txt文件中:     输入:灰度图像image_gray;角点个数大小corner_size,如Size(9,6

    2024年02月05日
    浏览(36)
  • 基于OpenCV的单目相机标定与三维定位

           相机是产生图像数据的硬件,广泛应用于消费电子、汽车、安防等领域。围绕着相机衍生出一系列的研究与应用领域,包括传统的图像处理和基于深度学习的智能应用等。目前大火的自动驾驶中相机也是重要的硬件组成,如环视用鱼眼相机,adas用周视相机。    

    2024年02月09日
    浏览(37)
  • 8. 基于消影点进行相机内参(主点)的标定

    可以参考我的另一篇博客ocam模型。 这里简单提一下ocam模型: 这个模型将中心折反射相机和鱼眼相机统一在一个通用模型下,也称为泰勒模型。它由Scaramuzza等人在2006年开发,其优点是折反射相机和屈光相机都可以用同一个模型来描述,即一个泰勒多项式。 公式: 从上面一

    2024年02月07日
    浏览(45)
  • 自动驾驶与辅助驾驶系统中相机与毫米波雷达的感知:概念,数据集和指标

    文章:Camera-Radar Perception for Autonomous Vehicles and ADAS: Concepts, Datasets and Metrics 作者:Felipe Manfio Barbosa, Fernando Santos Oso´rio 编辑:点云PCL 来源:arXiv 2023 欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。未经博主同意请勿擅自转载。

    2024年02月09日
    浏览(43)
  • 鱼眼相机成像模型以及基于OpenCV标定鱼眼镜头(C++)

    鱼眼镜头一般是由十几个不同的透镜组合而成的,在成像的过程中,入射光线经过不同程度的折射,投影到尺寸有限的成像平面上,使得鱼眼镜头与普通镜头相比起来拥有了更大的视野范围。下图表示出了鱼眼相机的一般组成结构。最前面的两个镜头发生折射,使入射角减小

    2024年02月09日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包