【SNIP】《An Analysis of Scale Invariance in Object Detection – SNIP》

在这里插入图片描述

CVPR-2018

Singh B, Davis L S. An analysis of scale invariance in object detection snip[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 3578-3587.

https://github.com/bharatsingh430/snip?tab=readme-ov-file


文章目录

  • 1、Background and Motivation
  • 2、Related Work
  • 3、Advantages / Contributions
  • 4、Method
  • 4.1、Image Classification at Multiple Scales
    • 4.2 Data Variation or Correct Scale?
    • 5.3 Object Detection on an Image Pyramid
  • 5、Experiments
    • 5.1、Datasets
    • 5.2、Evaluation
  • 6、Conclusion(own) / Future work / Reference


1、Background and Motivation

CNN 在图像分类上已经超越了人类的水平,但是在目标检测上还有很长的路要走

large scale variation across object instances, and especially, the challenge of detecting very small objects stands out as one of the factors behind the difference in performance.

在这里插入图片描述
可以看到在 COCO 数据集上,大约 50% 的目标小于图片的 10%,

目标尺寸从小到大排序位于 10%~90% 的目标,尺寸相差高达 20 倍,尺度变化是非常大的

To alleviate the problems arising from scale variation and small object instances,有如下的解决思路

  • shallow(er) layers, are combined with deeper layers for detecting small object
  • dilated/deformable convolution for detecting 大目标
  • independent predictions at layers of different resolutions are used to capture object instances of different scales
  • context
  • multi-scale train
  • inference is performed on multiple scales,然后 NMS 合并

作者提出 Scale Normalization for Image Pyramids (SNIP),only back-propagate gradients for RoIs/anchors that have a resolution close to that of the pre-trained CNN

2、Related Work

围绕着解决尺度变化较大的解决思路展开

在这里插入图片描述

3、Advantages / Contributions

针对目标检测中的尺寸问题,提出了 SNIP 方法,缓解了小目标检出率(为了减少 Domain-Shift——pretrain Train和Train尺寸上的差异,在梯度回传的时候只将和预训练模型所基于的训练数据尺寸相对应的ROI的梯度进行回传,借鉴多尺度训练的思想,引入图像金字塔来处理数据集中不同尺寸的数据)

实现了 COCO 数据集上 SOTA

获得了 Best Student Entry in the COCO 2017 challenge.

4、Method

作者先来了几个小实验来论述他对尺度变化问题的理解

4.1、Image Classification at Multiple Scales

在这里插入图片描述

(1)Na¨ıve Multi-Scale Inference

inference 的时候图片先被下采样到 48x48, 64x64, 80x80, 96x96 and 128x128, 然后上采样到 224x224 送到网络中,如 CNN-B

这个实验模拟的就是训练数据的分辨率和验证数据的分辨率不一致的时候对模型效果的影响

在这里插入图片描述
在不同分辨率下测试

testing on resolutions on which the network was not trained is clearly sub-optimal

(2)Resolution Specific Classifiers

训 ImageNet 的网络输入 224x224,设计的时候一般 a stride of 2 followed by a max pooling layer of stride 2x2,降低计算量

输入尺寸变小的时候,网络结构也需要相应的改变,例如 48x48 和 96x96

作者 a stride of 1 and 3x3 convolutions in the first layer for 48x48 images,训练 CNN-S

在这里插入图片描述
对于 96 x 96 的输入分辨率的话,use a kernel of size 5x5 and stride of 2

相比于 CNN-B,在对应训练尺寸下测试,效果提升还是比较明显的(it is tempting to pre-train classification networks with different architectures for low resolution images and use them for object detection for low resolution objects

这个实验模拟的是训练数据和验证数据的分辨率一致的效果

(3)Fine-tuning High-Resolution Classifiers

CNN-B-FT 是用高分辨率的图片训练 224x224 的网络,训练好后,用低分辨率图片上采样到 224 进行 fine-tune,效果提升明显

instead of reducing the stride by 2, it is better to up-sample images 2 times and then fine-tune the network pre-trained on high-resolution images

基于高分辨率图像训练的模型也可以有效提取放大的低分辨率图像的特征

核心思路,怎么训怎么测,训练小目标多,测小目标,训练大目标多,测大目标

4.2 Data Variation or Correct Scale?

在这里插入图片描述
在这里插入图片描述

Table 1 的第一列对应图 5.2,第二列对应 5.1,第四列 MST 对应 5.3,验证集的尺寸都是 1400x2000

80 0 a l l 800_{all} 800all 代表训练尺寸是 800x1400

140 0 a l l 1400_{all} 1400all 代表训练尺寸是 1400x2000

(1)Training at different resolutions

table1 第三列针对小目标放大了输入分辨率为 1400,效果最好,符合上面 ImageNet 数据集上的实验结论,放大小目标的分辨率,然后测试效果比较好,但是只比第二列好一丢丢?

作者的解释

too big to be correctly classified,

blows up the medium-to-large objects which degrades performance

ps:单纯放大图片分辨率也不是办法,要更灵活

(2)Scale specific detectors

table1 第一列针对小目标放大了图片分辨率效果反而没有第二列好?

作者的解释

ignoring medium-to-large objects (about 30% of the total object instances) that hurt performance more than it helped by eliminating extreme scale objects.

有道理,小目标虽然多,但是难训练呀,提升的点有限,这么一操作,中大目标的精度夸夸的掉

(3)Multi-Scale Training (MST)

总体效果还行,但没有想象中的好

degraded by extremely small and large objects

it is important to train a detector with appropriately scaled objects while capturing as much variation across the objects as possible.


还是验证了提升分辨率解决小目标问题比较有效,有没有更有效的方法?

更好的实现 train for test

5.3 Object Detection on an Image Pyramid

Scale Normalization for Image Pyramids (SNIP)

在这里插入图片描述

与 invalid GT 的 overlap 过大的 anchor 将会被舍弃

Faster RCNN 的那套框架,backbone + RPN + RCN

those anchors which have an overlap greater than 0.3 with an invalid ground truth box are excluded during training (i.e. their gradients are set to zero).

不需要在高分辨率图像中对大型的目标进行反向传播,不需要在中分辨率图像中对中型目标进行反向传播,不需要在低分辨率图像中对小目标进行反向传播以更好的缓解预训练的尺寸空间中的Domain-Shift从而获得精度提升( reducing the domain-shift in the scale-space)

5、Experiments

5.1、Datasets

COCO

5.2、Evaluation

在这里插入图片描述

在这里插入图片描述

这个表 AR 和小目标的 AP 提升比较明显

我们知道 faster rcnn 中,GT 与 anchor 的 overlap 大于 0.7 的时候 anchor 才是 positive,

均小于 0.7 的时候,将分配最大 overlap 的 anchor 作为 正样本(If there does not exist a matching anchor, RPN assigns the anchor with the maximum overlap with ground truth bounding box as positive.)

统计发现

more than 40% of the ground truth boxes, an anchor which has an overlap less than 0.5 is assigned as a positive

换句话说,很多 GT 与 anchor 的 overlap 是小于 50%的,质量并不高

SNIP 的设计缓解了此现象(会有 invalid ground truth,规避掉了一些质量不高的 anchor,因为我连 GT 都摒弃,哈哈哈)

在这里插入图片描述
a stronger classification network like DPN-92

6、Conclusion(own) / Future work / Reference

  • 参考 在小目标检测上另辟蹊径的SNIP

  • training the detector on similar scale object instances as the pre-trained classification networks helps to reduce the domain shift for the pre-trained classification network.

  • 个人阅读感受:整个行文思路不是很清晰,重点的方法部分论述的不多,实验部分不够充实,细节东一句西一句,总的给人感觉思路不太顺畅,前后两句跳跃性比较大

  • 多尺寸训练的缺点,极大或者极小的目标会有干扰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/929549.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GPS周和周内秒 UTC时 格林尼治时间

1.GPS周和周内秒介绍 GPS周和周内秒是全球定位系统(GPS)中用于时间表示的两个重要概念,它们共同构成了GPS时间系统。以下是对这两个概念的详细介绍: GPS周(GPS Week) GPS周是GPS系统内部所采用的时间单位…

探索JavaScript数组API:提升你的编程效率

大家好,今天我们来聊聊JavaScript中数组的常用API。数组是JavaScript中非常重要的一种数据结构,掌握数组的API对于提高编程效率具有重要意义。以下是一些实用的JavaScript数组API,让我们一起来看看吧! 一、创建数组 1、使用Arra…

PHP Paypal支付restful API接口集成插件教程

最近在做一个PHP外贸独立站,想集成PayPal在线支付,于是就想把PayPal做成一个插件。下面就教大家如何一步步来开发PayPal整个流程,有需要的朋友点赞收藏,或下载本插件代码参考。 Paypal接口申请 必须是企业认证的帐号才能申请在…

Visual Studio开发lua脚本环境搭建

在Visual Studio上开发lua脚本环境搭建 1、下载lua的jdk安装,以及环境变量配置 下载LuaForWindows_v5.1.5-52.exe安装, 安装好之后,检查是否路径自动。 下载地址: https://github.com/rjpcomputing/luaforwindows/releases (1…

MySQL 性能优化详解

MySQL 性能优化详解 硬件升级系统配置优化调整buffer_pool数据预热降低日志的磁盘落盘 表结构设计优化SQL语句及索引优化SQL优化实战案例 MySQL性能优化我们可以从以下四个维度考虑:硬件升级、系统配置、表结构设计、SQL语句和索引。 从成本上来说:硬件升…

智已汽车x-signature 登录算法 签到

智已汽车x-signature 登录算法 签到 python代码成品

Android 使用 Canvas 和 Paint 实现圆角图片

学习笔记 效果展示: 全部代码: public class YuanActivity extends AppCompatActivity {private ActivityYuanBinding binding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 通过 DataBinding 获取布局文件binding …

掌控时间,成就更好的自己

在个人成长的道路上,时间管理是至关重要的一环。有效的时间管理能够让我们更加高效地完成任务,实现自己的目标,不断提升自我。 时间对每个人都是公平的,一天只有 24 小时。然而,为什么有些人能够在有限的时间里做出卓…

flask-socketio相关总结

flask-socketio是一个为flask应用程序添加的实时双向通信功能的扩展库,有了这个库,就可以在flask应用中应用websocket协议,帮助flask实现低延迟、双向的客户端、服务端通信。客户端通过任何SocketIO官方库,都能与服务器建立长连接…

YOLOv8改进,YOLOv8引入CARAFE轻量级通用上采样算子,助力模型涨点

摘要 CARAFE模块的设计目的是在不增加计算复杂度的情况下,提升特征图的质量,特别是在视频超分辨率任务中,提升图像质量和细节。CARAFE结合了上下文感知机制和聚合特征的能力,通过动态的上下文注意力机制来提升细节恢复的效果。 理论介绍 传统的卷积操作通常依赖于局部区域…

如何把阿里云ECS里的文件下载到本地(免登录免配置)

如何把阿里云ECS里的文件下载到本地(免登录免配置) 作为一个阿里云ECS的用户,Up时长会遇到希望把ECS里的文件下载到自己的个人电脑,然后在自己的电脑里面查看,保存或者发送给别人。最近发现阿里云新上了一个功能&…

【Notepad++】---设置背景为护眼色(豆沙绿)最新最详细

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【Notepad】---设置背景为护眼色&#xf…

【Axios】如何在Vue中使用Axios请求拦截器

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

在服务器上实现本地python文件的依赖

1、在python中,一个python文件就可以视为一个模块进行导入 2、使用import 导入时,若使用pip 下载过可以直接导入 3、假如是自己写的同项目中的文件会去sys.path 中查找 比如说 我现在 test 下有一个 python文件 运行 下面的代码 打印的数据如上图所示p…

emacs 折腾日记(一)——序言

初次知道emacs这个东西是在《程序员的呐喊》这本书。书中的作者提倡学习编译原理,推崇emacs。现在距离我知道emacs已经过去了快8年,期间不断的重复学习——放弃——学习的路子。与过去学习vim类似,vim我也经历过放弃到学习,最后有…

【二分查找】力扣 875. 爱吃香蕉的珂珂

一、题目 二、思路 速度 k(单位:根/小时)是存在一个取值范围的。 速度越大肯定在规定的时间之内一定会吃完全部的香蕉,但也是可以确定出一个上界的。由于只要保证一小时之内,可以吃完香蕉数目最多的那一堆的香蕉&…

如何找到你的决定性优势

在任何高风险竞争中,无论是争取客户还是发展职业生涯,拥有决定性优势至关重要。沃伦巴菲特称之为“持久竞争优势”,迈克尔波特将其称为“竞争优势”。无论名称如何,核心理念是相同的: 永远不要参与你没有绝对优势的竞争…

【JavaWeb后端学习笔记】SpringBoot框架下Http请求参数接收

Http请求参数接收 1、简单参数2、实体参数3、数组参数4、集合参数5、日期参数6、Json格式参数(常用)7、路径参数(常用)8、接收请求参数常用的几个注解 Http请求能携带各种格式的请求参数。因此也就需要不同的接收方式。 1、简单参…

Qt6.8 QGraphicsView鼠标坐标点偏差

ui文件拖放QGraphicsView,src文件定义QGraphicsScene赋值给图形视图。 this->scene new QGraphicsScene();ui.graph->setScene(this->scene);对graphicview过滤事件,只能在其viewport之后安装,否则不响应。 ui.graph->viewport…

macmini安装ubuntu网卡驱动BCM4360

安装成功效果如下 成功连接wifi 成功分配到IP 执行命令如下 1. sudo apt update 2. sudo apt install broadcom-sta-dkms 3. 重启电脑