如何快速生成不同系列的Apriltag码?
如何 快速 系列 生成 不同
2023-09-11 14:15:20 时间
简 介:
关键词
: Apriltag,生成
§01 Apriltag简介
AprilTag 是一个视觉基准系统,可用于多种任务,包括增强现实,机器人和相机校准。通过特定的标志(与二维码相似,但是降低了复杂度以满足实时性要求),可以快速地检测标志,并计算相对位置。它可以从普通打印机创建目标,AprilTag检测软件可以计算标签相对于相机的精确3D位置,方向和身份。AprilTag库在C中实现,没有任何外部依赖关系。它被设计为易于包含在其他应用程序中,并且可移植到嵌入式设备中。即使在手机级处理器上也可以实现实时性能。
- 官网:https://april.eecs.umich.edu/software/apriltag.html
- git仓库地址:https://github.com/AprilRobotics/apriltag
▲ 图1.1 不同系列的Apriltag码
在 AprilTag with Python 中的最后一段 “Limitations and Frustrations”给出了生成Apriltag码的几种方法:
- All possible AprilTags across all AprilTag families can be downloaded from the official AprilRobotics repo .
- Additionally, the AprilTags repo contains Java source code that you can use to generate your own tags .
- And if you really want to dive down the rabbit hole, the TagSLAM library contains a special Python script that can be used to generate tags — you can read more about this script here .
§02 Apriltag图像生成
2.1 通过OpenMV生成
下载openmv软件
- 中国官网地址:http://openmv.cc (点击 软件下载)
- 美国官网下载地址:https://openmv.io/pages/download
安装后打开,依次按照图示进行,选择相应文件夹生成即可
▲ 图2.1.1 利用OpenMV生成不同序列的Apriltag码
![▲ 图2.1.2 对应的不同家族的Apriltag码](https://img-blog.csdnimg.cn/img_convert/3f4e4688a8083a07040e4e0bc10f2e25.png#pic_center)
▲ 图2.1.2 对应的不同家族的Apriltag码
2.2 官网下载
实际上,在网络上所有的Apriltag的图片已经被生成存储,可以直接下使用:
请注意,所有序列的Apriiltag图片个数非常多,所以下载使用在解压缩的时候花费很多的时间和磁盘存储空间。
2.3 网页图片
如果只是使用少量的Apriltag做实验,可以直接在一些网页上提取,鼠标右键存储。
▲ 图2.3.1 带有Apriltag图片的网页
2.4 程序生成
在 C. Making and Using AprilTags 给出了产生不同系列的Apriltag的方法。
▲ 图2.4.1 通过程序生成Apriltag
sudo apt install python-pyx
rosrun tagslam make_tag.py --nx 1 --ny 1 --marginx 0.00 --marginy 0.00 --tsize 0.16 --tspace 0.0 --startid 4 --tfam t36h11 --borderbits 1
■ 相关文献链接:
- AprilTag
- AprilTag with Python
- official AprilRobotics repo
- AprilTags repo contains Java source code that you can use to generate your own tags
- TagSLAM library
- here
- mirrors / AprilRobotics / apriltag-imgs · GIT CODE
- APRILTAG 标准图片:TAG25H9
- Apriltag : 用于视觉系统标定图标tag36H11
- Apriltag可用图片:TAG16H5
- C. Making and Using AprilTags
● 相关图表链接:
相关文章
- FTP如何部署指定用户访问指定目录
- 功能测试人员 如何一个月快速进阶自动化软件测试
- 如何保证多个线程同时启动?
- python中如何快速判断一个值是否大于、小于、等于某个值?
- 如何在本地快速复现线上问题
- 人机协作是如何自动化分类数据
- 如何在 Linux 中使用 Asciinema 进行录制和回放终端会话
- DataHub: 现代数据栈的元数据平台--如何搭建本地开发环境
- 并发编程--如何快速获取批量异步任务的结果
- Twitter Storm如何保证消息不丢失
- airpods 2 如何连接 window10 电脑?
- 【Android开发】计算机网络基础知识点,如何完成网络请求过程?
- 如何在 Xamarin 中快速集成 Android 版认证服务 - 邮箱地址篇
- 摩尔定律失效后,AI如何保持快速发展?
- 如何快速的开发一个完整的iOS直播app(原理篇)
- fileReader对象读取txt文件乱码问题 以及如何获取文件的url路径(绝对路径)
- 贵州:大数据“国家靶场”是如何炼成的?
- android 反序列化XmlPullParse之如何创建一个对应的InputStream的对象以便于调用setInput方法
- 浅析AST抽象语法树及如何利用AST转换JS代码
- 摩尔定律失效后,AI如何保持快速发展?
- 测试人员总结应如何提高产品质量
- 屏幕篇—如何最快速驱动LCD屏
- 如何简单快速的修改Bootstrap
- 如何入手 dubbo
- 如何快速实现高并发短文检索-转
- 如何写一个json语法解析器
- 开发小技巧 navicate如何点击单元格显示全部的文本内容或通过图像查看内容