Confidence Propagation Cluster: 一个来自CVPR2022的目标检测涨点神器(CP-Cluster)
在前不久刚放榜的CVPR2022中有一篇来自NVIDIA的关于目标检测后处理的文章 “Confidence Propagation Cluster: Unleash Full Potential of Object Detectors”
https://arxiv.org/abs/2112.00342https://arxiv.org/abs/2112.00342
GitHub - shenyi0220/CP-ClusterContribute to shenyi0220/CP-Cluster development by creating an account on GitHub.https://github.com/shenyi0220/CP-Cluster
该文的整体思路是要干掉已经用了很久了的NMS和Soft-NMS。作者在文中表示传统的基于NMS的方法及其改进算法主要有以下一些缺陷:
- 无法达到完全并行化,因为所有算法的前提是要先按置信度进行排序
- 严格假设最高置信度的框就是和GT最接近的
- NMS系列只是去重,并没有考虑怎么加强那些重要的True positives,也没有充分利用那些被suppress的弱框
基于此,这篇论文借用了置信度传播的思路(Belief Propagation),把候选框聚类去重问题转化为在无向图中传播置信度这一任务。
作者先把所有候选框转成无向图的集合(IOU<? 的框属于一个图)。然后在每个图中,节点之间相互同时传递正面消息(Positive Message)和负面消息(Negative Message)。最后在重复的框被消除掉的同时,那些被选出的框的置信度也被加强了(Enhanced)
我们首先来看把候选框聚类问题转化为无向图的集合,如下图所示:
接着我们来看正面消息的传递,这个是这篇文章主要创新点,因为之前从没有后处理方法涉及增强某些重要的候选框。作者提出的正面消息会加强那些周围弱样本框比较多的True Positives,如下图所示:
红框因为周围的所谓若样本朋友(weaker friends)比较多,所以他的置信度得到了加强,超越了绿框。具体来说,用如下公式来传递正面消息:
说完正面消息,我们来看负面消息。文中提到的负面消息其实和之前的SoftNMS里用到的负面消息类似,区别只是在于在CP-Cluster中负面消息只在单个Graph里传播,用于Suppress重复框。
CP-Cluster是迭代执行的,作者通过实验发现一般执行2轮就能收敛到最优解。从实验效果来看mAP提升幅度对每个检测器因人而异,但基本都有提升。
从作者源代码来看,除了DETR这种完全end2end的,其他都能用这个方法涨点。比如下面的基于mmdetection的各种主流检测器
然后Yolov5(v6.1 on coco-val)
Model | NMS | Soft-NMS | CP-Cluster |
---|---|---|---|
Yolov5n | 28.0 | 28.3 | 28.5 |
Yolov5s | 37.4 | 37.6 | 38.0 |
Yolov5m | 45.4 | 45.6 | 45.8 |
Yolov5l | 49.0 | 49.1 | 49.4 |
Yolov5x | 50.7 | 50.8 | 51.1 |
Yolov5s6_1280 | 44.9 | 45.0 | 45.2 |
Yolov5m6_1280 | 51.3 | 51.5 | 51.7 |
Yolov5l6_1280 | 53.7 | 53.8 | 54.0 |
Yolov5x6_1280 | 55.0 | 55.1 | 55.4 |
Yolov5x6_1280_tta | 55.8 | 55.8 | 56.2 |
同样也能改进YoloX系列(on coco-val)
Method/mAP | YoloX-Nano | YoloX-Tiny | YoloX-S | YoloX-M | YoloX-L | YoloX-X |
---|---|---|---|---|---|---|
NMS | 25.8 | 32.8 | 40.5 | 46.9 | 49.7 | 51.1 |
CP-Cluster | 26.4 | 33.4 | 41.0 | 47.3 | 50.1 | 51.4 |
结合MaskRCNN 检测器与实例分割一起刷(对一些大的MRCNN模型似乎效果不明显)
Box/Mask AP(test-dev) | NMS | Soft-NMS | CP-Cluster |
---|---|---|---|
MRCNN_R50 | 41.5/37.7 | 42.0/37.8 | 42.2/38.1 |
MRCNN_R101 | 43.1/38.8 | 43.6/39.0 | 43.7/39.2 |
MRCNN_X101 | 44.6/40.0 | 45.2/40.2 | 45.2/40.2 |
Box/Mask AP(val) | NMS | Soft-NMS | CP-Cluster |
---|---|---|---|
MRCNN_Swin-S | 48.2/43.2 | 48.9/43.4 | 49.0/43.4 |
甚至还能改进像Centernet这种说不用后处理的检测器(直接用CP替换maxpooling)
Confidence Propagation Cluster: 一个来自CVPR2022的目标检测涨点神器(CP-Cluster)相关推荐
- CVPR2022 3D目标检测(GLENet )增强型3D目标检测网络
图 1:(a) 给定一个不完整 LiDAR 观测的对象,可能存在多个具有不同大小和形状的潜在合理的真实边界框. (b) 当注释来自 2D 图像和部分点时,标签过程中的模糊和不准确是不可避免的.在给定的 ...
- 基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目
文章目录 一.环境部署 二.数据准备 三.训练 四.训练过程可视化 五.模型预测 一.环境部署 1.1安装PaddlePaddle 安装地址如下: https://www.paddlepaddle.o ...
- 目标检测-小目标检测涨点方法
文章目录 一.图片输入层面 1. 数据增强策略 2. 多尺度输入 3. SNIP 4. SNIPER 二. Neck部分(采用金字塔结构改进方案的) 1. 某种金字塔 2. AugFPN 3. PAN ...
- CVPR2022目标检测文章汇总+创新点简要分析
大概总结了一下CVPR2022目标检测领域的文章,并未包括跨域和3D目标检测. 个人总结,难免有疏漏,大家参考一下就好. CVPR 2022 一.常规目标检测 1. MViTv2: Improved ...
- python实现目标检测_由浅入深:教你如何构建一个行人目标检测模型(Python)
摘要: 零基础也能构建一个目标检测(对象检测)模型?小编教你使用Image AI库从头开始构建一个行人检测模型. 当我们看到一张图片时,我们的大脑会立即识别图片中所包含的物体.而对于机器来说,识别这些 ...
- 目标检测经典论文——YOLOV2论文翻译:YOLO9000: Better, Faster, Stronger(YOLO9000:更好、更快、更强)
YOLO9000: Better, Faster, Stronger YOLO9000:更好.更快.更强 Joseph Redmon*†, Ali Farhadi*† University of Wa ...
- 深度学习论文阅读目标检测篇(五)中英对照版:YOLOv2《 YOLO9000: Better, Faster, Stronger》
深度学习论文阅读目标检测篇(五)中文版:YOLOv2< YOLO9000: Better, Faster, Stronger> Abstract 摘要 1. Introduction 1. ...
- 一文看尽目标检测:从YOLO v1到v3的进化之路
本文转载自: http://www.mamicode.com/info-detail-2314392.html 导语:如今基于深度学习的目标检测已经逐渐成为自动驾驶.视频监控.机械加工.智能机器人等领 ...
- 独家 | 在树莓派+Movidius NCS上运用YOLO和Tiny-YOLO完成目标检测(附代码下载)
作者:Adrian Rosebrock 翻译:吴振东 校对:郑滋 本文约5000字,建议阅读10+分钟 本文教你如何在树莓派和Movidius神经加速棒上运用Tiny-YOLO来实现近乎实时的目标检测 ...
最新文章
- 教你10招最有效防电脑辐射方法
- [游戏模版18] Win32 五子棋
- 【算法基础】常用的数据结构与算法
- C++函数的默认参数
- netty 为什么用nio 不用 aio
- LeetCode 1111. 有效括号的嵌套深度(奇偶分离)
- BRD、MRD 和 PRD 之间的区别与联系有哪些?
- new一个对象的过程中发生了什么
- 李沐新书中文版上线,零基础也可以《动手学深度学习》| 这不是0.7版
- 为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
- for 循环 and while 循环(三)
- linux 用shell比较两个整数的大小
- 中国互联网今日正式满 20 岁
- 遗传算法优化变分模态分解VMD包络熵和参数及MATLAB代码
- 硅谷真假u盘测试软件,Silicom硅谷真假U盘测试1.0.4正式版
- 训练:Training Volume Landmarks for Muscle Growth - Renaissance Periodization论文阅读
- IOS音视频(四十五)HTTPS 自签名证书 实现边下边播
- 移动App Store测试的“七宗罪”
- 3ds Max随堂笔记 材质和类型贴图通道
- 2021-10-06 求1到100以内的质数
热门文章
- OpenCV python(二)图像预处理:改变图像大小 提取感兴趣区域
- win10查看笔记本电脑电池健康度
- 网络营销推广效果在于流量精准度!你做到了吗?
- 第一个OpenDayLight项目:HelloWorld
- androidpn客户端深析
- 这可能是前端开发中能遇到最全的cookie问题了
- 有关秩的等式和不等式
- vue-router.esm-bundler.js?6c02:1474 Uncaught TypeError: Cannot read property ‘forEach‘ of undefined
- 从新手到架构师,一篇就够:从100到1000万高并发的架构演进之路
- ASCLL字母表顺序