ArUco与AprilTag 标签

一、简介

在许多计算机视觉应用程序中,姿势估计非常重要:机器人导航,增强现实等等。 该过程基于发现真实环境中的点与其2d图像投影之间的对应关系。 这通常是一个困难的步骤,因此通常使用合成或基准标记来简化操作。

最受流行的方法之一是使用二进制方形基准标记。 这些标记的主要优点是单个标记可提供足够的对应关系(四个角)来获得相机的姿势。 而且,内部二进制编码使它们特别强大,从而允许应用错误检测和纠正技术。

通常,我们将AprilTags和ArUco标记用于:

  • 相机校准
  • 物体尺寸估算
  • 测量相机和物体之间的距离
  • 3D位置
  • 目标对象方向检测
  • 机器人与自主导航
    等等

AprilTag是一种视觉基准系统,类似的视觉基准标签还有:ArUco、ARTag、TopoTag等。而AprilTag是改进的ARToolkit、 ARTag。因其对旋转、光照、模糊具有良好的鲁棒性,因此被广泛应用于目标跟踪、室内定位、增强现实等领域。在AR,机器人,相机校准领域广泛使用。通过特定的标志(与二维码相似,但是降低了复杂度以满足实时性要求),可以快速地检测标志,并计算相对位置。
April Tag的种类家族(family)有以下几种:

TAG16H5 → 0 to 29
TAG25H7 → 0 to 241
TAG25H9 → 0 to 34
TAG36H10 → 0 to 2319
TAG36H11 → 0 to 586
ARTOOLKIT → 0 to 511

官网:AprilTagThe APRIL Robotics Laboratory at the University of Michigan investigates Autonomy, Perception, Robotics, Interfaces, and Learning, and is part of the Computer Science and Engineering department. It is led by Associate Professor Edwin Olson.icon-default.png?t=N7T8https://april.eecs.umich.edu/software/apriltag.htmlAprilTag示例

二、AprilTag过程
AprilTag内容主要包含三个步骤。

第一步,是如何根据梯度检测出图像中的各种边缘。
第二步,即如何在边缘图像中找出需要的四边形图案并进行筛选,AprilTag尽可能的对检测出的边缘检测,首先剔除非直线边缘,在直线边缘进行邻接边缘查找,最终若形成闭环则为检测到一个四边形。
最后一个步,便是如何进行二维码编码和二维码解码,编码方式分为三种,其黑边色块长度分别为8,7,6三个色块长度(不同编码方式其点阵的个数不相同,根据选择编码方式不同有8 ∗ 8 , 7 ∗ 7 , 6 ∗ 6 可选,其编码方式由使用者对物体进行标定时确定,根据编码方式的不同,生成不同的内点坐标),对于解码内容,要在检测到的四边形内生成点阵列用于计算每色块的值,再根据局部二值模式(Local Binary Patterns)构造简单分类器对四边形内的色块进行分类,将正例色块编码为1将负例色块编码为0,就可以得到该二维码的编码。得到编码以后再与已知库内的编码进行匹配,确定解码出的二维码是否为正确。

三、ArUco

ArUco标记是一种二进制正方形的基准标志物,可用于相机的姿态估计,该标准板主要的优点是检测快速,简单且稳健。

ArUco标记,由宽的黑色边框和确定其标识符(id)的内部二进制矩阵组成。 黑色边框有助于其在图像中的快速检测,并且二进制编码允许其识别以及错误检测和纠正技术的应用。 标记大小决定内部矩阵的大小。 例如,标记大小4x4由16位组成。

ArUco模块包括检测这些不同类型的标记板的方法,以及使用它们进行姿态估计和相机标定的工具。

此外,ChArUco功能将ArUco标记与传统棋盘相结合,以实现简单而多功能的角点检测。该模块还包括检测ChArUco角点并将其用于姿态估计和相机机标定的功能。

在opencv中aruco有以下几个模块:

(1)Detection of ArUco Markers:检测单个ArUco标记板:基于单个ArUco标记板的基本检测和姿态估计。

(2)Detection of ArUco Boards:基于ArUco标记板的检测与姿态估计

(3) Detection of ChArUco Corners检测ChArUco标记板角点:检测ChArUco标记板的角点

(4)Detection of Diamond Markers:基于ChArUco标记板的检测与姿态估计

(5)Calibration with ArUco and ChArUco:使用ArUco和ChArUco标定板进行相机标定

(6)ArUco module FAQ : 关于ArUco 模块的常见且有用问题的汇总

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Github Copilot登录账号,完美支持chat

Github Copilot 代码补全等功能,提高写代码的效率 https://web.52shizhan.cn/activity/copilot 登录授权后,已经可以使用,完美。如图

OpenCv之简单的人脸识别项目(动态处理页面)

人脸识别 准备九、动态处理页面1.导入所需的包2.设置窗口2.1定义窗口外观和大小2.2设置窗口背景2.2.1设置背景图片2.2.2创建label控件 3.定义视频处理脚本4.定义相机抓取脚本5.定义关闭窗口的函数6.按钮设计6.1视频处理按钮6.2相机抓取按钮6.3返回按钮 7.定义关键函数8.动态处理…

Web前端

Web前端: 1.建立web开发的息维模式写代码不仅仅是为了实现某个功能,更是学习解决问题的思维方式 2.先使用,再理解,会导致刚开始比较懵,不知其所以然.切忌不可深陷其中, 3.涉及简单的软件工程的设计思想&…

您的游戏端被攻击了怎么办,德迅云安全的应用加速来帮您

游戏行业DDoS攻击的主要原因是因为游戏产品生命周期偏短,而DDoS供给成本又不高,只要发起攻击,企业为确保游戏稳定运营而不得不快速做出让步,致使敲诈勒索的成功率相对更高。在遭受DDoS攻击后,游戏公司的日损失甚至多达…

AI 绘画零基础想入门学习AIGC,该如何学习呢?

近年来,随着人工智能的兴起,人工智能逐渐进入制造业、医疗、服务业等越来越多的行业。这些行业大多是劳动密集型行业,大多数人认为人工智能只能在劳动密集型行业执行任务,而创意领域是人工智能的禁区。但实际情况是,人…

倍福:驱动电机两种控制方式对比

驱动电机两种控制方式对比 验证用修改Override值控制电机转速的实际效果 规定反复启动Mc_MoveVelocity功能块为方法一&#xff0c;修改Override值为方法二 control_drive.cpp #include <ros/ros.h> #include <geometry_msgs/Twist.h> #include "myAds.hpp&…

【基础】LwM2M 通讯协议

【基础】LwM2M 通讯协议 LwM2M 协议基础LwM2M 简介LwM2M 基本架构LwM2M 资源定义 LwM2M 协议实现开源协议实现Java LwM2M Client LwM2M 协议基础 LwM2M 简介 LwM2M 的全称为 Lightweight Machine-To-Machine&#xff0c;是一种适用于物联网设备的轻量级的通讯协议&#xff0c…

再也不怕消息遗漏了,团队协作最强辅助:可道云teamOS协作通知功能,及时通知项目进展,让协作更高效

大家是否曾遇到过这样的困扰&#xff1a;在网盘中进行协作时&#xff0c;由于无法及时了解文件的最新变化&#xff0c;导致信息滞后&#xff0c;影响工作效率&#xff1f;甚至因为未能及时跟进文件更新&#xff0c;阻碍团队协作和项目推进&#xff0c;从而给团队造成严重后果。…

技巧:合并ZIP分卷压缩包

如果ZIP压缩文件文件体积过大&#xff0c;大家可能会选择“分卷压缩”来压缩ZIP文件&#xff0c;那么&#xff0c;如何合并zip分卷压缩包呢&#xff1f;今天我们分享两个ZIP分卷压缩包合并的方法给大家。 方法一&#xff1a; 我们可以将分卷压缩包&#xff0c;通过解压的方式…

C#——break、continue、goto关键字的使用

break break是搭配循环语句使用的&#xff0c;用于跳出循环。 举例 : 当for循环执行到第5次时&#xff0c;使用break方法 跳出循环。 continue continue 语句的工作原理与 break 语句类似&#xff0c;但是 continue 语句并不会跳出整个循环&#xff0c;而是跳过本次循环继续执…

idea修改国际化语言教程

教程背景 第一种&#xff0c;如果以前的项目已经有国际化语言了&#xff0c;现在的项目是导入的。 第二种&#xff0c;你中途把idea删除卸载了&#xff0c;在安装了别的版本&#xff0c;把这个项目导入进来后的。 第三种&#xff0c;你下载或复制的别人的项目。 以上这三种…

# log.info(“消息发送成功“); 红色报错 解决方案

log.info(“消息发送成功”); 红色报错 解决方案 一、错误描述&#xff1a; 在使用 idea 创建 maven 项目导入 lombok 依赖时&#xff0c;出现 log.info 报红错误&#xff0c;检查导入依赖正确&#xff0c;网络正常&#xff0c;错误依旧。 二、解决方案&#xff1a; 1、在 i…

Vue3+.NET6前后端分离式管理后台实战(二十六)

1&#xff0c;Vue3.NET6前后端分离式管理后台实战(二十六)已经在微信公众号更新&#xff0c;有兴趣的扫码关注一起交流学习。

智能家居——Kompas.ai如何改变我们的生活

引言 在现代生活中&#xff0c;智能家居逐渐成为提升生活质量的重要手段。随着科技的进步&#xff0c;智能家居的应用越来越广泛。本文将探讨智能家居的发展趋势&#xff0c;并介绍Kompas.ai如何通过AI技术改变我们的家庭生活。 智能家居的发展及其重要性 智能家居的概念起源…

现在有一个生产计划,甲乙丙3个品类共16个产品,生产时间6天,每天甲品类可以生产1张单,乙3张,丙1张,请用MySQL写出H列的效果

现在有一个生产计划&#xff0c;甲乙丙3个品类共16个产品&#xff0c;生产时间6天&#xff0c;每天甲品类可以生产1张单&#xff0c;乙3张&#xff0c;丙1张&#xff0c;请用MySQL写出H列的效果吗&#xff1f; 最终展示结果要求为&#xff1a; 品类产品生产时间开始生产时间…

IIS 服务器,下载APK 文件,用于发布更新最新的APK包

IIS 默认情况下无法下载 .apk 文件&#xff0c;需要对 IIS 服务进行设置 1、打开 IIS 对应的应用 选中MIME 类型 右键 打开功能 2、右键添加 文件扩展名&#xff1a;.apk MIME 类型输入&#xff1a;application/vnd.android.package-archive 3、重启应用 4、浏览器访问 服务地…

开发构建一个体育数据资料库:不同数据的具体意义

构建一个体育数据资料库&#xff0c;应包括“赛程赛果”、“比赛阵容”、“比赛指数”、“比赛详情”、“统计数据”以及“榜单数据”等关键信息。而借助东莞梦幻网络科技的源码&#xff0c;您可以打造一个属于自己的体育直播平台。通过该平台的资料库展示模块&#xff0c;您能…

下载centos7镜像及在VMware上安装Linux (Centos7)操作系统详细教程

文章目录 下载centos7镜像文件及在VMware上安装centos7详细教程一、下载Centos7镜像二、 利用VM安装Centos7进入VM软件安装配置虚拟机 安装Centos7进入图形化界面配置 三、访问外网 配置IP地址结语Linux配置IP网卡Linux配置本地yum源 下载centos7镜像文件及在VMware上安装cento…

Cesium开发环境搭建

由于win7搭建很费事&#xff0c;重新安装了OS&#xff0c;win10的。 记录一下&#xff0c;搭建步骤&#xff1a; 1.下载node.js。百度搜索即可下载对应的版本。下载cesium。 2.安装node.js。安装后&#xff0c;输入node -v&#xff0c;显示版本信息&#xff0c;表示安装成功…

windows下使用命令清空U盘

1、CMD命令打开后输入diskpart命令打开磁盘分区管理工具 diskpart打开如下窗口 Microsoft DiskPart 版本 10.0.19041.3636 Copyright (C) Microsoft Corporation. 在计算机上: DESKTOP-TR9HQRP 2、输入查看所有磁盘命令 list disk打印如下windows 磁盘 ###  状态    …