本文主要是介绍深度学习500问——Chapter08:目标检测(10),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
8.6 目标检测的常用数据集
8.6.1 PASCAL VOC
8.6.2 MS COCO
8.6.3 Google Open Image
8.6.4 ImageNet
8.6.5 DOTA
8.7 目标检测常用标注工具
8.7.1 LabelImg
8.7.2 labelme
8.7.3 Labelbo
8.7.4 RectLabel
8.7.5 CVAT
8.7.6 VIA
8.7.7 其他标注工具
8.8 目标检测工具和框架
参考文献
8.6 目标检测的常用数据集
8.6.1 PASCAL VOC
VOC数据集是目标检测经常用的一个数据集,自2005年起每年举办一次比赛,最开始只有4类,到2007年扩充为20个类,共有两个常用的版本:2007和2012。学术界常用的5k的train/val 2007和 16k 的train/val 2012作为训练集,test 2007 作为测试集,用10k 的train/val 2007+test 2007和 16k的train/val 2012作为训练集,test2012作为测试集,分别汇报结果。
8.6.2 MS COCO
COCO数据集是微软团队发布的一个可以用来图像recognition + segmentation + captioning数据集,该数据集收集了大量包含常见物体的日常场景图片,并提供像素级的实例标注以更精确地评估检测和分割算法的效果,致力于推动场景理解的研究进展。依托这一数据集,每年举办一次比赛,现已涵盖检测、分割、关键点识别、注释等机器视觉的中心任务,是继ImageNet Chanllenge以来最有影响力的学术竞赛之一。
相比ImageNet,COCO更加偏好目标与其场景共同出现的图片,即non-iconic images。这样的图片能够反映视觉上的语义,更符合图像理解的任务要求。而相对的iconic images则更适合浅语义的图像分类等任务。
COCO的检测任务共含有80个类,在2014年发布的数据规模分 train/val/test 分别为 80k/40k/40k,学术界较为通用的划分是使用train和35k的val子集作为训练集(trainval35k),使用剩余的val作为测试集(minival),同时向官方的evaluation server提交结果(test-dev)。除此之外,COCO官方也保留一部分test数据作为比赛的评测集。
8.6.3 Google Open Image
Open Image是谷歌团队发布的数据集。最新发布的Open Images V4包含190万图像、600个种类,1540万个bounding-box标注,是当前最大的带物体位置标注信息的数据集。这些边界框大部分都是由专业注释人员手动绘制的,确保了它们的准确性和一致性。另外,这些图像是非常多样化的,并且通常包含有多个对象的复杂场景(平均每个图像8个)。
8.6.4 ImageNet
ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。ImageNet是美国斯坦福的计算机科学家,模拟人类的识别系统建立的。能够从图片识别物体。Imagenet数据集文档详细,有专门的团队维护,使用非常方便,在计算机视觉领域研究论文中应用非常广,几乎成为了目前深度学习图像领域算法性能检验的”标准“数据集。Imagenet数据集有1400多万幅图片,涵盖2万多个类别;其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。
8.6.5 DOTA
DOTA是遥感航空图像检测的常用数据集,包含2806张航空图像,尺寸大约为 4kx4k,包含15个类别共计188282个实例,其中14个主类,small vehicle 和 large vehicle都是vehicle的子类。其标注方式为四点确定的任意形状和方向的四边形。航空图像区别于传统数据集,有其自己的特点,如尺度变化性更大;密集的小物体检测;检测目标的不确定性。数据划分为 1/6 验证集。1/3 测试集,1/2 训练集。目前发布了训练集和验证集,图像尺寸从 800x800 到 4000x4000不等。
8.7 目标检测常用标注工具
8.7.1 LabelImg
LabelImg 是一款开源的图像标注工具,标签可用于分类和目标检测,它是用Python编写的,并使用Qt作为其图形界面,简单好用。注释以PASCAL VOC格式保存为 XML文件,这是ImageNet使用的格式。此外,它还支持COCO数据集格式。
8.7.2 labelme
labelme 是一款开源的图像/视频标注工具,标签可用于目标检测、分割和分类。灵感是来自于MIT开源的一款标注工具LebelMe。labelme具有的特点是:
- 支持图像的标注的组件有:矩形框,多边形,圆,线,点(rectangle,polygons,circle,lines,points)
- 支持视频标注
- GUI自定义
- 支持导出VOC格式用于 semantic/instance segmentation
- 支持导出COCO格式用于 instance segmentation
8.7.3 Labelbox
Labelbox 是一家为机器学习应用程序创建、管理和维护数据集的服务提供商,其中包含一款部分免费的数据标签工具,包含图像分类和分割,文本,音频和视频注释的接口,其中图像视频标注具有的功能如下:
- 可用于标注的组件有:矩形框,多边形,线,点,画笔,超像素等(bounding box,polygons,lines,points,brush,subpixels)
- 标签可用于分类,分割,目标检测等
- 以 JSON / CSV / WKT / COCO / Pascal VOC 等格式导出数据
- 支持 Tiled Imagery(Maps)
- 支持视频标注(快要更新)
8.7.4 RectLabel
RectLabel 是一款在线免费图像标注工具,标签可用于目标检测、分割和分类。具有的功能或特点:
- 可用的组件:矩形框,多边形,三次贝塞尔曲线,直线和点,画笔,超像素
- 可只标记整张图像而不绘制
- 可使用画笔和超像素
- 导出为 YOLO,KITTI,COCO JSON 和 CSV格式
- 以 PASCAL VOC XML 格式读写
- 使用 Core ML模型自动标记图像
- 将视频转换为图像帧
8.7.5 CVAT
CVAT是一款开源的基于网络的交互式视频/图像标注工具,是对加州视频标注工具(Video Annotation Tool)项目的重新设计和实现。
OpenCV团队正在使用该工具来标注不同属性的数百万个对象,许多 UI 和 UX 的决策都基于专业数据标注团队的反馈。具有的功能:
- 关键帧之间的边界框插值
- 自动标注(使用TensorFlow OD API 和 Intel OpenVINO IR格式的深度学习模型)
8.7.6 VIA
VGG Image Annotator(VIA)是一款简单独立的手动注释软件,适用于图像,音频和视频。VIA在Web浏览器中运行,不需要任何安装或设置。页面可在大多数现代Web浏览器中作为离线应用程序运行。
- 支持标注的区域组件有:矩形,圆形,椭圆形,多边形,点和折线。
8.7.7 其他标注工具
liblabel,一个用 MATLAB 写的轻量级 语义/示例(semantic/instance) 标注工具。 ImageTagger:一个开源的图像标注平台。 Anno-Mage:一个利用深度学习模型半自动图像标注工具,预训练模型是基于MS COCO数据集,用 RetinaNet 训练的。
当然还有一些数据标注公司,可能包含更多标注功能,例如对三维目标检测的标注(3D Bounding box Labelling),激光雷达点云的标注(LIDAR 3D Point Cloud Labeling)等。
8.8 目标检测工具和框架
各种不同的算法虽然部分官方会有公布代码,或者github上有人复现,但是由于安装环境不一,实现的框架(pytorch、C++、Caffee、tensorflow、MXNet等)不同,每次更换算法都需要重新安装环境,并且代码之间的迁移性差,十分不方便。所以为了方便将不同的算法统一在一个代码库中,不同的大厂都提出了自己的解决方案。如facebook的Detectron、商汤科技的mmdetection、SimpleDet等。其中Detectron最早,所以用户量最大,其次是国内近段时间崛起的mmdetection,下面介绍该目标检测工具箱。
1. Introduction
MMdetection 特点:
- 模块化设计:将不同网络的部分进行切割,模块之间具有很高的复用性和独立性(十分便利,可以任意组合)
- 高效的内存使用
- SOTA
2. Support Frameworks
- 单阶段检测器
SSD、RetinaNet、FCOS、FSAF
- 两阶段检测器
Faster R-CNN、R-FCN、Mask R-CNN、Mask Scoring R-CNN、Grid R-CNN
- 多阶段检测器
Cascade R-CNN、Hybrid Task Cascade
- 通用模块和方法
soft-NMS、DCN、OHEN、Train from Scratch 、M2Det 、GN 、HRNet 、Libra R-CNN
3. Architecture
模型表征:划分为以下几个模块:
Backbone(ResNet等)、Neck(FPN)、DenseHead(AnchorHead)、RoIExtractor、RoIHead(BBoxHead/MaskHead)
4. Notice
- 1x代表12epoch的COCO训练,2x类似推导
- 由于batch-size一般比较小(1/2这样的量级),所以大多数地方默认冻结BN层。可以使用GN代替。
5. 参考链接 mmdetection代码高度模块化,十分好用和便利,更详细的文档直接参见官方文档: GitHub - open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark
注释版的mmdetection代码(更新至v1.0.0):GitHub - ming71/mmdetection-annotated: mmdetection源码注释
使用方法简介: 安装记录(可能过时,以官方文档为准):https://ming71.github.io/mmdetection-memo.html 使用方法(截止更新日期,如果过时以官方为准):https://ming71.github.io/mmdetection-instruction.html
参考文献
GitHub - amusi/awesome-object-detection: Awesome Object Detection based on handong1587 github: https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html
GitHub - hoya012/deep_learning_object_detection: A paper list of object detection using deep learning.
Object Detection - handong1587
深度学习在 small object detection 有什么进展? - 知乎
该博客已过期
RFBNet高精度检测算法笔记_rfb多尺度特征-CSDN博客
[1] Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2014: 580-587.
[2] Girshick R. Fast r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1440-1448.
[3] He K, Zhang X, Ren S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(9): 1904-1916.
[4] Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems. 2015: 91-99.
[5] Lin T Y, Dollár P, Girshick R, et al. Feature pyramid networks for object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 2117-2125.
[6] He K, Gkioxari G, Dollár P, et al. Mask r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2961-2969.
[7] Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016: 21-37.
[8] Fu C Y, Liu W, Ranga A, et al. Dssd: Deconvolutional single shot detector[J]. arXiv preprint arXiv:1701.06659, 2017.
[9] Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 779-788.
[10] Redmon J, Farhadi A. YOLO9000: better, faster, stronger[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 7263-7271.
[11] Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv preprint arXiv:1804.02767, 2018.
[12] Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2980-2988.
[13] Liu S, Huang D. Receptive field block net for accurate and fast object detection[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 385-400.
[14] Zhao Q, Sheng T, Wang Y, et al. M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network[J]. arXiv preprint arXiv:1811.04533, 2018.
这篇关于深度学习500问——Chapter08:目标检测(10)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!