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、总结与评价
本文方法稍早,思路非常简单清晰。由于其采用传统图像作为初始化,也被后来相关研究提出来作为缺点与不足。后续也衍生出许多类似方法,或采用重建方法形成了特征模板,实现对特征模板的追踪。
但这种方法的优势也很明显,可以实现异步的跟踪,即每产生一个事件都可以进行特征的追踪,虽然在实际实现时可以等待一批数据进行处理,但原理上这种方法是支持逐事件更新的。
本文仅做学术分享,如有侵权,请联系删文。