百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

事件相机特征跟踪-模板跟踪方法(事件相机原理)

toyiye 2024-07-05 01:26 11 浏览 0 评论

作者:董岩

Date:2020-05-04

来源:事件相机特征跟踪-模板跟踪方法

1、前言

由于事件相机不能提供完整的图像,所以最初的特征跟踪依赖传统相机的数据。本推送介绍事件相机特征检测与跟踪的一篇较早的工作:Feature Detection and Tracking with the Dynamic and Active-pixelVision Sensor (DAVIS),由ETH发表于2016年,衍生出了其它的方法,也被作为一类典型的特征追踪思路,即利用传统图形进行初始化与跟踪。

2、基本思想

方法主要分为两部分:特征模板提取,与特征跟踪。模板提取部分对原始图形提取Canny边缘图,然后选取一部分角点作为特征点,与其周围的一块边缘图构成一个模板。特征追踪时,积累特征模板中心附近的事件,当达到一定数量后形成数据模板,开始进行跟踪,每进入一个新的事件,便删除最老旧的事件。然后通过数据模板与特征模板进行ICP匹配,求的变化的增量,从而实现了一次的跟踪,之后不断进行。完整的算法流程如下:

3、细节实现

3.1 特征模板提取

特征模板提取时,首先对传统图形进行边缘提取,得到边缘图,之后利用”Good features to track”中的方法提取一定数量、响应强度大于一定阈值的关键点,然后保留关键点附近的边缘图作为特征模板,每个特征模板包含的数据即:一组记录了坐标的二维数据点。具体的提取过程示意图如下:

(图片来自于本论文改进版的论文,但原理相同)

3.2 数据模板

数据模板来自于事件相机的数据。首先进行初始化,初始化时在关键点附近积累一定数量的事件,积累的数量等于特征模板中边缘的像素数量,形成初始的特征模板。数据模板不仅要记录事件发生的位置,还有记录发生的坐标,因为当区域内产生新的事件时需要删掉时间戳最老旧的事件,从而实现数据模板的更新。

3.3 两个模板匹配

两个模板的匹配采用ICP算法,在实行ICP时,考虑到事件相机数据有可能存在噪声,所以论文设定了一个2像素阈值,当距离大于2像素时认为是外点。当ICP迭代收敛后,检测外点数量,如果较少则认为跟踪成功,返回ICP获得的变化。文章采用2维旋转与2维平移描述运动参数。

(ICP迭代示意图,红色为特征模板,蓝色圈为数据模板,黄色为离群点;当产生绿框所示的一个事件后,ICP结束后红色的特征模板会发生轻微变化,这个变化就是运动参数)

3.4 数据模板更新

当两个模板完成匹配,获得运动参数后,需要对数据模板进行更新,以获得当前跟踪特征的新的中心坐标,以及数据模板中所有的事件在当前中心坐标下的位置,本质上只是一个像素的旋转与平移。

3.5 跟踪失败判定

当ICP迭代结束后,如果离群点较多,或迭代后平均像素距离依旧很大,则认为特征跟踪失败。

4、实验结果

跟踪特征的时间长短是一个重要指标,这篇论文的方法进行跟踪,跟踪实践能够达到1s。当特征丢失后可以利用传统图像数据再次进行补充。当然,随着时间的增加,误差也会累积的越来越大。

5、论文方法改进

作者后来对方法进行了改进,作为了解决VO问题的前端,提出在论文”Low-latency visual odometryusing event-based feature tracks”中。主要改进内容有两项:

1. 将ICP过程中,每个像素赋予了不同的权重,加权的依据是,由于事件是由于边缘产生,所以有边缘产生的事件附近应该会有其它的事件。于是在这个事件发生的过去的一段儿时间内,3x3区域内发生的事件越多,证明这个像素点越重要,从而赋予了更大的权重;

2. 进行tracking refinement,利用二维直方图对所追踪特征的位置进行细化,提高长距离跟踪能力。

6、总结与评价

本文方法稍早,思路非常简单清晰。由于其采用传统图像作为初始化,也被后来相关研究提出来作为缺点与不足。后续也衍生出许多类似方法,或采用重建方法形成了特征模板,实现对特征模板的追踪。

但这种方法的优势也很明显,可以实现异步的跟踪,即每产生一个事件都可以进行特征的追踪,虽然在实际实现时可以等待一批数据进行处理,但原理上这种方法是支持逐事件更新的。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码