原文连接:https://arxiv.org/pdf/1812.05050.pdf
任务:
实时追踪指定的物体,并分割。
方法:
概述
1. 首先在第一帧指定对象的位置,用bbox给出。
2. 用来追踪上一帧目标的是上一帧的窗口。除了可变大小和角度的bbox,还有一个固定大小的窗口。窗口可以认为是分割的最大可能的范围,总是包含要追踪的目标。尽可能让目标在窗口中心,然后对目标检测和分割。
3. 检测到目标以后,得到目标的bbox,然后以该bbox中心为新的窗口中心。返回2,追踪下一帧。
相似性函数
窗口的作用,在于为后一帧找目标做标杆。有了前一帧窗口,可以根据相似度找到后一帧中和目标最相似的区域。后一帧中找窗口不是任意的,而是有限的。
相似性函数是用卷积来定义的。度量的是前后帧之间的特征的相似度。因此要先用某种网络提取出特征。这里是以卷积为例,每个窗口大小为127*127,窗口提取出特征的结果为6*6*128。这样的卷积作用于整个255*255的图像,将会得到22*22*128的特征,而再将窗口特征和整个图像特征做卷积,得到17*17的矩阵。这个矩阵每个值是由原图中某个窗口大小的块和窗口的特征的卷积计算得到的。如果特征都是-1,0和1,则和原窗口特征完全相同的特征矩阵和其卷积是最大的。因此可以用卷积作为相似性度量。
特征提取
特征提取是一个框架,如果仅考虑和上一帧特征的相关性,用什么特征提取算法理论上都是可以的。但是如果将分割任务加到目标追踪上来,那么提取的特征就应当包含足够分割的信息。因此将特征提取用传统的CNN来做,既提取特征,同时又为下一步,利用提取的特征恢复分割mask,提供了足够的信息。
利用卷积神经网络来计算特征图。注意窗口和原图的特征提取都是使用同样的卷积神经网络,然后让窗口提取的特征作为卷积核,和图像的特征卷积,计算原图每一个滑动窗口和窗口的相似度,组成一个大的Rows,每一个滑动窗口即为一个Row,有256个特征,分别表示256个特征的相似度。然后用三个头输出三个东西,分别是预测mask,边界框bbox,预测概率score。针对三个头都有损失函数,将损失函数加到一起优化。但是训练时同样需要两个标注,为bbox和mask标注。
问题
1. 窗口大小怎么选
我认为窗口是为了将目标尽可能包括在内,并且有一定的裁剪效果。如果目标在图像中所占大小是基本固定的,可以采取尽可能小的窗口,这样可能能让mask更准确。
2. 卷积操作和特征提取对于窗口和原图中的滑动窗口都是对称的,为什么可以分割出原图中的滑动窗口而不是窗口
实际上有一些不对称的操作,比如有从原图到mask的跳跃连接,是借鉴的UNet的思路,让滑动窗口的部分信息更多,分割就会是滑动窗口的部分。当然也受到上一帧的窗口的影响。