『目标』MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020( 二 )


在大数据集上预训练网络权重的时候 , MAML 算法采用了双层优化(Bilevel optimization)的策略 。在每一轮迭代中 , 我们将一组训练样本分为支撑集(Support set)以及目标集(Target set) 。检测器模型先在支撑集上面去进行固定次数的梯度下降迭代(一般为5步) , 再将更新过后的模型参数应用在目标集上 , 计算目标集上的误差 。整体流程如图3所示 。在支撑集上 , 固定次数的梯度下降过程称为里层优化(Inner-level optimization);由目标集上的误差去更新模型参数的过程 , 称为外层优化(Outer-level optimization) 。与普通的 SGD 方法相比 , MAML 算法并不要求找到一组参数 , 直接使得目标集上误差最小;相反的 , 它希望找到一组参数 , 使其经过几步梯度下降迭代之后 , 在目标集上误差最小 。这种双层优化的方式 , 迫使检测器能够通过在支撑集上的训练 , 泛化到目标集上 。
『目标』MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
文章图片

文章图片

图3:算法流程
通过 MAML 算法训练出来的初始化参数具有收敛快、泛化性能好的优点 。图4的可视化结果充分说明了这一点:仅仅经过1步梯度下降的更新 , 检测器就能收敛到一个不错的结果;更重要的是 , 它在测试图片上仍然能够工作得很好 。
『目标』MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
文章图片

文章图片

图4:测试结果
训练过程与实验结果
解决了小样本学习的问题 , 检测器模型就能够自然地应用在跟踪任务上 。
第一步 , 挑选一个目标检测模型 。MAML 算法对具体模型是没有要求的 , 只需要满足可用梯度下降更新的条件即可 。
第二步 , 使用 MAML 算法 , 对该目标检测模型进行预训练 , 找到一组较好的初始化的参数 。
第三步 , 每输入一段视频 , 根据用户在第一帧上指定的跟踪目标 , 构造训练数据 , 并用这个训练数据来训练目标检测模型 。我们把这一步称之为域适应(Domain adaptation).
第四步 , 对于后续的每一帧图片 , 用训练好的检测器去预测跟踪目标的位置 。
在实验的过程中 , 我们选择了 RetinaNet 和 FCOS 作为目标检测模型 。它们分别是 Anchor-based 以及 Anchor-free 两种类型检测器的代表性工作 。在 MAML 预训练初始化参数的过程中 , 我们还加入了一些额外的技巧来辅助训练 。例如可学的学习率(Learnable learning rate)、多步梯度优化(Multi-step loss optimization)、梯度一阶近似(First-order approximation)等等 。这些技巧能够有效地稳定训练过程 , 提高模型的表达能力 。感兴趣的读者可以参阅原始论文中的细节部分 。
我们在实验中惊讶地发现 , 通过这种简单的方式将检测器应用于目标跟踪 , 已经能够取得不错的效果 。在 OTB-100、VOT-18 等多个数据集上 , MAML 预训练的检测器与普通 SGD 预训练的检测器(记为 Baseline)进行了详细的对比 , 结果如表1所示 。在做 Domain adaptation 之前 ,Baseline 和 MAML 的性能都比较低 , 这是因为此时还没有学到任何跟目标物体相关的信息 。经过 Domain adaptation 之后 , baseline 的检测器性能有了小幅度的改善 , 而用 MAML 预训练的检测器则远远优于 domain adaptation 之前的结果 。这充分说明了元学习的有效性 。
『目标』MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
文章图片

文章图片

表1:MAML 预训练的检测器与 Baseline 的对比结果
在实验中 , 我们还进一步探索了在线更新(online updating)策略的有效性 。所谓在线更新 , 即利用之前跟踪的结果 , 收集训练数据 , 用来再次训练检测器 。我们发现 , 通过在线更新的方式 , 能够进一步地提升跟踪的准确度 。当然 , 正如表2所示 , 当在线更新检测器的分类分支(cls)或者回归分支(reg)的时候 , 均会带来效率上的降低 。


推荐阅读