I.INTRODUCTION
一个位置识别系统需要满足和完成一些条件。其一,有一个场景的内部表示也就是地图;其二,能够得出当前视觉信息是否来自于现有地图中,如果是的那来自于哪里。目前视觉场景识别面临一些挑战,例如同一场景的外观会显著变化, 不同场景的外观非常相似,不一定沿着相同视角和位置访问同一场景。
II. CONCEPT OF PLACE IN ROBOTICS AND THE NATURAL KINGDOM
自然界的位置概念有认知地图,[23]提出认知地图应包括路径、边、节点、区域和路标,其在机器人领域中由[24][25]应用并提出有语义层级的认知地图。此后发现位置细胞[28][29][30],由[31]提出位置细胞形成认知地图,[32][33]发现朝向细胞以及网格细胞,综合构建了脑部导航的模型。[35][36]研究发现当场景发生变化时,位置细胞也会根据外部的路标更新正确的位置信息。对于机器人而言则主要是拓扑和度量关系。
III. WHATIS A PLACE?
机器人的位置概念是被导航与建图问题所引出来的,因为不准确的传感器和驱动器导致建图困难,而SLAM问题则更困难。[40]提出使用一种弹性的‘关系地图’,这种拓扑地图与认知地图相似,节点代表可能的位置而边代表位置间的路径。[42][43]中位置被定义为关键交叉点或者路径间决策点以及目标点。
拓扑方法主要问题在于要定义机器人对拓扑世界和度量世界的翻译,对物理位置与路径和抽象位置路径的关联以及机器人传感器和控制的复杂关系[26]。另一个问题在于机器人如何生成拓扑地图,也即是如何从已知度量地图抽象拓扑信息[44]。
根据导航需求,位置可以是“精确的位置点”,也可以是“二维区域”[26]。位置是没有朝向的,这就带来场景识别的姿态不变性问题,即机器人在不同姿态下都能实现同一场景的识别。
新位置的添加可以根据时间步长或者运动距离,另外也可以根据场景外观来定义。[25]根据相邻场景中传感数据或者描述子的相似性与独特性(并非总需要)进行位置定义。[45][46]利用特定的外观结构来定义位置,[47]定义当外观发生显著变化时得到位置的边界。
利用视觉相似性做拓扑位置划分需要量化。[48]注意到这和图像分割中change-point detection的相似之处,[50]使用该领域中Bayesian surprise,[51]使用segmented regression定义拓扑地图。[53]使用image sequencing partitioningtechniques来分组相似图像作为拓扑节点。[54]使用卡尔曼滤波器和Neyman–Pearson Lemma。[55]结合了[56]中提出的dynamic vocabulary building和[57]中提出的Incremental topic modeling来连续学习环境的拓扑位置。[58]使用[59]提出的coresets划分环境。
以上基于外观和基于密度的位置划分比较使用,因为依赖于量化指标[64]。目前一个挑战在于使用语义来强化外观信息,这样就能在线选择。语义信息的加入提高了导航和规划任务效果,但使得场景识别与场景分类以及目标识别相关。目标识别与场景识别相互支持互相提升[71]。
IV.DESCRIBING PLACES: THE IMAGE PROCESSING MODULE
场景描述有两种方法,基于兴趣点和特征点以及描述整个场景。典型的特征点法有[72]SIFT和[73]SURF,首先需要检测步骤用于得到特征点,而全图法如[74]Gist则直接处理。
A. Local Feature Descriptors
[76]-[83]广泛使用了SIFT,[84]使用了[85]提出的Harris affine regions,[87]使用SURF,[2]使用了[88]提出的CenSurE。局部特征提取分为检测和描述,两步可以使用不同技术。[89]使用[90]的FAST检测使用SIFT描述,[15]则使用FAST检测使用[91]BRIEF描述。
一幅图像的特征很多,所以使用[92]的bag-of-words模型,[93]将特征量化为词汇表,可以使用[94]的retrieval techniques。词袋模型将特征描述子空间划分成有限数目的视觉单词。每一幅图像中的所有特征都被归类到了单词中,忽略几何及空间结构。因此使得图像缩减成长度为n的二进制串或者直方图的形式,n是词汇表中单词的数量。
词袋模型可以将图像使用二进制串的汉明距离或者直方图比较技术来对比,而词汇树模型可以提升大规模场景识别时的效率[82][84][87][96][97]使用了词袋模型。
由于词袋模型忽视了几何信息,因此场景描述是姿态不变的。但[14][87][98]-[100]发现增加几何信息可以增强在不良条件下的鲁棒性。这些系统通过各种传感器增加了几何信息,[102][103]使用图像中元素的位置来定义场景的几何。姿态不变性和场景不变形间的妥协尚未解决。词袋模型需要事先训练,而且转换场景后要重训练,所以[56]提出在线训练 的方法,这样就避免了预训练步骤且能自适应环境。
B. Global Descriptors
全局场景描述子早期[5]使用颜色直方图,或者是[104]的主成分分析。[105]使用了各种图像特征,例如[106]使用的边,[107]的角,以及色块,来组成一个位置的指纹,将这些特征按0~360度排列,则场景识别就变成了串匹配,这里使用的全景相机。全局描述子也可以利用预定义图像关键点从局部描述子得到。[108]使全图描述子基于SURF特征提取得到WI-SURF来表示位置,BRIEF-Gist则是用BRIEF特征描述。[74][75]提出的Gist在[110]-[113]中被用于场景识别。
C. Describing Places Using Local and Global Techniques
局部特征描述子不仅在知道此前机器人姿态情况下可以定义位置,也可以联合起来创建此前未观测到的新位置。[114]定义位置就通过covisibility,可以生成以前未访问过地点的情况。[115]生成2维描述子投票空间,高票数者为回环检测候选。[2][7][76]将局部特征和度量信息结合,优化度量信息定位。
全局描述子没有这样的灵活性,而且更受回访时机器人姿态改变的影响相比于local feature,因为whole-image descriptorcomparison method 假设回访视角相同。这一问题可以使用[116]中circular shift 或者像[17][110]中联合BOW模型和Gist进行改善。
但[117]提到local feature在光照改变环境下表现很差,[118][119]说明在改变的条件下local feature不及global。在图像分割块上使用全局描述子或许是一个折中方法。[120]使用global descriptor HOG在图像块上来获取不随环境条件改变的场景签名,[122]使用[123]提出的Edge Boxes object proposalmethod 联合[124]采用的中层卷积神经网络特征来确定和提取路标。
D. Including Three-Dimensional Informationin place Descriptions
上述方法均基于外观,但在度量定位中,这些基于外观的模型要联合度量信息。于是一些系统使用额外传感器例如[98]的激光和[126]-[128]的RGB-D相机。[2][129]-[131]立体相机也能获得尺度信息。[132]的Structure-from-Motion使单目也能提取度量信息,包括各种SLAM系统[7][133][134][135][136]。度量信息可以是稀疏的(来源于特征点),也可以是稠密的(来源于像素点)。[70][126]–[128][138][139]使用RGBD相机等新的传感器,可以获得3维目标信息辅助场景识别。物体能提供语义信息并减少内存需求,优于低级特征信息。
V.REMEMBERING PLACES: THE MAPPING MODULE
A. Pure Image Retrieval
最抽象的用于场景识别的地图框架就是仅存储环境中各个地点的外观信息,[3]中这一方式是假设了匹配仅仅依赖于外观相似度,使用计算机视觉的图像检索技术而并没有利用位置信息特化。虽然没有了相对位置信息,但计算效率检索技术可以利用。
系统的可延展性是场景识别系统的关注点之一,随着场景越来越多,地图设计应保证大规模下的效率。使用BOW模型量化描述子空间则可以用倒排索引来加速图像索引,这里将图像ID存在出现在图像中的words上,而非word存在图像ID上。[3]使用[95]中的层级词汇表树来实现有效的城市范围视觉场景识别。只要每张图中最有效的特征被使用了,场景识别效果会提高,这里信息的价值用条件熵计算。[141]研究了删减特征集下的场景识别提升方法。FAB-MAP2.0[87]以及[142]使用了倒序索引技术在1000km长道路上,不过在应用倒序索引前要简单划分为积极(在内)、消极(不在内)观察。[3]使用投票机制。在词汇表级分级搜索能使场景识别更有效率。[143]就使用一致特征矩阵进行了全局环境的筛选,得到可能场景的子集,提高了效率。
B. Topological Maps
[5][6][118][119]的单纯的拓扑地图只包含相对关系而没有度量信息,但[14][84]将其用于滤除错误匹配。此外,在拓扑地图中仅选择所在地点附近位置的图像来匹配,这样可以加速。[19]使用拓扑信息将场景识别问题规范为Convex L1-minimization problem,[146]中使用homotopy method 获得loop closure假设。使用拓扑信息使得场景识别可以用低分辨率图像,降低内存需求。[19]使用48像素,[147]使用32 4-bit像素,在不同场景和时间内效果都不错。
C. Topological-Metric Maps
拓扑地图可以配度量信息加强。FAB-MAP[6]与SeqSLAM[118]就在加入度量信息后效果变好。[149]-[152]拓扑度量地图中有的度量信息仅仅包含每个位置节点的相对位姿。[1][2][26][140][153]–[156]则在每个节点内存储了路标或物体的姿态,[2][7][76]中这些内部度量信息存为稀疏路标地图,[134]中存为密集网格地图。
VI. RECOGNIZING PLACES: THE BELIEF GENERATION MODULE
场景识别系统的目标是将输入的图像与存储的图像对比产生一个置信度分布,该分布指出了可能的匹配,其中默认了描述子相似的图像很可能来自于同一位置的假设。
A. Place Recognition and Simultaneous Localization and Mapping
姿势图[158][159]被广泛用于SLAM,因为计算效率高,即便长时间的任务也会导致计算量负担大。很多系统[1][2][80][161]独立地运行类SLAM的位置度量修正与类拓扑的回环检测。[149]–[152]中即使场景描述不含度量信息,但地图包含则也可以用loop closure在位置级修正误差。但如果像[2]两者都有度量信息,那精度会更高。纯拓扑地图不会提供修正信息。
B. Topological Place Recognition
如果能获得多数据流,那[3][5][79][96][175]的投票规则可以使用,其中[5]使用色彩判断可能的位置,根据投票结果出现自信、不确定和矛盾。使用BOW模型的[56][114][176]使用词频-逆文档频率法(TF-IDF)打分,根据词在本图中出现频率(distictive)以及它在所有图片中是否普遍(relative)得到分数。
基于贝叶斯的概率计算也可以求匹配可能性。[177]使用高斯函数,[178]还联合了最大期望,[179]使用高斯核。[83][180]使用TF-IDF,[111]和[181]使用蒙特卡洛定位。
这一计算也可以通过数据驱动方法完成,FAB-MAP [6], [87]就是。FAB-MAP解决混淆问题除了考量有很多相似的words外,还考虑到这些words是否有代表性,如果所有图中都常见的words那就认为价值很低。
一般未访问的位置被随机的从Chow-Liu树中抽样,机器人在未访问过的环境中的概率是认为定义的。[60][62][185]提出了迭代学习算法生成环境外观的真实分布,[186]则是聚类图像来总结环境外观,这些系统的学习都是渐进的。[187]通过计算可能假设间的一致性矩阵寻找最大特征值得到最可能的假设。FAB-MAP要求少量的高区分度匹配,但这些则不需要,匹配间的几何关系保证了效果。[116][188]仿脑激励的场景识别用到了place cell以及连续吸引子网络。
C. Evaluation of Place Recognition Systems
准确率和召回率来评价,TP=ture positive, FP=falsepositive, FN=false negative:
目前,一般优先避免FP, 因为会导致崩溃。因此100%precision下的recall才是识别的关键。[189]–[191]却把重点放在找到很多潜在的匹配位置然后在后处理中国修正误匹配,这主要是为了应对恶劣环境下的场景识别,过严的条件会使匹配失败。此外,也应当通过环境中匹配的分布情况来衡量算法好坏,这样做的目的是得到位置匹配在环境中的分布有多平坦,这对很多导航系统很重要。[192]采用运动指定距离没有任何成功匹配的概率来衡量。
VII. VISUAL PLACE RECOGNITION IN CHANGING ENVIRONMENTS
很多场景识别系统都默认一个地方的外观是不变的。[193]认为动态环境中的建图很关键。
A. Describing Places in Changing Environments
不同的光照和天气下,同一场景外观变化是巨大的。有两种方法解决这一问题:
1)找到不受这些因素影响的描述子。
[117]观察到光照变化对SURF影响大,[194]发现SURF比SIFT好,[100]使用[73]中的U-SURF和极线约束的一致性检验在小数据集下得到了80-100%的正确率。[195][196]研究了光照变化对特征的影响,[72]中U-SURF描述子被发现有最好的光照不敏性。对于使用非点特征的系统[111][118][119][197],外观变化很容易使系统崩溃。[172][199]提出edge特征可以用,因为对光照,朝向和尺度不敏。使用阴影移除[201]和光照不敏色彩空间[192]技术可以减小影响。直接的硬件解决也可以,例如激光和红外。[204][205]提出卷积神经网络也可以用,[206][207]发现中层抽取的特征对外观变化鲁棒,高层则对视角变化鲁棒且富含语义。面对变化场景色彩还未被使用。虽然对光照敏感,但相关色信息在除阴影后能提高识别效果[201]。相关色白天更好,因为晚上时黑体假设被违背[208]。
2)找到场景变化规律
这一方法假设环境中场景的外观变化各处一致,这样一来训练后能生成以前没有访问过的地方。这一假设被[209][210]中不同位置的webcam测试,发现不同地方最重要的变化是相类似的。而且训练的数据可以用于计算主成分基用于编码新的位置而只损失少量信息。[211]则学习大量数据,得到数据分布,因为想得到场景变化对描述子的非线性变换,效果提升10-15%,另外使用Kullback–Leibler divergence也提升了效果。[213]跟踪不同光照下图像块生成数据集,[214]使用神经网络学习技术,比SIFT和SURF好,比后者好10%。[18]研究了两个季节间的变化,[215]使用SLIC superpixel进行分割后进行训练。 [216]研究了早午间图像的线性变换,但要求图像是对齐的。一般的学习方法是有监督的,[217]提出恶劣环境下场景识别无监督学习方法,这一方法将场景中广泛相同的部分移除,避免导致误匹配提高了稳定性。
B. Remembering Places in Changing Environments
不同场景中同质性的东西应当遗忘,异质的应当保留,同时对地图应当由多种表述以应对不同天气和配置。
1) Remembering and Forgetting Data
使用人类记忆模型是一种合适的方法[219][220],数据变为短期-长期记忆有一个升级的过程,使用attention and rehearsalmechanisms。[221]认为被遮挡的元素是可能受偶然误差影响的,在未来可能用处不大,[102][223]使用BOW测量特征的价值通过考虑可区分性和可靠性,[224]则考虑每个数据点的误差和均值。
2) Multiple Representations of the Environment
除了不可逆时变,还有循环时变。[211]认为室内要24小时好用需要每个地方3-4张图,这些信息不像前述需要遗忘,应算作多表述。[226]使用了多幅地图,有的代表短期记忆经常更新,有的则是长期记忆在一定时间内不更新。采用不同的更新间隔能保证短时变化不会影响老地图数据。[220]则只在需要的时候添加新的图,[227]注意到并非每个地方都需要多表述,这样可以用有限的子地图充分描述环境,只要动态行为被发现就分割子地图,模糊k-means与贝叶斯方法来决定最佳场景数目。一些短期存在的物体也可能有语义,可能在一定时间段内可用[232],例如停车场,当暂时地图在连续时间步失去匹配时则忽略该地图。[102]在同一场景中跑了五次来获取数据集。[120]多次采集用于生成场景指纹。[121]用HOG通过SVM训练,比SURF好很多。如果环境外观被隐性时间过程控制,那么谱分析方法例如傅里叶分析就可以预测未来外观,[233]研究了这一过程,并且发现在三个月后能降低识别错误。
但上述过程假设在进行不同时间段的数据采集时,机器人知道他自己在同一个地方——即便这里的环境变化很大——这是一个不太合理的假设。避免这一问题,[15]使用机器人经验位置,而非物理位置,每次识别不了就补拍生成新表述,统计结果如下:
保留多表述可能增加识别的搜索空间降低效率,考虑到观察时间的连续性,之后时刻(下一帧)可能使用的匹配图像(若干时间段)可以通过当前的定位匹配结果来推测。[234]使用Chow-Liu树描述,[235]使用“path memory”。
C. Recognizing Places in ChangingEnvironments
整体外观的改变对置信度生成处理提出了要求。第一,要有多表述。此外,场景识别可能同时并行测试多个假设。[15]采用了这种方法,[220]滤除了可能的地图和位姿,同时在N个地图中跟踪N条最佳航迹假设,误差减小了80%。[118][119]中认为拓扑信息很重要,因为数据点已经不可靠也更难匹配上。[14][84][118][147]则认为匹配图像序列相对于单一图像更能提升识别效果。[119]使用序列信息通过将图像匹配标准化为最小代价流,[237]使用了隐马尔可夫模型决定最可能路径通过使用维特比算法。