文章介绍Apriltag的编解码系统,参考文献: AprilTag: A robust and flexible visual fiducial system
Edwin Olson
University of Michigan
ebolson@umich.edu
http://april.eecs.umich.edu

编解码概述

当数据负载从方形中找到的时候,接下来就需要编码系统来判定他是否是可行的,设计编码系统的目标是:
·最大化可区分编码数量
·最大化可以检测和纠正的位错误数量
·最小化误报和标签间混淆的概率
·最小化标签的总位数和标签的大小
这些目标之间经常是会冲突的,所以一套给定的标签编码代表了一种妥协和权衡。这里我们描述一种基于词典的新标签编码系统,他和以往的编码方法相比有着显著的优势。我们的程序可以生成具有各种属性的词典,让用户能够挑选出最适合他们的需要的标签编码系统进行使用。

算法

我们建议使用修改过的词典系统。传统的词典是使用(每一个编码的位数n和两个标签之间的最小汉明距离d)两个量来参数化的。词典编码可以纠正(d-1)/2位的比特错误,并且能够检测d/2的比特错误。为了方便起见,我们会展示36h10编码族,他使用36位进行编码并且最小汉明距离是10。
词典码从用于生成有效码字的过程中得到名称的:候选码以字典顺序(从最小到最大)被考虑,当他们和之前添加到码本的每一个码字的至少距离都是d的时候,将新码字添加到码本,虽然非常的简单,但是这种方案通常会非常的接近最优。
再视觉基准的情况下,编码方法必须对旋转是鲁棒的。换句话说,当标签旋转90,180,270的时候,标签码字之间依然保持d的最小汉明距离。标准的词典生成算法不保证这个属性,但是可以通过简单的扩展来保证这个属性:当测试新的候选码字的时候,我们可以简单的确保所有四个旋转都具有所需要的最小汉明距离。词典算法能够很容易被扩展到包含额外的约束这是我们的编码方式的一个优点。
有一些码字尽管满足汉明距离的约束,但是依然是糟糕的选择。例如,全0码字会导致标签看起来就像是单个黑色的方块,这种简单的几何图形通常会出现在自然场景中,从而导致误报的发生。例如,ARTag就明确禁止两个编码,因为他们很可能会偶然发生。
我们不是手动识别有问题的标签,而是通过拒绝导致简单几何图行的候选码自来进一步修改词典生成算法。我们的度量基准是基于生成标签2D图案所需要的矩形数量。比如,一个实心的标签只需要一个矩形,而黑白条纹需要两个矩形。我们的假设,在本文后面的实验结果支持下具有高复杂性的标签模式(需要很多的矩形来组成),在自然条件下发生的频率极低,因此可以有较低的假阳性率。
通过这个想法,我们再次修改词典生成算法来拒绝过于简单的候选码字。我们使用简单的贪婪算法来近似生成标签模式所需要的矩形的数量,这个方法重复考虑所有可能的矩形并且添加最能够减少错误的矩形。由于标签通常非常的小,所以计算量不是一个瓶颈。最小复杂度小于阈值的标签(实验中设置为10)被我们舍弃掉。结果部分演示了这种构造方式的适当性和有效性。
最后,我们通过对词典生成算法进行一次修改,观察到了比较低的误报率。我们不考虑按顺序(0,1,2,3,4,5,6,7.。。)的测试码字,而是考虑(b,b+1p,b+2p,b+3p…)其中b是任意的数,p是一个大的素数,每一步都保留最低的n位。直觉上,这种方法生成的标签在每一个比特位置都有更大的熵,同时词典顺序有利于小值码字。这种方式的缺点是创建出来的码字的数量可能会更少一些:词典排序能够更加密集的打包码字,而更随机的顺序导致码字的打包效率更低一些。
总的来说,我们使用字典码字生成系统可以生成任意大小的标签(33,44,55,66等)和最小汉明距离的码字。我们的方法明确保证每一个标签的所有四个旋转的最小汉明距离,并且消除几何复杂度低的标签,计算标签可能是一项昂贵的操作,但是可能离线完成,小标签可以在几秒或者几分钟内轻松的计算完成,但是大的(6*6)标签可能需要几天的CPU时间。许多有用的编码族我们已经计分配算好了;大多数用户不需要生成自己的编码族。

纠错分析

可以容易的分析理论上的假阳性率。假设识别出错误的四边形并且位模式是随机的,误报的概率就是被接受为有效标签的码字数量和所有可能的码字的总数的比值。更加积极的纠错会增加这个速率,因为他会增加被接受的码字的数量。下面的36h10和36h15码字说明了这种不可避免的错误率的增加。

当然,36h15编码拥有更好的性能是有代价的:只有27个可以区分的码字,而不是36h10的2221个可以区分的码字。
我们的编码方案明显强于之前的方案,包括ARTag和ARToolkitPlus使用的两种方案:我们的编码系统在完成编码比较多的码字的同时能够达到一个更大的最小汉明距离。最小汉明距离的改善如图和下表所示:


(汉明距离,好的编码在有效码字之间具有更大的汉明距离,上面显示的是几个现有系统的汉明距离。注意,我们的编码方案通过构造来保证最小汉明距离,而其他的系统具有一些很相似的码字,这会导致更高的标签间混淆的概率。)
为了解码可能被损坏的码字,我们需要计算码字和编码词典之间的汉明距离。如果最佳匹配的汉明距离小于用户设定的阈值,那么就报告一次检测。通过指定特定的阈值,用户能够在假真和假假之间进行权衡选择。
这个方法的一个缺点就是这个解码过程花费了码字词典大小的线性时间,因为在这个过程当中,必须要考虑每一个有效的码字,不过,这个系数非常的小,以至于和其他的图像处理步骤相比这个耗时可以忽略不记。
对于给定的标签编码方案,更大的标签(例如36bits和25bits)编码性能会明显优于较小的标签,当然这是需要付出代价的。在其他条件相同情况下,给定摄像机读取36位标签的范围将短于同一个摄像机读取16位或者25位的标签的范围。然而由于标签的四像素开销,比较小的标签的范围的好处非常使用,使用16位标签而不是36位标签,可以预期检测范围仅提高25%。因此,仅在较大的范围敏感的应用中,比较小的标签是有利的。

Apriltag编解码系统相关推荐

  1. 基于MATLAB GUI 双音多频拨号音编解码系统

    双音多频拨号音编解码系统. 一个双音多频电话机(DTMF,dual-tone multi-frequency touch-tone phone)可以对双音多频拨号音编解码系统. 一个双音多频电话机(D ...

  2. Python基于二维码实现的在线编解码系统

    目 录 摘 要 I Abstract II 第一章 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 工作环境和背景 2 1.3.1 操作系统 3 1.3.2 编程语言 3 1.3.3编码 ...

  3. 车载音频总线A2B编解码系统

    前言: 研究方向的转变:从蓝牙无线音频流到A2B有线音频流 1 编码系统 ADC---------->DSP------>A2B-Master-------> A2B 编码系统由 A ...

  4. [原创]桓泽学音频编解码(3):AAC 系统算法分析

    wikipeida链接 http://zh.wikipedia.org/wiki/AAC 摘录: 进阶音讯编码(英语:Advanced Audio Coding,AAC),出现于1997年,基于 MP ...

  5. 视频编解码:第一章 编解码基础

    1. 视频编码概念 视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式. 2. 为什么要进行视频压缩? 数据太大:未经压缩的数字视频数据量巨大 存储困难:一张DV ...

  6. H.264视频编解码的代码移植和优化

    基于DSP系统开发的视频编解码系统,国内几乎都是走的移植,优化的路线,并且移植的代码,都是开源的.毕竟花费大量的人力,物力去开发一套自己的代码,并不见得比一些成熟的开源代码效率更高,健壮性更好.更何况 ...

  7. vpu测试_一种普适的手机平台vpu视频编解码性能检测方法

    一种普适的手机平台vpu视频编解码性能检测方法 [专利摘要]本发明公开了一种普适手机平台的视频处理单元(VPU)的H.264视频编解码性能检测方法,包括:手机平台利用VPU进行H.264视频编解码的系 ...

  8. H.265/HEVC低延迟编解码FPGA IP

    H265-LowD Codec FPGA/ASIC IP   (zobovision H.265低延迟编解码IP) ■  H.265/HEVC低延迟编码/解码FPGA/ASIC IP ■  YUV42 ...

  9. 数据压缩第七周作业——JPEG编解码

    目录 一.实验目的 二.实验原理 1.JPEG编码器:​编辑 2.JPEG解码器 3.JPEG文件解析 三.实验内容 (1)调试和理解JPEG解码器程序 (2)理解程序设置 1.结构体理解 2.梳理代 ...

最新文章

  1. 灰鸽子木马的原理和清除方法
  2. ZooKeeper 3.4.5 分布式环境搭建详解
  3. highcharts x轴 按照时间 datetime排序
  4. bufg和bufgp_如何将自己写的verilog模块封装成IP核(一)
  5. pyqt 取鼠标处文字_爱剪辑:炫彩的动态标题文字特效,这招让视频片头LOGO更酷炫...
  6. Pytorch RuntimeERROR: Given groups=1 weights of size [256,64,1,1] expected input[1,16,256,256] to
  7. 指定输出路径_新版Creo输入输出配置不用愁,果断收藏本文就对了
  8. 使用zabbix如何自动清理30天前的数据
  9. linux awk使用详解
  10. 《软件工程》网上书店项目需求规格说明书
  11. ZigBee(CC2530)(03)数据手册分享(英文+中文)
  12. Multi-modal Knowledge Graphs for Recommender Systems论文解读
  13. 软件工程结构化建模的方法和工具_系统架构师之——软件开发方法
  14. 极坐标解圆锥曲线三角形面积范围问题
  15. ROS的 sudo rosdep init 的报错终极解决方案
  16. SQLT(SQLTXPLAIN)
  17. 有史以来准备最充分的主网 - IOST Olympus v1.0正式上线
  18. sql判断字段值是否为空,为空则替换为其他字符
  19. 2022年起重机司机(限桥式起重机)考试题库及答案
  20. T-SNE( t-distributed stochastic neighbor embedding t-分布随机邻域嵌入)

热门文章

  1. 433lora手持机|手持数据采集终端|lora模块手持PDA
  2. 不限空间大小 会赚钱的网盘 收益模式详解
  3. 舌苔发白是什么原因造成的?
  4. 小米3android版本,小米手机
  5. 大兴线各站名均有特殊含义,给大家普及一下!
  6. Parameter index out of range (1 > number of parameters, which is 0)
  7. Ceph集群搭建及其运用(块存储、ceph文件系统)
  8. golang 依赖管理_简介:如何管理Golang项目依赖项
  9. (社会舆情) 小世界网络,规则网络,随机网络
  10. 小米玩机------MIUI里那些你可能不知道的冷知识