论文阅读笔记 D3S – A Discriminative Single Shot Segmentation Tracker
结合视频物体分割和目标跟踪(narrow the gap between visual object tracking and video object segmentation)
现有跟踪算法中存在的问题
- 对于目标定位的搜索问题仅适用于目标的低维变换(平移、尺度放缩),不能有效地解决更为常见的变换(横纵比改变、旋转等)
- 现有方法用基于采样的搜索或者边界框回归方式对目标框的横纵比进行估计,受到矩形框自身的限制(需要与坐标轴对齐)
- 当边界框不能很好地表示目标时,基于模板的变换估计不一定可靠。比如当目标自身伸展时,矩形边界框为了包含完整的目标,会圈入很多无关的背景信息。目标在旋转时也是类似,不同切面的外观之间差异很大。简单来说就是模板难以充分地表达目标的各种可能的外观。在面对这些情况时,逐像素分割能够实现更准确的定位,于是跟踪问题转变为了视频物体分割问题。
- 视频物体分割一直依赖无法直接用于跟踪,一般起到的是辅助作用,这是因为视频物体分割要解决的问题是短时长(100 帧以内)视频中的大物体分割,而在跟踪中,目标的外观变化差异很大,并且会在杂乱的背景当中移动,直接将视频分割用于跟踪会导致无法恢复的跟踪失败。
- SiamRPN 的问题。SiamRPN 生成高质量分割掩码图的过程分为两步,一是通过 SiamRPN 分支定位边界框,二是通过另一个分支在这个边界框区域中计算掩码图,这种两步过程将定位和分割步骤分开,没有将二者联合利用提高鲁棒性(存疑:两个任务一起如何提高鲁棒性?)。另一个问题是固定的模板难以适应变化的场景(一般是通过模板更新解决这个问题)。
D3S 概览
- 使用两个视觉模型 GEM(geometrically constrained Euclidean model)和 GIM(geometrically invariant model)表示目标,几何位置模型和几何不变模型,一个约束目标移动的位置,一个约束目标的形状,二者结合后能够为分割提供可靠的样本
- GIM 牺牲空间相关性换取在目标外观显著变化条件下预测边界框大小的能力,GEM 只负责确定边界框的位置(中心点),二者并行计算,最后融合输出。
- 经过网络的一次传播,D3S 的主要输出是一个分割图(热力图),是仅用于分割端到端训练的。
- D3S 可将分割图转换为带有旋转的矩形,替代原来容易出错的贪婪搜索方法。
- D3S 未经过传统边界框跟踪的训练,并且没有根据不同的数据集进行重训练,具有优异的泛化能力和灵活性。
D3S 模型架构
D3S 模型分为 3 个部分:GEM、GIM 和 Refinement 模块。
GIM(Geometrically invariant model)模块
GIM 负责对目标的形态进行估计,以分割的方式给出目标所占的空间范围(区分前景背景)。为了更加精确地分割可变形的目标(视频中目标的外观是不断变化的),判断区域内前景(目标)和背景的空间约束不能太严格,因此 GIM 的输出由和前景背景分别对应的深度特征组成,论文中的表示为
GIM 模块首先将输入经过一个 和 的卷积,目的是 1.降维 2.将 backbone 输入的特征进行调整,使其更适合于分割任务(YOLO 中同样提出过类似的说法)。紧接在 backbone 后的卷积层起到类似于缓冲的作用,因为训练时 backbone 网络的参数是固定的,不进行更新。
初始的前景/背景模型在第一帧中通过抽取像素级标注数据建立,得到 和 ,二者是紧密相邻的。
每个像素位置产生的特征向量都要和前景和背景通道进行计算,每个像素位置产生多条特征向量,分别与前景/背景通道参数点乘(L2 正则化)得到一批相似度值,每个像素位置与前景/背景的相似度值为前 k 个相似度值的平均值。像素位置相似度值的计算过程对于前景和背景是完全一样的,也就是每个像素位置都有前景相似度值和背景相似度值两个值(较为宽松的判断前景背景的空间约束)。除此之外,通过将全部像素位置的前景相似度值和背景相似度值进行softmax计算,得到目标的后验通道 。从 GIM 模块继续向后传播的通道只有前景相似度 和后验通道 。
GEM(Geometrically constrained model)模块
GIM 能够对前景和背景进行区分,但难以区分相似的目标实例(类似物体),GEM 的作用就是使算法对相似目标更为鲁棒。
DCF 具有很好的判别性质,因此为了提高算法的判别能力,GEM 的前半部分直接移用了 ATOM 中的 DCF 结构。但由于 DCF 算法只用到了最大响应值,而 D3S 的输出需要确定每个像素位置上是否出现了目标(每个像素的类别是目标还是背景),因此需要对 DCF 输出的响应图进行进一步处理。GIM 处理的方式就是将 DCF 产生的响应图转换为响应图上每个点到最大响应值的距离图,图上的每个点的值就是在响应图上这个响应点到最大响应值点之间的欧式距离值。
Refinement 模块
结合 GIM 和 GEM 的输出,将两个模块的优势互补,并对低分辨率的结果进行上采样,得到更为准确的输出。
将 GEM 的输出目标位置通道 和 GIM 的输出前景相似度通道 和后验通道 进行拼接,用 的卷积核进行处理。
在上采样部分将 backbone 网络中不同层的输出拼接到输入中,可以实现细节上的优化。每次上采样都将输入分辨率翻倍,随后接 2 个 的卷积。从 GEM 和 GIM 模块得到的输入经过上采样后与 backbone 网络中特定层的输出进行相加,将细节内容加入到特征中。backbone 特定层的输出并不是直接使用,而是先经过 1 个 的卷积后再与经过上采样的特征相加。
最后一个上采样步骤中只有一个 的卷积,上采样后的输出也没有和 backbone 的输出相加,而是后接 1 个 softmax 层生成最终的分割概率图结果。
D3S 跟踪过程
D3S 通过输入第一帧的训练样本,可以给出后续帧的目标分割概率图,概率图不能直接作为跟踪结果,需要进一步处理为明确的矩形区域范围对目标的大小位置进行标记,得到最终的跟踪结果。这个转换过程可以将分割概率图转换为普通的矩形,也可以转换为旋转矩形,取决于数据集的要求。
边界框转换模块
分割概率图的概率阈值设定为 0.5,概率图上以 0.5 为界分为两类,得到二类分割掩码图,保留掩码图中的最大连通域,其中的椭圆形区域为目标区域。将椭圆区域匹配为矩形的方法是通过椭圆的焦点和长短轴实现,如此可以得到对目标的旋转矩形匹配。
在对椭圆区域进行旋转矩形匹配后,进一步对椭圆的长轴方向进行调整,使旋转矩形能够更好地贴合目标区域,这个长轴调整过程在 D3S 输出的分割图和匹配的旋转矩形之间通过优化 损失函数实现,
其中 和 分别表示矩形区域内和矩形区域外的前景像素个数, 表示矩形区域内的背景像素个数,标量 控制 所占的权重。整个边界框匹配过程极快,平均只需 2ms 时间。
D3S 跟踪过程
初始化阶段
经过标注的第一帧图像用于初始化 D3S 模型,初始化的具体方式取决于提供的标签是矩形边界框还是分割掩码图。
如果标签是矩形边界框,GEM 使用 ATOM 中 DCF 的初始化方式。GIM 根据矩形边界框的内容构建一个近似的分割掩码图,将矩形框内的像素作为前景样本,矩形框外 4 倍于矩形框大小的周围区域作为背景样本,随后在 D3S 上进行跟踪迭代,推断得到一个近似的分割掩码图。D3S 为了速度和简洁,只进行了 1 次迭代。
如果标签是分割掩码图,GEM 首先将掩码图中的目标区域进行沿轴的矩形估计,随后按照 ATOM 中的进行初始化。GIM 将分割图中的目标像素作为前景样本,目标周围 4 倍大小的非目标像素作为背景样本。
跟踪阶段
当得到新的一帧图像时,根据上一帧中的目标位置,裁剪出 4 倍于目标大小的区域作为新的样本,随后将样本送入 D3S 网络中得到分割掩码图,通过边界框转换模块将掩码图转换为所需的矩形框(普通/旋转),将这个矩形框作为这一帧的跟踪结果。GEM 中的 DCF 根据估计得到的新目标位置通过反向传播进行更新。GIM 不进行更新(GIM 负责区分前景背景,GEM 负责区分类似物体,GEM需要更新以保持鲁棒性)。