SNIPER

SNIPER是一种目标检测方法,旨在解决多尺度问题,结合了RCNN的尺度不变性和Fast系列的速度优势。通过生成特定尺度的上下文区域,无论图像大小如何,都将其采样为统一尺寸,从而保留尺度不变性并提高训练效率。实验表明,SNIPER在减少误报的同时,保持了高检测精度。
转载于: https://blog.youkuaiyun.com/u013010889/article/details/80905348

它算是An Analysis of Scale Invariance in Object Detection-SNIP的增强版,依然在思考怎么能更好的解决检测中的多尺度问题

Introduction

RCNN本身具有很好的尺度不变形,因为它先从图片中提取proposal,然后都resize到224去提取特征但是这样每个proposal不共享特征的计算,很慢,而Fast系列为了解决这个问题,输入大小不固定,不同尺度的图片都经过同一个的cnn提取特征然后拿proposal去对应位置扣特征,这就破坏了RCNN原来的尺度不变形,但是它很快且整体做特征提取能捕捉更多的context,得到广泛的应用。(注意这个context的问题,下文会继续说到)

现在大家为了解决Fast系列的问题,往往进行多尺度的训练。RCNN中只对扣出来的proposal进行放缩,小的proposal会放大,合适的proposal就会不怎么变,太大的proposal会放小,总之都会resize到一个固定的尺度,检测网络只用适应这一种尺度,而Fast系列多尺度训练时,不管图片中的proposal大还是小都要跟着图片整体做放大或者缩小,这样检测网络还是去适应这些尺度,而且上一篇中引用Naiyan Wang的说法: 这更多是通过CNN来通过capacity来强行memorize不同scale的物体来达到的,这其实浪费了大量的capacity。

上一篇的SNIP是忽略掉大图中的大proposal和小图中的小proposal,也就是把一些极端的情况都忽略掉,相对来说只保留了尺度大致一致(和Imagenet的预训练模型的尺度差不多)的proposal参与训练,但是它也有个缺点就是训练太慢了,每个尺度的图片的每个像素都要参与训练。

综上本文提出一种SNIPER的方法,通过生成scale specific context-regions,不管那个尺度都采样到512x512,这样既保留RCNN的尺度不变性和Fast系列的速度,也由于过滤到了很大一部分背景而比SNIP快很多

Chip Generation

Positive Chip Selection

这里写图片描述
在某一尺度下,指定一个aera范围来决定多大的proposal/gt box才能参与到训练,然后有了这些valid gt box,chip从最小cover每个box开始,逐渐扩大达到一个包含最多box数量时停止,这首先就保证了每个valid gt box都能被一个chip cover。然后多个尺度下或者单一尺度下,都有可能存在存在一个box被多个chip cover(见我标注的蓝色1号情况);某一box也可能被chip截断,截断也会保留用于后续过程(见我标注的蓝色2号情况)。

Negative Chip Selection

这里写图片描述

Positive Chip包含了所有正样本,但是它们包含的背景实在太少了,这样网络见到的都是易于识别出物体的chip,这样难免会出现很多False Positive(误警/误报),所以需要生成一些Negative Chip来参与训练,这些Negative Chip代表的就是那些带有挑战性的,很难确定有木有物体的chip。那么怎么做的?

训练一个简单的RPN生成很多proposal,接着剔除那些被positive chip cover的proposal,这首先会把那些和gt box和接近的proposal给扔了,也就是把易于区分前背景的给扔了。然后像Positive Chip生成时一样,chip逐渐扩大包含一定数量的proposal,然后形成一个Negative Chip Pool,训练时随机挑选一定数量的Negative Chip。(图中红色点是rpn生成的被过滤过的negative proposal,然后红色框就是包含一定数量negative proposal的negative chip,可以看到这些都是很有调整性,易出现false positive情况的chip)

这个做法和多尺度的训练(也能减少false positive)相比,大大减少了需要训练的像素,只处理经过RPN确认过的最可能出现false positive的区域,大大提升了训练速度。

Experiments

有了这些chips后,后面就和Faster RCNN一样的训练了,但是由于这些chips都是512x512,且每张图片只有大概只有5个chips,我们可以增大batch size充分利用batch normalization带来的好处。

SNIPER generates 1.2 million chips for the COCO dataset after the images are flipped. This results in around 5 chips per image. In some images which contain many object instances, SNIPER can generate as many as 10 chips and others where there is a single large salient object, it would only generate a single chip.

可以看出negative chips对recall没有影响,但是对整体AR有提升,说明它的作用

这里写图片描述

可以看到多尺度很重要,再次看到negative chips的作用
这里写图片描述
和其他Faster/Mask RCNN各种配置都不同,不太好比较,于是只和自己之前的SNIP比较,fixed BN(不用BN)时和SNIP差不多的精度43.5vs43.6,但是训练速度提升3倍,由于chips尺度小可以增大batch size充分利用BN,这样提升就很明显了46.1vs44.4
这里写图片描述

One more thing

是开头说的context的问题,论文里有好几次说到太大的context不一定有用

  • Since we are able to obtain similar performance by observing less than one tenth of the image, it implies that very large context during training is not important for training high-performance detectors but sampling regions containing hard negatives is.
  • Our results suggest that context beyond a certain field of view may not be beneficial during training. It is also possible that the effective receptive field of deep neural networks is not large enough to leverage far away pixels in the image
  • SNIPER brings training of instance level recognition tasks like object detection closer to the protocol for image classification and suggests that the commonly accepted guideline that it is important to train on high resolution images for instance level visual recognition tasks might not be correct.
03-19
### 关于 Sniper 的 IT 技术相关内容 #### 1. **RDP-Sniper 工具** RDP-Sniper 是一种网络安全工具,专注于远程桌面协议 (RDP) 的漏洞扫描与利用。该工具能够帮助安全研究人员识别并修复潜在的安全隐患,从而增强系统的整体安全性[^1]。通过使用 RDP-Sniper,用户可以在复杂网络环境下快速定位薄弱环节,并采取相应的防护措施。 以下是启动 RDP-Sniper 执行基本扫描的一个简单脚本示例: ```bash #!/bin/bash rdp-scan --targets targets.txt --output results.csv ``` --- #### 2. **游戏中的 Sniper Mode** 在电子竞技领域,“sniper mode”通常指代游戏中的一种特殊模式或设置选项。这种模式可能会影响草丛渲染效果以及性能表现,因此许多职业玩家倾向于禁用此类功能以优化操作体验[^2]。尽管这并非严格意义上的信息技术应用,但它反映了“sniper”概念如何被广泛应用于不同场景之中。 --- #### 3. **SNIPER 目标检测算法** SNIPER 是一项先进的计算机视觉技术,主要用于解决图像中的对象检测问题。其核心优势在于能够在 COCO 2017 和 VOC 2007 数据集中达到业界领先的精度水平[^3]。为了部署 SNIPER 模型,开发者需遵循官方文档指南完成环境搭建过程: - 首先克隆项目仓库至本地; - 构建 Docker 容器镜像以便隔离运行依赖项; - 启动交互式会话用于调试或训练模型。 具体命令如下所示: ```bash git clone https://github.com/your-repo/SNIPER.git cd SNIPER sudo nvidia-docker build -t sniper/prod . sudo nvidia-docker run -it --rm -v $(pwd):/workspace/sniper sniper/prod bash ``` 上述步骤展示了如何基于 NVIDIA GPU 加速框架高效执行深度学习任务。 --- #### 总结 综上所述,“Sniper”一词在 IT 行业中有多种含义,涵盖了从网络安全工具到高性能计算等多个方面。无论是保护企业资产免受攻击还是推动人工智能研究进展,“Sniper”系列技术和方法均展现了卓越的价值。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值