相机内参标定理论篇------张正友标定法

一、为什么做相机标定?

标定是为了得到相机坐标系下的点和图像像素点的映射关系,为摄影几何、计算机视觉等应用做准备。

二、为什么需要张正友标定法?

张正友标定法使手工标定相机成为可能,使相机标定不再需要精密的设备帮助。但内参标定的精度却需要依赖采集数据的质量。精度不如专业设备的结果,不过在日常科研等对精度要求不是非常高的领域足够满足。

三、为什么张正友使手工标定相机成为可能?

我们先思考一个问题,以针孔模型为例相机标定需要那些参数:

内参:fx fy cx cy k1 k2 p1 p2;

外参:R t。

假如我们用n张图像来标定相机的话,我们需要求解8 +(3 + 3)x n = 6n + 8个参数。求解这么多参数需要使用最优化。构建目标函数:

\sum_{1}^{n}\sum_{1}^{m}\left \| m_{ij} - m\hat{}(A, k_{1}, k_{2}, p_{1}, p_{2},R_{i}, t_{i}, M_{j})\right \|^{2}

其中m_{ij}为图像上角点,m\hat{}为投影点。

我们知道优化问题最害怕的就是遇到局部最优,导致优化后的结果和真实值相差较大。为了解决局部最优,最好的方法是提供较为准确的初值这就是张正友标定法最重要的作用。通过正交矩阵性质计算出不考虑畸变的相机内参和外参初值,然后利用最优化的方法,便可以得到精确的内参。

四、如何推导?

已知相机成像过程:世界坐标系->相机坐标系->相机坐标系->像素坐标系。可以用下面公式描述:

其中M为世界坐标系点,R t为世界坐标系到相机坐标系的旋转矩阵和平移量,A为相机内参矩阵,s为比例系数。

将具体数值代入公式可以获得:

其中r为R矩阵的列向量。已知世界坐标系在实际中选取为标定板坐标系,因此世界坐标系下点的Z值为零,因此可以进一步化简。

这里可以引入单应矩阵H:

用列向量表示H得:

由旋转矩阵是正交矩阵可以得到两条性质:列向量两两正交,且列向量是单位向量,因此可以得到:

因此可以用B表示A^{-T}A^{-1}:

将B代入上式并展开得到:

其中:

最后得到:

到现在,需要先求解H矩阵,然后利用H矩阵求解B矩阵。已知H矩阵有八个未知数(约去比例系数,使矩阵最后一项为1),利用下面公式,一对对应点可以提供两个约束,因此需要四个点可以求出单应矩阵H;

\begin{bmatrix} u\\ v\\ 1 \end{bmatrix} = H\begin{bmatrix} X\\ Y\\ 1 \end{bmatrix}

有了H矩阵值后可以得到V_{ij}值,已知B是对称矩阵因此有六个未知数,每个单应矩阵H可以提供两个约束,所以求解B最少需要三个不同的单应矩阵,也就是三个不同视角的标定图像。

求出B后便可以求解内参矩阵A,再得到A后利用下面公司便可以求出外参矩阵R和t:

至此便得到了相机内参的初值和不同标定图像外参的初值,然后再利用上面提到的目标函数进行最优化得到最后标定的内参。

总结:

1.张正友标定法最重要的地方是计算出了相机内参和外参的数值解,然后作为初始值代入的优化函数,解决了局部最优化的问题,是手工标定相机内参成为可能。

2.由于相机标定数据是手工采集,因此相机内参标定的精度取决于数据质量。涉及标定板选取和采集图像的注意事项,后续文章会介绍如何采集图像。

3.由于相机内外参在投影过程具有耦合关系,所以在优化时外参结果不准确也会影响内参结果,导致重投影误差很小但是得到的相机内参误差较大。

4.在需要精确内参标定结果时推荐使用相机厂商标定结果,在专业相机内参标定时,利用机械臂抓住相机在特定位置进行采图。相机外参有非常准确的初值,在优化时可以得到非常高的内参精度。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

婚庆婚礼策划服务网站建设的效果如何

品牌效应越来越重要,婚庆行业在多年的发展下,部分区域内也跑出了头部品牌,连锁门店也开了很多家,无论新品牌还是老品牌在新的区域开店总归少不了线上线下的宣传,虽然几乎每个人都会接触婚庆服务,但因为市场…

编译原理--词法分析C++

一、实验项目要求 1.实验目的 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有…

华为交换机Telnet原理与配置

Telnet远程连接到每一台设备上,对这些网络设备进行集中的管理和维护。 Telnet应用场景 Telnet可以通过终端对本地和远程的网络设备进行集中管理。Telnet提供了一个交互式操作界面,允许终端远程登录到任何可以充当Telnet服务器的设备。Telnet用户可以像通…

指针与数组

(1)在C语言中,数组的指针是指数组在内存中的起始地址,数组元素的地址是指指数组元素在内存中的起始地址 (2)一维数组的数组名为一维数组的指针(其实地址) 设指针变量px的地址值等于…

ros2+gazebo+urdf:ros2机器人使用gazebo的urdf文件中的<gazebo>部分官网资料

原文链接SDFormat extensions to URDF (the gazebo tag) — Documentation 注意了ros2的gazebo部分已经跟ros1的gazebo部分不一样了: Toggle navigation SpecificationAPIDocumentationDownload Back Edit Version: 1.6 Table of C…

HarmonyOS的功能及场景应用

一、基本介绍 鸿蒙HarmonyOS主要应用的设备包括智慧屏、平板、手表、智能音箱、IoT设备等。具体来说,鸿蒙系统是一款面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备…

Chainlink 开发者故事:Krypton 从构思到产品的 Chainlink BUILD之旅

识别问题,构思解决方案,建立它,推出它,然后扩展它。这就是科技初创企业的操作手册。 现在,前Chainlink黑客马拉松获奖者,当前的Chainlink BUILD成员Krypton已经进行到了第四步:推出。Krypton团…

基于Flask、MySQL和Echarts的*市CPI和物价水平数据可视化分析

基于Flask、MySQL和Echarts的*市CPI和物价水平数据可视化分析 引言: 在当前社会经济背景下,CPI(居民消费价格指数)和物价水平的波动对市场和居民生活产生直接影响。本文将介绍一款基于Flask、MySQL和Echarts的数据可视化系统&…

调试备忘录-RS485 MODBUS RTU协议简述

目录--点击可快速直达 目录 写在前面先简单说下什么是MODBUS?参考文章 写在前面 最近在做和物联网有关的小项目,有一个传感器通讯用到了RS485 MODBUS RTU协议,所以就写个随笔记录下。 先简单说下什么是MODBUS? Modbus协议是应用于电子控…

FineBI6.0 忘记管理员密码和用户解决方法

文章目录 问题描述解决思路解决步骤需要注意 问题描述 当我们打开FineBi服务的时候,突然忘记密码,这个时候咱们无需慌张这个时候就体现了记录密码的重要性了,但是不要紧,还是可以用方法找回的。 解决思路 通过更改配置文件db.…

华为HCIA认证H12-811题库新增

801、[单选题]178/832、在系统视图下键入什么命令可以切换到用户视图? A quit B souter C system-view D user-view 试题答案:A 试题解析:在系统视图下键入quit命令退出到用户视图。因此答案选A。 802、[单选题]“网络管理员在三层交换机上创建了V…

鲜花植物企业网站建设的效果如何

从整体来看,似乎鲜花植物只会在线下花市或花店里购买或见到,但其实对鲜花植物批发商或品牌商来说,线上渠道同样重要,从本地来说,流量少且获取难,各家品牌/门店竞争激烈,并且无法全面展示自己的品…