机器人 2022, Vol. 44 Issue (5): 613-625  
0
引用本文
孔德磊, 方正, 李昊佳, 侯宽旭, 姜俊杰. 基于事件的端到端视觉位置识别弱监督网络架构[J]. 机器人, 2022, 44(5): 613-625.  
KONG Delei, FANG Zheng, LI Haojia, HOU Kuanxu, JIANG Junjie. An End-to-End Weakly Supervised Network Architecture for Event-based Visual Place~Recognition[J]. ROBOT, 2022, 44(5): 613-625.  

基于事件的端到端视觉位置识别弱监督网络架构
孔德磊1,2 , 方正1 , 李昊佳1 , 侯宽旭1 , 姜俊杰1     
1. 东北大学机器人科学与工程学院, 辽宁 沈阳 110169;
2. 近地面探测技术重点实验室, 江苏 无锡 214000
摘要:传统的视觉位置识别(VPR)方法通常使用基于图像帧的相机,存在剧烈光照变化、快速运动等易导致VPR失败的问题。针对上述问题,本文提出了一种使用事件相机的端到端VPR网络,可以在具有挑战性的环境中实现良好的VPR性能。所提出算法的核心思想是,首先采用事件脉冲张量(EST)体素网格对事件流进行表征,然后利用深度残差网络进行特征提取,最后采用改进的局部聚合描述子向量(VLAD)网络进行特征聚合,最终实现基于事件流的端到端VPR。将该方法在基于事件的驾驶数据集(MVSEC、DDD17)和人工合成的事件流数据集(Oxford RobotCar)上与典型的基于图像帧的视觉位置识别方法进行了比较实验。结果表明,在具有挑战性的场景(例如夜晚场景)中,本文方法的性能优于基于图像帧的视觉位置识别方法,其Recall@1指标提升约6.61%。据我们所知,针对视觉位置识别任务,这是首个直接处理事件流数据的端到端弱监督深度网络架构。
关键词视觉位置识别(VPR)    事件相机    事件脉冲张量(EST)    深度残差网络    三元组排序损失    
中图分类号:TP24            文献标志码:A            文章编号:1002-0446(2022)-05-0613-13
An End-to-End Weakly Supervised Network Architecture for Event-based Visual Place~Recognition
KONG Delei1,2 , FANG Zheng1 , LI Haojia1 , HOU Kuanxu1 , JIANG Junjie1     
1. Faculty of Robot Science and Engineering, Northeastern University, Shenyang 110169, China;
2. Science and Technology on Near-Surface Detection Laboratory, Wuxi 214000, China
Abstract: Frame-based cameras are generally used in traditional visual place recognition (VPR) methods, which often causes failure of VPR in the cases of dramatic illumination changes or fast motion. To overcome this, an end-to-end VPR network using event cameras is proposed, which can achieve good VPR performance in challenging environments. The key idea of the proposed algorithm is to firstly characterize the event streams with the event spike tensor (EST) voxel grid, then extract features using a deep residual network, and finally aggregate features using an improved VLAD (vector of locally aggregated descriptor) network to realize end-to-end VPR using event streams. Comparison experiments among the proposed method and classical VPR methods are carried out on the event-based driving datasets (MVSEC, DDD17) and the synthetic event stream datasets (Oxford RobotCar). As results, the performance of the proposed method is better than that of frame-based VPR methods in challenging scenarios (such as night scenes), with an approximately 6.61% improvement in Recall@1 index. To our knowledge, for visual place recognition task, this is the first end-to-end weakly supervised deep network architecture that directly processes event stream data.
Keywords: visual place recognition (VPR)    event camera    event spike tensor (EST)    deep residual network    triplet ranking loss    

1 引言(Introduction)

视觉位置识别(VPR)[1-2]是计算机视觉和移动机器人领域中一个非常具有挑战性的问题。在计算机视觉领域,视觉位置识别技术可以在构建好的带有地理信息标注的大规模图像数据库中进行视觉信息检索和跨时间的位置信息检索,或者服务于增强现实(AR)等交互式3D视觉应用场景。在移动机器人领域,机器人在无GPS环境中进行视觉位置识别的能力是自主定位和导航的核心能力之一。在同时定位与建图(SLAM)技术中,视觉位置识别是回环检测(loop closure)[3-4]的重要组成部分,可用于检测候选闭环并通过全局优化来消除累积误差,从而实现全局一致的位姿估计和建图。此外,视觉位置识别还可以在构建好的环境地图中进行精确视觉定位,可广泛应用于自动驾驶汽车、服务机器人等应用。

目前已经有许多方案来解决移动机器人的大规模视觉位置识别问题。在传感器方面,这些方案普遍使用单目、双目、全景相机等基于图像帧的视觉传感器,具有对光照变化敏感、易产生运动模糊和冗余信息较多等缺点,使得传统视觉位置识别方法难以处理一些挑战性环境中的识别任务。在算法原理方面,这些方案大多数是基于场景外观的(appearance-based)方法[5],但在昼夜、天气和季节变化等的影响下,同一个位置的外观在不同时间会发生巨大变化,加上一些位置遥远的场景外观可能十分相似,这些情况对现有的基于图像帧的大规模位置识别方法提出了挑战。

不同于传统的基于图像帧的视觉位置识别方法,本文提出了一种基于事件相机的视觉位置识别方法。事件相机(event camera)是一种新颖的受生物视网膜启发的神经形态视觉传感器,并以完全不同于帧相机的方式工作:它采用地址事件表示(address-event representation,AER)方法,并以微秒级分辨率触发像素级亮度变化(称为“事件”),输出不同于图像帧的稀疏异步事件流[6-7]。事件相机具有低延迟、高时间分辨率、低带宽、低功耗、高动态范围等优势,可以有效地克服传统基于图像帧的视觉位置识别方法存在的问题。为了利用事件相机实现鲁棒的视觉位置识别,本文首次提出了一种基于事件相机的端到端视觉位置识别弱监督网络架构。如图 1所示,其关键思想是将VLAD应用于由事件流生成的EST体素网格表征。据我们所知,这是第一个使用事件相机的端到端视觉位置识别方法。在不同天气、不同场景的多个数据集上的实验结果表明,所提出的方法优于基于图像帧的视觉位置识别方法,能够在一定程度上克服视觉位置识别中存在的大尺度场景、高动态范围和长期适应性等挑战性问题。

图 1 基于事件的端到端视觉位置识别网络架构概观。对于给定的查询事件流片段,选取其对应的阳性事件流片段和阴性事件流片段,并通过三元组排序损失训练网络模型,以学习事件流片段的全局描述子向量 Fig.1 Overview of the event-based end-to-end VPR network architecture. For a given event bin of query, the corresponding positive and negative event bins are selected. Then the network model is trained through the triplet ranking loss, to learn the global descriptor vectors of the event bins

本文的主要创新点和贡献如下:

(1) 提出了一种基于事件相机的端到端视觉位置识别弱监督网络算法流程,该算法流程直接使用事件流作为输入,能够有效地进行视觉位置识别;

(2) 在多个基于事件的驾驶数据集上,针对该方法和典型的基于图像帧的方法在不同天气、季节和环境等大规模场景序列中进行了全面、直观的比较,来评估视觉位置识别方法的性能;

(3) 对比了多种不同事件表征、不同网络结构和不同弱监督损失函数对网络整体性能的影响,以说明该方法各个部分的作用和优势;

(4) 在增加的扩展实验中,使用自动驾驶仿真器录制了几组事件流序列,探究了载体的行驶速度变化对视觉位置识别准确率的影响。

2 相关工作(Related work)

视觉传感器的成本低、功耗低,并且能提供丰富的场景信息,正日益成为位置识别的主要传感器类型。目前流行的大规模视觉位置识别方案普遍采用基于图像帧的(frame-based)视觉传感器[1-2]和基于场景外观的方法[5],来实现大规模的位置识别。在这种情况下,一般可以将视觉位置识别问题转化为带有地理信息标注的(geo-tagged)大规模图像检索问题,并通过匹配相同位置的图像来解决位置识别任务。关于如何更好地表征和匹配相同位置的图像,已经进行了广泛的研究[1-2]。这些方法通常采用传统的稀疏特征提取技术(例如SIFT(尺度不变特征变换)[8]、ORB(oriented FAST and rotated BRIEF)[9]等),以及典型的局部聚合描述子技术(例如词袋模型BoW[3-4]、VLAD[10-11]等),来建立图像特征的高阶统计模型。一个典型的工作是DenseVLAD[12],它使用SIFT从图像中提取密集的特征描述,并使用VLAD进行特征聚合。随着深度学习的兴起,一些工作开始使用现成的(off-the-shelf)卷积神经网络(例如OverFeat、VGGNet和AlexNet[13-14]等)作为可训练的特征提取器,还有一些工作将VLAD改进为一种可训练的池化层(例如NetVLAD[15]等),用来得到图像的描述子向量作为紧凑的图像表征。在检索和匹配环节中,基于序列的(sequence-based)匹配技术是一种受到广泛认可的匹配方法,典型的工作是SeqSLAM方法[16],它通过搜索高度相似的序列片段进行视觉位置识别。近年来,研究者们开始试图从不同方面进一步改进识别性能。例如,一些基于场景结构的(structure-based)方法,主要利用场景的重复边缘、半稠密地图等结构信息进行位置识别[5, 17-18]。也有一些工作采用基于场景语义的(semantic-based)方法进行视觉位置识别,主要利用场景中的路标、文本、物体等语义信息[19-21]

虽然传统的基于图像帧的视觉位置识别技术在过去十几年中得到了快速发展,但由于帧相机的固有缺陷,目前这些方法仍然难以解决一些挑战性环境中存在的问题(例如光照变化、运动模糊等)。与基于图像帧的标准相机相比,事件相机具有高动态范围、高时间分辨率和低延迟等优点[6-7]。由于这些优势,事件相机最近受到了越来越多的关注。然而,据我们所知,基于事件(event-based)的视觉位置识别的相关研究工作仍然很少。Milford等[22]首先尝试将SeqSLAM法迁移到事件相机上,完成了一个比较粗糙的基于事件帧的位置识别实验。在此之后,他们提出了一种基于事件的视觉位置识别时空窗口集成方案(ensemble-event-VPR)[23]。该方法使用不同事件个数和不同时间窗口尺寸的事件流片段,通过E2Vid方法[24]将事件流片段重建为一组强度帧序列,分别使用NetVLAD[15]预训练模型得到对应的视觉描述子,然后通过对描述子的距离矩阵求平均值进行集成,从而进行视觉位置识别。然而,该方法并不是直接基于事件流的方法,而是需要将事件流转换成强度帧,实质上依然是一种基于图像帧的视觉位置识别方法。另外,由于用到了不同长度的事件流片段进行强度重建并集成,该算法计算量大且十分耗时,因此难以执行大规模场景中的位置识别,且难以部署到真实的机器人上实时运行。而本文首次提出了一种新颖的端到端的基于事件的视觉位置识别网络,并取得了优异的位置识别效果。

3 方法(Methodology)

本节详细描述所提出的基于事件的视觉位置识别方法的网络架构和设计方案,包括算法的各个模块组件以及网络训练的主要步骤和注意事项。

3.1 问题和算法流程

问题定义。定义数据库$ {D_{\rm{b}}}=\{{\mathit{\boldsymbol{P}}}, {\mathit{\boldsymbol{E}}}\} $,包含$ n $个固定参考系下的地理位置坐标$ {\mathit{\boldsymbol{P}}}=[\mathit{\boldsymbol{P}}_{1}, \cdots, \mathit{\boldsymbol{P}}_{n}] $$ n $组事件流片段$ {\mathit{\boldsymbol{E}}}=[\mathit{\boldsymbol{E}}_{1}, \cdots, \mathit{\boldsymbol{E}}_{n}] $,每个位置坐标$ \mathit{\boldsymbol{P}}_{i} $对应若干个事件流片段$ \mathit{\boldsymbol{E}}_{i} =[\mathit{\boldsymbol{E}}_{i1}, \cdots, \mathit{\boldsymbol{E}}_{im}], \; i\in [1, n] $$ n, m $是变量)。每个事件流片段$ \mathit{\boldsymbol{E}}_{ij} $都是在位置坐标$ \mathit{\boldsymbol{P}}_{i} $附近的区域内使用事件相机采集得到的。所有子区域的覆盖面积(area of coverage,AOC)大致相同,即$ S_{\rm{AOC}} (\mathit{\boldsymbol{P}}_{1} )\approx \cdots \approx S_{\rm{AOC}} (\mathit{\boldsymbol{P}}_{n} ) $。因此,基于事件的视觉位置识别问题的形式化定义如下:给定一个查询事件流片段$ \mathit{\boldsymbol{E}}_{\rm q} $,算法的目标是从数据库$ {D_{\rm{b}}} $中检索出与其最相似的若干个事件流片段,从而得到其对应的地理位置坐标$ \mathit{\boldsymbol{P}}_{\rm q} $。为此,本文设计一个基于深度网络的函数$ {{\mathit{\boldsymbol{f}}}}_{\rm{Event-VPR}} (\cdot ) $,用于将事件流片段$ \mathit{\boldsymbol{E}}_{\rm q} $映射到一个固定维数的全局描述子向量$ \mathit{\boldsymbol{v}}_{\rm q} ={{\mathit{\boldsymbol{f}}}}_{\rm{Event-VPR}} (\mathit{\boldsymbol{E}}_{\rm q} ) $,使得$ \mathit{\boldsymbol{v}}_{\rm q} $$ \mathit{\boldsymbol{v}}_{\rm r} $相似但不同于$ \mathit{\boldsymbol{v}}_{\rm s} $时,有$ d(\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm r})<d(\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm s}) $,其中$ d(\cdot ) $是距离函数(例如欧氏距离)。此时问题转化为寻找子区域的位置坐标$ \mathit{\boldsymbol{P}}_{\rm q} $,使得$ d(\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{*})<d(\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{i}) $$ \forall i\ne * $,其中$ \mathit{\boldsymbol{v}}_{*} $是一个事件流片段对应的全局描述子向量,$ d(\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{*}) $$ \mathit{\boldsymbol{v}}_{*} $相对于查询的全局描述子$ \mathit{\boldsymbol{v}}_{\rm q} $的距离。在实践中,全局描述子列表$ \{\mathit{\boldsymbol{v}}_{i} |i= 1, 2, \cdots, k\} $可以离线计算并存储在内存中,并通过最近邻搜索来有效地完成查询,而$ \mathit{\boldsymbol{v}}_{\rm q} $是需要在线计算的。

算法流程。本文提出的基于事件的视觉位置识别是一种新颖的使用事件相机的端到端位置识别方法。算法的核心思想是:首先,将事件流片段通过基于MLP(多层感知机)的核函数转换为EST体素网格表征;然后,使用裁剪的深度残差网络ResNet34对EST体素网格进行视觉特征提取;在此基础上,使用基于VLAD的局部聚合描述层进行特征描述子聚合;最后,使用三元组排序损失(triplet ranking loss)函数对网络进行弱监督训练。根据上述关键思想,算法流程主要分为以下4个部分:EST体素网格表征、特征提取卷积网络、特征聚合描述层和三元组排序损失函数,其对应的网络架构如图 2所示。

图 2 所提出算法流程概观 Fig.2 Overview of pipeline of the proposed method
3.2 事件流和EST体素网格

事件流的定义。事件相机的像素阵列能够独立响应像素级亮度变化(即$ \mathit{\boldsymbol{L}} $ $ \dot{=} $ $ \log {\mathit{\boldsymbol{I}}} $,这里$ \mathit{\boldsymbol{I}} $是光电流,$ \log (\cdot) $表示不精确的对数关系),并触发稀疏异步事件流$ {E}= \{ \mathit{\boldsymbol{e}}_{1}, \cdots, \mathit{\boldsymbol{e}}_{N} | \mathit{\boldsymbol{e}}_{k} \in \mathbb{N}^{2}\times\mathbb{R}^{+}\times\mathbb{B}\} $,其中$ k=1, \cdots , N $,域$ \mathbb{B}=\{-1, 1\} $。确切地讲,在不考虑固定模式噪声(fixed pattern noise,FPN)的情况下,$ t_{k} $时刻在像素$ (x_{k}, y_{k})^{\rm T} $处的亮度变化为

$ \begin{align} \Delta L (x_{k}, y_{k}, t_{k}) & =L (x_{k}, y_{k}, t_{k})-{L}(x_{k}, y_{k}, t_{k} -\Delta t_{k}), \\ &| {\Delta {L}(x_{k}, y_{k}, t_{k})} | \geqslant \vartheta \end{align} $ (1)

这里$ \Delta t_{k} $是该像素上次触发事件与此次触发事件的时间间隔。当亮度变化达到对比度阈值$ \vartheta $时(这里$ \vartheta >0 $),则该像素触发一个事件$ \mathit{\boldsymbol{e}}_{k} =(x_{k}, y_{k}, t_{k}, p_{k})^{\rm T} $。这里$ p_{k}=-1, 1 $是事件极性,由式(2) 给出:

$ \begin{align} p_{k} =\frac{\Delta L(x_{k}, y_{k}, t_{k})}{| {\Delta L(x_{k}, y_{k}, t_{k})} |} \end{align} $ (2)

在实际传感器中,可以根据不同的对比度阈值$ \vartheta $触发正事件(on)和负事件(off)。更进一步地讲,事件流$ {E} $可以归结为一个定义在3维连续时空流形$ (x, y, t) $上带有极性信息的事件测量场:

$ \begin{align} \mathit{\boldsymbol{S}}(x, y, t)=\sum\limits_{\mathit{\boldsymbol{e}}_{k} \in {E}} {p_{k} \mathit{\boldsymbol{\delta}} (x-x_{k}, y-y_{k})\delta (t-t_{k})} \end{align} $ (3)

其中$ \delta (\cdot) $表示在事件域上定义的狄拉克函数,用于代替每个事件。

EST体素网格表征。为了使用流行的基于深度学习的特征提取技术,需要将稀疏异步事件流数据转换为一种卷积网络可处理的表征形式。目前比较典型的事件流数据表征方法大致有运动补偿事件帧(motion-compensated event frame,MCEF)[25]、4通道图像(4-channel image,4CH)[26]和事件体素网格(event voxel grid,EVG)[27]等。此外,也可以将事件流转换为传统的基于图像帧的视频(例如E2Vid)[24]。这里使用事件脉冲张量的体素网格表征方法。为了最大限度地从事件测量场中获取有意义的视觉特征信息,用三线性投票核函数$ \mathit{\boldsymbol{k}}(x, y, t) $对其进行卷积处理。因此卷积后信号变为

$ \begin{align} (\mathit{\boldsymbol{k}}* \mathit{\boldsymbol{S}})(x, y, t) =\sum\limits_{\mathit{\boldsymbol{e}}_{k} \in E} {p_{k} \mathit{\boldsymbol{k}}(x-x_{k}, y-y_{k}, t-t_{k})} \\ \mathit{\boldsymbol{k}}(x, y, t) =\mathit{\boldsymbol{\delta}} (x, y)\max \left (0, 1-\left | {\frac{t}{\Delta t}} \right|\right) \end{align} $ (4)

核卷积之后,可以通过对式(4) 的信号在时空坐标$ (x, y, t) $上进行定期采样,来生成体素网格表征:

$ \begin{align} & \mathit{\boldsymbol{V}}_\rm{EST} [{x}', {y}', {t}'] \\ =&\sum\limits_{\mathit{\boldsymbol{e}}_{k} \in {E}} {p_{k} \mathit{\boldsymbol{\delta}} ({x}'-x_{k}, {y}'-y_{k})\max \left(0, 1-\left| {\frac{{t}'-t_{k}} {\Delta t}} \right|\right)} \end{align} $ (5)

其中$ ({x}', {y}', {t}') $是采样后的网格时空坐标。其中,$ {x}'= $ $ 0, 1, \cdots, W-1 $$ {y}' =0, 1, \cdots, H-1 $$ {t}'=t_{0}, $ $ t_{0} +\Delta t, $ $ \cdots, t_{0} +(C-1)\Delta t $,这里$ (W, H) $是像素尺寸,$ t_{0} $是起始时间戳,$ \Delta t $是时间块尺寸,$ C $是时间块个数(即通道数)。在实践中,通过将式(5) 中人工设计的核函数替换为一个MLP来生成EST体素网格,作为一种端到端的事件数据表征,如图 3所示,其中$ C $是通道数,$ B $是批处理尺寸。图中,将基于MLP的核函数对每个事件生成的值放入相应的坐标中,核函数可以通过预训练模型获得,也可以通过端到端训练直接学习。此MLP接收事件的归一化时间戳作为输入,共有2个隐含层,每层有30个神经元。将每个事件通过MLP生成的值放入对应的体素网格坐标。EST体素网格可以针对最终任务进行调优,从而最优化网络性能。

图 3 针对异步事件数据的EST体素网格表征学习概观 Fig.3 Overview of representation learning for asynchronous event-based data using EST voxel grid
3.3 特征提取和特征描述聚合

特征提取网络。在将事件流转换为EST体素网格表征之后,需要对其进行特征提取。本文使用了在基于事件的手写数字识别任务中预训练的深度残差网络(deep residual network,DRN)ResNet34[28]作为特征提取网络。为了将其迁移到本文的视觉位置识别任务中,需要对原始网络进行裁剪。本文修改了ResNet34的第1个卷积层的输入通道数,以适应EST体素网格$ \mathit{\boldsymbol{V}}_\rm{EST} $作为网络输入。此外,为了连接特征描述聚合层,去掉了ResNet34末端的平均池化层和全连接层,网络输出$ \mathit{\boldsymbol{x}}=f_\rm{ResNet34} (\mathit{\boldsymbol{V}}_\rm{EST}) $为EST体素网格的特征图。这里$ \mathit{\boldsymbol{x}} $是特征提取网络得到的$ w\times h\times D $维特征张量。

特征描述聚合层。在得到特征提取网络输出的特征图后,采用VLAD[10-12, 15]进行特征描述子聚合,它是一种位置识别和图像检索领域常用的可训练描述子池化方法。如图 4所示,将特征提取网络输出的$ w\times h\times D $维特征图解释为$ M $$ D $维局部描述子$ \{\mathit{\boldsymbol{x}}_{1} , \cdots, \mathit{\boldsymbol{x}}_{M} | \mathit{\boldsymbol{x}}_{i} \in \mathbb{R}^{D}\} $作为输入,$ K $$ D $维聚类中心$ \{\mathit{\boldsymbol{c}}_{1}, \cdots , \mathit{\boldsymbol{c}}_{K} | \mathit{\boldsymbol{c}}_{k} \in \mathbb{R}^{D}\} $作为VLAD参数,其中残差向量和软分配是描述子到聚类中心的统计量,卷积层和聚类中心通过端到端训练是可学习的。经过归一化后输出的局部聚合描述子向量$ \mathit{\boldsymbol{V}}_\rm{VLAD} $$ D\times K $维的矩阵:

$ \begin{align} \mathit{\boldsymbol{V}}_{\rm{VLAD}, k} (\mathit{\boldsymbol{x}})=\sum\limits_{i=1}^M {\bar{{\mathit{\boldsymbol{a}}}}_{k} (\mathit{\boldsymbol{x}}_{i})(\mathit{\boldsymbol{x}}_{i} -\mathit{\boldsymbol{c}}_{k})} \end{align} $ (6)
图 4 基于VLAD的可训练聚合层概观 Fig.4 Overview of the VLAD-based trainable aggregation layer

这里,$ \mathit{\boldsymbol{x}}_{i} -\mathit{\boldsymbol{c}}_{k} $是描述子$ \mathit{\boldsymbol{x}}_{i} $到聚类中心$ \mathit{\boldsymbol{c}}_{k} $的残差向量(residual vector),$ {\bar{{\mathit{\boldsymbol{a}}}}}_{k} (\mathit{\boldsymbol{x}}_{i}) $表示描述子$ \mathit{\boldsymbol{x}}_{i} $到聚类中心$ \mathit{\boldsymbol{c}}_{k} $的软分配(soft assignment):

$ \begin{align} {\bar{{\mathit{\boldsymbol{a}}}}}_{k} (\mathit{\boldsymbol{x}}_{i})=\frac{{\rm e}^{-\alpha \|\mathit{\boldsymbol{x}}_{i} -\mathit{\boldsymbol{c}}_{k} \|^{2}}}{ \sum\nolimits_{k'} {{\rm e}^{-\alpha \|\mathit{\boldsymbol{x}}_{i} -\mathit{\boldsymbol{c}}_{k'} \|^{2}}}} =\frac{{\rm e}^{\mathit{\boldsymbol{w}}_{k}^{\rm T} \mathit{\boldsymbol{x}}_{i} +{b}_{k}}}{ \sum\nolimits_{k'} {{\rm e}^{\mathit{\boldsymbol{w}}_{k'}^{\rm T} \mathit{\boldsymbol{x}}_{i} +{b}_{k'}}}} \end{align} $ (7)

它根据邻近距离来分配描述子$ \mathit{\boldsymbol{x}}_{i} $到聚类中心$ \mathit{\boldsymbol{c}}_{k} $的权重。其中$ \mathit{\boldsymbol{w}}_{k} =2\alpha \mathit{\boldsymbol{c}}_{k} $$ {b}_{k} =-\alpha \|\mathit{\boldsymbol{c}}_{k}^{2} \| $$ \alpha >0 $,且$ {\bar{{\mathit{\boldsymbol{a}}}}}_{k} (\mathit{\boldsymbol{x}}_{i}) $的每个元素都在$ [0, 1] $的区间内。根据式(7),软分配可以分解为一个卷积层和一个软最大值(soft-max)层,其卷积层的权重$ \{\mathit{\boldsymbol{w}}_{k}\} $和偏置$ \{b_{k}\} $与聚类中心$ \{\mathit{\boldsymbol{c}}_{k} \} $一起作为独立的可训练参数。最后,需要将聚合向量$ \mathit{\boldsymbol{V}}_\rm{VLAD} $进行内部归一化(intra-normalization)和L2归一化产生最终的全局描述子向量$ \mathit{\boldsymbol{v}}\in \mathbb{R}^{\varOmega} $$ \|\mathit{\boldsymbol{v}}\|_{2} =1 $$ \varOmega =D\times K $,用于事件流片段的高效检索。

3.4 网络训练过程

训练三元组构建。本文使用基于度量学习(metric learning)[29-30]的弱监督训练方法对所提出的基于事件的视觉位置识别网络进行端到端训练,以学习将输入事件流片段$ {E} $映射到全局描述子向量$ \mathit{\boldsymbol{v}}\in \mathbb{R}^{\varOmega} $的函数$ {{\mathit{\boldsymbol{f}}}}_{\rm{Event-VPR}} (\cdot ) $。在网络训练过程中,给出训练查询$ \mathit{\boldsymbol{E}}_{\rm q} $和对应的地理位置$ \mathit{\boldsymbol{P}}_{\rm q} $。需要从数据库$ {D_{\rm{b}}}=\{\mathit{\boldsymbol{P}}, \mathit{\boldsymbol{E}}\} $中选取合适的最佳阳性样本(best positive)和多个难分阴性样本(hard negative)。为了提高查找效率,首先根据查询的位置$ \mathit{\boldsymbol{P}}_{\rm q} $选择在地理距离$ \lambda $范围内的所有样本作为潜在阳性样本集(potential positive set)$ \{\mathit{\boldsymbol{E}}_{{{\rm{pos}}}, i} \} $

$ \begin{align} d_{\rm{geo}} ({{\mathit{\boldsymbol{P}}}}_{\rm q}, {{\mathit{\boldsymbol{P}}}}_{{\rm{pos}}, i})\leqslant \lambda, \; \; \forall {{\mathit{\boldsymbol{E}}}}_{{\rm{pos}}, i} \in {E} \end{align} $ (8)

然后在这些潜在阳性样本中,选取描述子向量距离最小的阳性样本作为最佳阳性样本,其对应的描述子向量为

$ \begin{align} \mathit{\boldsymbol{v}}_{\rm{best-pos}} = \mathop{\text{arg min}}\limits_{{{\mathit{\boldsymbol{v}}}}_{{\rm{pos}}, i}} d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{{\rm{pos}}, i}) \end{align} $ (9)

在选取阴性样本时,首先根据查询的位置$ \mathit{\boldsymbol{P}}_{\rm q} $选择在地理距离$ \delta $范围外的所有样本,并随机选取其中的$ n_{\rm{sample}} $个作为随机阴性样本集(randomly sampled negative set)$ \{\mathit{\boldsymbol{E}}_{{\rm{neg}}, i} \} $

$ \begin{align} d_{\rm{geo}} (\mathit{\boldsymbol{P}}_{\rm q}, \mathit{\boldsymbol{P}}_{{\rm{neg}}, i})\geqslant \delta, \; \; \forall \mathit{\boldsymbol{E}}_{{\rm{neg}}, i} \in {E} \end{align} $ (10)

然后在这些随机阴性样本中,选取其中违反间隔余量(margin)条件的作为候选的难分阴性样本集$ \{\mathit{\boldsymbol{E}}_{{\rm{hard-neg}}, i} \} $

$ \begin{equation} d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{{\rm{hard-neg}}, i})\leqslant d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{{{\rm{pos}}}, j})+\varepsilon, \; \; \; \forall \mathit{\boldsymbol{E}}_{{\rm{hard-neg}}, i} \in {E} \end{equation} $ (11)

其中,$ \varepsilon $是常量参数,表示$ d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{{{\rm{pos}}}, i}) $$ d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, $ $ \mathit{\boldsymbol{v}}_{{\rm{neg}}, j}) $之间的间隔余量。为提高训练效率,选取描述子向量距离最小的$ n_{{\rm{neg}}} $个样本构成训练使用的难分阴性样本集($ n_{{\rm{neg}}} =0, \cdots, N_{{\rm{neg}}} $$ n_{{\rm{neg}}} \ll n_{\rm{sample}} $)。随着训练迭代次数的增加和网络的收敛,难分阴性样本集中的样本个数会逐渐减少,甚至无法找到。

损失函数。基于上述方法,本文使用来自事件相机数据集的数据,从训练集获得一组训练元组,其中每个三元组表示为$ \mathit{\boldsymbol{\xi}} =(\mathit{\boldsymbol{E}}_{\rm q}, $ $ \mathit{\boldsymbol{E}}_{\rm{best-pos}}, $ $ \{ \mathit{\boldsymbol{E}}_{{\rm{hard-neg}}, j}\}) $。其中$ \mathit{\boldsymbol{E}}_{\rm q} $是查询样本,$ \mathit{\boldsymbol{E}}_{\rm{best-pos}} $是最佳阳性样本,$ \{\mathit{\boldsymbol{E}}_{{\rm{hard-neg}}, j} \} $是一组难分阴性样本。若它们对应的全局描述子向量为$ \mathit{\boldsymbol{\gamma}} =(\mathit{\boldsymbol{v}}_{\rm q}, $ $ \mathit{\boldsymbol{v}}_{\rm{best-pos}}, $ $ \{ \mathit{\boldsymbol{v}}_{{\rm{hard-neg}}, j}\}) $,定义查询$ \mathit{\boldsymbol{E}}_{\rm q} $对最佳阳性样本$ \mathit{\boldsymbol{E}}_{\rm{best-pos}} $和难分阴性样本$ \{\mathit{\boldsymbol{E}}_{{\rm{hard-neg}}, j}\} $的描述子向量距离分别为$ d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm{best-pos}}) $$ d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{{\rm{hard-neg}}, j}) $。损失函数的设计是为了最小化查询样本和最佳阳性样本之间的全局描述子距离,且最大化和难分阴性样本之间的距离。本文使用弱监督三元组排序损失(triplet ranking loss)函数,其定义如下:

$ \begin{align} & L_{\rm{triplet}} (\mathit{\boldsymbol{\gamma}}) \\ = & \sum _j [d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm{best-pos}}) - d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{{\rm{hard-neg}}, j})+\varepsilon]_{+} \end{align} $ (12)

其中,$ [\cdot]_{+} =\max (\cdot, 0) $表示损失取正数,即$ L_{\rm{triplet}} (\mathit{\boldsymbol{\gamma}}) \geqslant 0 $

为了在保证模型性能的同时减小计算量,对于每个训练三元组$ \mathit{\boldsymbol{\xi}} $及其对应的全局描述子向量$ \mathit{\boldsymbol{\gamma}} $,改为令$ d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm{hard-neg^{*}}}) $最大化,$ d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm{hard-neg^{*}}}) $为查询$ \mathit{\boldsymbol{E}}_{\rm q} $和难分阴性样本$ \{\mathit{\boldsymbol{E}}_{{\rm{hard-neg}}, j} \} $中最邻近的阴性样本$ \mathit{\boldsymbol{E}}_{\rm{hard-neg^{*}}} $之间的描述子向量距离。这样就得到简化三元组排序损失(lazy triplet ranking loss)函数,其定义如下:

$ \begin{align} & L_\rm{lazy-triplet} (\mathit{\boldsymbol{\gamma}}) \\ =& \max\limits_{j} [{d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm{best-pos}})-d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{{\rm{hard-neg}}, j})+\varepsilon}]_{+} \\ =&[{d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm{best-pos}})-d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm{hard-neg^{*}}})+\varepsilon}]_{+} \end{align} $ (13)

其中,max算子在难分阴性样本的全局描述子向量$ \{\mathit{\boldsymbol{v}}_{{\rm{hard-neg}}, j} \} $中选取最难分阴性样本的全局描述子向量$ \mathit{\boldsymbol{v}}_{\rm{hard-neg^{*}}} $

然而,选择最大化查询$ \mathit{\boldsymbol{E}}_{\rm q} $和最难分阴性样本$ \mathit{\boldsymbol{E}}_{\rm{hard-neg^{*}}} $之间的描述子距离可能会导致$ \mathit{\boldsymbol{v}}_{\rm{hard-neg^{*}}} $和其他阴性样本的描述子向量$ \mathit{\boldsymbol{v}}_{{\rm{neg}}\times} $之间的距离减小,而其对应的阴性样本$ \mathit{\boldsymbol{E}}_{\rm{hard-neg^{*}}} $$ \mathit{\boldsymbol{E}}_{{\rm{neg}}\times} $却是来自不同位置,其中$ \mathit{\boldsymbol{E}}_{{\rm{neg}}\times} $是任意抽取的一个随机阴性样本。为了缓解这个问题,需要最大化额外的距离$ {d}_{\rm des}(\mathit{\boldsymbol{v}}_{\rm{hard-neg^{*}}}, \mathit{\boldsymbol{v}}_{{\rm{neg}}\times}) $。这样就得到四元组排序损失(quadruplet ranking loss)函数,其定义如下:

$ \begin{align} L_{\rm{quadruplet}} & (\mathit{\boldsymbol{\gamma}}, \mathit{\boldsymbol{v}}_{{\rm{neg}}\times}) =L_{\rm{triplet}} (\mathit{\boldsymbol{\gamma}})+ \\ & [{d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm{best-pos}})-d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{{\rm{neg}}\times})+{\varepsilon} '} ]_{+} \end{align} $ (14)

以及对应的简化四元组排序损失(lazy quadruplet ranking loss)函数,其定义如下:

$ \begin{align} L_{\rm{lazy-quadruplet}} & (\mathit{\boldsymbol{\gamma}}, \mathit{\boldsymbol{v}}_{{\rm{neg}}\times}) =L_{\rm{lazy-triplet}} (\mathit{\boldsymbol{\gamma}})+ \\ & [{d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{\rm{best-pos}})-d_{\rm{des}} (\mathit{\boldsymbol{v}}_{\rm q}, \mathit{\boldsymbol{v}}_{{\rm{neg}}\times})+{\varepsilon} '} ]_{+} \end{align} $ (15)

其中,$ \varepsilon ' $表示另一个间隔余量。以上这3种排序损失函数都可以认为是三元组排序损失函数的变体,并且已经被证明在人脸识别[31]、行人再识别[32]等大规模图像检索任务中非常有效。

构建缓存。在网络训练过程中,需要查询样本的描述子向量来计算描述子距离。为了提高训练效率,本文对整个数据库的描述子向量构建缓存(caching),并使用缓存的描述子向量来选择最佳阳性样本和难分阴性样本。由于模型参数在训练过程中会不断调整,网络输出的描述子向量也会不断变化,因此在网络训练时会定期对缓存进行更新。大约每处理500~1000个训练集查询样本重新计算缓存,可以在训练期(epoch)持续时间、网络收敛速度和模型质量之间取得很好的平衡。

训练数据加载。不同于传统的图像帧,稀疏事件流片段在加载数据过程中存在数据量大小不固定的问题,这在批处理(batch)训练时会难以区分每个样本。本文在构建批处理训练数据时为每个事件流片段增加一列索引,并按查询样本、最佳阳性样本、难分阴性样本依次排列,合并为一个批处理数据送入网络中进行弱监督训练,再根据索引对网络输出的描述子向量进行划分。加载一个批次的训练数据时的事件流片段处理过程如下:

$ \begin{align} \mathit{\boldsymbol{E}}_{\rm{input}} =\bigoplus\limits _{i=0}^{B-1} {\mathit{\boldsymbol{E}}_{\rm q}^{i}} \oplus \bigoplus\limits _{i=0}^{B-1} {\mathit{\boldsymbol{E}}_{\rm{best-pos}}^{i}} \oplus \bigoplus\limits _{i=0}^{B-1} {\bigoplus\limits _{x=1}^{n_{{\rm{neg}}, i}} {\mathit{\boldsymbol{E}}_{{\rm{hard-neg}}, x}^{i}}} \end{align} $ (16)

$ B $为批处理尺寸;$ n_{{\rm{neg}}, i} =n_{{\rm{neg}}, 0}, \cdots, n_{{\rm{neg}}, B-1} $为每个批次的阴性样本个数,取值为$ [0, \; N_{{\rm{neg}}}] $区间上的整数;$ \bigoplus $$ \oplus $表示对事件流片段进行拼接。

4 实验(Experiments)

在MVSEC[33]、DDD17[34]和Oxford RobotCar[35]等多个数据集上进行了实验,通过定量的实验结果来验证本文所提出方法的有效性。进行了3个实验来评估所提出的基于事件的视觉位置识别方法。首先,评估了所提出的基于事件的视觉位置识别方法在不同驾驶场景下的性能,并验证了其长期鲁棒性。然后,在同一数据集上对基于事件的本文算法和基于图像帧的视觉位置识别算法进行了比较,并对所提出算法的性能进行了定量分析。最后,从事件表征、特征提取网络和损失函数3个方面对所提出的基于事件的网络架构进行了消融(ablation)研究,实验结果证明了该方法各个模块的优势。

4.1 数据集配置

由于现阶段还没有基于事件相机的位置识别数据集,因此在本文的实验中,选取并改造了目前公开的几个驾驶场景的数据集进行实验,实验数据集的场景如图 5图 6所示。其中MVSEC数据集和DDD17数据集是现有的在真实环境中记录的事件相机数据集[33-34]。本文选取了MVSEC数据集的5个室外驾驶场景序列(包括白天和夜晚场景,由左目DAVIS相机获得)和DDD17数据集的12个室外驾驶场景序列(包括市区、城镇和高速公路场景)的强度图像和事件流片段,其中包含了多种光照变化和场景结构变化。此外Oxford RobotCar数据集是视觉位置识别领域常用的标准数据集[35]。仿真事件流合成器使用的是V2E[36],合成序列选择的是Oxford RobotCar数据集中由三目立体相机(Bumblebee XB3)采集的中间图像序列。尽可能地选取了不同天气条件下相同轨迹的序列,覆盖了晴天、阴天、雨天、雪天、黄昏和夜晚等场景。上述场景的光照、外观差异较大,能够较好地验证所提出算法的鲁棒性。

图 5 实验中使用的MVSEC和DDD17数据集场景[33-34] Fig.5 Scenes in the MVSEC and DDD17 datasets in experiments
图 6 使用V2E[36]获取的Oxford RobotCar数据集[35]的合成事件流片段 Fig.6 Synthetic event bins of Oxford RobotCar datasets obtained using V2E

随机地将相同路线的序列划分为地理上不重叠的训练集和测试集(详细结果如表 1~4所示)。在MVSEC数据集中,从5个序列中选取了大约40 000个训练样本和10 000个测试样本。在DDD17数据集中,从12个序列中选择了大约240 000个测试样本。在Oxford RobotCar数据集的11个序列中选择了大约50 000个训练样本和12 000个测试样本。对于参数,在MVSEC和Oxford RobotCar数据集中,选择潜在阳性距离阈值为$ \lambda = $ 10 m,潜在阴性距离阈值为$ \delta = $ 25 m,且真阳性地理距离阈值为$ \varphi = $ 20 m。此外在DDD17数据集中,除了真阳性地理距离阈值为$ \varphi = $ 50 m,其他的参数都相同。

表 1 实验中使用的MVSEC[33]、DDD17[34]和Oxford RobotCar[35]数据集序列 Tab. 1 Sequences in the MVSEC, DDD17, and Oxford RobotCar datasets used in experiments
表 2 MVSEC数据集[33]的典型取值和参数选择 Tab. 2 Typical values and parameter choices of the MVSEC dataset
表 3 DDD17数据集[34]的典型取值和参数选择 Tab. 3 Typical values and parameter choices of the DDD17 dataset
表 4 Oxford RobotCar数据集[35]的典型取值和参数选择 Tab. 4 Typical values and parameter choices of Oxford RobotCar dataset

在本文实验中,采用Recall@$ N $这个视觉位置识别的常用性能评估指标对所提出的方法的性能进行评估。具体来讲,在计算Recall@$ N $时,对于每个查询样本,根据描述子的距离,检索前$ N $个最近邻数据库样本作为阳性样本。如果其中至少有1个样本距离查询样本的地理距离小于$ \varphi $,则认为查询样本的位置识别正确。然后对不同的$ N $值绘制正确识别查询的Recall@$ N $曲线。对于查询集,遍历所有查询的描述子向量,并计算Recall@$ N $作为正确识别查询的百分比。在下面的实验中,将分析限制在$ N=1, 5, 10, 20 $的情况。

4.2 多种场景下的位置识别性能分析

在第1个实验中,验证了所提出的基于事件的视觉位置识别方法在MVSEC[33]、DDD17[34]和Oxford RobotCar[35]数据集中不同场景下的算法性能。为此,通过实验选择了若干个具有挑战性的序列,例如:MVSEC数据集中的夜晚场景序列非常昏暗且只有少量光线;DDD17数据集中的高速公路场景序列中存在许多外观相似场景和高动态范围场景(阴云、隧道等);Oxford RobotCar数据集中场景也存在丰富的天气和季节条件的变化,例如雨天场景中有积水造成的地面反光,夜晚场景有非常明亮的路灯,这导致了非常高的场景动态范围。

MVSEC数据集结果。表 5所示,在MVSEC数据集上的实验结果显示了该方法在白天和夜晚场景下的模型识别性能(Recall@$ N $)。在MVSEC数据集上,针对2个白天序列和3个夜晚序列,分别在不同的序列上交叉训练并测试网络的模型性能。结果表明,训练好的模型在夜晚序列中Recall@1指标平均可以达到97.05%,与白天序列的Recall@1指标基本相同。需要特别说明的是,由于MVSEC数据集的5个室外驾驶序列分别来自不同的路线轨迹,因此无法放在一起比较跨昼夜的位置识别性能,而在接下来的Oxford RobotCar数据集中的实验结果展示了这一点。

表 5 本文方法在MVSEC数据集[33]中的多个序列上的Recall@N指标 Tab. 5 Recall@N index of the proposed method on several sequences in the MVSEC dataset

Oxford RobotCar数据集结果。图 7展示了所提出的基于事件的视觉位置识别方法的网络模型在Oxford RobotCar数据集中不同天气、季节条件下的识别性能。首先,在图 7(a)中展示了在所有冬天的不同天气序列上训练的模型,分别在春天、夏天、秋天的不同天气序列上测试的实验结果。训练好的模型在不同的季节情况下都可以实现相似的识别性能,能够实现跨季节的长期视觉位置识别。接下来,分别针对所有白天或夜晚序列训练了模型,并对未经训练的场景序列(如阴天、雨天和雪天)进行了测试。将在所有白天序列(包括晴天和多云)上训练得到的模型,在不同天气序列上进行测试,实验结果如图 7(b)所示。可见,阴天和雪天序列上的测试结果与晴天和多云序列上的测试结果几乎相同,而Recall@1指标之间的差异只有2.15% 左右。雨天序列和夜晚序列上的测试结果稍差,Recall@1指标平均低8.66%。将在全部夜晚序列上训练得到的模型,在白天和夜晚序列上进行测试,实验结果如图 7(c)所示。由于夜晚序列中的事件噪声较大,训练后的模型在白天场景中的表现稍差。

图 7 本文方法在Oxford RobotCar数据集[35]中的不同季节、不同天气序列上的Recall@N指标 Fig.7 Recall@N index of the proposed method on sequences at different seasons and weathers in the Oxford RobotCar dataset

DDD17数据集结果。此外,为了验证本文方法的模型泛化性能,使用在Oxford RobotCar数据集的合成事件流数据上训练的网络模型,然后在DDD17数据集的城市、高速公路等序列(使用真实DAVIS事件相机记录获得)上进行测试,所有序列的测试结果如表 6所示。结果显示,在没有任何迁移学习或训练网络微调的情况下,所提出的方法在DDD17数据集的城市场景序列上可以达到与在Oxford RobotCar数据集序列上相似的高性能。即使是在非常有挑战性的、具有大量相似场景和高动态场景的高速公路序列上,模型测试的平均Recall@1指标依然可以达到77.35%。这意味着仅仅利用人工合成的事件流数据对网络模型进行训练,就可以在事件相机记录的真实事件流数据上得到很高的准确率。

表 6 将在Oxford RobotCar数据集[35]的合成事件数据上训练得到的模型,在DDD17数据集[34]中的城市、高速公路序列上测试,得到的Recall@N指标 Tab. 6 Recall@N index of the model trained by using the synthetic event data in the Oxford RobotCar dataset, and tested on the city, freeway sequences in the DDD17 dataset
4.3 与基于图像帧的VPR方法的性能比较

与图像帧VPR对比。为了对比本文方法与基于图像帧的方法的识别性能,还将本文方法与典型的基于图像帧的视觉位置识别方法NetVLAD[15]和SeqSLAM[16]在MVSEC数据集和Oxford RobotCar数据集上进行了比较,结果如表 7所示。为了公平地比较,将图像帧的空间分辨率调整到与事件流片段的空间分辨率相同。结果表明,在MVSEC数据集上,由于DAVIS相机记录的图像帧大多比较昏暗,而基于事件相机的本文方法在这种弱光照条件的情况下具有显著优势,因此本文方法优于基于图像帧的NetVLAD,更优于SeqSLAM。在Oxford RobotCar数据集上,基于事件的本文方法的Recall@1远高于SeqSLAM,但比NetVLAD平均低2.79% 左右。原因可能在于Oxford RobotCar数据集的原始图像帧较为明亮(即使是夜晚场景也有明亮的路灯),而使用V2E[36]人工生成事件流的过程中引入了一些固定模式噪声(FPN),因此不如Oxford RobotCar数据集原始的图像帧效果好。考虑到在传感器层面,目前事件相机相比于传统帧相机还不够成熟(例如存在空间分辨率低、噪声等级高等问题,这是由于传感器处于不同的发展阶段导致的),本文方法总体上能够取得与基于图像帧的视觉位置识别方法可比拟的、甚至更优的识别性能。

表 7 本文方法与其他几种基准视觉位置识别方法在MVSEC[33]和Oxford RobotCar[35]数据集上的比较 Tab. 7 Comparison of the proposed method with other several reference visual place recognition methods on the MVSEC and Oxford RobotCar datasets

直观实验结果。为了更好地展示本文方法的性能,这里使用Oxford RobotCar数据集增加了一些更直观的实验结果,以进一步验证所提出方法的有效性。绘制了Oxford RobotCar数据集中不同天气序列的检索成功率地图(retrieval success-rate map),如图 8所示。相比晴天和多云序列的结果,阴天序列的识别准确率稍有下降,这主要是由于选取的序列中一些位置的GPS信号较弱。雨天序列的识别准确率同样有所下降,主要原因是特定位置存在的路面积水对事件相机成像产生了影响。然而,由于事件流数据只对光照强度变化敏感,因此对于场景外观非常不同的雪天序列反而能够得到相对较高的识别准确率。对于夜晚序列,使用事件相机同样可以得到不错的识别准确率,其中识别错误的情况主要是车辆前方的路面反光导致的。

图 8 本文方法在Oxford RobotCar数据集[35]中的不同天气序列上的检索成功率地图 Fig.8 Retrieval success-rate maps of the proposed method on sequences under different weathers in the Oxford RobotCar dataset
4.4 事件表征、网络结构和损失函数对性能的影响

事件表征的影响。在这个实验中,尝试探究了不同事件表征方法对本文方法性能的影响。除了方法中描述的EST体素网格表征外,还尝试了另外几种事件流表征方法,包括事件帧(EF)[25]、4通道图像(4CH)[26]和单极性事件体素网格(EVG)[27]表征。在进行这些实验时,均使用ResNet34作为特征提取网络。如图 9所示,实验结果显示了EST体素网格表征方法在不同数据集上的显著优势,以下各图中将Oxford RobotCar数据集简写为ORC。由于事件帧丢失了事件的时间戳信息,单极性体素网格丢失了事件的极性信息,所以实验结果都不如EST。4CH图像由于丢失了事件流的部分时间戳信息,因此结果也不如EST。EST体素网格表征方法不仅保留了事件流局部时空邻域信息,而且也同时能够通过可训练的核函数对噪声事件进行抑制,能够使特征提取网络获得更有效的特征。

图 9 比较不同事件表征方法对本文方法性能的影响(MVSEC和Oxford RobotCar数据集[33, 35] Fig.9 Comparison among impacts of different event representations on the performance of the proposed method (MVSEC and Oxford RobotCar datasets)

网络结构的影响。在这个实验中,比较了不同的特征提取网络结构对本文方法性能的影响。网络结构方面,除了方法中描述的ResNet34外,还训练了VGG-16、AlexNet和另外2种不同网络容量的深度残差网络。在进行这些实验时,均使用EST体素网格作为事件表征。如图 10所示,实验结果显示不同的特征提取网络对算法性能并没有显著的影响。在不同容量的ResNet网络测试中,发现模型容量的增大会导致所使用的计算资源的增加,但准确率并没有显著提升。这可能是因为更大的网络意味着更多的参数,使得网络更加容易过拟合。因此最终选择ResNet34作为本文方法的特征提取网络,而在实际应用中可以根据自己的需求和计算资源来更换其他不同的特征提取网络。

图 10 比较不同特征提取网络对本文方法性能的影响(MVSEC和Oxford RobotCar数据集[33, 35] Fig.10 Comparison among impacts of different feature extraction networks on the performance of the proposed method (MVSEC and Oxford RobotCar dataset)

损失函数的影响。在这个实验中,比较了不同的弱监督损失函数对本文方法性能的影响,包括三元组损失(triplet loss,TL)、四元组损失(quadruplet loss,QL)、简化三元组损失(lazy triplet loss,LTL)和简化四元组损失(lazy quadruplet loss,LQL)。在进行这些实验时,均使用EST体素网格作为事件表征,ResNet34作为特征提取网络。如图 11所示,实验结果显示不同的弱监督损失函数对模型性能有轻微影响。原始的三元组和四元组损失函数使用sum算子而不是简化损失函数中的max算子,因此原始的三元组和四元组损失往往需要更长的训练时间。而简化的三元组和四元组损失可以在保证性能的同时提高网络训练效率。其中四元组损失的训练结果均略优于对应的三元组损失,训练的模型能获得相对更好的可区分性,从而得到更准确的检索结果。因此,以上这些弱监督损失函数可以在训练的过程中交替使用,从而以较短的训练时间来获得高准确率的模型。

图 11 比较不同弱监督损失函数对本文方法性能的影响(MVSEC和Oxford RobotCar数据集[33, 35] Fig.11 Comparison among impacts of different weakly supervised loss functions on the performance of the proposed method (MVSEC and Oxford RobotCar dataset)
4.5 扩展实验:载体行驶速度的影响

载体速度的影响。在这个实验中,探究了载体的行驶速度变化对本文方法性能的影响。由于在现有的几个基于事件相机的驾驶数据集中,载体的行驶速度往往相对变化不大,很难对不同行驶速度下的位置识别性能进行分析。因此,这里使用了自动驾驶开源仿真器CARLA[37],在不同的载体行驶速度下,自行录制了7组基于事件相机的序列,载体的行驶路线(大约3 km)如图 12(a)所示。其中,载体的行驶速度分别设定为$ v= $ 30, 35, 40, 45, 50, 55, 60(单位km/h),真阳性地理距离阈值为$ \varphi = $ 5 m。实验探究了载体的行驶速度变化对位置识别准确率的影响,并绘制了Recall@$ N $指标随载体行驶速度变化的折线图,如图 12(b)所示。其中,以45 km/h的序列作为数据库,各速度的序列分别作为查询样本。结果显示,载体行驶速度对Recall@1指标的影响大约为4.91%,对Recall@$ N $$ N \geqslant $ 5)的影响则非常小。由于在CARLA仿真环境中事件相机的噪声很小,即使设置了相对严苛的真阳性地理距离阈值,基于事件的本文方法依然能够达到非常高的准确率(注意:真实街道场景中车辆一般限速在30 km/h~40 km/h,本实验则不考虑此约束)。

图 12 载体速度变化对本文方法性能的影响(CARLA仿真器[37] Fig.12 Impacts of different velocities of the vehicle on the performance of the proposed method (CARLA simulator)
5 结论(Conclusion)

提出了一种利用事件相机来解决大规模视觉位置识别问题的弱监督网络架构和算法流程。它的核心思想是将基于VLAD的特征聚合描述层应用于由事件流生成的EST体素网格表征。本文的实验结果表明,基于事件的视觉位置识别方法比基于图像帧的传统视觉位置识别方法对天气、季节和光照变化引起的周围环境变化具有更强的鲁棒性和适应性。仍然需要注意的是,与传统的基于图像帧的相机相比,事件相机具有许多优点(例如低延迟、低功耗、高速和高动态范围等),但是由于目前事件相机的空间分辨率还较低,因此与基于图像帧的视觉位置识别方法相比仍然存在一些不足,这是由于传感器处于不同的发展阶段导致的。在后续的工作中,将尝试结合标准相机和事件相机,实现一种基于帧和事件的视觉位置识别混合网络架构,并将其部署在自主驾驶车辆或微小型无人机上,以进一步释放事件相机的潜力,来解决实际移动机器人的视觉位置识别和视觉回环检测问题。

参考文献(References)
[1]
Lowry S, Sunderhauf N, Newman P, et al. Visual place recognition: A survey[J]. IEEE Transactions on Robotics, 2016, 32(1): 1-19. DOI:10.1109/TRO.2015.2496823
[2]
Zeng Z Q, Zhang J, Wang X D, et al. Place recognition: An overview of vision perspective[J]. Applied Sciences, 2018, 8(11). DOI:10.3390/app8112257
[3]
Angeli A, Filliat D, Doncieux S, et al. Fast and incremental method for loop-closure detection using bags of visual words[J]. IEEE Transactions on Robotics, 2008, 24(5): 1027-1037. DOI:10.1109/TRO.2008.2004514
[4]
Galvez-Lopez D, Tardos J D. Bags of binary words for fast place recognition in image sequences[J]. IEEE Transactions on Robotics, 2012, 28(5): 1188-1197. DOI:10.1109/TRO.2012.2197158
[5]
Oertel A, Cieslewski T, Scaramuzza D. Augmenting visual place recognition with structural cues[J]. IEEE Robotics and Automation Letters, 2020, 5(4): 5534-5541. DOI:10.1109/LRA.2020.3009077
[6]
Gallego G, Delbruck T, Orchard G, et al. Event-based vision: A survey[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, 44(1): 154-180. DOI:10.1109/TPAMI.2020.3008413
[7]
孔德磊, 方正. 基于事件的视觉传感器及其应用综述[J]. 信息与控制, 2021, 50(1): 1-19.
Kong D L, Fang Z. A review of event-based vision sensors and their applications[J]. Information and Control, 2021, 50(1): 1-19.
[8]
Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision, 2004, 60: 91-110. DOI:10.1023/B:VISI.0000029664.99615.94
[9]
Rublee E, Rabaud V, Konolige K, et al. ORB: An efficient alternative to SIFT or SURF[C]//International Conference on Computer Vision. Piscataway, USA: IEEE, 2011: 2564-2571.
[10]
Jegou H, Douze M, Schmid C, et al. Aggregating local descriptors into a compact image representation[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2010: 3304-3311.
[11]
Arandjelovic R, Zisserman A. All about VLAD[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2013: 1578-1585.
[12]
Torii A, Arandjelovic R, Sivic J, et al. 24/7 place recognition by view synthesis[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2015: 1808-1817.
[13]
Chen Z T, Lam O, Jacobson A, et al. Convolutional neural network-based place recognition[DB/OL]. (2014-11-06)[2018-08-13]. https://arxiv.org/ftp/arxiv/papers/1411/1411.1509.pdf.
[14]
Lopez-Antequera M, Gomez-Ojeda R, Petkov N, et al. Appearance-invariant place recognition by discriminatively training a convolutional neural network[J]. Pattern Recognition Letters, 2017, 92: 89-95. DOI:10.1016/j.patrec.2017.04.017
[15]
Arandjelovic R, Gronat P, Torii A, et al. NetVLAD: CNN architecture for weakly supervised place recognition[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2016: 5297-5307.
[16]
Milford M J, Wyeth G F. SeqSLAM: Visual route-based navigation for sunny summer days and stormy winter nights[C]//IEEE International Conference on Robotics and Automation. Piscataway, USA: IEEE, 2012: 1643-1649.
[17]
Torii A, Sivic J, Pajdla T, et al. Visual place recognition with repetitive structures[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2013: 883-890.
[18]
Ye Y W, Cieslewski T, Loquercio A, et al. Place recognition in semi-dense maps: Geometric and learning-based approaches[C]//British Machine Vision Conference. Guildford, UK: BMVA Press, 2017: 74.1-74.13.
[19]
Camara L G, Preucil L. Spatio-semantic ConvNet-based visual place recognition[C]//European Conference on Mobile Robots. Piscataway, USA: IEEE, 2019: 1-8.
[20]
Hong Z Y, Petillot Y, Lane D, et al. TextPlace: Visual place recognition and topological localization through reading scene texts[C]//IEEE/CVF International Conference on Computer Vision. Piscataway, USA: IEEE, 2019: 2861-2870.
[21]
Benbihi A, Arravechia S, Geist M, et al. Image-based place recognition on bucolic environment across seasons from semantic edge description[C]//IEEE International Conference on Robotics and Automation. Piscataway, USA: IEEE, 2020: 3032-3038.
[22]
Milford M, Kim H, Mangan M, et al. Place recognition with event-based cameras and a neural implementation of SeqSLAM[DB/OL]. (2015-05-18)[2018-08-13]. https://arxiv.org/ftp/arxiv/papers/1505/1505.04548.pdf.
[23]
Fischer T, Milford M. Event-based visual place recognition with ensembles of temporal windows[J]. IEEE Robotics and Automation Letters, 2020, 5(4): 6924-6931. DOI:10.1109/LRA.2020.3025505
[24]
Rebecq H, Ranftl R, Koltun V, et al. Event-to-video: Bringing modern computer vision to event cameras[C]//IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2019: 3852-3861.
[25]
Gallego G, Rebecq H, Scaramuzza D. A unifying contrast maximization framework for event cameras, with applications to motion, depth, and optical flow estimation[C]//IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2018: 3867-3876.
[26]
Zhu A Z, Yuan L, Chaney K, et al. EV-FlowNet: Self-supervised optical flow estimation for event-based cameras[DB/OL]. (2018-02-19)[2018-08-13]. https://arxiv.org/pdf/1802.06898.pdf.
[27]
Gehrig D, Loquercio A, Derpanis K, et al. End-to-end learning of representations for asynchronous event-based data[C]// IEEE/CVF International Conference on Computer Vision. Piscataway, USA: IEEE, 2019: 5632-5642.
[28]
He K M, Zhang X Y, Ren S Q, et al. Deep residual learning for image recognition[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2016: 770-778.
[29]
Kulis B. Metric learning: A survey[J]. Foundations and Trands® in Machine Learning, 2013, 5(4): 287-364. DOI:10.1561/2200000019
[30]
Liu Y. Distance metric learning: A comprehensive survey[D]. Michigan, USA: Michigan State University, 2006.
[31]
Schroff F, Kalenichenko D, Philbin J. FaceNet: A unified embedding for face recognition and clustering[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2015: 815-823.
[32]
Chen W H, Chen X T, Zhang J G, et al. Beyond triplet loss: A deep quadruplet network for person re-identification[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2017: 1320-1329.
[33]
Zhu A Z, Thakur D, Ozaslan T, et al. The multivehicle stereo event camera dataset: An event camera dataset for 3D perception[J]. IEEE Robotics and Automation Letters, 2018, 3(3): 2032-2039. DOI:10.1109/LRA.2018.2800793
[34]
Binas J, Neil D, Liu S C, et al. DDD17: End-to-end DAVIS driving dataset[DB/OL]. (2017-11-07)[2018-08-13]. https://arxiv.org/pdf/1711.01458.pdf.
[35]
Maddern W, Pascoe G, Linegar C, et al. 1 year, 1000 km: The Oxford RobotCar dataset[J]. International Journal of Robotics Research, 2017, 36(1): 3-15. DOI:10.1177/0278364916679498
[36]
Hu Y, Liu S C, Delbruck T. V2E: From video frames to realistic DVS events[C]//IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2021: 1312-1321.
[37]
Dosovitskiy A, Ros G, Codevilla F, et al. CARLA: An open urban driving simulator[DB/OL]. (2017-11-17)[2018-08-13]. https://arxiv.org/pdf/1711.03938.pdf.