MMdetection框架速成系列 第01部分:学习路线图与步骤+优先学习的两个目标检测模型代码+loss计算流程+遇到问题如何求助+Anaconda3下的安装教程(mmdet+mmdet3d)

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: Tip:目前 MMDetection 实现的算法中主要包括 one-stage 和 two-stage 算法,而 two-stage 算法可以简单认为是 one-stage + pool + one-stage 步骤。

🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗

MMdetection框架速成系列


MMdetection框架速成系列 第01部分:

https://v9999.blog.csdn.net/article/details/128486362

MMdetection框架速成系列 第02部分:

https://v9999.blog.csdn.net/article/details/128486548

MMdetection框架速成系列 第03部分:

https://v9999.blog.csdn.net/article/details/129294753


🚗🚗🚗🚗🚗🚗🚗正文开始🚗🚗🚗🚗🚗🚗🚗


1 mmdetection 学习建议


c183e2982df942bca421c93a4ffeab06.png


1.1 mmdetection 学习的第一件事


对于任何一个开源框架,找到 GitHub 地址后第一件事情应该是阅读 docs。

MMDetection 2.26.0 文档中文版:https://mmdetection.readthedocs.io/zh_CN/latest/index.html

Tip:目前 MMDetection 实现的算法中主要包括 one-stage 和 two-stage 算法,而 two-stage 算法可以简单认为是 one-stage + pool + one-stage 步骤。


1.2 mmdetection学习路线图


1.2.1 优先看的两个库


简单来说学习 MMDetection 主要是学习两个库:MMCV 和 MMDectection,


MMCV 是面向整个OpenMMLab所有的开源库,均为通用类和工具类,方便下游各个 codebase 复用


1.2.2 阅读代码


在打好基础后,下一步就是深入阅读源码。


由于模型训练过程涉及的内容比较复杂,建议按照如下顺序进行学习:


1.2.3 代码学习步骤


先选择经典算法对前向过程进行深入分析,阅读部分主要包括 DataLoader 构建过程、数据前处理流程、Backbone、Neck、Head 和后处理模块。重点是理解网络输出形式以及后处理的具体步骤,暂时忽略 loss 计算部分。


1.2.4 建议优先学习的两个目标检测模型代码


本阶段目标:充分理解 RetinaNet 和 Faster R-CNN 的前向推理流程


① 优先阅读one-stage模型RetinaNet,多看几遍 RetinaNet 算法后,对 MMDetection 算法的实现方式就会有一个非常清晰的认识。

链接地址:https://zhuanlan.zhihu.com/p/346198300

② 深入阅读 Faster R-CNN 算法


以上两个经典算法可以说是后续所有算法的 baseline,后续大部分算法都或多或少的继承了这个算法,同时实现方式也是非常类似。


1.2.5 loss计算流程的攻坚克难


充分理解前向推理流程后,下一步深入阅读训练过程中 loss 计算流程了,重点关注正负样本定义规则、bbox 编解码规则和 loss 计算函数。


阅读顺序:深入理解 RetinaNet 后,再看 Faster R-CNN。


1.3 遇到问题如何求助


①在阅读过程中,可以再次去查看知乎相关源码解读文章,对照看,多看几遍,应该会加快理解。


②存在问题,去github的issue查找


③如果在阅读过程中有疑问,可以在社区中提问


2 Anaconda3下的安装教程(mmdet+mmdet3d)


MMDetection是MMLab家族的一员,是由香港中文大学和商汤科技共同推出的,以一个统一的架构支撑了15个大方向的研究领域。MMDetection依赖Pytorch和MMCV,因此安装之前需要先安装这两个库。


8de1355c1c7641fd9bc6597bef2aa48d.png


1.1 Anaconda虚拟环境搭建


conda create -n mmlab python=3.6
# 然后切换到该环境下
activate mmlab


1.2 Pytorch安装


# 注意根据自己电脑的CUDA版本选择。在命令行运行nvcc -V查看当前cuda版本:
nvcc -V
# 当前(2021.10.23)MMCV最新仅支持到pytorch-1.9,安装最新的pytorch1.10会导致MMDetection无法使用,因此安装的时候需要指定pytorch版本为1.9。
conda install pytorch==1.9.1 torchvision torchaudio cudatoolkit=10.2 -c pytorch
# 验证pytorch安装成功:
python


8184c1b403094928bf937e7d54b0b9c3.png


1.3 MMCV安装


MMCV有两mmcv-full和mmcv两个版本,两者差别在于是否包含CUDA操作,如果不需要使用CUDA可以安装mmcv,不过官方还是推荐安装完整版的mmcv-full。


pip install mmcv-full
# 如果处于服务器这类无法联网的环境,可以参照官方说明使用源码安装
# https://mmcv.readthedocs.io/en/latest/get_started/build.html


1.4 MMDetection安装


# ①:首先从github上下载mmdetection的源码,然后根据requirements.txt安装所需的依赖库,最后执行setup.py安装mmdetection
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -r requirements.txt
python setup.py develop
# 使用官方Demo验证安装是否成功,位于./demo文件夹下。
# 先新建一个demo_test工程,下载预训练模型(下载链接)放至test_demo\checkpoints文件下,新建main.py并运行:


main.py


import os
from mmdet.apis import init_detector, inference_detector
def demo_mmdet():
    base_dir = r'D:\Program Files\Third_Part_Lib\mmdetection'       # mmdetection的安装目录
    config_file = os.path.join(base_dir, r'configs\faster_rcnn\faster_rcnn_r50_fpn_1x_coco.py')
    # download the checkpoint from model zoo and put it in `checkpoints/`
    # url: https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
    checkpoint_file = r'checkpoints\faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'
    # 根据配置文件和 checkpoint 文件构建模型
    model = init_detector(config_file, checkpoint_file, device='cuda:0')
    # 测试单张图片并展示结果
    img = os.path.join(base_dir, r'demo\demo.jpg') # 或者 img = mmcv.imread(img),这样图片仅会被读一次
    result = inference_detector(model, img)
    # 在一个新的窗口中将结果可视化
    model.show_result(img, result, out_file=None, show=True)
if __name__ == '__main__':
    demo_mmdet()


运行成功效果如下:


2e731db3ced74579aac166c862a4f99f.png


1.5 MMDetection3D安装


MMDetection3D依赖MMSegmentation,先安装MMSegmentation:


git clone https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation
pip install -r requirements.txt
python setup.py develop


然后再安装MMDetection3D,这一步编译时间可能会久一点


git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
pip install -r requirements.txt
python setup.py develop


最后再利用官方提供的Demo,先下载预训练模型(下载链接)放至test_demo\checkpoints文件下,然后运行下面代码:


import os
from mmdet3d.apis import inference_detector, init_model, show_result_meshlab
def demo_mmdet3d():
    base_dir = r'D:\Program Files\Third_Part_Lib\mmdetection3d'  # mmdetection3d的安装目录
    config_file = os.path.join(base_dir, r'configs\second/hv_second_secfpn_6x8_80e_kitti-3d-car.py')
    # download the checkpoint from model zoo and put it in `checkpoints/`
    # url: https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
    checkpoint_file = r'checkpoints\hv_second_secfpn_6x8_80e_kitti-3d-car_20200620_230238-393f000c.pth'
    # build the model from a config file and a checkpoint file
    model = init_model(config_file, checkpoint_file, device='cuda:0')
    # test a single bin
    pcd = os.path.join(base_dir, r'demo/data/kitti/kitti_000008.bin')
    result, data = inference_detector(model, pcd)
    # show the results
    show_result_meshlab(
        data,
        result,
        '',
        0,
        show=True,
        snapshot=False,
        task='det')
if __name__ == '__main__':
    demo_mmdet3d()


运行成功效果如下:


9d7365dc605344c9a561bb85eaef80e7.png

目录
相关文章
|
数据采集 机器学习/深度学习 编解码
MMdetection框架速成系列 第02部分:整体算法流程+模型搭建流程+detection训练与测试核心组件+训练部分与测试部分的核心算法
众所周知,目标检测算法比较复杂,细节比较多,难以复现,而我们推出的 MMDetection 开源框架则希望解决上述问题。目前 MMdetection 已经复现了大部分主流和前沿模型,例如 Faster R-CNN 系列、Mask R-CNN 系列、YOLO 系列和比较新的 DETR 等等,模型库非常丰富,star 接近 13k,在学术研究和工业落地中应用非常广泛。
2292 0
|
机器学习/深度学习 算法 计算机视觉
3D目标检测框架 MMDetection3D环境搭建 docker篇
本文介绍如何搭建3D目标检测框架,使用docker快速搭建MMDetection3D的开发环境,实现视觉3D目标检测、点云3D目标检测、多模态3D目标检测等等。
1483 0
|
机器学习/深度学习 传感器 算法
【论文速递】AAAI2023 - BEVDepth: 用于多视图三维物体检测的可靠深度采集
【论文速递】AAAI2023 - BEVDepth: 用于多视图三维物体检测的可靠深度采集
|
Python
MMDetection系列 | 3. MMDetection自定义模型训练
MMDetection系列 | 3. MMDetection自定义模型训练
1156 0
MMDetection系列 | 3. MMDetection自定义模型训练
|
机器学习/深度学习 编解码 算法
超详细!手把手带你轻松掌握 MMDetection 整体构建流程(一)
作为系列文章的第一篇解读,本文主要是从整体框架构建角度来解析,不会涉及到具体算法和代码,希望通过本文讲解: - MMDetection 整体构建流程和思想 - 目标检测算法核心组件划分 - 目标检测核心组件功能
1147 0
超详细!手把手带你轻松掌握 MMDetection 整体构建流程(一)
|
机器学习/深度学习 算法 测试技术
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
本文是关于如何搭建深度学习环境,特别是使用mmdetection进行CPU安装和训练的详细指南。包括安装Anaconda、创建虚拟环境、安装PyTorch、mmcv-full和mmdetection,以及测试环境和训练目标检测模型的步骤。还提供了数据集准备、检查和网络训练的详细说明。
803 5
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
|
数据可视化 计算机视觉
使用MMDetection进行目标检测
本文介绍了如何使用MMDetection进行目标检测。首先需按官方文档安装MMDetection,不熟悉的同学可参考提供的教程链接。安装完成后,只需准备模型配置文件、模型文件及待检测的图片或视频。示例代码展示了如何加载模型并进行图像检测,最后通过可视化展示检测结果,包括类别和置信度。
361 1
使用MMDetection进行目标检测
|
9月前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| Large Separable Kernel Attention (LSKA) 大核可分离卷积注意力 二次创新C2PSA、C3k2
YOLOv11改进策略【注意力机制篇】| Large Separable Kernel Attention (LSKA) 大核可分离卷积注意力 二次创新C2PSA、C3k2
587 2
YOLOv11改进策略【注意力机制篇】| Large Separable Kernel Attention (LSKA) 大核可分离卷积注意力 二次创新C2PSA、C3k2
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
2218 3
|
存储 传感器 数据可视化
3D目标检测数据集 KITTI(标签格式解析、3D框可视化、点云转图像、BEV鸟瞰图)
本文介绍在3D目标检测中,理解和使用KITTI 数据集,包括KITTI 的基本情况、下载数据集、标签格式解析、3D框可视化、点云转图像、画BEV鸟瞰图等,并配有实现代码。
3723 1

热门文章

最新文章