在多位姿上观察标定物

标定的主要输入数据是所谓的观察。为此,标定物在不同的位姿被放置。对于每一个位姿,相机获取一张图像。在这张图像上,标定物的标志点被提取,还有他们的(像素)坐标,连同相机的索引,标定物,标定物的位姿,包含响应标志点的索引,都被存储在标定数据模型中。

如果你使用标准的HALCON标定板,你可以用算子find_calib_object去提取坐标,其将自动存储获得的信息到标定数据模型,包括标志点的坐标和标志点对应的列表。

如果你用的是自己的标定物,你必须提取其标志点和确定其对应关系,然后用set_calib_data_observ_points将信息存储在标定数据模型中。

获取标定图像的规则

如果你想获得准确的结果,请准照下面的规则:

  • 用一个干净的标定板
  • 用多个图像覆盖整个视野,例如在视野所有区域至少放置标定一次
  • 变换标定板的方向,包含标定板绕着x轴和y轴旋转,这样标定图案的透视畸变是清晰可见的。没有一些倾斜的标定板,焦距是不能够被合理的计算出来(接近45度的倾斜角度是被推荐的)
  • 对于六角形排列的标定板,至少使用6张图像,矩形排列的标定板10到15张
  • 对于矩形排列的标定板,用一个背景比标定板更暗的光照
  • 标定把亮的部分的灰度值至少为100
  • 标定板的亮暗对比应该超过100
  • 用一个使标定板均匀的光照
  • 图像不能过曝(图像亮的部分应该严格低于255)
  • 圆的直径应该至少20个像素
  • 圆的直径的像素至少20个像素
  • 对于标定板大小的选取,六角形排列的标定板应该覆盖整个图像,对于矩形排列的标定板,至少覆盖整个图像的1/4
  • 六角形排列的标定板,至少一个定位图像在图像中是完全可见的。如果至少两个定位图是可见的,可能去检测是否标定板是反射的。对于矩形排列的标定把,标定应该在图像中完全可见的。
  • 图像应该尽可能的包含一点噪声
  • 图像应该被严格聚焦,例如在物体之间的过度应该被清晰的界定开。

需要注意的是,一个好的标定结果仅仅是在相机视野中标定标志点均匀分布的情况下才能获得。你可以想象一下相对于视野的3D空间的一部分作为一个标定体积,如图2所示,这里展示了,当从不同角度看时,标定板的两个位姿和它们标定标志点的位置。可以看到,例如从面1看,更大的部分没有被标志点所覆盖。为了获得更标志点的均匀分布,进而得到一个好的标定结果,你必须在你其他的图像中放置标定板,进而对于整个视角,标定容积空的部分被最小化。注意的是,当有一个非常小的标定板(相比于视野而言),这就意味着比推荐的更多的标定图像数量被需要使用。

如果一张图像被用于标定过程或者如果标定板的方向在不同的标定图像不发生变化,就不可能很好的确定焦距和相机的位姿;在这种情况下,仅仅聚焦之间的比率和标定板和相机之间的距离被确定下来。然而,在标定板平面进行世界坐标的测量是可能,但是不可能去让相机参数去适应在另一个面上进行测量,例如标定板被放置的面。

图2: 标定容积的查看:(左)具有两个标定位姿的标定容积和(右)当不同角度看时,标定标志点相对应的分布。对于一个好的标定结果,没有标定标志点的区域(尤其从面1视角则更大)必须通过更多标定板位姿的谨慎选择达到最小化。

结果世界坐标的精度,除了在图像中的测量精度外,非常依赖被用来标定进程中所用的图像的数量。越多图像(具有更大不同的标定板位姿)被使用,更精确的结果将被获取。

提取HALCON标定板上的标志点

算子find_calib_object寻找标定板,决定了标定标志点的图像坐标,并具有很高的精度,最后将结果存储在标定数据模型中。

需要注意的是find_caltab和find_marks_and_pose仅仅被用于矩形排列的标定板。还有,它们需要复杂的参数调整。相反的是,可以用于所有标准的HALCON标定板,自动选择合适的参数,因此更容易去使用。

限制标定到特定的参数

如果某相机参数已知了,你可以用算子set_calib_data从标定中排除它们,类似的,你可以限制标定到某些参数。

执行标定

在准备了标定数据模型以后,可以通过调用calibrate_cameras来执行标定,用标定数据模型作为输入:

作为一个直接结果是,仅仅是标定错误被返回。你可以用算子get_calib_data来更进一步的去分析标定结果的质量。

主要的标定结果,例如相机的内参,被存储在标定数据模型中。

halcon 旋转_HALCON高级篇:3D相机标定(2/3)相关推荐

  1. halcon 旋转_HALCON高级篇:3D相机标定(3/3)

    访问标定结果 算子calibrate_cameras的主要结果由相机内参和每一张图像标定板的位姿组成.算子将它们存储在标定数据模型中,可以用算子get_calib_data来访问它们. 相机外参并不能 ...

  2. halcon 旋转_HALCON高级篇:3D相机标定

    点击上方"新机器视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自:微信公众号AI图像 创建标定数据模型 你可以用算子creat ...

  3. halcon 旋转_HALCON高级篇:面阵相机模型及其坐标转换

    面扫相机 图1: 针孔相机的透视映射 图1展示了一个针孔相机产生的透视映射.世界点P通过镜头的光中心映射到图像面上的P',其距离光中心的距离为f(焦距).实际上,术语"焦距"不是很 ...

  4. halcon 定位_HALCON高级篇:单个相机的尺寸测量

    点击上方"新机器视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自:AI图像 用单个相机在指定平面上的尺寸测量 在HALCON中 ...

  5. halcon相机标定助手_Halcon 学习笔记---单相机标定(2)

    一.单项机标定原因 降低畸变(相差) 测量 二.相机标定求出什么 该方程是求取世界坐标系与像素坐标系之间转换矩阵,本质就是求出相机的内外参数.其中dx和dy为每个像素在图像坐标系(UVO)沿U和V方向 ...

  6. 机器视觉篇之相机标定

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 在图像测量过程以及机器视觉应用中,为确定空间 ...

  7. halcon相机标定助手_HALCON高级篇:单个相机的尺寸测量

    用单个相机在指定平面上的尺寸测量 在HALCON中很容易从图像中获得在世界坐标中的非变形测量.一般情况下,如果相同的物体在同一时刻,在不同的空间位置下,用相机拍摄两个或更多的图像,才能完成这样的测量任 ...

  8. 月薪30k大佬给你们讲讲工业3D相机标定

    1.由深度相机获取到深度图 见 深度图 图像(此处深度图不可用,只用于展示.如果需要要原图可以私聊我.发给你们) 2.获取相机的标定参数 这里指的是深度图的高度值与实际高度值的转换关系. 这里给出示例 ...

  9. halcon 旋转_Halcon视觉软件应该如何系统学习?

     End  声明:部分内容来源于网络,仅供读者学习.交流之目的.文章版权归原作者所有.如有不妥,请联系删除.

最新文章

  1. 物理光学8 多波束干涉
  2. Leetcode-第 283 场周赛
  3. IBatis.Net学习笔记五--常用的查询方式
  4. java 时间换算_【时间工具】整理下java时间换算专题
  5. 计算机研究生进中国银行,听说中行笔试把研究生学姐都难哭了…
  6. 关于笔算递归的通用算法——迭代
  7. caffe测试多张图片--需改代码
  8. pic单片机c语言 程序,PIC单片机C语言编程教程(1)
  9. FFmpeg进阶:给视频添加文字水印
  10. jsp获取主机地址和主机名
  11. 添加小度在家显示无法连接服务器,小度在家突然连不上网了
  12. 网络安全防护-----本地组策略的使用
  13. 2、测试面试题总结整理
  14. NT151应用案例:西门子PLC S7-1200与派克ACR9000的通信(Part 4)
  15. vue echarts绘制省份地图并添加自定义标注
  16. 炼数成金hadoop视频干货06-10
  17. 如何在阿里云服务器上搭建mysql服务(最新版)
  18. 校长娱乐-我叫MT高级技能出处
  19. ASP.NET发送手机短信验证码
  20. [阶段4 企业开发进阶] 1. 设计模式

热门文章

  1. 对学校的希望和寄语_家长对学校的寄语怎么写
  2. python代码阅读技巧_30个Python程序员需要知道的编程技巧,可以让你的工作事半功倍!...
  3. 底部菜单_css实现移动端底部导航菜单隆起效果
  4. Altium Designer 资料整理
  5. linux下SVN配置笔记(转)
  6. Android4.0 修改系统屏幕分辨率方法
  7. “天才”辈出的全国青少年科技大赛
  8. python基础学习11----函数
  9. fragment中的replace和hide与shou方法的区别
  10. D1net阅闻:IBM宣布推出全新存储技术 存储速度快70倍