当前位置:   article > 正文

LSTD: A Low-Shot Transfer Detector for Object Detection论文理解_lstd复现

lstd复现


文章思路

出自:Proceedings of the AAAI Conference on Arti ficial Intelligence,2018
很可惜没有pytorch版本的代码,源码是基于c++和caffe的

文章的算法框架LSTD组合了SSD(box regression)和 Faster RCNN(box classification)。

SSD阶段,利用mutiple level特征图(区别于FPN的融合),直接在不同尺寸的特征图上进行每个grid的box regression,并用smooth L1正则项进行loss惩罚。

Faster RCNN阶段,进行一个coarse to fine的改进,首先判断每个box是否有object,初步筛选之后再进行RPN以及ROI pooling的操作,最后再用卷积层对box进行object classification。

整个训练过程分为两步,第一步在样本量充足但同源的数据集上预训练一个LSTD模型(称为source domain),然后共享除了最后一层classification的参数之外的所有参数给新的LSTD模型(target domain),在样本量较小的数据集上进行微调。

微调的时候的特别之处:loss函数加上了设计的两个正则项。 L B D \boldsymbol{L_{BD}} LBD L T K \boldsymbol{L_{TK}} LTK

L B D \boldsymbol{L_{BD}} LBD目的是平衡正负样本(前景背景信息不均,背景像素多),利用小样本标注数据中背景像素进行惩罚,惩罚方式就是L2正则,使得中间层的特征图中的背景像素的权重降低,注意力放在object区域上。
L B D = ∣ ∣ F B D ∣ ∣ 2 \boldsymbol{L_{BD}=||F_{BD}||_2} LBD=FBD2

L T K \boldsymbol{L_{TK}} LTK出发点是发现直接在source domain模型上对novel class进行分类,得到的分数高的分类结果,和真值存在相类似(颜色、形状、出现背景)的特征,因此考虑“借用”已经预训练好的模型对target domain训练过程进行“指导”。
也有人理解为防止catastrophic forgetting,使得base class在微调的时候的输出接近预训练的结果。
具体就是把target domain LSTD变成多任务并行学习,在原本的classification平行地加一个分支进行novel class的source domain class软标签预测,使得该分支的预测结果接近source domain的同一张novel class image的预测结果。
L T K = C r o s s E n t r o p y ( P S , P p r e ) \boldsymbol{L_{TK}=CrossEntropy(P_S,P_{pre})} LTK=CrossEntropyPS,Ppre


可以利用的点

1,小样本学习的三种思路,感觉这个算法利用了两个:fine-tuning(base预训练后再在novel上微调)和一点点meta learning(用student的loss对meta learner的训练从而提高student的水平)
2,小样本要巧妙利用负样本(背景区域),因为正负样本本身就不均衡,在正样本数量有限的情况下,利用好负样本

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/697844
推荐阅读
相关标签
  

闽ICP备14008679号