摄像机标定03_标定过程(Camera Calibration)

2024-04-10 21:58

本文主要是介绍摄像机标定03_标定过程(Camera Calibration),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摄像机标定过程

为了进行摄像机标定,必须已知世界坐标系中足够多三维空间点的坐标,找到这些点在图像中的投影的二维图像坐标,并建立对应关系。

平面标定板的几大优势:非常易于操作;可以制作的非常精确;可以方便用在背光照明的应用上,只需要使用透明材料制作放置标志点的底盘即可。

将标定标记在世界坐标系中的坐标记为 Mi ,将标定标记中心点投影到图像坐标系的坐标记为 mi ,将摄像机参数表示为c,c包含了摄像机的内参和外参(eg.针孔摄像机模型中, c=(f,k,sx,sy,cx,cy,α,β,γ,tx,ty,tz) 。这里必须注意的是外参对应的世界坐标系是在标定板上,例如坐标原点在标定板最中心的标定标记的中心,坐标系的 x 轴和y通过使提取出的标定标记中心点坐标 mi 与轴分别于标定标记的排列行方向和列反向一致,在标定板与成像平面平行时 z 轴与光轴方向一致,然后通过投影计算得到的坐标π(Mi,c)的距离最小化来计算摄像机参数:

d(c)=i=1k||miπ(Mi,c)||2>min

式中, k=mn 是标定板上标定标记的数量,这个问题是一个非常复杂的非线性最优化问题。因此,需要为这些参数提供更好的初始值,摄像机内参的初始值可以在图像传感器以及说明中得到。摄像机外参的初始值一般很难得到。

然而,这个优化过程并不能得到所有摄像机参数,因为我们选择的摄像机模型的待解参数过多:
这里写图片描述这里写图片描述
为了解决这个上述简并性(degener-acies)问题,摄像机必须使用多幅图像进行标定,在这些图像中标定板的位置要求不同,这样才能避免上述问题发生。例如,对针孔摄像机而言标定对象不能在所有拍摄的标定对象中均互相平行。而对于远心摄像机来说,为了解决以上问题,标定板必须绕所有轴旋转。假设我们使用 l 幅图像进行标定,那么就必须求得l组外参 (α1,βl,γl,tx,l,ty,l,tz,l) 。我们将内参和 l 组外参放在摄像机参数向量c中,然后我们必须解决下面的最优化问题来标定摄像机:

d(c)=j=1li=1k||mi,jπ(Mi,c)||2>min

式中, mi,j 表示在第 j <script type="math/tex" id="MathJax-Element-166">j</script>幅标定图像中的第i个标定标记的坐标,如果在图像中标定板放置的位置和方向合适的话,就可以求得所有摄像机参数的唯一解。 为了使求得的摄像机参数准确度更高,所有图像中标定板的位置应该能覆盖图像的四个角,这主要是因为角落处的镜头畸变最大,这样就可以得到径向畸变系数k最准确的值。

这篇关于摄像机标定03_标定过程(Camera Calibration)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/892253

相关文章

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

springboot整合gateway的详细过程

《springboot整合gateway的详细过程》本文介绍了如何配置和使用SpringCloudGateway构建一个API网关,通过实例代码介绍了springboot整合gateway的过程,需要... 目录1. 添加依赖2. 配置网关路由3. 启用Eureka客户端(可选)4. 创建主应用类5. 自定

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

SpringBoot整合kaptcha验证码过程(复制粘贴即可用)

《SpringBoot整合kaptcha验证码过程(复制粘贴即可用)》本文介绍了如何在SpringBoot项目中整合Kaptcha验证码实现,通过配置和编写相应的Controller、工具类以及前端页... 目录SpringBoot整合kaptcha验证码程序目录参考有两种方式在springboot中使用k

SpringBoot整合InfluxDB的详细过程

《SpringBoot整合InfluxDB的详细过程》InfluxDB是一个开源的时间序列数据库,由Go语言编写,适用于存储和查询按时间顺序产生的数据,它具有高效的数据存储和查询机制,支持高并发写入和... 目录一、简单介绍InfluxDB是什么?1、主要特点2、应用场景二、使用步骤1、集成原生的Influ

SpringBoot实现websocket服务端及客户端的详细过程

《SpringBoot实现websocket服务端及客户端的详细过程》文章介绍了WebSocket通信过程、服务端和客户端的实现,以及可能遇到的问题及解决方案,感兴趣的朋友一起看看吧... 目录一、WebSocket通信过程二、服务端实现1.pom文件添加依赖2.启用Springboot对WebSocket

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti