携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情
前言
在上一篇文章中,我们介绍了介绍目标检测问题,目标检测问题的方法和目标检测问题中的难点。
今天,我们来介绍MMDetection框架和MMDetection的使用说明。
-
1.1 Pascal VOC-COCO数据集介绍
-
Pascal VOC,属于通用物体(在自然场景中常见的物体,并且占据图片比较主要的区域)检测的一个标准数据集;
-
一共有20个类别
-
VOC2007和VOC2012(在2017基础进行扩充)数据集
-
VOC数据格式介绍
- Annotations
- ImageSets
- JPEGImages
- SegmentationClass
- SegmentationObject
-
COCO数据集介绍
- 有80个类别,超过33万张图片,其中20万张有标注,整个数据几种个体的数目超过150万个
- COCO难度更大,因为coco数据集每张图片中的物体数目很多,所以导致相对于别的数据集,该数据集的准确率很低
- COCO的格式:[x1, y1, w, h]对应COCO的bbox格式
- 下载地址:cocodataset.org/
-
1.2 MMDetection介绍
在目标检测中会用到的一个框架。
- 商汤科技(2018 COCO 目标检测挑战赛冠军)和香港中文大学开源的一个基于Pytorch实现的深度学习目标检测工具箱mmdetection,支持Faster-RCNN,Mask-RCNN,Fast-RCNN等主流目标检测框架。
- performance稍高、训练速度稍快、所需现存稍小
- github.com/open-mmlab/…
为什么我们是使用一个框架,而不是去自己写一个目标检测的算法呢?
因为一个目标检测的开源框架是非常大的,它涉及到了非常多的模块,比如要完成主干网络的设计,不同组件的设计,loss的定义,数据增强,数据处理等,在分类中是非常容易的,但是在目标检测中是比较复杂的。等对目标检测非常熟悉了,并且需要自定义,再去对目标检测的网络进行自定义。
-
代码结构
- configs:包含了很多网络配置文件
- tools:训练&分析等脚本
- tests:测试脚本
- mmdet:核心模块
- 主要完成网络结构的定义,数据的处理
- mmdet/apis: train和inference的检测接口
- mmdet/core: anchor、bbox、evaluation等相关实现;
- mmdet/datasets: 数据集相关实现;
- mmdet/models: 各种检测网络实现函数,基类均来自于pytorch的torch.nn.Module
- mmdet/ops: roi align、roi pool等相关实现
-
mmcv是基础库也是open-mmlab项目的一部分
- 和 deep learning framework无关的一些工具函数,比如IO/Image/Video相关的一些操作;
- 为Pytorch写的一套训练工具,可以大大减少用户需要写的代码量,同时让整个流程的定制变得容易
- mmcv仅有python的实现,它依赖numpy,pyyaml,six,addict,requests,opencv-python;
-
1.3 MMDetection使用说明
-
参数说明:
-
训练
-
测试
-
其他工具