halcon 3.2标定相机

参考《solution_guide_iii_c_3d_vision.pdf》

3.2.2.2 Which Distortion Model to Use 选用何种畸变模型

对于面阵相机,halcon中两种畸变模型:The division model and the polynomial model(差分模型和多项式模型),前者用1个参数去描述径向畸变,后者5个参数去描述径向和切向畸变。

  • division model 优势:畸变矫正时更快,例如将世界坐标投影到图像平面中。如果标定图片较少,或者事业覆盖不全,该模型标定结果更稳定。
  • polynomial model 优势:更精确的建模两种畸变,因为对径向畸变有更高的阶。缺点:不能反向分析,矫正图片必须迭代计算,比division model更慢。
  • 通常使用division模型,但如果觉得精度不够,推荐用polynomial模型。

3.2.3.1 How to Obtain a Suitable Calibration Plate 如何获取一个合适的标定板

必须高精度,对高精度应用,必须降到1um以下!推荐通过购买halcon的分销商处购买标定板。
新的六边形标定板从halcon12开始支持,推荐给大部分的应用使用。比矩形标定板有如下优点:

  • 矩形标定板必须在视野内,六边形标定板可伸出图像边缘之外。校准图像又快又方便,同时不失鲁棒性。
  • 由于拥有较多的特征标记点,可以伸出图像边界之外,因此用较少的图像数量即可完成校准。
    注意事项:
  • 六边形标定板必须至少有一个finder图案完全可见,矩形标定板必须看到完整的校准板才能找到校准板并进行估计它的姿势。
  • 六边形排列标记的校准板的坐标系位于第一个图案中心标记的中心,而带有矩形排列标记的板位于所有标记的重心。
  • 六边形标定板的描述文件是".cpd"结尾的,矩形标定板是".descr"结尾的。
  • 两个接口create_caltab(六边形)和gen_caltab (矩形)仅仅用于测试,无法精确的打印16cm以内的六边形标定板、3cm以内的矩形标定板。

3.2.3.2 Using Your Own Calibration Object 用自定义的标定物

使用HALCON,您不局限于使用平面校准对象,如HALCON校准板。你可以使用3D校准对象,甚至可以使用任意特征点(自然地标)。唯一的要求是模型点的3D世界位置具有高精度。然后,只需将校准对象所有点(标记)的三维坐标作为参数中的元组传递set_calib_data_calib_object对象的CalibObjDescr。所有点的所有x、y和z坐标都必须以[X,Y,Z]的形式打包在元组中按顺序排列。但是,请注意,如果使用自己的校准对象,则不能使用运算符find_calib_object接口。必须自己确定模型点的二维位置以及与三维点的对应关系!如果用自己的标定物,必须通过 set_calib_data_observ_points接口,将提取的mark信息以及对应关系存储到校准模型中。
注意,halcon11以前版本用find_caltab and find_marks_and_pose这两个接口查找mark点,它们仅适用于矩形标定板,然后通过set_calib_data_observ_points设置到模型中。现在推荐用find_calib_object,更精确。

3.2.4.1 Recommendations for Acquiring Calibration Images 相机标定选择图像的建议

参考帮助文档中《Calibration》章节。

  • 标定板表面必须清洁
  • 六边形标定板至少需覆盖视野1/3,矩形标定板至少需覆盖视野1/4,当前实际占了最短边的1/2左右。
  • 六边形标定板需要至少一个特征标记在视野内,如果至少有2个特征标记可见,则可检查标定板是否镜像。矩形标定板必须全部位与视野内。
  • 标定板mark点直径,至少为20个像素。
  • 标定板亮暗像素灰度差值至少100。
  • 标定板亮部分像素灰度值要大于100.
  • 标定板不能过曝,所有像素值应该小于255。
  • 对于矩形标定板,背景比标定板还黑的话,需要进行照明。
  • 标定板图像必须有较少的噪声,必须清晰对焦。
  • 标定板必须放到视野的每一处;标定板必须绕x轴和y轴进行旋转,来保证perspective distortions清晰可见;
  • 必须tilted倾斜标定板,才能计算正确的焦距(推荐倾斜30-45°朝不同方向倾斜,如果景深有限,请尽可能陡峭的倾斜)。
  • 六边形标定板至少需要6张图,矩形标定板至少需要10-15张图。

3.2.5 Restricting the Calibration to Specific Parameters 标定参数设置

如果已知标定板内参数据,可以通过接口set_calib_data设置进去。

3.2.6 Performing the Calibration 执行相机标定

执行标定过程,使用接口calibrate_cameras (CalibDataID, Errors)。误差高达0.1像素表示校准成功(?)。

3.2.7.1 Determining the External Camera Parameters 计算相机外参

有下面三种方式来获取外参数据:
a. 从标定相机时某一张图片中获取,通过接口get_calib_data来获得;
b. 将内部摄像头参数的确定与外部摄像头的确定分开通过使用附加图像(其中校准板直接放置在测量装置上)获得的参数,应用find_calib_object提取校准标记和姿势。
c. 自行确认3D世界点与图像点之间的关系,然后调用vector_to_pose接口。
在这里插入图片描述

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

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

相关文章

电子元器件线上交易商城搭建的价值和必要性-加速度jsudo

随着科技的飞速发展,电子元器件行业正迎来前所未有的变革。为了满足市场对于电子元器件采购的便捷性、高效性和多样性的需求,电子元器件商城的开发显得尤为重要。本文将探讨电子元器件商城开发的重要性、主要功能以及它如何助力行业发展。 电子元器件商城…

更优性能与性价比,从自建 ELK 迁移到 SLS 开始

作者:荆磊 背景 ELK (Elasticsearch、Logstash、Kibana) 是当下开源领域主流的日志解决方案,在可观测场景下有比较广泛的应用。 随着数字化进程加速,机器数据日志增加,自建 ELK 在面临大规模数据、查询性能等方面有较多问题和挑…

3d动画如何连续渲染?云渲染批量渲染3d动画

在3D动画的生产过程中,从多个角度渲染同一场景既是时间消耗大户,也对设计人员的技术能力提出了高要求。好在云渲染技术的进步为这一挑战提供了高效的解决办法。通过利用云渲染服务进行批量渲染,设计师们可以大幅节约时间并提升工作效率。 3d动…

YooAsset快速入门

文章目录 YooAsset快速入门指南:YooAsset学习核心要掌握的要点主要包括以下几个方面:基于YooAsset进行游戏资源管理的应用实例 YooAsset快速入门指南: YooAsset是一款专为游戏开发设计的资产管理和分发系统,它能够帮助开发者高效…

探索顶级短视频素材库:多样化选择助力创作

在数字创作的浪潮中,寻找优质的短视频素材库是每位视频制作者的必经之路。多种短视频素材库有哪些?这里为您介绍一系列精选的素材库,它们不仅丰富多样,而且高质量,能极大地提升您的视频创作效率和质量。 1.蛙学网 蛙学…

数据结构从入门到实战——顺序表

目录 前言 一、顺序表的概念及结构 1.1 线性表 二、顺序表分类 三、动态顺序表的实现 3.1 顺序表结构的创建以及初始化 3.2 顺序表的销毁 3.3 顺序表的打印 3.4 尾插数据 ——最困难的 3.5 头插数据 3.6 尾删数据 3.7 头部删除数据 前言 在计算机科学和数据结…

TongRds docker 镜像做成与迁移(by liuhui)

TongRds docker 镜像做成与迁移 一,使用 docker commit 命令制作 TongRds docker 镜 像 1.1 拉取基础镜像 centos 并运行该镜像 拉取镜像:docker pull ubuntu 镜像列表:docker images 运行镜像:docker run -itd --name myubuntu…

Java并发--内存结构图及线程安全

内存结构图 内存-> (开辟的数组) -> (方法区,堆,栈,程序计数器,本地方法栈) 堆:几乎所有的对象实例都在这里分配内存。堆中每个对象的头信息都标属着他属于哪个类。 方法区它用于存储已被虚拟机加载的类型信息…

绿色地狱steam叫什么 绿色地狱steam怎么搜

绿色地狱steam叫什么 绿色地狱steam怎么搜 《绿色地狱》是一款以亚马逊雨林为背景的开放世界生存模拟游戏。玩家们扮演一名被困在丛林中的冒险者,玩家在游戏内需要学习采集资源、建造庇护所、狩猎和烹饪食物,同时要面对丛林中的危险和挑战,…

华为数通方向HCIP-DataCom H12-821题库(多选题:321-340)

第321题 关于OSPF的命令描述,不正确的是: A、stub区域和totally stub区域配置了no-summary参数 B、OSPFv2和OSPF v3配置接口命令的区别是OSPF V2可以使用network命令,而OSPFv3直接 C、在接口上使能stubrouter命令用来配置次路由器为stub路由器,stub路由器可以与非stub路由 …

用可视化大屏汇报,领导只说:很漂亮。要注意!可能是狗屁不通。

确保汇报的可视化大屏能够有效传达信息和数据,除了外观漂亮,还需要注意以下几点: 内容准确性:确保所展示的数据和信息准确无误,避免出现错误或误导。 重点突出:通过合适的图表、图形和动画效果&#xff0c…

Linux服务器磁盘扩容后,但是宝塔面板没有即使生效,以解决~!

前景描述:我是100G的磁盘,扩容到200G. 第一步查看服务器的当前磁盘 df -h 显示 99G,已经扩容了,但是服务器还没有更新信息。 第二步安装插件: yum install -y cloud-utils-growpart 第三步扩展分区: …