Introduction

引言

介绍了anchor base 和 anchor free 与one stage 和 two stage ,然后说通常认为的anchor base 有低召回的问题,anchor free 对于极端的size 和 aspact ratio 的样本也能够能好的定位。

这里anchor free 也分为两种也有区别。一种是基于keypoint 的方法,另一种是基于分割的方法对每一个位置都进行边界预测。keypoint的方法不受这种奇怪size的影响如corner net ,center net ,但是后者比如fcos,border net 这些事预测边界,遇到size很奇怪的(长宽比10:1)回归也会有困难。

但是通常认为one stage 会生成很多false positives,所以需要two stage 增加一个独立的分类器区分正负样本。所以提出了一个 anchor free 的 two stage 的 network.

问题

就是说这个经典的Corner net,存在一个严重的问题,之前是通过distance embeding 层生成所有的点对,然后这些点对的位置都为一个object,那么就会生成特别多的错误正样本。

方法

two stage,先使用对应的feature进行提取proposals,然后二阶段分类器进行proposals的错误正例去除,剩下的就每一个点对就对应一个object,再多类分类。跟这个rpn的感觉是一样的,但是是anchor free的。

Motivation

就上述讨论了anchor base 的低召回问题后,采用了召回率高的anchor free,但是随之而来的就是高召回低准确率的问题。作者对比了corner net 与 center net 发现center net 添加了一个中心点的过滤而去除了一些false positive,但是显然的是并不能完全去除完所有的错误正例。

Idea

提出了一种two stage的famework,backbone是hourglass,一阶段先通过Corner net 生成 corner point 以及对应的proposals,二阶段通过专门的分类器去除false positive 和多分类回归。

One stage

首先使用与Corner一致的方法两个heat map 分别生成左上角和右下角角点以及对应的类别,然后ground-truth的角点使用高斯函数分散成一个区域,通过focal loss计算定位误差,在通过feature生成offset loss。

但是列举了一下Cornet 原论文中 distance embedding 问题,比如:

1.并没有证明该embedding的可学习性(learnable)

2.只是将训练中不属于同一物体的点在embdding层上给不同的值以达到分离效果,但是对于没有见过的场景,比如将几张训练图片拼接在一块的时候,之前在对应分开图片上表现效果很好的该方法也会直接崩掉(暂时还是不太知道怎么去理解这句话?,yolov4中有对应的训练方法,估计是作者用了但是效果很差)

所以,直接丢弃该embedding层,采用two stage,那么对于该第一层只是用了一些简单的条件判断,比如是属于同一类,以及左上角x,y小于右下角这种筛选去除一部分点对,剩下所有满足条件的点对都是这个stage的输出proposals。

Two stage

因为一阶段给出的proposals 还有很多,文章中说大概有2500个,所以二阶段又两个步骤,第一个步骤是通过一个二值分类器进行前后景分类,再多类分类。

第一步如上图中间部分,使用高分辨率(channel为32)的特征层直接通过RoiAlign将proposal从特征层中到77大小的roi,然后直接使用77的卷积获得对应proposal的分数。这个分数拿来做二值分类。跟匹配最大iou的ground truth框框如果大于0.7算做正例,不然算作负例。然后Focal loss 计算损失,这里的focal loss也是作者自己提出的一种损失函数,跟原focal loss 不太一样,Loss 函数如下。

Pm表示第m个proposal是正例。

第二步就是拿到第一步中的正例,之前one stage部分其实已经有了角点的分类,但是说这不一定就是准确的,因为之前分类缺少ROI的信息,corner之前的分类也就是角点位置特征去分的类。所以就需要iou大于0.7的proposal再做多类分类。同样的,如上图第三层,在分辨率低的特征图上(语义信息高一点)去roialign的特征拿去分类,分类损失如下。

Qm,c表示第m个proposal是对应第c个类别。

最终的loss(前两个是一阶段的,对应corner net里边的去掉embedding的损失,后两个是二阶段的)

推理部分

这里作者说了一下实际推理的时候,因为预测分数pm,qm.c都趋向于0,所以iou那个阈值取的是0.2使得保留更多的proposal。

然后就是因为有两次多类分类的类和分数,一次是corner,一次是两个corner对应的proposal的分数。这两个类有可能相同也有可能不同,但是最终的类别是按照proposal的。分数的话,对于两个角点的平均值分数为s1,proposal的分数为s2,两次分类共同决定最后的结果,但是如果某个分数大于0.5就加中他的比重,例如最终的分数Sc=(S1+0.5)(S2+0.5)(if s1>0.5 s1+0.5:s1)再归一化到(0,1)。

然后就是取最高分数top100,再nms得到结果。

Experiments

跟各个主流算法对比,在anchor free中获得map sota

二阶段的消融实验,两次分类。

因为是从corner net 和center net 的问题中来的,对标一下motivation中解决average false posotives.

Speed

这也算作者一个体现论文很好的实验,在精度和速度上做了很好的trade-off,作者原话:

This indicates that two-stage detectors are not necessarily slow

Conclusion

提出了一个二阶段的,anchor-free的目标检测网络,使用提取keypoint的方式提取出proposals,使用二阶段二值分类过滤错误正例,再对剩下的框进行分类得到结果。在召回率和准确率上都有提高,同时也对速度和精度做了很好的tradeoff。

Corner Proposal Network 论文阅读(2020ECCV)相关推荐

  1. LiDAR-based Panoptic Segmentation via Dynamic Shifting Network(论文阅读笔记)

    LiDAR-based Panoptic Segmentation via Dynamic Shifting Network(论文阅读笔记) 环形扫描骨干网络.动态漂移.一致性驱动的融合 一.重点内容 ...

  2. Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记

    Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记 这篇论文介绍 ...

  3. High Performance Visual Tracking with Siamese Region Proposal Network 论文学习

    文章目录 论文阅读总结 Translation Abstract 1 Introduction 2 Related Works 2.1 Trackers based on Siamese networ ...

  4. Evaluate the Malignancy of Pulmonary Nodules Using the 3D Deep Leaky Noisy-or Network 论文阅读

    paper:https://arxiv.org/abs/1711.08324 源码:https://github.com/lfz/DSB2017 简介 简介--从CT扫描图像进行自动诊断肺癌需要两个步 ...

  5. CPNDet:Corner Proposal Network for Anchor-free, Two-stage Object Detection

    CPNDet论文链接 一.背景 anchor-based方法将大量框密集分布在feature map上,在推理时,由于预设的anchor与目标差异大,召回率会偏低.而anchor-free不受anch ...

  6. 走进VOT--《High Performance Visual Tracking with Siamese Region Proposal Network》阅读翻译

    前言:siamRPN是Siamfc之后的又一突破.SiamFC的缺点: Siamese的方法只能得到目标的中心位置,但是得不到目标的尺寸,所以只能采取简单的多尺度加回归,这即增加了计算量,同时也不够精 ...

  7. [论文阅读]阿里DIN深度兴趣网络之总体解读

    [论文阅读]阿里DIN深度兴趣网络之总体解读 文章目录 [论文阅读]阿里DIN深度兴趣网络之总体解读 0x00 摘要 0x01 论文概要 1.1 概括 1.2 文章信息 1.3 核心观点 1.4 名词 ...

  8. 自动驾驶轨迹预测论文阅读(二)TPNet: Trajectory Proposal Network for Motion Prediction

    论文链接:https://openaccess.thecvf.com/content_CVPR_2020/papers/Fang_TPNet_Trajectory_Proposal_Network_f ...

  9. 论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection

    论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection (1)Author (2)Abstract (3 ...

最新文章

  1. IOS响应式编程框架ReactiveCocoa(RAC)使用示例
  2. js 不同页面间传递值并取值
  3. elasticsearch资源汇总
  4. TTS语音播报程序部署与配置
  5. Android中的日期控件DatePicker和DatePickerDialog
  6. 深究AngularJS——AngularJS中的Controller(控制器)
  7. 55exception对象
  8. ai建立使用图案_ai自定义图案的方法详解步骤图
  9. mysql查询mapper.xml_mapper.xml中的mysql查询问题
  10. HDOJ1102 Constructing Roads【最小生成树】-----武科大ACM暑期集训队选拔赛1题
  11. 中国5G务实发展 向大规模商用推进
  12. gitgrab.sh
  13. swift 全局常量 全局变量的写法
  14. asp.net 旅游网站 源码+配置文档
  15. 全网软件:高级信息搜索数据采集软件 InfoSeek FastSeek
  16. Scala 安装教程
  17. 加入飞桨特殊兴趣小组(PPSIG),点亮AI时代的梦想
  18. 字节跳动java后端一面面经(头条/西瓜视频)
  19. 45. Django 2.1.7 项目技巧 - 创建apps应用目录归纳所有应用
  20. 不需要登录微信,发送消息python

热门文章

  1. python 常见的元字符(\d,\w ,^ ,$ 等) 的使用
  2. EventBus的使用(一看就懂)
  3. 微信小程序下拉刷新和上拉加载
  4. 洛谷 P1142 轰炸
  5. 腾讯应用研究一面 武汉
  6. django学习教程
  7. Activiti——流程变量(六)
  8. FFmpeg学习4:音频格式转换
  9. 软件工程--总作业(已经完成)
  10. SQL 2005 删除带有默认值约束的列