CN110390685A - 一种基于事件相机的特征点跟踪方法 - Google Patents

一种基于事件相机的特征点跟踪方法 Download PDF

Info

Publication number
CN110390685A
CN110390685A CN201910672162.2A CN201910672162A CN110390685A CN 110390685 A CN110390685 A CN 110390685A CN 201910672162 A CN201910672162 A CN 201910672162A CN 110390685 A CN110390685 A CN 110390685A
Authority
CN
China
Prior art keywords
characteristic point
module
event
moment
template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910672162.2A
Other languages
English (en)
Other versions
CN110390685B (zh
Inventor
史殿习
李凯月
李睿豪
伽晗
王明坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201910672162.2A priority Critical patent/CN110390685B/zh
Publication of CN110390685A publication Critical patent/CN110390685A/zh
Application granted granted Critical
Publication of CN110390685B publication Critical patent/CN110390685B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于事件相机的特征点跟踪方法,目的是提高特征点跟踪精度。技术方案是构建由数据获取模块、初始化模块、事件集选取模块、匹配模块、特征点更新模块、模板边更新模块组成的基于事件相机的特征点跟踪***。初始化模块从图像帧中提取特征点和边图;事件集选取模块在特征点周围从事件流中选取特征点的事件集S;匹配模块将S与特征点周围的模板边进行匹配,求出tk时刻n个特征点的光流集合Gk,特征点更新模块根据Gk计算tk+1时刻n个特征点的位置集合FDk+1,模板边更新模块使用IMU数据对PBDk中的位置进行更新,得到tk+1时刻n个特征点对应的模板边的位置集合PBDk+1。采用本发明既可提高事件流上跟踪特征点的精度,又可延长特征点平均跟踪时间。

Description

一种基于事件相机的特征点跟踪方法
技术领域
本发明涉及计算机图像处理领域,具体涉及运用事件相机完成对图像中特征点的跟踪。
背景技术
SLAM(全称同时定位与建图)作为机器人领域一个重要分支,近年来得到了大家的广泛研究。SLAM试图解决这样的问题:一个机器人在未知的环境中运动,如何通过对环境的观测确定自身的运动轨迹,同时构建出环境的地图。SLAM技术正是为了实现这个目标涉及到的诸多技术的总和。一个完整的SLAM***主要包括前端视觉里程计部分和后端优化部分。视觉里程计部分估计机器人状态,估计方法主要分为两种方法:特征点法和直接法。特征点法是目前机器人状态估计的主流方法,即首先在图像中提取特征点,对不同帧之间的特征点进行匹配,进而对匹配的特征点对做相关操作,估算相机的位姿。常用的点特征包括Harris角点、SIFT、SURF、ORB、HOG特征。不同于特征点法,直接法可以省去提取特征点的过程,直接利用图像中的灰度信息来估计机器人状态,但该方法尚不成熟,鲁棒性较差。
然而,无论是特征点法或直接法,使用标准相机在应对极端环境时仍存在精度和鲁棒性的问题。极端情况主要包括两种:相机高速运动的情况,采用标准相机获取图像时,若相机移动过快,则获取到的图像会出现运动模糊现象;高动态范围场景的情况,场景中光强变化强烈,前后帧明暗变化明显。在这些极端情况下,使用标准相机会严重影响直接法和特征点法的算法效果。此外,标准相机无法提供帧与帧之间更精确的特征点运动轨迹。并且标准相机在静态场景中会产生冗余信息,这不仅导致存储资源的浪费,而且会在后续的图像处理过程中消耗大量额外的计算资源。
一种生物启发的事件相机的出现,克服了标准相机的上述限制。事件相机的典型代表为DVS(Dynamic Vision Sensor,中文名为动态视觉传感器,2011年由PatrickLichtsteiner等人在期刊IEEE Journal of Solid-State Circuits第43卷,第2期,第566-576页上发表的文章《A 128×128 120dB 15μs Latency Asynchronous TemporalContrast Vision Sensor》即《一个128×128像素,120dB动态范围,15微秒延迟的异步时间对比视觉传感器》提出,由瑞士的iviVation AG公司生产。与标准相机不同,事件相机仅输出像素级别的亮度变化。在像素阵列中,每当强度变化超过阈值时,对应的像素便会独立地产生一个输出,输出被称为“事件”。所以,不同于标准相机,事件相机输出的数据为时空当中的事件流。由于低延迟,事件相机在快速移动场景中具有很大的优势。此外,事件相机还可以避免在缓慢变化的场景中记录冗余信息。2014年,一种新的事件相机——DAVIS(Dynamic and Active-pixel Vision Sensor,中文名为动态和主动式像素传感器)由Christian Brandli等人在期刊IEEE Journal of Solid-State Circuits第49卷,第10期,第2333-2344页上发表的文章《A 240×180130dB 3μs Latency Global ShutterSpatiotemporal Vision Sensor》即《一个240×180像素,130dB动态范围,3微秒延迟的全局快门时空视觉传感器》提出,后由瑞士的iviVation AG公司生产。DAVIS将标准相机和事件相机DVS结合在了一起,可以同时输出图像帧和事件流。
对于使用事件相机进行特征点跟踪,Zhu等人在文章《Event-based featuretracking with probabilistic data association》即《使用概率数据关联实现基于事件的特征点跟踪》(2017年,发表于会议International Conference on Robotics andAutomation(ICRA),第4465–4470页上)中提出了一种直接在事件流中提取特征点,并使用事件流计算特征点光流,从而实现特征点跟踪的方法。由于该方法只使用事件流计算特征点光流,导致跟踪精度不高。Kueng等人在文章《Low-Latency Visual Odometry usingEvent-based Feature Tracks》即《使用基于事件的特征点跟踪的低延迟视觉里程计》(2016年,发表于会议2016 International Conference on Intelligent Robots andSystems(IROS),Inspec检索号为16504091)中提出了一种同时结合图像帧和事件流的特征点跟踪方法,该方法使用图像帧中的信息与事件流进行几何配准,从而跟踪特征点。使用该方法,每接收一个事件便更新一次特征点的位置,这便使得计算量变大,并且此方法会引入更多的误差,导致特征点跟踪精度变差,无法实现长时间的跟踪。
因此,现有的使用事件相机进行特征点跟踪的方法仍然具有跟踪精度不高,跟踪时长较短的缺点。
发明内容
本发明要解决的技术问题是提供一种基于事件相机的特征点跟踪方法,使用的事件相机为DAVIS,既提高事件流上跟踪特征点的精度,又延长特征点平均跟踪时间。
为解决此问题,本发明提出了一种基于事件相机的特征点跟踪方法,使用的事件相机为DAVIS,本发明同时使用图像帧中的边与事件流中的事件进行匹配,求特征点的光流,由于同时利用了两种形式的信息,使得计算得到的光流更为准确,从而提高特征点跟踪精度。且本发明引入IMU(Inertial Measurement Unit,中文名为惯性测量单元)来更新边的位置,使得跟踪过程中边的位置更为准确,从而延长特征点平均跟踪时间。
具体技术方案是:
第一步,构建基于事件相机的特征点跟踪***。事件相机的特征点跟踪***由数据获取模块、初始化模块、事件集选取模块、匹配模块、特征点更新模块、模板边更新模块组成。
数据获取模块与初始化模块、事件集选取模块、模板边更新模块相连。数据集获取模块从苏黎世大学的公开事件相机数据集“The Event-Camera Dataset and Simulator”(中文名为“事件相机数据集和模拟器”,该数据集由DAVIS采集,数据集中包括图像帧、事件流和IMU数据)上下载数据,并将获取到的图像帧发送给初始化模块,将事件流发送给事件集选取模块,将IMU数据发送给模板边更新模块。
初始化模块与数据获取模块、事件集选取模块、匹配模块相连。初始化模块从数据获取模块接收图像帧,从图像帧中提取特征点和边图,得到特征点的位置和特征点周围的模板边的位置(边图中特征点周围的边称作对应特征点的模板边),将特征点的位置发送给事件集选取模块,将特征点周围的模板边的位置发送给匹配模块。
事件集选取模块与数据获取模块、初始化模块、特征点更新模块、匹配模块相连,事件集选取模块从数据获取模块接收事件流,从初始化模块(第一次循环)或特征点更新模块(从第二次循环开始)接收特征点的位置,从特征点更新模块接收特征点的光流(从第二次循环开始),在每个特征点周围从事件流中选取特征点的事件集,将每个特征点的位置以及对应的事件集发送给匹配模块。
匹配模块与初始化模块、事件集选取模块、特征点更新模块、模板边更新模块相连,匹配模块从事件集选取模块接收特征点的位置以及每个特征点对应的事件集,从初始化模块(第一次循环)或模板边更新模块(从第二次循环开始)接收特征点周围的模板边的位置,将特征点的事件集与特征点周围的模板边进行匹配,求出每个特征点的光流,将每个特征点的位置、特征点周围的模板边的位置和特征点的光流发送给特征点更新模块。
特征点更新模块与匹配模块、模板边更新模块、事件集选取模块相连,特征点更新模块从匹配模块接收特征点的位置、特征点周围的模板边的位置、特征点的光流,利用特征点的光流计算特征点新的位置,将特征点周围的模板边的位置以及特征点新的位置发送给模板边更新模块,将特征点的光流和特征点新的位置发送给事件集选取模块,并将特征点新的位置(即特征点跟踪结果)输出,供用户查看。
模板边更新模块与数据获取模块、特征点更新模块、匹配模块相连,模板边更新模块从特征点更新模块接收特征点周围的模板边的位置和特征点新的位置,从数据获取模块接收IMU数据,通过IMU数据来更新特征点周围的模板边的位置,将模板边更新后的位置发送给匹配模块。
第二步,数据获取模块从事件相机数据集“The Event-Camera Dataset andSimulator”中获取图像帧、事件流和IMU数据。
第三步,采用基于事件相机的特征点跟踪***对从t0时刻开始到tN时刻结束的时间段内数据获取模块得到的事件流中的特征点进行跟踪。跟踪过程中将时间区间[t0,tN]分成一系列的子时间区间[t0,t1],...,[tk,tk+1],...,[tN-1,tN],第k+1个时间子区间表示为[tk,tk+1],N表示子时间区间个数,N的大小由事件流时间长度决定,取值范围为N≥1。跟踪过程如下:
3.1,令时间序号k=0;
3.2,初始化模块进行初始化操作,具体步骤如下:
3.2.1初始化模块采用Harris角点检测法(1988年,由C.G.Harris等人在会议Alvey Vision Conference,第15卷,第50期上发表的文章《A combined corner and edgedetector》即《组合式角点和边缘检测器》提出)从数据获取模块得到的图像帧中提取特征点,将提取到的特征点放到集合FD中,令FD为{f1,...,fi,...,fn},fi代表检测到的第i个特征点,n为特征点个数。将特征点的位置看做时间的函数,将t0时刻FD中n个特征点的位置放在特征点位置集合FD0中,FD0={f1(t0),...,fi(t0),...,fn(t0)},fi(t0)代表特征点fi在t0时刻的位置,将FD0发送给事件集选取模块。
3.2.2初始化模块使用Canny边检测法(1987年,由John Canny等人在会议Readings in Computer Vision,第184-203页上发表的文章《A computational approachto edge detection》即《边缘检测的计算方法》提出)从数据获取模块得到的图像帧中提取边图,每个图像帧对应一个边图。
3.2.3初始化模块选取FD中n个特征点对应的模板边(由模板边上所有模板点的集合表示),将FD中n个特征点对应的t0时刻模板边的位置集合PBD0发送给匹配模块。方法如下:
3.2.3.1令i=1;
3.2.3.2以特征点fi在t0时刻的位置fi(t0)为中心,在fi(t0)周围选取一个矩形区域大小为s×s,即的长和宽均为s,s的范围为20到30个像素。将3.2.2检测到的边图中在内的边作为fi的模板边。模板边上的像素点即为fi的模板点。定义内的模板点的集合 也即fi对应的模板边,将放到模板边集合PB中:
pj为fi的第j个模板点。将pj的位置视作时间的函数,pj(t0)表示pj在t0时刻的位置。表示在t0时刻pj在矩形区域内。mi表示集合中模板点的个数。
3.2.3.3令i=i+1;
3.2.3.4若i≤n,转3.2.3.2;否则,表示得到了FD中n个特征点对应的模板边构成的模板边集合PB,定义中模板点在t0时刻的位置的集合令PB中n个模板边中模板点在t0时刻的位置集合将PBD0发送给匹配模块,转第四步。
第四步,事件集选取模块从数据获取模块接收事件流,根据不同的k值分别从初始化模块或特征点更新模块接收不同的数据,在n个特征点周围从事件流中选取特征点的事件集S,将FDk和特征点的事件集S发送给匹配模块,方法是:
4.1若k=0,事件集选取模块从数据获取模块接收事件流,从初始化模块接收tk时刻n个特征点的位置集合FDk,FDk={f1(tk),...,fi(tk),...,fn(tk)}(此时即FD0={f1(t0),...,fi(t0),...,fn(t0)}),令t1=t0+1,单位为秒,转4.3;
4.2若k≥1,事件集选取模块从数据获取模块接收事件流,从特征点更新模块接收tk时刻n个特征点的位置集合FDk和tk-1时刻n个特征点的光流集合Gk-1其中表示tk-1时刻特征点fi的光流,预估子时间区间[tk,tk+1]的大小,根据公式(2)计算tk+1
其中表示在子时间区间[tk-1,tk]上特征点fi的光流,从特征点更新模块得到。表示在子时间区间[tk-1,tk]上所有特征点的平均光流。通过公式(2)计算tk+1的物理意义在于,上一时间区间内的特征点平均运动3个像素需要的时间作为当前区间[tk,tk+1]大小的预估值。转4.3;
4.3在tk时刻n个特征点的位置集合FDk中每个位置的周围选取每个特征点对应的事件集。
4.3.1令i=1;
4.3.2从事件流中选出符合公式(3)要求的事件,将这些事件放到特征点fi在tk时刻对应的事件集中,并将放到事件集S中:
表示在一个三维时空区域内的事件的集合,空间范围为特征点fi在tk时刻的位置fi(tk)周围的矩形区域Hfi,时间范围为区间[tk,tk+1]。ed代表中的第d个事件,ed来自于事件流,并且在公式(3)中指定的三维时空区域内,d={1,2,...,zi},zi表示内事件的个数。事件ed的表示形式为xd表示事件ed在像素坐标系中的坐标,表示事件ed发生的时间,表示ed的像素坐标在内。
4.3.3令i=i+1;
4.3.4若i≤n,转4.3.2;否则,说明得到了tk时刻FD中n个特征点对应的事件集S,并将FDk和S发送给匹配模块,转第五步。
第五步,匹配模块从事件集选取模块接收FDk和S,若k=0,从初始化模块接收n个特征点对应的模板边的位置集合PBDk,转第六步;若k≥1,从模板边更新模块接收n个特征点对应的模板边的位置集合PBDk,转第六步;
第六步,匹配模块将S与特征点周围的模板边进行匹配,求出tk时刻n个特征点的光流集合Gk,将n个特征点的位置集合FDk、n个特征点对应的模板边的位置集合PBDk和光流集合Gk发送给特征点更新模块。具体方法为:
6.1令i=1;
6.2对特征点fi构造匹配误差函数:
对于内的事件ed,修正事件ed在tk时刻的位置,公式如下:
x′d表示计算得到的事件ed在tk时刻的位置,简称为事件ed运动修正的位置,表示在时间区间[tk,tk+1]上特征点fi的光流。符号·表示点乘,下文中出现该符号的地方均表示点乘,在不引起歧义的情况下,下文中部分公式对该符号做了省略。为了表示方便,定义符号
构造匹配误差函数如下:
ε表示误差,pj(tk)代表tk时刻模板点pj的位置。rdj表示ed由模板点pj生成的概率,即ed与pj匹配的概率。这里将rdj作为权重,rdj为事件ed与模板点pj相匹配的概率,即rdj越大,事件ed与模板点pj之间在tk时刻的距离差占总误差的比例越大。公式中双竖线表示对双竖线内的向量进行取模操作,下同。rdj的计算公式如下:
该公式的物理意义在于,分子为事件ed运动修正的位置与模板点pj距离的平方,分母为事件ed运动修正的位置与特征点fi对应的mi个模板点的距离的平方和,将两者相除作为事件ed与模板点pj相匹配的概率。
6.3采用EM-ICP算法(是一种匹配算法,2002年,由Sébastien Granger等人在会议European Conference on Computer Vision,第418-432页发表的文章《Multi-scale EM-ICP:A fast and robust approach for surface registration》即《多尺度EM-ICP:一种快速而稳健的表面配准方法》提出)。最小化6.2步构造得到的匹配误差函数,求解得到最优的光流求解过程如下:
6.3.1初始化
6.3.2通过公式(6)计算rdj
6.3.3更新光流:
6.3.4计算光流的变化量并令放到tk时刻光流集合Gk中。
6.3.5若表示得到最终的优化结果转6.4;若转6.3.2。σ为光流的变化量阈值,取值范围为0.01到0.1,单位为像素每秒(pixel/s)。
6.4令i=i+1;
6.5若i≤n,转6.2;否则说明得到了tk时刻n个特征点的光流,即得到了tk时刻光流集合Gk将FDk、PBDk和Gk发送给特征点更新模块,转第七步。
第七步,特征点更新模块从匹配模块接收tk时刻n个特征点的位置集合FDk、tk时刻n个特征点对应的模板边的位置集合PBDk和n个特征点的光流集合Gk,通过光流计算tk+1时刻n个特征点的位置集合FDk+1,将Gk和FDk+1发送给事件集选取模块,将FDk+1和PBDk发送给模板边更新模块。方法是:
7.1令i=1;
7.2计算tk+1时刻fi的位置fi(tk+1),将fi(tk+1)放到集合FDk+1中,
为光流与时间相乘,表示从tk时刻到tk+1时刻特征点fi运动距离。
7.3令i=i+1;
7.4若i≤n,转7.2;否则说明得到了tk+1时刻n个特征点的位置,并得到集合FDk+1,FDk+1={f1(tk+1),...,fi(tk+1),...,fn(tk+1)}。将Gk和FDk+1发送给事件集选取模块,将FDk+1和PBDk发送给模板边更新模块;并将tk+1时刻n个特征点的位置集合FDk+1进行显示或存储到结果文件中供用户查看,转第八步。
第八步,模板边更新模块从数据获取模块接收IMU数据,从特征点更新模块接收tk+1时刻n个特征点的位置集合FDk+1和tk时刻特征点周围模板边的位置集合PBDk,使用IMU数据对PBDk中的位置进行更新,得到tk+1时刻n个特征点对应的模板边的位置集合PBDk+1,将PBDk+1发送给匹配模块,。具体方法如下:
8.1令i=1;
8.2更新特征点fi对应的模板边在tk+1时刻的位置,方法是:
8.2.1令j=1;
8.2.2定义符号F为与fi相对应的三维空间中的点,Pj为与模板点pj相对应的三维空间中的点,F和Pj均用三维坐标(x,y,z)的形式表示。将模板点pj使用齐次坐标形式表示,格式为(x,y,1),前两维分别表示pj在像素坐标系下的横坐标和纵坐标,于是如下方程成立:
在tk时刻,
在tk+1时刻,
其中K为事件相机的内参矩阵,为事件相机自带参数。R为从tk时刻到tk+1时刻事件相机的旋转矩阵,t为从tk时刻到tk+1时刻事件相机的平移向量,均通过获取到的IMU数据计算得到。为Pj在tk时刻相机坐标系下的深度、为Pj在tk+1时刻相机坐标系下的深度,为F在tk时刻相机坐标系下的深度、为F在tk+1时刻相机坐标系下的深度。
8.2.3将公式(10)中的两个等式相减,得到tk+1时刻模板点pj相对于fi的相对位置计算公式如下:
由于在像素坐标系下模板点pj在特征点fi的临近区域内,所以在空间中对应的点Pj和F同样相近,在该领域中,此类情况即可认为Pj和F在tk+1时刻的相机坐标系中具有相同的深度,即将公式(9)带入公式(11),并对公式(11)进行化简得到:
考虑pj和fi均为齐次坐标表示,进一步对公式(12)化简得到tk+1时刻模板点相对位置的公式为:
符号Nor()表示齐次化操作,即将括号内的坐标转化为齐次坐标。通过公式(13)得到更新后的tk+1时刻模板点pj相对于fi的相对位置按公式(14)得到tk+1时刻模板点pj的位置pj(tk+1),将pj(tk+1)放到tk+1时刻特征点fi周围模板边的位置集合
8.2.4令j=j+1;
8.2.5如果j≤mi,转8.2.2;否则表示得到了 放到tk+1时刻n个特征点周围模板边的位置集合PBDk+1中,转8.3;
8.3令i=i+1;
8.4若i≤n,转8.2;否则说明得到PBDk+1将PBDk+1发送给匹配模块,转第九步。
第九步,令k=k+1。
第十步,若k<N,转第四步;否则结束。
采用本发明可以达到以下技术效果:
1.本发明同时利用了DAVIS输出的图像帧和事件流两种数据信息,首先使用Harris角点检测法提取特征点并使用Canny边检测法提取边图,然后从事件流中选择空间时间窗口,并使用EM-ICP算法将窗口内的事件与边图上的模板点进行匹配,估计特征点的光流,进而通过光流跟踪特征点,这样的跟踪充分利用了图像帧中的边缘信息和又利用了事件流的异步性,在保证异步跟踪的同时,提高了特征点跟踪的精度。
2.在模板更新时,本发明使用IMU更新模板点的位置,在跟踪过程中提高了模板边的跟踪精度,从而提高了计算光流的准确性,进一步提高了特征点的跟踪精度。
本发明在苏黎世大学发布的事件相机数据集“The Event-Camera Dataset andSimulator”(事件相机数据集和模拟器)上进行了实验验证,并与Zhu等人提出的特征点跟踪方法、Kueng等人提出的方法做了对比实验,实验结果表明本发明不仅提高了特征点跟踪精度,且延长了特征点跟踪时间。
附图说明
图1为本发明总体流程图;
图2为本发明第一步构建的基于事件相机的特征点跟踪***逻辑结构图;
图3为本发明与现有跟踪方法平均跟踪精度误差对比实验结果;
图4为本发明与现有跟踪方法平均跟踪时间对比实验结果。
具体实施方式
图1为本发明总体流程图;如图1所示,本发明包括以下步骤:
第一步,构建基于事件相机的特征点跟踪***。事件相机的特征点跟踪***如图2所示,由数据获取模块、初始化模块、事件集选取模块、匹配模块、特征点更新模块、模板边更新模块组成。
数据获取模块与初始化模块、事件集选取模块、模板边更新模块相连。数据集获取模块从苏黎世大学的公开事件相机数据集“The Event-Camera Dataset and Simulator”上下载数据,并将获取到的图像帧发送给初始化模块,将事件流发送给事件集选取模块,将IMU数据发送给模板边更新模块。
初始化模块与数据获取模块、事件集选取模块、匹配模块相连。初始化模块从数据获取模块接收图像帧,从图像帧中提取特征点和边图,得到特征点的位置和特征点周围的模板边的位置,将特征点的位置发送给事件集选取模块,将特征点周围的模板边的位置发送给匹配模块。
事件集选取模块与数据获取模块、初始化模块、特征点更新模块、匹配模块相连,事件集选取模块从数据获取模块接收事件流,从初始化模块(第一次循环)或特征点更新模块(从第二次循环开始)接收特征点的位置,从特征点更新模块接收特征点的光流(从第二次循环开始),在每个特征点周围从事件流中选取特征点的事件集,将每个特征点的位置以及对应的事件集发送给匹配模块。
匹配模块与初始化模块、事件集选取模块、特征点更新模块、模板边更新模块相连,匹配模块从事件集选取模块接收特征点的位置以及每个特征点对应的事件集,从初始化模块(第一次循环)或模板边更新模块(从第二次循环开始)接收特征点周围的模板边的位置,将特征点的事件集与特征点周围的模板边进行匹配,求出每个特征点的光流,将每个特征点的位置、特征点周围的模板边的位置和特征点的光流发送给特征点更新模块。
特征点更新模块与匹配模块、模板边更新模块、事件集选取模块相连,特征点更新模块从匹配模块接收特征点的位置、特征点周围的模板边的位置、特征点的光流,利用特征点的光流计算特征点新的位置,将特征点周围的模板边的位置以及特征点新的位置发送给模板边更新模块,将特征点的光流和特征点新的位置发送给事件集选取模块,并将特征点新的位置(即特征点跟踪结果)输出,供用户查看。
模板边更新模块与数据获取模块、特征点更新模块、匹配模块相连,模板边更新模块从特征点更新模块接收特征点周围的模板边的位置和特征点新的位置,从数据获取模块接收IMU数据,通过IMU数据来更新特征点周围的模板边的位置,将模板边更新后的位置发送给匹配模块。
第二步,数据获取模块从事件相机数据集“The Event-Camera Dataset andSimulator”中获取图像帧、事件流和IMU数据。
第三步,采用基于事件相机的特征点跟踪***对从t0时刻开始到tN时刻结束的时间段内数据获取模块得到的事件流中的特征点进行跟踪。跟踪过程中将时间区间[t0,tN]分成一系列的子时间区间[t0,t1],...,[tk,tk+1],...,[tN-1,tN],第k+1个时间子区间表示为[tk,tk+1],N表示子时间区间个数,N的大小由事件流时间长度决定,取值范围为N≥1。跟踪过程如下:
3.1,令时间序号k=0;
3.2,初始化模块进行初始化操作,具体步骤如下:
3.2.1初始化模块采用Harris角点检测法从数据获取模块得到的图像帧中提取特征点,将提取到的特征点放到集合FD中,令FD为{f1,...,fi,...,fn},fi代表检测到的第i个特征点,n为特征点个数。将特征点的位置看做时间的函数,将t0时刻FD中n个特征点的位置放在特征点位置集合FD0中,FD0={f1(t0),...,fi(t0),...,fn(t0)},fi(t0)代表特征点fi在t0时刻的位置,将FD0发送给事件集选取模块。
3.2.2初始化模块使用Canny边检测法从数据获取模块得到的图像帧中提取边图,每个图像帧对应一个边图。
3.2.3初始化模块选取FD中n个特征点对应的模板边(由模板边上所有模板点的集合表示),将FD中n个特征点对应的t0时刻模板边的位置集合PBD0发送给匹配模块。方法如下:
3.2.3.1令i=1;
3.2.3.2以特征点fi在t0时刻的位置fi(t0)为中心,在fi(t0)周围选取一个矩形区域大小为s×s,即的长和宽均为s,s的范围为20到30个像素。将3.2.2检测到的边图中在内的边作为fi的模板边。模板边上的像素点即为fi的模板点。定义内的模板点的集合 也即fi对应的模板边,将放到模板边集合PB中:
pj为fi的第j个模板点。将pj的位置视作时间的函数,pj(t0)表示pj在t0时刻的位置。表示在t0时刻pj在矩形区域内。mi表示集合中模板点的个数。
3.2.3.3令i=i+1;
3.2.3.4若i≤n,转3.2.3.2;否则,表示得到了FD中n个特征点对应的模板边构成的模板边集合PB,定义中模板点在t0时刻的位置的集合令PB中n个模板边中模板点在t0时刻的位置集合将PBD0发送给匹配模块,转第四步。
第四步,事件集选取模块从数据获取模块接收事件流,根据不同的k值分别从初始化模块或特征点更新模块接收不同的数据,在n个特征点周围从事件流中选取特征点的事件集S,将FDk和特征点的事件集S发送给匹配模块,方法是:
4.1若k=0,事件集选取模块从数据获取模块接收事件流,从初始化模块接收tk时刻n个特征点的位置集合FD0,令t1=t0+1,单位为秒,转4.3;
4.2若k≥1,事件集选取模块从数据获取模块接收事件流,从特征点更新模块接收tk时刻n个特征点的位置集合FDk和tk-1时刻n个特征点的光流集合Gk-1其中表示tk-1时刻特征点fi的光流,预估子时间区间[tk,tk+1]的大小,根据公式(2)计算tk+1
其中表示在子时间区间[tk-1,tk]上特征点fi的光流,从特征点更新模块得到。表示在子时间区间[tk-1,tk]上所有特征点的平均光流。通过公式(2)计算tk+1的物理意义在于,上一时间区间内的特征点平均运动3个像素需要的时间作为当前区间[tk,tk+1]大小的预估值。转4.3;
4.3在tk时刻n个特征点的位置集合FDk中每个位置的周围选取每个特征点对应的事件集。
4.3.1令i=1;
4.3.2从事件流中选出符合公式(3)要求的事件,将这些事件放到特征点fi在tk时刻对应的事件集中,并将放到事件集S中:
表示在一个三维时空区域内的事件的集合,空间范围为特征点fi在tk时刻的位置fi(tk)周围的矩形区域时间范围为区间[tk,tk+1]。ed代表中的第d个事件,d={1,2,...,zi},zi表示内事件的个数。事件ed的表示形式为xd表示事件ed在像素坐标系中的坐标,表示事件ed发生的时间,表示ed的像素坐标在内。
4.3.3令i=i+1;
4.3.4若i≤n,转4.3.2;否则,说明得到了tk时刻FD中n个特征点对应的事件集S,并将FDk和S发送给匹配模块,转第五步。
第五步,匹配模块从事件集选取模块接收FDk和S,若k=0,从初始化模块接收n个特征点对应的模板边的位置集合PBDk,转第六步;若k≥1,从模板边更新模块接收n个特征点对应的模板边的位置集合PBDk,转第六步;
第六步,匹配模块将S与特征点周围的模板边进行匹配,求出tk时刻n个特征点的光流集合Gk,将n个特征点的位置集合FDk、n个特征点对应的模板边的位置集合PBDk和光流集合Gk发送给特征点更新模块。具体方法为:
6.1令i=1;
6.2对特征点fi构造匹配误差函数:
对于内的事件ed,修正事件ed在tk时刻的位置,公式如下:
x′d表示计算得到的事件ed在tk时刻的位置,简称为事件ed运动修正的位置,表示在时间区间[tk,tk+1]上特征点fi的光流。符号·表示点乘,下文中出现该符号的地方均表示点乘,在不引起歧义的情况下,下文中部分公式对该符号做了省略。为了表示方便,定义符号
构造匹配误差函数如下:
ε表示误差,pj(tk)代表tk时刻模板点pj的位置。rdj表示ed由模板点pj生成的概率,即ed与pj匹配的概率。这里将rdj作为权重,rdj为事件ed与模板点pj相匹配的概率,rdj的计算公式如下:
6.3采用EM-ICP算法最小化6.2步构造得到的匹配误差函数,求解得到最优的光流求解过程如下:
6.3.1初始化
6.3.2通过公式(6)计算rdj
6.3.3更新光流:
6.3.4计算光流的变化量并令放到tk时刻光流集合Gk中。
6.3.5若表示得到最终的优化结果转6.4;若转6.3.2。σ为光流的变化量阈值,取值范围为0.01到0.1,单位为像素每秒。
6.4令i=i+1;
6.5若i≤n,转6.2;否则说明得到了tk时刻n个特征点的光流,即得到了tk时刻光流集合Gk将FDk、PBDk和Gk发送给特征点更新模块,转第七步。
第七步,特征点更新模块从匹配模块接收tk时刻n个特征点的位置集合FDk、tk时刻n个特征点对应的模板边的位置集合PBDk和n个特征点的光流集合Gk,通过光流计算tk+1时刻n个特征点的位置集合FDk+1,将Gk和FDk+1发送给事件集选取模块,将FDk+1和PBDk发送给模板边更新模块。方法是:
7.1令i=1;
7.2计算tk+1时刻fi的位置fi(tk+1),将fi(tk+1)放到集合FDk+1中,
为光流与时间相乘,表示从tk时刻到tk+1时刻特征点fi运动距离。
7.3令i=i+1;
7.4若i≤n,转7.2;否则说明得到了tk+1时刻n个特征点的位置,并得到集合FDk+1,FDk+1={f1(tk+1),...,fi(tk+1),...,fn(tk+1)}。将Gk和FDk+1发送给事件集选取模块,将FDk+1和PBDk发送给模板边更新模块;并将tk+1时刻n个特征点的位置集合FDk+1进行显示或存储到结果文件中供用户查看,转第八步。
第八步,模板边更新模块从数据获取模块接收IMU数据,从特征点更新模块接收tk+1时刻n个特征点的位置集合FDk+1和tk时刻特征点周围模板边的位置集合PBDk,使用IMU数据对PBDk中的位置进行更新,得到tk+1时刻n个特征点对应的模板边的位置集合PBDk+1,将PBDk+1发送给匹配模块,。具体方法如下:
8.1令i=1;
8.2更新特征点fi对应的模板边在tk+1时刻的位置,方法是:
8.2.1令j=1;
8.2.2定义符号F为与fi相对应的三维空间中的点,Pj为与模板点pj相对应的三维空间中的点,F和Pj均用三维坐标(x,y,z)的形式表示。将模板点pj使用齐次坐标形式表示,格式为(x,y,1),前两维分别表示pj在像素坐标系下的横坐标和纵坐标,于是如下方程成立:
在tk时刻,
在tk+1时刻,
其中K为事件相机的内参矩阵,为事件相机自带参数。R为从tk时刻到tk+1时刻事件相机的旋转矩阵,t为从tk时刻到tk+1时刻事件相机的平移向量,均通过获取到的IMU数据计算得到。为Pj在tk时刻相机坐标系下的深度、为Pj在tk+1时刻相机坐标系下的深度,为F在tk时刻相机坐标系下的深度、为F在tk+1时刻相机坐标系下的深度。
8.2.3将公式(10)中的两个等式相减,得到tk+1时刻模板点pj相对于fi的相对位置计算公式如下:
由于在像素坐标系下模板点pj在特征点fi的临近区域内,所以在空间中对应的点Pj和F同样相近,在该领域中,此类情况即可认为Pj和F在tk+1时刻的相机坐标系中具有相同的深度,即将公式(9)带入公式(11),并对公式(11)进行化简得到:
考虑pj和fi均为齐次坐标表示,进一步对公式(12)化简得到tk+1时刻模板点相对位置的公式为:
符号Nor()表示齐次化操作,即将括号内的坐标转化为齐次坐标。通过公式(13)得到更新后的tk+1时刻模板点pj相对于fi的相对位置按公式(14)得到tk+1时刻模板点pj的位置pj(tk+1),将pj(tk+1)放到tk+1时刻特征点fi周围模板边的位置集合
8.2.4令j=j+1;
8.2.5如果j≤mi,转8.2.2;否则表示得到了 放到tk+1时刻n个特征点周围模板边的位置集合PBDk+1中,转8.3;
8.3令i=i+1;
8.4若i≤n,转8.2;否则说明得到PBDk+1将PBDk+1发送给匹配模块,转第九步。
第九步,令k=k+1。
第十步,若k<N,转第四步;否则结束。
图3为本发明与现有跟踪方法平均跟踪精度误差对比实验结果;该实验结果为在“The Event-Camera Dataset and Simulator”数据集上采用本发明进行测试得到的结果。实验环境为一台配置为i7 2.8GHz CPU、8G RAM的笔记本。该实验的评价指标为特征点的平均跟踪误差,单位为像素。图中左侧为该数据集中数据序列的名称,右侧上方为特征点的平均跟踪误差。图中三列实验数据分别为本发明、Zhu等人的方法、Kueng等人的方法在相同的测试数据序列、同样的实验环境下测试的结果。实验结果显示,与其它两个方法相比,本发明在所有测试数据序列上都具有更低的平均跟踪误差。图中“×”表示无数据。
图4为本发明与现有跟踪方法平均跟踪时间对比实验结果。该实验与图3对应的实验的测试数据集和实验环境相同。该实验的评价指标为特征点的平均跟踪时间,单位为秒。图中左侧为该数据集中数据序列的名称,右侧上方为特征点的平均跟踪时间。图中三列实验数据分别为本***、Zhu等人的***、Kueng等人的***在相同的测试数据系列、同样的实验环境下测试的结果。实验结果显示,与其它两个方法相比,本发明在除数据序列“boxes_translation”和“boxes_6dof”之外的其他数据序列上,均能够实现更长时间的跟踪。

Claims (5)

1.一种基于事件相机的特征点跟踪方法,其特征在于包括以下步骤:
第一步,构建基于事件相机的特征点跟踪***,事件相机的特征点跟踪***由数据获取模块、初始化模块、事件集选取模块、匹配模块、特征点更新模块、模板边更新模块组成;
数据获取模块与初始化模块、事件集选取模块、模板边更新模块相连;数据集获取模块从事件相机数据集上下载数据,将获取到的图像帧发送给初始化模块,将事件流发送给事件集选取模块,将IMU数据即惯性测量单元数据发送给模板边更新模块;
初始化模块与数据获取模块、事件集选取模块、匹配模块相连;初始化模块从数据获取模块接收图像帧,从图像帧中提取特征点和边图,得到特征点的位置和特征点周围的模板边的位置,将特征点的位置发送给事件集选取模块,将特征点周围的模板边的位置发送给匹配模块;
事件集选取模块与数据获取模块、初始化模块、特征点更新模块、匹配模块相连,事件集选取模块从数据获取模块接收事件流,从初始化模块或特征点更新模块接收特征点的位置,从特征点更新模块接收特征点的光流,在每个特征点周围从事件流中选取特征点的事件集,将每个特征点的位置以及对应的事件集发送给匹配模块;
匹配模块与初始化模块、事件集选取模块、特征点更新模块、模板边更新模块相连,匹配模块从事件集选取模块接收特征点的位置以及每个特征点对应的事件集,从初始化模块或模板边更新模块接收特征点周围的模板边的位置,将特征点的事件集与特征点周围的模板边进行匹配,求出每个特征点的光流,将每个特征点的位置、特征点周围的模板边的位置和特征点的光流发送给特征点更新模块。
特征点更新模块与匹配模块、模板边更新模块、事件集选取模块相连,特征点更新模块从匹配模块接收特征点的位置、特征点周围的模板边的位置、特征点的光流,利用特征点的光流计算特征点新的位置,将特征点周围的模板边的位置以及特征点新的位置发送给模板边更新模块,将特征点的光流和特征点新的位置发送给事件集选取模块,并将特征点新的位置输出;
模板边更新模块与数据获取模块、特征点更新模块、匹配模块相连,模板边更新模块从特征点更新模块接收特征点周围的模板边的位置和特征点新的位置,从数据获取模块接收IMU数据,通过IMU数据来更新特征点周围的模板边的位置,将模板边更新后的位置发送给匹配模块;
第二步,数据获取模块从事件相机数据集中获取图像帧、事件流和IMU数据;
第三步,采用基于事件相机的特征点跟踪***对从t0时刻开始到tN时刻结束的时间段内数据获取模块得到的事件流中的特征点进行跟踪,将时间区间[t0,tN]分成一系列的子时间区间[t0,t1],...,[tk,tk+1],...,[tN-1,tN],N表示子时间区间个数,N的大小由事件流时间长度决定,取值范围为N≥1;第k+1个时间子区间表示为[tk,tk+1];跟踪过程如下:
3.1,令时间序号k=0;
3.2,若k=0,初始化模块进行初始化操作,方法为:
3.2.1初始化模块采用Harris角点检测法从数据获取模块得到的图像帧中提取特征点,将提取到的特征点放到集合FD中,令FD为{f0,...,fi,...,fn},fi代表检测到的第i个特征点,n为特征点个数;将特征点的位置看做时间的函数,将t0时刻FD中n个特征点的位置放在特征点位置集合FD0中,FD0={f0(t0),...,fi(t0),...,fn(t0)},fi(t0)代表特征点fi在t0时刻的位置,将FD0发送给事件集选取模块;
3.2.2初始化模块使用Canny边检测法从数据获取模块得到的图像帧中提取边图,每个图像帧对应一个边图;
3.2.3初始化模块选取FD中n个特征点对应的模板边,将FD中n个特征点对应的t0时刻模板边的位置集合PBD0发送给匹配模块,方法为:
3.2.3.1令i=1;
3.2.3.2以特征点fi在t0时刻的位置fi(t0)为中心,在fi(t0)周围选取一个矩形区域大小为s×s,即该矩形的长和宽均为s;将3.2.2检测到的边图中在内的边作为fi的模板边,模板边上的像素点即为fi的模板点;定义内的模板点的集合 也即fi对应的模板边,将放到模板边集合PB中,
pj为fi的第j个模板点,将pj的位置视作时间的函数,pj(t0)表示pj在t0时刻的位置,表示在t0时刻pj在矩形区域内,mi表示中模板点的个数;
3.2.3.3令i=i+1;
3.2.3.4若i≤n,转3.2.3.2;否则,表示得到了FD中n个特征点对应的模板边构成的模板边集合PB,定义中模板点在t0时刻的位置的集合令PB中n个模板边中模板点在t0时刻的位置集合将PBD0发送给匹配模块,转第四步;
第四步,事件集选取模块从数据获取模块接收事件流,根据不同的k值分别从初始化模块或特征点更新模块接收不同的数据,在n个特征点周围从事件流中选取特征点的事件集S,将FDk和特征点的事件集S发送给匹配模块,方法是:
4.1若k=0,事件集选取模块从数据获取模块接收事件流,从初始化模块接收tk时刻n个特征点的位置集合FD0,令t1=t0+1,单位为秒,转4.3;
4.2若k≥1,事件集选取模块从数据获取模块接收事件流,从特征点更新模块接收tk时刻n个特征点的位置集合FDk和tk-1时刻n个特征点的光流集合Gk-1其中表示tk-1时刻特征点fi的光流,预估子时间区间[tk,tk+1]的大小,根据公式(2)计算tk+1
其中表示在子时间区间[tk-1,tk]上特征点fi的光流;表示在子时间区间[tk-1,tk]上所有特征点的平均光流,转4.3;
4.3在tk时刻n个特征点的位置集合FDk中每个位置的周围选取每个特征点对应的事件集,方法是:
4.3.1令i=1;
4.3.2从事件流中选出符合公式(3)要求的事件,将这些事件放到特征点fi在tk时刻对应的事件集中,并将放到事件集S中:
表示在一个三维时空区域内的事件的集合,空间范围为特征点fi在tk时刻的位置fi(tk)周围的矩形区域时间范围为区间[tk,tk+1];ed代表中的第d个事件,d={1,2,...,zi},zi表示内事件的个数;xd表示事件ed在像素坐标系中的坐标,表示事件ed发生的时间,表示ed的像素坐标在内;
4.3.3令i=i+1;
4.3.4若i≤n,转4.3.2;否则,说明得到了tk时刻FD中n个特征点对应的事件集S,将FDk和S发送给匹配模块,转第五步;
第五步,匹配模块从事件集选取模块接收FDk和S,若k=0,从初始化模块接收n个特征点对应的模板边的位置集合PBDk,转第六步;若k≥1,从模板边更新模块接收n个特征点对应的模板边的位置集合PBDk,转第六步;
第六步,匹配模块将S与特征点周围的模板边进行匹配,求出tk时刻n个特征点的光流集合Gk,将n个特征点的位置集合FDk、n个特征点对应的模板边的位置集合PBDk和光流集合Gk发送给特征点更新模块,具体方法为:
6.1令i=1;
6.2对特征点fi构造匹配误差函数,方法是:
按公式(4)修正事件ed在tk时刻的位置:
x′d表示计算得到的事件ed在tk时刻的位置,简称为事件ed运动修正的位置,表示在时间区间[tk,tk+1]上特征点fi的光流;符号·表示点乘,定义符号
构造匹配误差函数如下:
ε表示误差,pj(tk)代表tk时刻模板点pj的位置;rdj表示ed由模板点pj生成的概率,即ed与pj匹配的概率;rdj为事件ed与模板点pj相匹配的概率,公式中双竖线表示对双竖线内的向量进行取模操作,rdj的计算公式如下:
6.3采用EM-ICP算法最小化匹配误差函数,求解得到最优的光流方法是:
6.3.1初始化
6.3.2通过公式(6)计算rdj
6.3.3更新光流:
6.3.4计算光流的变化量并令放到tk时刻光流集合Gk中;
6.3.5若表示得到最终的优化结果转6.4;若转6.3.2;σ为光流的变化量阈值;
6.4令i=i+1;
6.5若i≤n,转6.2;否则说明得到了tk时刻光流集合Gk,转将FDk、PBDk和Gk发送给特征点更新模块,转第七步;
第七步,特征点更新模块从匹配模块接收FDk、PBDk和Gk,通过光流计算tk+1时刻n个特征点的位置集合FDk+1,将Gk和FDk+1发送给事件集选取模块,将FDk+1和PBDk发送给模板边更新模块,方法是:
7.1令i=1;
7.2计算tk+1时刻fi的位置fi(tk+1),将fi(tk+1)放到集合FDk+1中,
为光流与时间相乘,表示从tk时刻到tk+1时刻特征点fi运动距离;
7.3令i=i+1;
7.4若i≤n,转7.2;否则说明得到了tk+1时刻n个特征点的位置,并得到集合FDk+1,FDk+1={f1(tk+1),...,fi(tk+1),...,fn(tk+1)};将Gk和FDk+1发送给事件集选取模块,将FDk+1和PBDk发送给模板边更新模块;并将tk+1时刻n个特征点的位置集合FDk+1进行显示或存储到结果文件中,转第八步;
第八步,模板边更新模块从数据获取模块接收IMU数据,从特征点更新模块接收FDk+1和PBDk,使用IMU数据对PBDk中的位置进行更新,得到tk+1时刻n个特征点对应的模板边的位置集合PBDk+1,将PBDk+1发送给匹配模块,方法如下:
8.1令i=1;
8.2更新特征点fi对应的模板边在tk+1时刻的位置,方法是:
8.2.1令j=1;
8.2.2定义符号F为与fi相对应的三维空间中的点,Pj为与模板点pj相对应的三维空间中的点,F和Pj均用三维坐标(x,y,z)的形式表示;将模板点pj使用齐次坐标形式表示,格式为(x,y,1),前两维分别表示pj在像素坐标系下的横坐标和纵坐标,得到如下方程:
在tk时刻,
在tk+1时刻,
其中K为事件相机的内参矩阵,为事件相机自带参数;R为从tk时刻到tk+1时刻事件相机的旋转矩阵,t为从tk时刻到tk+1时刻事件相机的平移向量,均通过获取到的IMU数据计算得到;为Pj在tk时刻相机坐标系下的深度、为Pj在tk+1时刻相机坐标系下的深度,为F在tk时刻相机坐标系下的深度、为F在tk+1时刻相机坐标系下的深度;
8.2.3将公式(10)中的两个等式相减,得到tk+1时刻模板点pj相对于fi的相对位置
Pj和F在tk+1时刻的相机坐标系中具有相同的深度,即将公式(9)带入公式(11),并对公式(11)进行化简得到:
对公式(12)化简得到tk+1时刻模板点相对位置的公式为:
符号Nor()表示齐次化操作,即将括号内的坐标转化为齐次坐标;按公式(14)得到tk+1时刻模板点pj的位置pj(tk+1),将pj(tk+1)放到tk+1时刻特征点fi周围模板边的位置集合
8.2.4令j=j+1;
8.2.5如果j≤mi,转8.2.2;否则表示得到了 放到tk+1时刻n个特征点周围模板边的位置集合PBDk+1中,转8.3;
8.3令i=i+1;
8.4若i≤n,转8.2;否则说明得到PBDk+1将PBDk+1发送给匹配模块,转第九步;
第九步,令k=k+1;
第十步,若k<N,转第四步;否则结束。
2.如权利要求1所述的一种基于事件相机的特征点跟踪方法,其特征在于所述事件相机数据集指由DAVIS采集的“事件相机数据集和模拟器”即“The Event-Camera Datasetand Simulator”,事件相机数据集中包括图像帧、事件流和IMU数据;DAVIS指动态和主动式像素传感器。
3.如权利要求1所述的一种基于事件相机的特征点跟踪方法,其特征在于所述模板边由模板边上所有模板点的集合表示。
4.如权利要求1所述的一种基于事件相机的特征点跟踪方法,其特征在于3.2.3.2步所述s的范围为20到30个像素。
5.如权利要求1所述的一种基于事件相机的特征点跟踪方法,其特征在于6.3.5步所述σ的取值范围为0.01到0.1,单位为像素每秒。
CN201910672162.2A 2019-07-24 2019-07-24 一种基于事件相机的特征点跟踪方法 Active CN110390685B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910672162.2A CN110390685B (zh) 2019-07-24 2019-07-24 一种基于事件相机的特征点跟踪方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910672162.2A CN110390685B (zh) 2019-07-24 2019-07-24 一种基于事件相机的特征点跟踪方法

Publications (2)

Publication Number Publication Date
CN110390685A true CN110390685A (zh) 2019-10-29
CN110390685B CN110390685B (zh) 2021-03-09

Family

ID=68287327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910672162.2A Active CN110390685B (zh) 2019-07-24 2019-07-24 一种基于事件相机的特征点跟踪方法

Country Status (1)

Country Link
CN (1) CN110390685B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111062337A (zh) * 2019-12-19 2020-04-24 北京迈格威科技有限公司 人流方向检测方法及装置、存储介质和电子设备
CN113066104A (zh) * 2021-03-25 2021-07-02 三星(中国)半导体有限公司 角点检测方法和角点检测装置
CN113160218A (zh) * 2021-05-12 2021-07-23 深圳龙岗智能视听研究院 一种基于事件相机的检测物体运动强度的方法
CN113506321A (zh) * 2021-07-15 2021-10-15 清华大学 图像处理方法及装置、电子设备和存储介质
WO2023061187A1 (zh) * 2021-10-14 2023-04-20 华为技术有限公司 一种光流估计方法和装置
CN116188533A (zh) * 2023-04-23 2023-05-30 深圳时识科技有限公司 特征点跟踪方法与装置、电子设备
CN113506321B (zh) * 2021-07-15 2024-07-16 清华大学 图像处理方法及装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107808407A (zh) * 2017-10-16 2018-03-16 亿航智能设备(广州)有限公司 基于双目相机的无人机视觉slam方法、无人机及存储介质
US20190065885A1 (en) * 2017-08-29 2019-02-28 Beijing Samsung Telecom R&D Center Object detection method and system
CN109697726A (zh) * 2019-01-09 2019-04-30 厦门大学 一种基于事件相机的端对端目标运动估计方法
WO2019099337A1 (en) * 2017-11-14 2019-05-23 Kaban Technologies Llc Event camera-based deformable object tracking
CN109934862A (zh) * 2019-02-22 2019-06-25 上海大学 一种点线特征结合的双目视觉slam方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190065885A1 (en) * 2017-08-29 2019-02-28 Beijing Samsung Telecom R&D Center Object detection method and system
CN107808407A (zh) * 2017-10-16 2018-03-16 亿航智能设备(广州)有限公司 基于双目相机的无人机视觉slam方法、无人机及存储介质
WO2019099337A1 (en) * 2017-11-14 2019-05-23 Kaban Technologies Llc Event camera-based deformable object tracking
CN109697726A (zh) * 2019-01-09 2019-04-30 厦门大学 一种基于事件相机的端对端目标运动估计方法
CN109934862A (zh) * 2019-02-22 2019-06-25 上海大学 一种点线特征结合的双目视觉slam方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ALEX ZIHAO ZHU ET AL.: "Event-based feature tracking with probabilistic data association", 《2017 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA)》 *
BEAT KUENG ET AL.: "Low-latency visual odometry using event-based feature tracks", 《2016 IEEE/RSJ INTERNATIONAL CONFERENCE ON INTELLIGENT ROBOTS AND SYSTEMS (IROS)》 *
IGNACIO ALZUGARAY ET AL.: "Asynchronous Corner Detection and Tracking for Event Cameras in Real Time", 《IEEE ROBOTICS AND AUTOMATION LETTERS 》 *
谢榛: "基于无人机视觉的场景感知方法研究", 《中国博士学位论文全文数据库 工程科技Ⅱ辑》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111062337A (zh) * 2019-12-19 2020-04-24 北京迈格威科技有限公司 人流方向检测方法及装置、存储介质和电子设备
CN111062337B (zh) * 2019-12-19 2023-08-04 北京迈格威科技有限公司 人流方向检测方法及装置、存储介质和电子设备
CN113066104A (zh) * 2021-03-25 2021-07-02 三星(中国)半导体有限公司 角点检测方法和角点检测装置
CN113066104B (zh) * 2021-03-25 2024-04-19 三星(中国)半导体有限公司 角点检测方法和角点检测装置
CN113160218A (zh) * 2021-05-12 2021-07-23 深圳龙岗智能视听研究院 一种基于事件相机的检测物体运动强度的方法
CN113160218B (zh) * 2021-05-12 2023-06-20 深圳龙岗智能视听研究院 一种基于事件相机的检测物体运动强度的方法
CN113506321A (zh) * 2021-07-15 2021-10-15 清华大学 图像处理方法及装置、电子设备和存储介质
CN113506321B (zh) * 2021-07-15 2024-07-16 清华大学 图像处理方法及装置、电子设备和存储介质
WO2023061187A1 (zh) * 2021-10-14 2023-04-20 华为技术有限公司 一种光流估计方法和装置
CN116188533A (zh) * 2023-04-23 2023-05-30 深圳时识科技有限公司 特征点跟踪方法与装置、电子设备
CN116188533B (zh) * 2023-04-23 2023-08-08 深圳时识科技有限公司 特征点跟踪方法与装置、电子设备

Also Published As

Publication number Publication date
CN110390685B (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN110390685A (zh) 一种基于事件相机的特征点跟踪方法
CN110223348B (zh) 基于rgb-d相机的机器人场景自适应位姿估计方法
CN109387204B (zh) 面向室内动态环境的移动机器人同步定位与构图方法
CN108416840B (zh) 一种基于单目相机的三维场景稠密重建方法
CN112634451B (zh) 一种融合多传感器的室外大场景三维建图方法
Cvišić et al. Stereo odometry based on careful feature selection and tracking
CN108682027A (zh) 基于点、线特征融合的vSLAM实现方法及***
CN111862213A (zh) 定位方法及装置、电子设备、计算机可读存储介质
CN113108771B (zh) 一种基于闭环直接稀疏视觉里程计的移动位姿估计方法
CN107067410B (zh) 一种基于增广样本的流形正则化相关滤波目标跟踪方法
CN108615246A (zh) 提高视觉里程计***鲁棒性和降低算法计算消耗的方法
CN111882602B (zh) 基于orb特征点和gms匹配过滤器的视觉里程计实现方法
Fanani et al. Predictive monocular odometry (PMO): What is possible without RANSAC and multiframe bundle adjustment?
CN112767546B (zh) 移动机器人基于双目图像的视觉地图生成方法
CN111998862A (zh) 一种基于bnn的稠密双目slam方法
CN106709870A (zh) 一种近景影像直线段匹配方法
CN114494150A (zh) 一种基于半直接法的单目视觉里程计的设计方法
CN115471748A (zh) 一种面向动态环境的单目视觉slam方法
CN113362377B (zh) 一种基于单目相机的vo加权优化方法
Singh et al. Fusing semantics and motion state detection for robust visual SLAM
CN117870659A (zh) 基于点线特征的视觉惯性组合导航算法
CN108765326A (zh) 一种同步定位与地图构建方法及装置
Jo et al. Mixture density-PoseNet and its application to monocular camera-based global localization
Xie et al. Hierarchical quadtree feature optical flow tracking based sparse pose-graph visual-inertial SLAM
CN109816709B (zh) 基于单目摄像头的深度估计方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant