目标检测和目标跟踪对于机器人、具身智能智能体而言都非常重要,它们共同构成了机器人系统的基础外部感知单元。近来,以Segment Anything(SAM)为代表的感知一切算法登上了计算机视觉的舞台,并且引发了广泛的关注。
本文介绍一篇MIT和哈佛大学合作完成的研究论文,提出了一种实时检测、跟踪和跟随任何物体的机器人系统,被称为“follow everything”(FAn)。与SAM类似,FAn是一种开放词汇和多模态模型,其不限于参与训练的样本类别,可以在推理时根据输入的文本、图像或者以鼠标交互的方式来点击跟踪视频中的目标。为了实现这种效果,作者在FAn引入了CLIP、DINO和SAM等基础视觉语言大模型,在输入视频序列中查询和匹配跟踪目标的分割mask和边界框,同时作者还对跟踪过程中受物体遮挡和画面质量影响的目标进行了后处理。
下面视频展示了FAn部署在无人机上对地面车辆的跟踪效果,当车辆被其他物体遮挡丢失目标后,FAn可以迅速的实现二次检测和跟踪。考虑到FAn系统的落地实用性,作者对其做了专门的轻量化处理,FAn可以在微型无人机(MAV)和轻量级的笔记本显卡(显存为6-8GB)上进行流畅部署,可以达到6-20fps的实时跟踪效果。
文章链接:
https://arxiv.org/abs/2308.05737
代码仓库:
https://github.com/alaamaalouf/FollowAnything
一、引言
本文作者认为,现有的跟踪技术仍然存在一些明显的缺点:
1)训练的模型只能处理封闭集中的类别,这意味着将这种模型应用在机器人系统上只能处理一组固定的对象类别,这限制了机器人对外界环境的适应性。
2)此外,感兴趣的对象只能通过类标签来指定,这对于用户来说是非常不直观的交互方式,尤其是在视频跟踪这种需要进行实时反馈的场景中。
目前深度学习社区出现了很多效果拔群的大模型,基于多模态数据预训练的大模型CLIP[1]和DINO[2]等都在开放集场景中表现出了非常惊人的性能,它们不需要再针对特定任务进行训练,就可以在推理时根据用户指定来捕获感兴趣的目标。
上图展示了FAn系统在一幅包含4条鲸鱼的输入帧上的运行效果,用户可以选择是在鲸鱼上单击查询还是在整个水面区域单击查询。首先,FAn会调用SAM来提取多个mask,然后根据DINO特征将每个mask分类为它从给定查询(水/鲸鱼)中引用的对象。最后,通过分配DINO特征描述符来检测到与当前查询最接近的鲸鱼。通过以上设计,FAn实现了一个开放式、多模态和高灵活性的实时跟踪一切系统,除了上面例子展示的通过鼠标点击选取感兴趣区域,FAn还提供了通过输入文本提示、图像和边界框等多种交互方式。
二、本文方法
从FAn整体实现角度来看,其使用了目前最为先进ViT模型的组合,将它们统一到了单个系统中,并专门做了实时优化。如下图所示,FAn使用SAM进行场景目标分割,使用DINO和CLIP进行通用视觉特征提取,对于跟踪模块,作者使用SiamMask[3]框架进行实现。除此之外,作者还设计了一个二次检测机制,可解决对象被遮挡或跟踪丢失的情况,该机制可以自主运行或在人工指导下运行,确保目标被成功识别并再次跟踪,保持跟踪过程的连续性。
2.1 开放词汇目标检测和分割
2.2 在边缘计算设备上进行快速检测
由于SAM和DINO等模型的基础版本在处理视频帧时耗时较长,因此其不太适合在实时机载设备上部署,为了解决计算性能瓶颈,作者提出通过对DINO特征进行分组来获得粗略检测结果,这些粗略检测结果可以通过不断迭代计算来进一步细化,从而使整个系统达到高帧速率运行的效果。
为了进一步加速检测和分割,作者使用quantization和tracing两种模型优化策略对DINO ViT模型进行了处理,其中quantization可以降低模型中数值的精度,从而降低内存需求和计算复杂性。tracing是一种替代优化技术,其可以将动态计算图转换为静态图表示,从而实现模型图计算的高效并行化。上表展示了优化后的DINO以及FAn系统中其他模型的运行时信息,可以看到,在使用quantization和tracing处理后的模型,FPS指标有了明显的提升。
2.3 丢失物体二次检测
如果由于遮挡或目标突然运动而导致丢失跟踪对象,FAn系统会自动启动二次检测过程,该过程主要通过对目标轨迹进行交叉存储来实现。如下图所示,FAn首先会存储当前跟踪目标的DINO特征,一旦目标丢失,FAn会从跟踪器中获取历史mask,对于每个mask,首先使用与先前相同的方式计算DINO描述符,并且将其与预先计算的描述符进行比较,如果获得高相似度,继续保持跟踪。
三、实验效果
本文实验的硬件系统是一台配备RGB相机的四旋翼飞行器,该飞行器是使用飞行控制软件的Pixhawk进行定制的,飞行器如下图所示。其使用herelink数字传输系统将相机数据与其他遥测数据直接传输到地面计算基站(配备一张NVIDIA GeForce RTX 2070 GPU)。地面基站对接收到的数据运行FAn跟踪算法并通过Mavlink向四旋翼飞行器发送控制命令。
对于FAn系统的实时运行性能测试,作者使用Grounded-SAM作为对比baseline方法进行对比实验,下表展示了实验结果,可以看到本文方法在输入帧尺寸在320*240和640*480两种情况下的性能均优于Grounded-SAM。
作者在下图中展示了FAn根据文本查询对低分辨率图像进行自动检测的效果,在图(b)中,由于图像分辨率较低,无人机mask面积太小,导致本文方法错误将查询文本“无人机”匹配为整个背景mask。为了解决整个问题,作者直接删除了面积较大的背景mask,如图(c和d)中,FAn就可以精确地定位到无人机。
为了进一步测试FAn的zero-shot检测效果,作者选取了训练类别集合之外的数据进行测试,尝试使用SAM+CLIP的方式通过文本提示进行实时检测,测试场景分为多种类别,
(1)标准检测,例如“检测鲸鱼”。
(2)基于场景推理的检测,此类任务需要对场景有很好的理解,例如“检测拿着鲸鱼的男孩”。
(3)基于特殊属性的检测,此类任务需要寻找具有特定属性的对象,例如“检测白色的狗”。
(4)基于特殊先验知识的检测,这种任务需要预先了解特定对象,例如其名称/昵称,例如“检测梅西/克里斯蒂亚诺·罗纳尔多”。
(5)基于特殊先验知识和属性的检测,这种场景可以看作是前两种情况的组合,例如“检测皇家马德里球员”。
下图展示了该实验的可视化检测效果。
四、总结
本文提出了一种新型的"感知一切"方法,称为FAn系统,其组合了多模态大模型与通用的视觉分割、检测和跟踪方法,并且通过一系列模型推理优化策略,极大的降低了视觉领域的SOTA模型在实时机器人系统上的部署难度。基于多模态大模型的开放词汇感知和多模态信息处理能力,FAn拥有较强的环境适应能力,同时提供了多种灵活的用户交互方式。
参考
[1] A. Radford, J. W. Kim, C. Hallacy, A. Ramesh, G. Goh, S. Agarwal, G. Sastry, A. Askell, P. Mishkin, J. Clark et al., “Learning transferable visual models from natural language supervision,” in International conference on machine learning. PMLR, 2021, pp. 8748–8763.
[2] M. Caron, H. Touvron, I. Misra, H. Jegou, J. Mairal, P. Bojanowski, and A. Joulin, “Emerging properties in self-supervised vision transformers,” in Proceedings of the IEEE/CVF international conference on computer vision, 2021, pp. 9650–9660.
[3] Q. Wang, L. Zhang, L. Bertinetto, W. Hu, and P. H. Torr, “Fast online object tracking and segmentation: A unifying approach,” in Proceedings of the IEEE conference on computer vision and pattern recognition, 2019
作者:seven_