标签数量多少合适目标检测训练
A. 小目标检测相关技巧总结
小目标问题在物体检测和语义分割等视觉任务中一直是存在的一个难点,小目标的检测精度通常只有大目标的一半。
CVPR2019论文: Augmentation for small object detection 提到了一些应对小目标检测的方法,笔者结合这篇论文以及查阅其它资料,对小目标检测相关技巧在本文进行了部分总结。
小目标的定义: 在MS COCO数据集中,面积小于 32*32 的物体被认为是小物体。
小目标难以检测的原因: 分辨率低,图像模糊,携带的信息少。由此所导致特征表达能力弱,也就是在提取特征的过程中,能提取到的特征非常少,这不利于我们对小目标的检测。
1、由于小目标面积太小,可以放大图片后再做检测,也就是在尺度上做文章,如FPN(Feature Pyramid Networks for Object Detection),SNIP(An Analysis of Scale Invariance in Object Detection – SNIP)。
Feature-Fused SSD: Fast Detection for Small Objects, Detecting Small Objects Using a Channel-Aware Deconvolutional Network 也是在多尺度上做文章的论文。
2、在Anchor上做文章(Faster Rcnn,SSD, FPN都有各自的anchor设计),anchor在设置方面需要考虑三个因素:
anchor的密度: 由检测所用feature map的stride决定,这个值与前景阈值密切相关。
anchor的范围: RetinaNet中是anchor范围是32~512,这里应根据任务检测目标的范围确定,按需调整anchor范围,或目标变化范围太大如MS COCO,这时候应采用多尺度测试。
anchor的形状数量: RetinaNet每个位置预测三尺度三比例共9个形状的anchor,这样可以增加anchor的密度,但stride决定这些形状都是同样的滑窗步进,需考虑步进会不会太大,如RetinaNet框架前景阈值是0.5时,一般anchor大小是stride的4倍左右。
该部分anchor内容参考于: https://zhuanlan.hu.com/p/55824651
3、在ROI Pooling上做文章,文章SINet: A Scale-Insensitive Convolutional Neural Network for Fast Vehicle Detection 认为小目标在pooling之后会导致物体结构失真,于是提出了新的Context-Aware RoI Pooling方法陆腊。
4、用生成对抗网络(GAN)来做小目标检测:Perceptual Generative Adversarial Networks for Small Object Detection。
1、从COCO上的统计图可以发现,小目标的个数多,占到了41.43%,但是含有小目标的图片只有51.82%,大目标所占比例为24.24%,但是含有大目标的图像却有82.28%。这说明有早郑滑一半的图像是不含小目标的,大部分的小目标都集中在一些少量的图片中。这就导致在训练的过程中,模型有一半的时间是学习不到小目丛念标的特性的。
此外,对于小目标,平均能够匹配的anchor数量为1个,平均最大的IoU为0.29,这说明很多情况下,有些小目标是没有对应的anchor或者对应的anchor非常少的,即使有对应的anchor,他们的IoU也比较小,平均最大的IoU也才0.29。
如上图,左上角是一个anchor示意图,右上角是一个小目标所对应的anchor,一共有只有三个anchor能够与小目标配对,且配对的IoU也不高。左下角是一个大目标对应的anchor,可以发现有非常多的anchor能够与其匹配。匹配的anchor数量越多,则此目标被检出的概率也就越大。
实现方法:
1、Oversampling :我们通过在训练期间对这些图像进行过采样来解决包含小对象的相对较少图像的问题(多用这类图片)。在实验中,我们改变了过采样率和研究不仅对小物体检测而且对检测中大物体的过采样效果
2、Copy-Pasting Strategies:将小物体在图片中复制多分,在保证不影响其他物体的基础上,增加小物体在图片中出现的次数(把小目标扣下来贴到原图中去),提升被anchor包含的概率。
如上图右下角,本来只有一个小目标,对应的anchor数量为3个,现在将其复制三份,则在图中就出现了四个小目标,对应的anchor数量也就变成了12个,大大增加了这个小目标被检出的概率。从而让模型在训练的过程中,也能够有机会得到更多的小目标训练样本。
具体的实现方式如下图:图中网球和飞碟都是小物体,本来图中只有一个网球,一个飞碟,通过人工复制的方式,在图像中复制多份。同时要保证复制后的小物体不能够覆盖该原来存在的目标。
网上有人说可以试一下lucid data dreaming Lucid Data Dreaming for Multiple Object Tracking ,这是一种在视频跟踪/分割里面比较有效的数据增强手段,据说对于小目标物体检测也很有效。
基于无人机拍摄图片的检测目前也是个热门研究点(难点是目标小,密度大)。
相关论文:
The Unmanned Aerial Vehicle Benchmark: Object Detection and Tracking(数据集)
Drone-based Object Counting by Spatially Regularized Regional Proposal Network
Simultaneously Detecting and Counting Dense Vehicles from Drone Images
Vision Meets Drones: A Challenge(数据集)
1: https://zhuanlan.hu.com/p/55824651
2: https://zhuanlan.hu.com/p/57760020
3: https://www.hu.com/question/269877902/answer/548594081
4: https://zhuanlan.hu.com/p/60033229
5: https://arxiv.org/abs/1902.07296
6: http://openaccess.thecvf.com/content_cvpr_2017/papers/Li_Perceptual_Generative_Adversarial_CVPR_2017_paper.pdf
7: http://openaccess.thecvf.com/content_cvpr_2017/papers/Lin_Feature_Pyramid_Networks_CVPR_2017_paper.pdf
B. fasterrcnn目标检测map达到多少比较好
fasterrcnn目标检测map达到75+好。根据查询相关资料显示,小目标车辆检测的精度能达到75+,小目标车辆检测的时候其实李滑橡精度能达到75+,这取决于数据情况,加上一些设定(图像对比度,模糊程哪旁度,特殊检测框大小等前提),修改mAP的计算方式可以达到让缺94+。mAP是计算所有类别P-R曲线下面积的平均值。
C. 目标检测小目标/多尺度难题
场景 :目标检测中存在尺寸很小的目标,或同时存在大小差距很大的目标,小目标由于下采样/数量少丢失风险大
方案一:构造传统多尺度图像空间
在传统的图像处理,多尺度问题通常通过上/下采样得到不同分辨率图像,构造多尺度图像空间,在各层使用不同大小检测器进行检测。可认为是密集采样检测,无法有效区分小目标与背景干扰。
方案二:提高神经网络训练集小目标样本占比,或提升小目标样本的loss权重
神经网络学习训练数据的分布,如果小目标太少,容易在网络参数的优化中被稀释,因此提升小样本目标的占比属于基础且高性价比操作:
2.1 paste
随机选择目标,并缩小后paste到新的训练样本中,以增加小样本数量
2.2 mosaic
将原始样本进行多合一拼接,达到下采样效果,同时改变目标的尺寸、位置、形态,增加每张图中小样本的数量。
2.3 oversampling
训练过程中过采样包含小尺度目标的图像,即更多使用包含小目标进行训练,且增加程度Rate可调节。
方案三:增加anchor的覆盖范围
基于anchor的目标检测中,anchor的存在降低了坐标回归的难度,同时也一定程度上决定了网络检测的范围,因此在网络设定anchor的时候,更多的设置小尺寸的anchor,将对网络在不同尺度捕获小目标起到积极作用。此外,小目标的回归难度显着大于大目标,因此计算小目标的Anchor IoU时,阈值可适当降低。
方案四:提升不同尺度的feature的融合程度
神经网络的核心是对输入数据进行特征表征,以适应label监督的分布,FPN与传统图像多尺度空间的思路类似,不同之处在于:1、不同尺度层之间存在特征的融合;2、各层特征由网络动态学习得到,而传统多尺度空间是静态的特征。
方案五: 提高输入分辨率,预训练+finetuning
放大输入图像+使用高分率图像预训练再在小图上微调,在实践中要优于专门针对小目标训练一个分类器。同时必须控制下采样率,避免小目标信息丢失。
方案六:结合anchor和anchor-free的方法
在FSAF中结合了anchor和anchor-free两条检测分支,anchor分支根据预设的anchor size可以检测绝大部分预期的目标,anchor-free的分支对于anchor范围外的目标(例如小目标)可以起到补充检测的作用。
如果同一场景中,目标尺度差异过大,可采用两个模型来检测,针对小目标进行调小iou阈值,以保留更多的小目标,检测结果后处理合并。
D. 网站tag标签如何使用布局
一、TAG标签的作用
Tag标签态森有两个明显的特性,一是可以自定义,二是对文章的高概括性。这就决定了它的作用是让我们发布的文章更容易被用户搜索到,便于用户根据兴趣或需求快速找到目标文章。
二、TAG标签的优化
1、始终要记得是为了方便用户而设置的
如果我们的网站没有足够优秀的用户体验,就乱汪很难获得排名、留住用户、促进产品交易,始终要记得TAG标签使用原则第一点就是注重用户,高于SEO。
2、与文章具有相关性的长尾词是最佳选择
TAG标签是为了将网站上同类或同主题的文章聚集在一起而生的,所以在设置的时候要保持与文章的相关性是必然,那么为什么还要用长尾词呢,不能用核心词吗哗闭仔?如果你想造成页面内部竞争,分散内部权重的话,就尽管把标签写成首页核心关键词吧!
3、每篇文章的TAG标签数量保持在3个为宜
对于tag标签的数量,亿丰网络之前做过一个小调查,有的站长从来不写标签,有的站长只是象征性地写1个,还有的站长习惯写一大堆,5个起步,7个不嫌多。其实,不管多少都不叫错,只要站长高兴、认为有用就可以。若是把优化效果考虑在内的话,保持在3个为宜。
4、TAG标签字数不宜过长且一定不能是句子
不超过5个字的tag标签对用户体验是最有利的,最不利的就是直接使用一个完整的句子。
5、tag标签页面内容要充实
这一点无需多说什么了吧,即便是新手站长,想必也不会犯这个错误吧。