今天,在2022年国际机器人与自动化会议上,笔者与萨里大学同事合作撰写的论文《将图像转换为地图》获得了大会最高优秀论文奖。我们的论文解决了基于标准侧向视角照片构建场景“鸟瞰”俯视图的问题。这对于自动驾驶车辆至关重要,它们需要构建周围环境的地图以决定安全行驶区域。
我们的方法基于一个众所周知的原理:数字图像中的每一列像素都对应于视场2D地图中的一条射线。该列中的每个像素依次对应于该射线上的一个点。
我们的核心见解是,由于像素与射线上点之间的一一对应关系,将图像转换为地图的问题与自然语言处理中的序列到序列问题(如机器翻译)具有相同的结构。我们利用了这一想法,使用成熟的序列到序列处理机制——特别是基于Transformer的模型——通过直接将每一列像素“翻译”成地图上的一条射线来将图像转换为地图。在论文报告的实验中,我们在三个不同数据集上将此方法与一系列现有方法进行比较,在所有数据集上均显著优于所有现有方法。
注意力机制是关键
Transformer成功的关键在于其使用的注意力机制,该机制决定输入的哪些元素对输出的哪些元素最重要。然而,通常情况下,Transformer在计算机视觉应用上比在NLP应用上需要更多数据。这是因为,在大型2D图像中——与一维短词序列不同——有太多的注意力候选对象:任何一个像素都可能包含改变其他像素解释方式的信息。通过将Transformer的使用限制在单个像素列和单个射线上,我们避免了这种组合爆炸,并能够在现有的较小数据集上高效训练。
语义内容
我们的任务与序列到序列NLP任务之间的类比相当精确。许多语言共享一种共同结构,这意味着单词在源文本及其翻译中通常(尽管并非总是)出现在相似位置。同样,图像列中更靠下的像素通常(尽管并非总是)对应于沿相关射线更靠近相机的点。在这两种情况下,Transformer都可以利用这种结构。
然而,在计算机视觉案例中,一个重大障碍是射线上单个像素包含的信息很少。例如,在街道场景中,射线上一个黑色像素可能对应沥青路面、轮胎或行人的鞋子。为了解决此类歧义,我们通过使用卷积神经网络预处理输入图像来生成捕获局部上下文的特征。
CNN一次处理一个像素块,在每个块中寻找独特的模式,例如具有特定方向的颜色渐变。CNN底层发现的低级模式由更高层聚合,直到它们获得语义内容——深色轮胎的曲线、闪亮路标的平行边缘。因此,输入到我们的Transformer网络的不是原始颜色值,而是由CNN生成的像素嵌入。这些嵌入考虑了其他列像素的信息,并包含有助于确定射线上深度的线索——例如,某个像素可能属于汽车轮胎而不是鞋子。
我们使用了在标准图像分类任务上预训练的CNN,因此它已经学会了识别对计算机视觉任务有用的图像特征。然后,我们端到端地训练整个集成模型——CNN和Transformer——以便CNN生成对图像映射有用的嵌入。
在我们的实验中,我们考虑了从单幅图像和图像序列(即视频)构建地图的场景。我们基于视频生成的地图比基准视频模型生成的地图更准确,而且通常比我们的方法从静态图像生成的地图更准确。但改进幅度很小,在所有14个类别上平均约为3%。
一个未来研究的有趣主题是,我们是否能够更好地利用视频流中的透视信息,以相对于静态图像在地图精度方面获得更大的提升。我们还通过使用新颖的基于图的方法将3D对象检测集成到我们的映射算法中,改进了这项工作。我们在今年CVPR会议上发表的论文《“‘灯柱旁的行人’:用于更好即时映射的自适应对象图”》中描述了这些结果。FINISHED
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。