halcon 3.2标定相机

news2024/12/22 19:17:53

参考《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.coloradmin.cn/o/1597400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MLOps

参考: 什么是MLOps?与DevOps有何异同?有什么价值?https://baijiahao.baidu.com/s?id1765071998288593530&wfrspider&forpcMLOps简介_AI开发平台ModelArts_WorkflowMLOps(Machine Learning Operation)是机器学习&#xf…

kafka(六)——存储策略

存储机制 kafka通过topic作为主题缓存数据,一个topic主题可以包括多个partition,每个partition是一个有序的队列,同一个topic的不同partiton可以分配在不同的broker(kafka服务器)。 关系图 partition分布图 名称为t…

Unity 扩展自定义编辑器窗口

在Assets文件夹路径下任意位置创建Editor文件夹,将扩展编辑器的代码放在Editor文件夹下 生成编辑器窗口 代码中首先引用命名空间 using UnityEditor; 然后将创建的类继承自EditorWindow public class MenuEditor : EditorWindow 然后通过扩展编辑器菜单功能调用…

AndroidStudio 导出aar包,并使用

打包 1、确认当前选项是否勾选,如未勾选请先勾选。 2、勾选完成后重启Android Studio。 3、重启完成后,选中要打包的module 4、打包完成 使用 1.在项目中新建libs,放入aar文件。 2.修改配置 添加如下代码 flatDir {dirs("libs")}3.修改app…

【BEVHeight论文阅读】自动驾驶车路协同车端感知算法

论文名称:BEVHeight: A Robust Framework for Vision-based Roadside 3D Object Detection 论文地址:https://arxiv.org/pdf/2303.08498.pdf 代码地址:https://github.com/ADLab-AutoDrive/BEVHeight 总结:这篇文章比较有意思的点…

单元测试四大过程

单元测试四大过程(蓝桥课学习笔记) 单元测试过程 单元测试是软件测试过程中的一个关键环节,它与集成测试、系统测试一样,分为测试策划、测试设计、测试执行和测试总结几个阶段。 单元测试过程中每个阶段需要完成的主要工作如下&…

ActiveMQ主从架构和集群架构的介绍及搭建

一、主从和集群架构的特点 1.1 主从架构的-Master/slave模式特点 读写分离,纵向扩展,所有的写操作一般在master上完成,slave只提供一个热备 1.2 集群架构-Cluster模式特点 分布式的一种存储,水平的扩展,消息的分布…

基于WOA优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1卷积神经网络(CNN)在时间序列中的应用 4.2 长短时记忆网络(LSTM)处理序列依赖关系 4.3 注意力机制(Attention) 4…

聚类能代替分类吗?

聚类和分类是两种不同的机器学习方法,它们在处理数据时有着不同的目的和应用场景。 分类:分类是一种监督学习方法,它需要已标记的训练数据集。在分类中,算法会学习如何将输入数据映射到预定义的类别中。例如,给定一组包…

ActiveMQ 07 集群配置

Active MQ 07 集群配置 官方文档 http://activemq.apache.org/clustering 主备集群 http://activemq.apache.org/masterslave.html Master Slave TypeRequirementsProsConsShared File System Master SlaveA shared file system such as a SANRun as many slaves as requ…

开源相机管理库Aravis例程学习(一)——单帧采集single-acquisition

开源相机管理库Aravis例程学习(一)——单帧采集single-acquisition 简介源码函数说明arv_camera_newarv_camera_acquisitionarv_camera_get_model_namearv_buffer_get_image_widtharv_buffer_get_image_height 简介 本文针对官方例程中的第一个例程&…

vue快速入门(二十五)本地存储与初始化使用

注释很详细&#xff0c;直接上代码 上一篇 新增内容 本地获取数据数据存储到本地 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial…

Spire.PDF for .NET【文档操作】演示:合并 PDF 文档

需要合并 PDF 的原因有很多。例如&#xff0c;合并 PDF 文件允许您打印单个文件&#xff0c;而不是为打印机排队多个文档&#xff0c;组合相关文件通过减少要搜索和组织的文件数量来简化管理和存储多个文档的过程。在本文中&#xff0c;您将学习如何使用Spire.PDF for .NET将多…

JS-demo轮播图效果实现

原生JS开发轮播图效果 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widt…

【架构-13】云原生架构

云原生架构产生背景&#xff1f; &#xff08;1&#xff09;大量资源被占用且难以分享&#xff0c;上云后&#xff0c;云厂商提供统一的IaaS能力和云服务。 &#xff08;2&#xff09;提供极致性能的云原生算力。 &#xff08;3&#xff09;集成服务&#xff0c;构建管理数据、…

Adobe Premiere 2015 下载地址及安装教程

Premiere是一款专业的视频编辑软件&#xff0c;由Adobe Systems开发。它为用户提供了丰富的视频编辑工具和创意效果&#xff0c;可用于电影、电视节目、广告和其他多媒体项目的制作。 Premiere具有直观的用户界面和强大的功能&#xff0c;使得编辑和处理视频变得简单而高效。它…

Linux基础(持续更新~)

常见的Linux目录 1、“/”&#xff1a;根目录 2、“/root”&#xff1a;root 用户的家目录 3、“/home/username ”&#xff1a;普通用户的家目录 4、“/etc”&#xff1a;配置文件目录&#xff08;类似于Windows的注册表&#xff09; 5、“/bin ”&#xff1a;命令目录 …

简单3步制作纸质英语绘本的mp3英语朗读音频

孩子学英语&#xff0c;需要看很多英语绘本&#xff0c;而且要听配套的音频。但有些英语绘本是没有对应音频的&#xff0c;下面简单三步&#xff0c;就可以将任意英语绘本制作出对应的英语朗读音频。 第一步&#xff0c;手机拍照做成PDF文件&#xff1a; 绘本每一页拍照后&…

华为云迁移到AWS上云安全及部署,九河云保姆级教程

云计算已成为当今企业数字化转型的关键环节。随着越来越多的业务部署在云端,确保云计算环境的安全性成为各大企业关注的重点。本文将重点介绍在从华为云迁移到AWS过程中,如何规划和部署云安全体系,充分利用AWS提供的安全服务与最佳实践,最大限度地保护您的云上资产。我们九河云…

【编程Tool】Visual studio 2022社区免费版本的下载安装及使用

目录 1.下载Visual studio 2022 1.1 复制此链接至浏览器即可访问微软官网&#xff1a; 1.2 下拉官网页面&#xff0c;选择Community2022版软件并点击下载 1.3 下载完成后&#xff0c;双击可执行文件&#xff0c;进入下一步安装 2、安装 2.1 点击【继续】开始下载和安装 2.2 下…