Pytorch——MMDetection框架

217 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情


前言

上一篇文章中,我们介绍了介绍目标检测问题,目标检测问题的方法和目标检测问题中的难点。

今天,我们来介绍MMDetection框架和MMDetection的使用说明。


  • 1.1 Pascal VOC-COCO数据集介绍

  • Pascal VOC,属于通用物体(在自然场景中常见的物体,并且占据图片比较主要的区域)检测的一个标准数据集;

  • 一共有20个类别

  • VOC2007和VOC2012(在2017基础进行扩充)数据集

  • 数据下载地址:host.robots.ox.ac.uk/pascal/VOC/

  • 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的定义,数据增强,数据处理等,在分类中是非常容易的,但是在目标检测中是比较复杂的。等对目标检测非常熟悉了,并且需要自定义,再去对目标检测的网络进行自定义。

7.png

  • 代码结构

    • 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使用说明

  • mmdetection.readthedocs.io

  • 参数说明:

    • 1.png
  • 训练

    • 2.png
    • 3.png
  • 测试

    • 4.png
    • 5.png
    • 6.png
    • 7.png
    • 9.png
  • 其他工具

    • 8.png
    • 11.png

12.png

13.png

15.png

1.png

9JQ4ZCQY3M({Q$KEN%9BFQX.png