Customize Data Pipelines
在传统的 pytorch 中,通常使用 Datset 和 DataLoader 来加载数据。Dataset 会返回一个装有数据的字典(也就是 model 里面 forward 方法的参数)。因为不同的数据集可能不同图片的大小是不一样的,所以我们引入了 mmcv 中的 DataContainer,用来分发不同的数据。
在传统的 pytorch 中,通常使用 Datset 和 DataLoader 来加载数据。Dataset 会返回一个装有数据的字典(也就是 model 里面 forward 方法的参数)。因为不同的数据集可能不同图片的大小是不一样的,所以我们引入了 mmcv 中的 DataContainer,用来分发不同的数据。
一般来说,如果要创建自己自定义的数据集,可以参考现有的 config 借鉴一下。但是我们自定义的数据集可以分两种情况:
MMDetection为用户提供了不同的损失函数。但默认配置可能不适用于不同的数据集或模型,因此用户可能希望修改特定的损失以适应新情况。
我们基本上将模型组件分为5种类型。
我们已经支持使用 PyTorch 实现的所有优化器,唯一的修改是改变配置文件中的优化器字段。例如,如果您想使用Adam(请注意,性能可能会下降很多),可以做如下修改。
在 COCO 数据集上预训练的检测器可以作为其他数据集的良好预训练模型,例如 CityScapes 和 KITTI 数据集。本教程为用户提供指导,将 Model zoo 中提供的模型用于其他数据集以获得更好的性能。
Scene Graph Benchmark 是 Kaihua Tang 在完成 Unbiased Scene Graph Generation from Biased Training 这篇工作的时候对 MaskRCNN Benchmark 做整理,在 Faster RCNN 的基础上扩展了 Scene Graph Generation 所用到的 Relation Head 等组件,并且加入 Faster RCNN 实现 Scene Graph Generation 网络框架的构建。
Config 结构
说在前面,现在MM全系列框架仅支持在Linux或者MacOS上运行,Windows仍然处于实验阶段。
MMDetection 是一个基于PyTorch进行开发的开源的目标检测 工具箱,通过这个工具箱能够让你很方便地构建出自己的目标检测算法。同时,这里有非常多开源的知名顶会算法,丰富的 model zoo 开源模型和算法。一般在很多深度学习算法竞赛,如阿里天池、百度、华为云等比赛上,你会发现很多TOP前几的大佬都是实用这些框架进行开发,而不会傻傻地自己写一个算法;还有科研上很多开源的科研成果代码都是使用这些开源的框架来实现的,像类似的框架还有 Detectron2, maskrcnn-benchmark 和 SimpleDet,但论使用自由度和开放性来说,还是 mmdetection 占优势,所以我们就一起加入到 MM 系列的大家族吧!
Pytorch to ONNX
MMCV
在训练过程中,适当的初始化策略有利于加快训练速度或获得更高的性能。MMCV 提供了一些常用的初始化模块的方法,如 nn.Conv2d。MMdetection 中的模型初始化主要使用 init_cfg。用户可以通过以下两个步骤来初始化模型。