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 模块的常见且有用问题的汇总

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

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

相关文章

Day13 配置AutoMapper关系映射

在上一节 中,无论ToDoController 控制器,或 IToDoService 服务的接口中,方法的实参必须是传实体类。但在实际开发过程中,这样是不允许的。标准且规范的做法是,定义一个数据传输层,即DTO层。 DTO(Data Transfer Objects)数据传输对象,它是一种设计模式,主要用于在不同…

【机器学习-09】 | Scikit-Learn工具包进阶指南:Scikit-Learn工具包之高斯混合sklearn.mixture模块研究

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

【全网唯一】触摸精灵iOS版纯离线本地文字识别插件

目的 触摸精灵iOS是一款可以模拟鼠标和键盘操作的自动化工具。它可以帮助用户自动完成一些重复的、繁琐的任务,节省大量人工操作的时间。但触摸精灵的图色功能比较单一,无法识别屏幕上的图像,根据图像的变化自动执行相应的操作。本篇文章主要…

【Python绘画】画正方形简笔画

本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢! 文章目录 一、前言二、代码示例三、知识点梳理四、总结 一、前言 本文介绍如何使用Python的海龟画图工具turtle&#…

Stable Diffusion 临时文件夹设定

即使将Easy Diffusion或Stable Diffusion安装在C盘之外的某个地方,如果持续使用Stable Diffusion一段时间后,仍然会发现C盘空间在快速变小。这是因为有很多自动下载的文件还是保存在C盘。为了解决这个问题,我们需要做以下临时文件夹设定。 H…

嵌入式 Linux LED 驱动开发实验学习

I.MX6U-ALPHA 开发板上的 LED 连接到 I.MX6ULL 的 GPIO1_IO03 这个引脚上,进行这个驱动开发实验之前,需要了解下地址映射。 地址映射 MMU 全称叫做 MemoryManage Unit,也就是内存管理单元。在老版本的 Linux 中要求处理器必须有 MMU&#x…

dvwa靶场的下载、配置

目录 下载 配置 连接数据库 搭建网站(可选) 配置靶场 下载 百度网盘链接:https://pan.baidu.com/s/1oK2UzKFxIIPQkhz6hD8WFQ?pwdpbb2 提取码:pbb2 迅雷链接:https://pan.xunlei.com/s/VNzHo9gXgbsk5E8tcx6Yek…

练习实践-linux启动耗时分析

练习实践-启动耗时整体概览,具体服务的启动细节 参考来源: B站up主林哥讲运维:一分钟学会:可视化查看系统启动时的性能 如何使用Linux命令查看系统的启动进程(linux查看启动进程) 解决ubuntu开机变慢&…

双指针法 ( 三数之和 )

题目 :给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复…

代理IP类型有哪些?定义与区别

您应该对代理有了一定的了解。但是,代理服务器也有不同的类型。就其来源而言,最常见的代理服务器类型是住宅代理和数据中心代理: 1、住宅代理 住宅代理是 ISP 向房主提供的 IP 地址。它是与物理位置关联的真实 IP 地址,因此允许…

WPF中Window的外观实现及常用属性

文章目录 1. 概要2. Window的外观2.1 Window的外观组成2.2 Window的实现2.3 Window外观配置2.4 Window 的其他常用属性1. AllowsTransparency 2. WindowStartupLocation3. ShowInTaskbar4. ShowActivated5. SizeToContent6. Topmost7. WindowStyle 1. 概要 和 Android 类似, W…

小米SU7智能座舱介绍,果然有亮点!

2024 年,小米 SU7 横空出世,从开始的怀疑到发布后仅 24h 就达到了 8W 台的订单量,火到出圈的具象化。智能手机厂家造车,之前的华为做了榜样,小米作为汽车制造中又一条鲶鱼,能否给智能汽车市场带来新的契机? 小米造车可谓是各方位进行全新打造,包括座舱、底盘、智驾、车…

sentaurus节点重排

sentaurus使用时,有时候节点顺序会比较乱,为了方便更好的查看,可以对其进行重新编排,操作方法如下,右键——project——clean up 然后选中chean up 选项中的renumber the Tree,然后点击cleanup操作完成即可…

数据结构:模拟栈

数据结构&#xff1a;模拟栈 题目描述参考代码 题目描述 输入样例 10 push 5 query push 6 pop query pop empty push 4 query empty输出样例 5 5 YES 4 NO参考代码 #include <iostream>using namespace std;const int N 1000010;int m, x; int q[N]; string op; int…

ESP32S3——多线程

一、环境&#xff1a; 平台&#xff1a;arduino IDE 或 VS Code PlatformIO 皆可。 我的是后者&#xff0c;具体为&#xff1a; 框架&#xff1a;VS PlatformIO Arduino 二、硬件准备&#xff1a; 一个esp32s3 本文用到的是U0RXD&#xff08;GPIO44 &#xff09;与U0TXD…

TCP的核心属性

TCP的核心属性 一: TCP的核心属性1.1: 确认应答:1.2 : 超时重传1.3 : 连接管理1.3.1 三次握手1.3.2 四次挥手 1.4 滑动窗口1.5: 流量控制:1.6 拥塞控制1.7 延时应答1.8 :捎带应答1.9: 面向字节流1.10 : 异常情况 一: TCP的核心属性 1.1: 确认应答: 保证可靠性最核心的机制 1…

《web应用技术》第十次作业

将自己的项目改造为基于vue-cli脚手架的项目&#xff0c;页面有导航&#xff0c;学会使用router。 <el-aside width"200px" style"background-color: aliceblue;"> <el-menu :default-openeds"[1]" style"background-color:rgb(1…

springboot 打成jar部署到Linux环境后读取resources下面的文件

方法代码&#xff1a; ClassLoader loader Thread.currentThread().getContextClassLoader();InputStream flagInputStream loader.getResourceAsStream("static/imagesLogo/imageaaa.png");BufferedImage read;read ImageIO.read(flagInputStream);System.out.pr…

智慧农业灌溉系统的主要工作原理

一、概述   智慧农业灌溉系统是一种基于传感器技术和智能控制技术的灌溉系统。它能够根据土壤湿度、气象条件、作物需水量等多种因素&#xff0c;自动控制灌溉水量和灌溉时间&#xff0c;实现精准灌溉。相比传统的手动灌溉和定时灌溉&#xff0c;智慧农业灌溉系统更加高效、准…

QT error: allocation of incomplete type ‘Ui::Server‘

目录 前言 报错内容&#xff1a; 过程解析&#xff1a; 原因分析&#xff1a; daisy.skye的博客 QT合集http://t.csdnimg.cn/wEVbu 前言 最近又开始需要做上位机了&#xff0c;要知道qt上位机对我来说已经3年没有接触了&#xff0c;最开始接触还是毕业时工作中的简单学习和…