OSCD: A one-shot conditional object detection framework论文阅读笔记

OSCD: A one-shot conditional object detection framework 论文阅读笔记

这是中国科学院发表在CCF C类期刊 Neurocomputing 425 (2021) 的一篇文章,页码243–255,虽然是C类,但是这篇文章个人感觉挺有价值的。


  • 首先是conditional object detection 和 object detection 的区别。
    • 不同的目的。conditional object detection 意在根据参考图片,在输入图片中找到参考图片指出的相似目标。原先如果要实现这个任务,一个方法是利用sliding window 和 图像匹配算法,另一个方法是LSTD(“LSTD: A Low-Shot Transfer Detector for Object Detection”)。而objecct detection只能找到训练集中有的类别。
    • 不同的训练方式。conditional object detection依赖support-query图片对进行训练,而object detection只需要传统的有监督学习训练方式进行训练即可。
    • 不同的评估方式。和训练是同一个意思,conditional object detection也依赖support-query图片对进行测试。
  • 网络的输入是两个图片,一张是参考图片support image,一张是待检测图片query image。首先经过一个 Siamese network (“Signature Verification Using a Siamese Time Delay Neural Network”,一篇1993年的文章)提取这两张图片的特征(提取到同一个特征空间),然后将两张图片送进一个带条件输入的二阶段检测网络。
  • conditional object detection 有三个优点,第一个是class-agnostic,即可以检测出未知类别的目标;第二个是检测未知类别目标时无需增量训练;第三个是不会忘记已知类别,因为无需增量训练而调整参数(多数few shot learning方法在遇到新类别时会做增量训练,并因此一定程度上会导致原有数据的遗忘)
  • 文章结合fashion mnist数据集和pascal voc数据集提出了一个新的数据集用于训练和评估conditional object detection任务。
  • one-shot conditional detection 目前主要应用在一些visual searching tasks,比如person re-identification。同时与visual tracking任务非常相似。不同之处在于,visual tracking只需要在一帧中找到同一个目标,而one-shot conditional detection需要找到同类的所有目标,并且visual tracking可以参考上一帧的位置,在其周围寻找,定位相对容易。
  • 用公式来表示,one-shot conditional detection 取两个输入,预测一些bbox,预测这些bbox的坐标及其与参考图像相同类别的概率。 OSCD: A one-shot conditional object detection framework论文阅读笔记

网络结构

  • 网络由三部分组成,一部分是Siamese network(文章并没有介绍这个部分的结构,应该没有做修改)用于提取两个图片的特征,一部分是C-RPN,一部分是C-detector

C-RPN

  • 两个图片共享同一个Siamese network,提取出特征图support feature(参考图)和query feature(待检测图),然后将 support feature 分别进行 global max pooling 和 global average pooling,产生两条向量,concatenate后进行一次全连接缩小通道数为一半。这个操作称为S,他将 H 1 × W 1 × C H_1\times W_1\times C H1​×W1​×C 的support feature map变为了 1 × 1 × C 1\times 1\times C 1×1×C 的salient support features
  • 然后将salient support features重复 H × W H\times W H×W次,变成一个 H × W × C H\times W\times C H×W×C的feature map,这个操作称为T
  • 然后将query feature和重复后的salient support features concatenate到一起,送进两层3x3的卷积后,送进1层1x1的卷积产生 H 2 × W 2 × ( 1 + 4 A ) H_2\times W_2\times (1+4A) H2​×W2​×(1+4A)的第一阶段(RPN)检测结果。
    OSCD: A one-shot conditional object detection framework论文阅读笔记

C-detector

  • detector部分和二阶段目标检测思路一样,也是从query feature中取得C-RPN产生的ROI对应的特征块,然后resize到固定大小,support feature也是resize到固定大小,然后concatenate到一起,经过一层3x3的卷积和两层全连接后,分别送进带全连接的softmax和全连接线性回归,产生最终的相似度和位置回归结果。
    OSCD: A one-shot conditional object detection framework论文阅读笔记

题外话:看完文章只觉得,好像不太好。idea很有趣,解决方案不太好看,总觉得还有很多可做的空间,比如模型太简单了;比如数据集太简单了。(话说这可是中科院的文章,我这么菜居然敢挑刺哈哈哈)

上一篇:python代码测试


下一篇:在代码中获取到容器实例