点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者:Jakob W

编译:ronghuaiyang(AI 公园)

导读

各种标定板的解释和分析。

准确标定像机对于所有的机器/计算机视觉的成功应用都是非常重要的。然而,对于标定板,有不同的模式可供选择。为了方便进行选择,本文将解释每种方法的主要好处。

标定板的选择,有CharuCo,棋盘格,不对称的圆和棋盘格。

标定板尺寸

在选择标定板时,一个重要的考虑因素是它的物理尺寸。这最终关系到最终应用的测量视场(FOV)。这是因为相机需要聚焦在特定的距离上标定。改变焦距长度会轻微地影响对焦距离,这会影响之前的标定。即使是光圈的改变通常也会对标定的有效性产生负面影响,这就是为什么要避免改动它们。

为了精确的标定,当摄像机看到标定目标填充大部分图像时,摄像机模型最好是受到约束的。通俗来说,如果使用一个小的标定板,许多相机参数的组合可以解释所观察到的图像。根据经验,当正面观察时,标定板的面积至少应该是可用像素面积的一半。

标定板类型

多年来已经引入了不同的标定板,每种标定板都有独特的属性和好处。

要选择正确的类型,首先要考虑使用哪种算法和算法实现。在OpenCV或MVTec Halcon等通用库中,标定板有一定的自由度,它们有各自的优点和局限性。

棋盘格

这是最流行、最常见的图案设计。通常通过首先对摄像机图像进行二值化并找到四边形(黑色的棋盘区域)来找到棋盘角点的候选点。过滤步骤只保留那些满足特定大小标准的四边形,并组织在一个规则的网格结构中,网格结构的尺寸与用户指定的尺寸匹配。

在对标定板进行初步检测后,可以以非常高的精度确定角点位置。这是因为角(数学上:鞍点)基本上是无限小的,因此在透视变换或镜头失真下是无偏的。

在OpenCV中,整个棋盘必须在所有图像中可见才能被检测到。这通常使得从图像的边缘获取信息变得困难。这些区域通常是很好的信息来源,因为它们适当地约束了镜头失真模型。

在检测出棋盘格后,可以进行亚像素细化,以找到具有亚像素精度的鞍点。这利用了给定角点位置周围像素的确切灰度值,并且精度比整数像素位置所允许的精度要精确得多。

你可以查看OpenCV棋盘检测器的源代码:https://github.com/opencv/opencv/blob/master/modules/calib3d/src/calibinit.cpp。关于棋盘格目标的一个重要细节是,为了保持旋转不变,行数必须是偶数,列数必须是奇数,或者相反。例如,如果两者都是偶数,则存在180度旋转的歧义。对于单台相机的校准,这不是一个问题,但如果相同的点需要由两个或更多的相机识别(对于立体校准),这种模糊性必须不存在。这就是为什么我们的标准棋盘目标都具有偶数/奇数行/列的属性。

圆形网格

圆形网格也是一种流行且非常常见的校准目标设计,它基于圆形,或者是白色背景上的白色圆形,或者是白色背景上的黑色(黑色)圆形。在图像处理术语中,圆可以被检测为图像中的“斑点”。在这些二元斑点区域上应用一些简单的条件,如面积、圆度、凸度等,可以去除候选的坏特征点。

在找到合适的候选对象后,再次利用特征的规则结构对模式进行识别和过滤。圆的确定可以非常精确,因为可以使用圆外围的所有像素,减少了图像噪声的影响。然而,与棋盘中的鞍点不同的是,在相机视角下,圆形被成像为椭圆。这种观点可以通过图像校正来解释。然而,未知的镜头畸变意味着圆不是完美的椭圆,这增加了一个小的偏置。然而,我们可以将畸变模型看作是分段线性的(服从透视变换/单应性),因此在大多数透镜中,这种误差非常小。

对称圆网格和非对称圆网格的一个重要区别是,对称圆网格具有180度的模糊性,正如“棋盘”一节中所解释的那样。因此,对于立体校正,非对称网格是必要的。否则,这两种类型的性能都不会有太大的差别。

圆形网格检测的OpenCV源代码:https://github.com/opencv/opencv/blob/master/modules/calib3d/src/circlesgrid.cpp。

CharuCo

CharuCo标定板克服了传统棋盘的一些限制。然而,它们的检测算法有点复杂。幸运的是,CharuCo检测是OpenCVs contrib库的一部分(从OpenCV 3.0.0开始),这使得集成这个高级方法非常容易。

CharuCo的主要优点是所有光检查器字段都是唯一编码和可识别的。这意味着即使是部分遮挡或非理想的相机图像也可以用于校准。例如,强烈的环形光可能会对标定目标产生不均匀的光照(半镜面反射区域),这将导致普通棋盘格检测失败。使用CharuCo,剩余的(好的)鞍点检测仍然可以使用。鞍点定位可以像棋盘一样使用亚像素检测来细化。

对于接近图像角落的观察区域,这是一个非常有用的属性。由于目标的定位使得摄像机只能看到它的一部分,所以我们可以从摄像机图像的边缘和角落收集信息。这通常会带来确定镜头失真参数时的非常好的鲁棒性。因此,我们强烈推荐使用CharuCo标定板,OpenCV 3.x是可用的。

自然,CharuCo目标可以用于立体校准。在这种情况下,需要执行一些代码来找到在每个摄像头中单独检测到的点,以及在两个摄像头中都检测到的点(交点)。

英文原文:https://calib.io/blogs/knowledge-base/calibration-patterns-explained

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近3000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

相机标定中各种标定板介绍以及优缺点分析相关推荐

  1. 【相机标定】标定板介绍以及优缺点分析

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源 | 机器视觉沙龙 导读 本文主要介绍各种常用标定板及其优缺点 ...

  2. Linux桌面环境介绍以及优缺点分析

    1. KDE 桌面系统 KDE 是 K Desktop Environment 的缩写,中文译为"K桌面环境". KDE 是基于大名鼎鼎的 Qt 的,最初于 1996 年作为开源项 ...

  3. DataX介绍以及优缺点分析

    DataX介绍以及优缺点分析 DataX介绍: DataX 是阿里开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase. ...

  4. 关于嵌入式高端ARM核心板设计风格优缺点分析(作者 gooogleman)

    //-------------------------------------------------------------------------------------------------- ...

  5. 关于嵌入式高端ARM核心板设计风格优缺点分析 作者 gooogleman

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! //-- ...

  6. lm opencv 算法_相机模型与标定(七)--LM算法在相机标定中的使用

    LM算法在相机标定的应用共有三处. (1)单目标定或双目标定中,在内参固定的情况下,计算最佳外参.OpenCV中对应的函数为findExtrinsicCameraParams2. (2)单目标定中,在 ...

  7. 【LCC系列】自动驾驶中激光雷达和相机的自动在线标定(2013)

    文章目录 1 动机 2 方法 2.1 提取图像边缘 2.2 提取点云深度不连续 2.3 目标函数 2.4 检测标定误差 2.5 自动在线标定 3 实验 3.1 在线检测标定误差 3.2 在线纠正标定误 ...

  8. 机器视觉标定以及标定板在机器视觉系统标定中的作用

    从目前的市场情况来看,机器视觉这项自动化成像技术已经得到了广泛的应用,其在工业生产.智能交通.安防监控等领域的应用优势显然得到了广大用户的认可.机器视觉系统包括图像采集和图像处理两大环节,由光源.镜头 ...

  9. 相机标定中部分疑问和注意事项

    相机标定基本知识 对于针孔摄像机模型,一幅视图是通过透视变换将三维空间中的点投影到图像平面.投影公式如下: 或者 这里(X, Y, Z)是一个点的世界坐标,(u, v)是点投影在图像平面的坐标,以像素 ...

最新文章

  1. 吴恩达:告别大数据,AI需要高质量小数据!
  2. IOS面试_1.浅析内存管理
  3. 深入理解lombok
  4. 网络与IO知识扫盲(七):仿照Netty工作架构图,手写多路复用模型
  5. Go语言与数据库开发:01-11
  6. stm32l4 外部中断按键会卡死_stm32f103c8怎么实现外部中断按键点灯,按一下就亮,再按一下就灭,求大神帮忙...
  7. 【kafka】Kafka中Topic级别配置
  8. eclipse项目如何变成web项目_Eclipse中将Java项目转换成Web项目的方法
  9. mysql 总分区表限制_MySQL分区表的局限和限制详解
  10. 数学建模系列--模糊综合评价
  11. xml转matlab目标检测,将Cityscape转换为PASACAL VOC格式的目标检测数据集
  12. 土豆的31种做法,别告诉我你只知道酸辣土豆丝----小V美味馆
  13. NatApp免费内网穿透
  14. windows自定义屏幕大小,分辨率大小,自定义电脑屏幕分辨率
  15. 【路径优化】基于帝企鹅算法求解TSP问题(Matlab代码实现)
  16. 区块链学习(6)-EVM有6种方式可以存储数据
  17. PS长图快速切片_如何解决PS选择主体崩溃问题
  18. Port 1-1023
  19. FLOOR PLAN学习
  20. python中var是什么变量_python变量

热门文章

  1. 《物联网 - 机智云开发笔记》第3章 机智云设备移植RT-Thread
  2. win10计算机管理的作用,Win10新功能的详细介绍
  3. Revit 2016 笔记01------------2021-10-15
  4. STM32开发板学习——USB、串口、JTAG、SWD下载的区别
  5. HR面试“六西格玛黑带”时都会聊些什么问题?
  6. 人工智能初学者指南:计算机视觉和图像识别
  7. 毫秒转换成js年月日时分秒,标准时间转换js
  8. 为什么方差公式要用平方而不用绝对值_为什么方差公式要用数据与平均数之差的平方来衡量而不是用绝对值?...
  9. CentOS7 CMatrix
  10. 数据仓库概念和项目架构