大规模目标检测
什么是大规模目标检测:
2021.5.18更新
大规模目标检测主要的特点就是大规模的训练集,Image Net训练一个大规模的分类器,COCO训练检测器,COCO也可以算是大规模目标检测,现在这方面没有什么标准,COCO也还能用,不必找一个新的数据集。非要找的话就是Open Image数据集,但这可以算是超大规模了。目前还是拿COCO做检测。
其实大规模检测并没有一个标准的官方定义。就比如目标检测,我们都知道是对待检测物体进行定位并且判断所属类别,最后用矩形框框起来。
但是并没有一个官方定义,给出一个如数学公式那样的定义。没有说明分类置信度也就是概率大于多少算正确。
在这篇论文中:Reasoning-RCNN_Unifying_Adaptive_Global_Reasoning_Into_Large-Scale_Object_Detection这样写到:
The large-scale detection [18] refers to recognize and localize a large number of categories.
首先需要明确大规模目标检测仍然是目标检测的一个子任务,其根本目的仍然是提高目标检测的精度,只不过数据集更大,类别更多;其次不管是这篇论文还是学术界,并没有对大规模的“大”提出一个具体的指标。检测多少个类别还是一幅图中有多少个实例才算是大规模。
论文的发表来自于各种数据集,各种数据集的推广又来自于竞赛,大规模检测也不例外。
大规模目标检测使用的数据集为openImage,官网:https://storage.googleapis.com/openimages/web/index.html,百度居然屏蔽了这个官网,够恶心的。
数据集高达几百G,如果从数据集角度看,是否拿几百G数据集训练才是大规模目标检测?
从搜索结果可以看到,Google举办了这么一个比赛,才有了大规模检测的研究。
而大规模目标检测仍然没有一个较准确的定义,只是这个方向的研究来源于这个比赛的举办。
相关论文
1.《Reasoning-RCNN_Unifying_Adaptive_Global_Reasoning_Into_Large-Scale_Object_Detection》
论文解读
论文地址:Reasoning-RCNN_Unifying_Adaptive_Global_Reasoning_Into_Large-Scale_Object_Detection
代码地址:https://github.com/chanyn/Reasoning-RCNN(无法运行,说个锤子)
Reasoning-RCNN: 在大规模目标检测中应用统一的自适应全局推理
华为和中山大学联合发表的,论文介绍了一种从局部图片推测整幅图片的方法。论文中是这样写的:
我们引入了一种新颖的Reasoning-RCNN,通过利用各种人类常识知识,赋予所有检测网络在所有对象区域上自适应全局推理的能力。我们不只是直接在图像上传播视觉特征,而是在全球范围内发展所有类别的高级语义表示,以避免图像中分散注意力或不良的视觉特征。具体地,基于基本检测网络的特征表示,所提出的网络首先通过收集每个类别的先前分类层的权重来生成全局语义池,然后通过参加全局语义池中的不同语义上下文来自适应地增强每个对象特征。我们的自适应全局推理不是从可能嘈杂的所有语义信息中传播信息,而是自动发现特征演变的大多数相对类别。我们的Reasoning-RCNN轻巧灵活,足以增强任何检测主干网络,并且可扩展以集成任何知识资源。
数据集
- Visual Genome(VG) 李飞飞组出的,https://arxiv.org/abs/1602.07332
贴一个博客,简单了解:https://blog.csdn.net/zziahgf/article/details/79095200 - ADE
- COCO
- Pascal VOC
网上这些数据集都有很详细的介绍,在这里不是重点就不一一介绍了。
对比,我只摘取了coco的AP。
数据集 | images | mAP |
---|---|---|
VG | 118,287 | |
COCO | 108,077 | 42.9 |
ADE | 20210 | |
Pascal VOC | 11,530 |
分析
- COCO数据集只取了80中的20类,也没告诉是哪20类,我们都知道有的类的AP高,有的类的AP低。谁知道你是用的是不是最高AP的20类,和SOTA的目标检测没有可比性。
- 同时输入网络的分辨率没有告知,当前SOTA的方法标准都是608或者640。我们都知道输入分辨率越高肯定AP越高。不拿608或者640做测试,没有可比性。
- ADE,VG,这两个数据集没有benchmark,依然没有可比性。无说服力。
- 并不是通用的,模型无法插入到已有的目标检测框架中,不能拓展。感觉更像是迁移学习,用到的知识图,卷积没有怎么分析。已经不算是纯粹的目标检测了。
总结
不论是大规模目标检测还是通用目标检测,coco数据集仍然是通用数据集,最有说服力的一个对比标准。不在coco数据集上做详细的对比实验,没有说服力,不过这个论文能中,也告诉我们顶会其实也没有那么难,但是对比普通中文核心那也是高了好几个档次,首先不管实验有没有说服力,起码得做大量实验,要有数据分析,模型分析,理论,公式推导等等。
2.《Large-Scale Object Detection in the Wild from Imbalanced Multi-Labels》
第二篇介绍的是CVPR2020 Oral论文《Large-Scale Object Detection in the Wild from Imbalanced Multi-Labels》,作者来自商汤搜索与决策团队与中科院自动化所。
论文地址:https://arxiv.org/pdf/2005.08455.pdf
代码地址:
论文解读
贴一个链接,供参考:
https://blog.csdn.net/weixin_40371649/article/details/107997907
解决三个问题:
显示多标签,隐式多标签,长尾效应,
长尾效应就是类别不平衡。
这些问题都是因为这篇论文采用了open Images数据集,这三个问题都是Open Image数据集存在的问题,并不是通用的,但是仍然接收了。因为实验多,图多。
数据集
- Open Images
数据集数量:1.7million。1700万+图片。
mAP:67.17
mAP需要注意的是这个AP是VOC数据集的AP标准,不是coco的,没有可比性。论文中说对比Faster RCNN提高了几个AP(没有详细信息,万一你的训练尺寸和测试尺寸根本不一致呢)。
分析
这篇论文对网络模型没有什么改进。主要的工作都是数据集的:
- 通过基于数据的重采样或者基于Loss的策略处理长尾标签分布。
- 采用类感知抽样,对于不同的类,每个小批次的填充都尽可能统一。
- 根据标签的分布为每个图像计算复制因子,并按规定的次数复制图像。
不太懂这些东西。
总结
用了新的数据集,Open Images。这个数据集用的人很少,因为确实大如果要得到较高的AP估计得训练好几个月。不知道这篇论文是怎么加速训练的。
我用YOLOv4训练COCO单类505000batch都得需要2000多个小时。用YOLOv5训练300epoch得需要1500个小时。
3.找不到更多了(泪)
总结
大规模目标检测其实感觉更多的是无法做出特别牛逼的创新,所以找个小方向,就像密集人群检测,如果通用目标检测又实现了SOTA的性能,那自然也能跟着提升。大规模目标检测也同样如此,如果能在coco数据集上实现SOTA的AP,那大规模检测肯定不会差了。
从以上两篇论文总结一下大规模检测,暂时只有一个特点:
- 数据集大。这个又可以划分为类别多,数量大。COCO就可以算是大规模目标检测了。