文章目录
- 1. MMDetection介绍(vs MMSegmentation,mmdetection3d)
- 2. 代码
- 2.1 使用pycocotools配合exif可视化图像
- 2.2 mmdetection中config的继承
- 2.3 mmdet的数据集可视化问题(VISUALIZERS)
- 2.4 pin_memory参数设置
- 2.5 max_split_size_mb设置
- 2.6 MMYOLO特征图可视化
- 2.7 数据集转为COCO格式
- 视频教程链接:MMDetection代码课
- 如果想为OpenMMLab项目做贡献,可以看看这个:https://openmmlab.com/activity/codecamp
1. MMDetection介绍(vs MMSegmentation,mmdetection3d)
三个项目的Github Readme:
- mmdetection/README_zh-CN.md
- mmsegmentation/README_zh-CN.md
- mmdetection3d/README_zh-CN.md
MMDetection 支持了各种不同的检测任务,包括目标检测,实例分割,全景分割,以及半监督目标检测。
- Github说明:mmdetection/README_zh-CN.md
- 检测是分割的基础,所以它也包含了很多分割任务,和MMSegmentation的区别是:
- 目前,MMSegmentation 支持的分割任务为语义分割 ,MMDetection 中支持了实例分割和全景分割。
- 详见:超详细!带你轻松掌握 MMSegmentation 整体构建流程
- 语义分割的应用:①自动驾驶;②遥感图像分析;③医学图像分析。
- 所以可以理解为专门为了这三个垂直方向把语义分割方向的模型单独列出来了
- MMdetection3d这个库主要是面向3D的,感觉重点在点云数据上,支持与 2D 检测器(MMDetection)的自然整合
- 详见:全面支持激光雷达语义分割!MMDetection3D 新特性抢先看
- 另外,之前一直很奇怪MMpretrain是干嘛的,其实MMpretrain里主要放的模型大部分都是作为主干网络的模型,目前主要包括
图像分类
,图像多标签分类
和图像检索
,里面并不包含mmdetection的检测的预训练模型,详见:模型库统计。 - 所以mmopenlab下面这个repo,其实还算比较独立,没有重复什么。
注意,
- 语义分割是分类+分割(一类物体一个颜色,自动驾驶其实用语义分割就够了),
- 实例分割(语义分割基础上+同类不同个体区分),
- 全景分割(全图的每个像素都要分)
图自这里
2. 代码
视频中的链接并没有找到,但是有个差不多的:mmdetection/demo/MMDet_Tutorial.ipynb
2.1 使用pycocotools配合exif可视化图像
关于pycocotools
库
2.2 mmdetection中config的继承
_base_ = [
'../_base_/default_runtime.py', '../_base_/schedules/schedule_1x.py',
'../_base_/datasets/coco_detection.py', './rtmdet_tta.py'
]
参考:
- mmdetection.readthedocs.io- 在标准数据集上训练预定义的模型(待更新)
- mmdetection.readthedocs.io-自定义数据集
- https://github.com/open-mmlab/mmdetection/blob/main/configs/rtmdet/rtmdet-ins_tiny_8xb32-300e_coco.py
2.3 mmdet的数据集可视化问题(VISUALIZERS)
from mmdet.registry import DATASETS,VISUALIZERS
我的结果是Filling的,教程的结果是没有Filling的
参考:
- 使用MMDetection3.x 在Balloon气球数据集上训练并对视频进行实例分割和制作成Color Splash效果
2.4 pin_memory参数设置
参考:
- 相关-37. 释放GPU显存
- 详解Pytorch里的pin_memory 和 non_blocking
2.5 max_split_size_mb设置
If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation
参考:
-
mmdetection-CUDA out of memory when testing
所以这个问题是已知的,训练结束后的validation阶段就会发生内存泄漏,要么就跳过val阶段。。。 -
RuntimeError: CUDA out of memory. How setting max_split_size_mb?
ValueError: val_dataloader, val_cfg, and val_evaluator should be either all None or not None, but got val_dataloader={'batch_size': 1, 'num_workers': 1, 'persistent_workers': True, 'drop_last': False, 'sampler': {'type': 'DefaultSampler', 'shuffle': False}, 'dataset': {'type': 'CocoDataset', 'data_root': '/content/cat_dataset', 'ann_file': 'annotations/test.json', 'data_prefix': {'img': 'images/'}, 'test_mode': True, 'pipeline': [{'type': 'LoadImageFromFile', 'backend_args': None}, {'type': 'Resize', 'scale': (640, 640), 'keep_ratio': True}, {'type': 'Pad', 'size': (640, 640), 'pad_val': {'img': (114, 114, 114)}}, {'type': 'PackDetInputs', 'meta_keys': ('img_id', 'img_path', 'ori_shape', 'img_shape', 'scale_factor')}], 'backend_args': None, 'metainfo': {'classes': ('cat',), 'palette': [(220, 20, 60)]}}}, val_cfg={'type': None}, val_evaluator=None
2.6 MMYOLO特征图可视化
AM(特征图可视化,激活值可视化),CAM(带有类的特征图可视化)
参考:
- https://mmyolo.readthedocs.io/zh_CN/latest/recommended_topics/visualization.html
- 玩转 MMYOLO 工具类第一期: 特征图可视化
2.7 数据集转为COCO格式
参考:
- 使用MMDetection3.x 在Balloon气球数据集上训练并对视频进行实例分割和制作成Color Splash效果