Skip to main content

Instruction about MMDetection

MMDetection 是一个基于PyTorch进行开发的开源的目标检测 工具箱,通过这个工具箱能够让你很方便地构建出自己的目标检测算法。同时,这里有非常多开源的知名顶会算法,丰富的 model zoo 开源模型和算法。一般在很多深度学习算法竞赛,如阿里天池、百度、华为云等比赛上,你会发现很多TOP前几的大佬都是实用这些框架进行开发,而不会傻傻地自己写一个算法;还有科研上很多开源的科研成果代码都是使用这些开源的框架来实现的,像类似的框架还有 Detectron2, maskrcnn-benchmarkSimpleDet,但论使用自由度和开放性来说,还是 mmdetection 占优势,所以我们就一起加入到 MM 系列的大家族吧!

demo image

框架特性

主要特性

  • 模块化设计

    MMDetection 将检测框架解耦成不同的模块组件,通过组合不同的模块组件,可以很快而且便捷地构建自定义的检测模型。(也许也能构建其他的)

  • 丰富的即插即用的算法和模型

    MMDetection 支持了众多主流的和最新的检测算法,例如 Faster R-CNN,Mask R-CNN,RetinaNet 等。

  • 速度快

    基本的框和 mask 操作都实现了 GPU 版本,训练速度比其他代码库更快或者相当,包括 Detectron2, maskrcnn-benchmarkSimpleDet

  • 性能高

    MMDetection 这个算法库源自于 COCO 2018 目标检测竞赛的冠军团队 MMDet 团队开发的代码,我们在之后持续进行了改进和提升。

除了 MMDetection 之外,我们还开源了计算机视觉基础库 MMCV,MMCV 是 MMDetection 的主要依赖。后续会更新MMCV系列教程。(有生之年系列)

为什么会有这篇教程?

因为网络上的 MMDetection 教程参差不齐,各种各样的版本都有,所以我就有了这样一个想法,写一个菜鸡也能看懂的 MMDetection 使用教程,会比网上那种杂七杂八的文章好很多,如果你看到了这份教程,说明咱们都是有着同样志向的同志,那我们就一起学习这一个非常方便和实用的框架吧!!!

在食用这篇教程之前请先确保自己已经有了一定的深度学习基础,并且具有一些深度学习环境配置经验和代码开发基础,如果拥有这些经验应该会更加事半功倍。但框架终究还是工具,只有更好的结合理论才是真正的科研。做好准备开始探求这个领域事物的规律以及这些规律的本源。在成为理性的怀疑者之前,应该先掌握这个科研领域。我们做好了长期投入的准备,并希望把简单的事情做到出人意料得精彩。

学习框架的方法

个人觉得,学习框架最好的方法就是查看文档和源代码,但是局限与英语能力和使用经验,往往不能顺利的地进行下去。要从一个由浅入深的过程来学习,分为以下步骤:

  1. 学会使用基础用法,也就是最高层的 API 学习。通过学习高层的 API 至少能够让你知道框架的大致使用流程。以至于不会迷茫在众多 API 当中。(高层 API 指经过层层封装最终暴露给用户使用的 API,底层API是高层 API 的实现原理)
  2. 懂得一系列高层 API 之后,掌握框架的使用规范,具体用法。这里具体用法不是说每个API怎么用,而是以一种理解的方式学习。进一步由浅入深学习底层的 API,深入和发掘底层的 API。掌握所有比较常用到的功能。(关键还是要理解其 API 的用法,能够自由地使用就说明你学会了)
  3. 实践应用,光说不做是大忌,学了之后要尝试自己搭建一个代码库,构建常见的深度学习模型之类的,将所有的API都用遍,至少有一个完全自己搭建的算法项目。
  4. 后面的工作就是自己去使用工具来解决遇到的问题啦~~

本人是一个随地可见的大学本科生,既没有卓越的代码能力,也没有远见的眼光。想单纯地学习一个能够方便自己科研道路上的工具,但是由于代码水平不高,理解不深,总结的内容不一定百分之百正确,只能说是按照我个人的理解来学习的框架,由于英语阅读水平有限,只能摸索着来。也许有的时候努力方向是错的,但是完全不能自知。还请各位高人指点,勘误欢迎在 github 仓库提 issue 点醒无知的我。

总结

你可以开启你的深度学习框架学习之旅了,希望这篇博客能够在你学术科研和竞赛的道路上助你一臂之力。

附录

MM全系列工具箱

  • MMCV: OpenMMLab foundational library for computer vision.
  • MIM: MIM Installs OpenMMLab Packages.
  • MMClassification: OpenMMLab image classification toolbox and benchmark.
  • MMDetection: OpenMMLab detection toolbox and benchmark.
  • MMDetection3D: OpenMMLab's next-generation platform for general 3D object detection.
  • MMSegmentation: OpenMMLab semantic segmentation toolbox and benchmark.
  • MMAction2: OpenMMLab's next-generation action understanding toolbox and benchmark.
  • MMTracking: OpenMMLab video perception toolbox and benchmark.
  • MMPose: OpenMMLab pose estimation toolbox and benchmark.
  • MMEditing: OpenMMLab image and video editing toolbox.
  • MMOCR: A Comprehensive Toolbox for Text Detection, Recognition and Understanding.
  • MMGeneration: OpenMMLab image and video generative models toolbox.