本文作者:孙培泽 | 编辑:Amusi
https://zhuanlan.zhihu.com/p/331590601
本文已由原作者授权,不得擅自二次转载

本文主要介绍一下我们最近的工作:

OneNet: End-to-End One-Stage Object Detection by Classification Cost

  • 论文:https://peizesun.github.io/OneNet.pdf
  • 项目代码:https://github.com/PeizeSun/OneNet

我们提出了OneNet,首次实现了在dense detector中无需Non-Maximum Suppression(NMS)后处理。OneNet的样本匹配策略是one-to-one,即一个gt一个正样本,其他都是负样本;正样本是所有样本中和gt的cost最小的样本,cost定义为样本与gt的分类cost(loss)和定位cost(loss)之和。我们发现,分类cost是去除NMS的关键;而回顾之前的dense detector样本匹配策略,都是只有定位cost,导致冗余的高分检测框,如box IoU(e.g.,YOLO, RetinaNet), point distance(e.g.,FCOS, CenterNet)。OneNet在标准的COCO benchmark上使用ResNet-50 单模型达到了35.0 AP和 67 FPS。

1. 简介

现有的end-to-end的目标检测模型都是two-stage或者multiple-stage。这些模型的检测性能很好,但是one-stage在工业应用中有着更大的潜力。我们提出了OneNet:end-to-end one-stage object detector。OneNet的优势是:

  • 整个网络是全卷积的。
  • 无需Non-Maximum Suppression(NMS)后处理或者self-attention模块。
  • 样本匹配策略是简单的Minimum Cost,无需启发式规则或者复杂的最优二分匹配。

cost定义为样本与gt的classification cost(loss)和location cost(loss)之和。我们发现,classification cost是实现end-to-end的关键。而回顾之前的dense detector样本匹配策略,都是只有定位cost,如box IoU(e.g.,YOLO, RetinaNet), point distance(e.g.,FCOS, CenterNet)。只有定位cost的样本匹配策略会导致冗余的高分检测框(图2),需要NMS后处理去除这些冗余框。

2. OneNet

输入图片(H×W×3),backbone产生feature map(H/4×W/4×C),head预测分类(H/4×W/4×K)和回归(H/4×W/4×4), 最后的输出直接取top-k高分框。


图1 OneNet pipeline

Backbone: Backbone是先bottom-up再top-down的结构。其中,bottom-up结构是resnet,top-down结构是FPN。我们实现了两种FPN,一种是上采样中引入deformable conv,为了追求较高检测精度;一种是普通conv,方便工业部署。

Head: Head是两个并行的conv,分类conv预测类别,回归conv预测到物体框的4个边界的距离。

Output: 直接取top-k高分框,没有NMS,也没有类似CenterNet中max-pooling的操作。

样本匹配策略:OneNet的样本匹配策略是一种基于minimum cost的异常简单的方法,没有启发式规则,也没有最优二分匹配。cost定义为样本与gt的classification cost(loss)和location cost(loss)之和,具体定义是:


L_cls是分类focal loss, L_l1和L_giou是预测框和gt框归一化后的l1 loss和giou loss。lambda是系数。

对每个gt,正样本是和gt的cost最小的样本,其他都是负样本。伪代码:

#C is cost matrix, shape of (nr_sample, nr_gt)
C = cost_class + cost_l1 + cost_giou#Minimum cost, src_ind is index of positive sample
_, src_ind = torch.min(C, dim=0)
tgt_ind = torch.arange(nr_gt)indices.append((src_ind, tgt_ind))

3. 实验


表1 Ablation studies on matching cost and NMS.

表1中的4个实验都是one-to-one的样本匹配策略。其中第一个实验的location cost是feature map中point的位置到物体gt center的位置的距离(可以理解为CenterNet只有高斯极值点为1,其他都是0)。

从表1可以看出,classification cost是去掉NMS的关键。而回想绝大多数的样本匹配策略,如,box IoU,point distance,都是只考虑了location cost。第三个实验如此拉胯的原因可能是因为predicted box是变化的,会导致正负样本来回横跳,训练低效。

图2给出了4个实验的可视化图,可以看到,没有classification cost的模型会预测出冗余的高分检测框,需要NMS后处理来去除这些冗余框。而引入classification cost的模型消除了冗余框。


图2 表1中的4个对比实验的可视化图

4. 讨论

一年前,在anchor-free和label assignment的那波研究中,曾经考虑过one-to-one的样本匹配策略,表1第一行的实验也做过了,性能也是只有AP 20+(加上NMS 30+)。当时自我解释的原因是:某一位置如果分类是1,那么这一位置的周围位置很难突变成0。e2e one-stage也一直没有做work。

最近DETR出现了,在样本匹配中同时考虑location cost和classification cost,成功做出了e2e two-stage(multiple-stage)。这给人启发e2e one-stage是不是也需要引入classification cost。表1第一行的实验简单地加上classification cost(即表1第二行实验)竟然神奇地work了!甚至optimal bipartite matching也不需要,直接全图找最小cost的样本就行。可能optimal bipartite matching也可以做,但是在dense detector中太慢了。

我们的实验结论提出了很多较为本质的问题:为什么引入classification cost能够使得相邻的feature map points的分类发生突变?样本之间的交互(例如self-attetion)对于e2e是否必须?这些问题都值得后续深入研究。

OneNet 论文和项目代码下载

在CVer微信公众号后台回复:OneNet,即可下载上述论文PDF和项目源代码

重磅!CVer-目标检测 微信交流群已成立

扫码添加CVer助手,可申请加入CVer-目标检测 微信交流群,目前已汇集4000人!涵盖2D/3D目标检测、小目标检测、遥感目标检测等。互相交流,一起进步!

OneNet: End-to-End One-Stage Object Detection by Classification Cost相关推荐

  1. Point-cloud based 3D object detection and classification methods for self-driving applications

    说明 仅个人总结 原文下载链接 一. 摘要 由深度学习技术提供的自动驾驶系统正成为未来移动出行的中心.自动驾驶的性能高度依赖于预测任务的质量.传感技术的发展引领了3D扫描仪可用性的增长.例如LiDAR ...

  2. object detection

    原地址:https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html Object Detection Pu ...

  3. Object Detection(目标检测神文)

    目标检测神文,非常全而且持续在更新.转发自:https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html,如 ...

  4. Object Detection经典代码与文章

    转载自Object Detection Papers Deep Neural Networks for Object Detection paper: http://papers.nips.cc/pa ...

  5. 【Whalepaper】CV论文研读 - OneNet:Towards End-to-End One-Stage Object Detection

    Whalepaper是由周郴莲负责的一个每周分享论文的活动. NLP 论文分享:每周日 晚上 九点 CV 论文分享: 每周日 晚上 九点 Res 论文分享:每周六 晚上 九点半 欢迎对paper感兴趣 ...

  6. AFDet: Anchor Free One Stage 3D Object Detection

    论文链接:https://arxiv.org/pdf/2006.12671v1.pdf 前言 在嵌入式系统上操作的高效点云3D目标检测对于包括自动驾驶在内的许多机器人应用来说都是重要的. 大多数以前的 ...

  7. 快速目标检测--Object detection at 200 Frames Per Second

    Object detection at 200 Frames Per Second 本文在 Tiny Yolo 的基础上设计了一个目标检测网络,在 Nvidia 1080ti 上可以达到 100帧每秒 ...

  8. 实时目标检测--Pelee: A Real-Time Object Detection System on Mobile Devices

    Pelee: A Real-Time Object Detection System on Mobile Devices ICLR 2018 Code: https://github.com/Robe ...

  9. 目标检测开源代码汇总 object detection algorithm codes

    无人机目标检测 SlimYOLOv3: Narrower, Faster and Better for Real-Time UAV Applications https://arxiv.org/abs ...

最新文章

  1. 清华北大亚洲第一第二!就在刚刚,2020 泰晤士亚洲大学排名公布!
  2. 亚马逊贝索斯伸出橄榄枝后,巴菲特也力挺特朗普
  3. js 输出中文乱码 解决办法
  4. Linux内核网络数据发送(五)——排队规则
  5. Eclipse插件工具
  6. 如何自定义Shell登录组件
  7. accept函数_基础套接字函数入门1
  8. WinPcap编程入门实践
  9. 虚拟和现实,两种不同身份的切换——留美95后的游戏人生
  10. C#中Bitmap类实现对图像操作的一些方法(转)
  11. Linux服务器重启后crs_stat -t 命令无法正常使用以及解决思路
  12. MySQL IFNull 详解
  13. 博弈论(一)基本概念
  14. 骆天涯:gunicorn部署Flask服务
  15. IDEA使用maven命令打包
  16. c++实现课程管理系统
  17. vant步进器传值_有赞开源的Vue 2.0 的 Mobile 组件库 Vant
  18. 信息安全初学者容易犯的三个毛病
  19. 微信小程序真机调试,苹果用户记得打开本地网络
  20. 计算机主机显卡安装,电脑如何安装独立显卡|电脑安装独立显卡的方法

热门文章

  1. H5新特性(三)——地理定位
  2. 2023年蓝牙耳机如何挑选?不同价格蓝牙耳机推荐
  3. 手机百度打不开html网页,手机百度网页打不开怎么办 手机百度网页打不开的解决方法...
  4. React Native小计
  5. 《数据结构》— 数据结构头文件
  6. python重启_重启--Python
  7. java程序能安装到iphone_iPhone应用程序从Xcode安装在iPhone上,但崩溃了
  8. 企业所得税这么缴纳,会涉及虚假申报?各位老板注意了
  9. 临沂凯德传媒专业APP制作开发
  10. 用keil打开的工程,里面的文件带黄色的小锁怎么办