结构光之单目+投影仪标定流程详解
作为一个小白,近期在使用MATLAB标定工具包对投影仪的标定中,在各大网上,苦于没有一个详细的教程,遇到好多隐藏的坑,走了许多弯路。所以,写此博客,来对标定流程进行详细阐述以及相关可能遇到的问题。
因为刚开始接触这个领域,有写的不足或欠缺的地方,还望各位大佬提出。
对投影仪、相机的标定,通常是结构光主动式深度获取领域的重要步骤。通过标定,可以获取他们的内、外参数以及畸变参数等重要数据。而标定相机在最新的MATLAB版本中,已经嵌入了相关的APP,可以通过导入图片,从而软件自动对单目、双目相机完成标定流程,省时省力。
针对单目+投影仪的标定,我们采用MATLAB的标定工具包中的cam_proj_gui这个程序来进行标定。
运行该程序,出现如下界面:
投影仪的标定基本流程就是:顺次点击完第一行的所有内容和第二行的标定投影仪方可。注意标定拍照过程中,投影仪投射的棋盘格需要和相机拍摄的实物棋盘格在同一场景中,并且尽可能保证棋盘格占据广泛视野;同时,标定图片尽可能保证有不同姿态,且大于15张为宜,以确保标定数据的准确性。
接下来将针对一些细节问题,进行详细阐述。
首先需要进行相机标定,即选中第一个框,这里的标定相机需要预先下载好camera_calib标定工具包,设置好路径。该工具包的使用网上还是比较多的,大家可以自己了解一下。
随后,需要点击Load Camera Calibration,装载标定相机参数;
当点击Set Projector’s calib.images时,出现下图:询问你是否使用标定相机时候用的图片来标定投影仪?
一般情况下,我们按回车,表示同意(此情况必须保证标定相机的图片存在且完整无误,标定过程中也没删减图片)
若选择否,则出现让你重新标定相机的过程,如图。窗口大小一般为默认就好,X,Y方向上的大小为实际棋盘格的大小尺寸。紧接着就是顺次选择相机拍摄的实际的棋盘格的四个角点进行标定相机。
当相机标定完成后,就可以点击第四个Ray plane intersection,进行对投影仪的标定。窗口大小依旧选择默认,为5*5
若出现需要标定的图片没有正常显示(即为全白的情况),可以尝试将图片转换为灰度图。
标定投影仪时,由于设置的窗口比较小,需要尽可能准确点中各个角点,以避免误差过大。标定过程中,还可以利用windows系统下,自带的放大镜进行更高倍数放大,避免点错。
若标定过程中,选定的角点出现了一些误差,不能自动识别各个角点的位置,则需要自己手动标定点框内的X、Y方向上的方格数量。我这里棋盘格X、Y方向数量设置为8。
等待所有图片都标定完时,不要按回车过快,否则会前功尽弃。这时会要求你导入投射的棋盘格的模板图片(该图片应与程序在一个文件夹中),我这里模板图片名称为calib_solo_pro4500.bmp。然后选择窗口大小,再依次点击四个角点便可。
完成上述几步,便可以点击Calibrate the projector。注意:点击这步往往并不一定会成功。它经常会出现如下图所示的病态错误。
解决办法:寻找工具包函数中所有check_cond = 1的地方将其更改为0,便可解决问题
至此,所有的标定过程暂告一段落。系统会给你自动展示fc,cc,alpha_c,kc,Pixel error以及各个参数对应的误差范围。
如果,你的误差值太大,则需要删减有些误差比较大的图片。
Analyse error便可帮助你进行误差情况分析,出现如下图片。鼠标点击误差比较大的点,在命令行窗口便可出现该点所属的图片名称。
Add/Suppress images可帮助你完成增/删图片的目的。先是0、1分别表示选择删除、增加图片操作;随后填写要增加或删除图片的名称。随之可重新进行标定操作。通过这种反复操作,便可达到降低误差的目的。
最后save便可将标定得到的相关信息保存为Cam_Proj_calib.mat文件
问题总结:
- 若出现标定投影仪时,需要标定的图片没有正常显示(即为全白的情况),可以尝试将图片转换为灰度图。
- 标定投影仪时候,可能会出现列表图片未被激活现象,建议提前寻找工具包函数中所有check_cond = 1的地方将其更改为0,便可解决问题
结构光之单目+投影仪标定流程详解相关推荐
- Halcon例程(基于多个标定图的单目相机标定)详解—— Camera_calibration_multi_image.hdev
一.前言 在我的工业相机专栏里已经将相机标定涉及到的理论部分讲解完毕,为什么要标定以及标定要求出什么参数呢,用一个Halcon 例程来帮助理解. 这个例程是比较经典的标定程序,基本将标定过程讲的比较清 ...
- 重磅直播|结构光之相移法+格雷码技术详解
- python opencv 摄像头标定_(五)单目摄像头标定与畸变矫正(C++,opencv)
本文将梳理一种单目摄像头标定和矫正的方法,在梳理的过程中,首先使用网上离线的图片数据跑通流程,然后接入自己的camera,手动采集标定图像,实时矫正相机的畸变,然后输出矫正后的图像.全文基于Openc ...
- 单目相机标定实现--张正友标定法
文章目录 一:相机坐标系,像素平面坐标系,世界坐标系,归一化坐标系介绍 1:概述 公式 二:实现 1:整体流程 4:求出每张图像的单应性矩阵并用LMA优化 5:求解理想无畸变情况下的摄像机的内参数和外 ...
- 基于OpenCV的单目相机标定与三维定位
相机是产生图像数据的硬件,广泛应用于消费电子.汽车.安防等领域.围绕着相机衍生出一系列的研究与应用领域,包括传统的图像处理和基于深度学习的智能应用等.目前大火的自动驾驶中相机也是重要的硬件组成,如环视 ...
- 一文图解单目相机标定算法
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 有一天,蟹老板找底下的员工川建国同学: 等蟹老板走后,然后转头问旁边的学霸李雷同学: 李雷同学整理了下 ...
- 单目摄像头标定与测距
单目摄像头标定与测距 一. 标定 首先要对摄像头做标定,具体的公式推导在learning opencv中有详细的解释,这里顺带提一句,这本书虽然确实老,但有些理论.算法类的东西里面还是讲的很不错的,必 ...
- 畸变的单目摄像机标定
畸变的单目摄像机标定 Deep Single Image Camera Calibration with Radial Distortion 摘要 单图像标定是从一幅图像中预测摄像机参数的问题.在处理 ...
- 机器视觉学习笔记(4)——单目摄像机标定参数说明
机器视觉学习笔记(4)--单目摄像机标定参数说明 标签: 机器视觉 1.针孔摄像机模型 在介绍摄像机标定参数之前,需要先简单说一下针孔摄像机的原理.投影平面到小孔的距离为焦距f,物体到小孔的距离为Z, ...
最新文章
- 环形队列PHP,环形队列 - Go语言中文网 - Golang中文社区
- 陕西中小企业促进局 e-mail_重点注意2020陕西工程师职称评审破格指南
- 百度超级链XChain(1)系统架构
- [BUUCTF-pwn]——mrctf2020_easyoverflow
- iosetup mysql_InnoDB: Error: io_setup() failed with EAGAIN after 5 attempt
- 编写高质量可维护的代码:优雅命名
- Linux中的 硬链接ln和软连接ln -s
- ubuntu下创建软件图标和直接点文件打开
- linux中运行ifconfig出现错误,不能sudo apt install net-tools,Linux不能联网
- 存储成本降低80%,“大智慧”的选择
- Maven环境搭建和介绍
- 洛谷 p1434 滑雪【记忆化搜索】
- Java之美[从菜鸟到高手演变]之设计模式四
- 《成语接龙》之成语表
- 初探数据湖(Data Lake),到底有什么用?让我们来一窥究竟...
- 导出的CSV数据中含有身份证并在Excel正确显示方法
- 异常测试之Socket网络异常
- 2022年财富世界500强研究报告
- 网络工程师发展及待遇--学习
- vue项目实现大屏展示 自适应问题