Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mmdetection使用目标检测工具箱训练,测试

mmdetection使用目标检测工具箱训练,测试

作者头像
机器学习AI算法工程
发布于 2021-01-12 06:54:00
发布于 2021-01-12 06:54:00
1.9K0
举报
香港中文大学-商汤科技联合实验室开源了基于 PyTorch 的检测库——mmdetection。商汤科技和港中大组成的团队在 2018年的COCO 比赛的物体检测(Detection)项目中夺得冠军,而 mmdetection 正是基于 COCO 比赛时的 codebase 重构。

https://github.com/open-mmlab/mmdetection

这个开源库提供了已公开发表的多种视觉检测核心模块。通过这些模块的组合,可以迅速搭建出各种著名的检测框架,比如 Faster RCNN,Mask RCNN,R-FCN,RetinaNet , Cascade R-CNN及ssd 等,以及各种新型框架,从而大大加快检测技术研究的效率。

相比 FAIR 此前开源的 Detectron,mmdetection 有以下几大优势:

Performance 稍高 训练速度稍快:Mask R-CNN 差距比较大,其余的很小。 所需显存稍小: 显存方面优势比较明显,会小 30% 左右。 易用性更好: 基于 PyTorch 和基于 Caffe2 的 code 相比,易用性是有代差的。

与 mmdetection 一起开源的还有一个基础库——mmcv。mmcv 基础库主要分为两个部分:一部分是和 deep learning framework 无关的一些工具函数,比如 IO/Image/Video 相关的一些操作;另一部分是为 PyTorch 写的一套训练工具,可以大大减少用户需要写的代码量,同时让整个流程的定制变得容易。项目仓库地址为:https://github.com/open-mmlab/mmcv 建议也把mmcv仓库下载到本地,方便后面debug的时候查看源码。

1. 安装文档—手把手教你如何搭建MMDetection框架

https://zhuanlan.zhihu.com/p/101202864

2. 入门文档—教你如何快速上手MMDetection

https://zhuanlan.zhihu.com/p/101212969

3. 基准和模型汇总—展示MMDetection上各个模型的准确率和使用方法

https://zhuanlan.zhihu.com/p/101216931

4. 技术细节—手把手教你如何实现一个新的网络

https://zhuanlan.zhihu.com/p/101222759

mmdetection的configs中的各项参数具体解释

https://zhuanlan.zhihu.com/p/102072353

目标检测比赛中的tricks(已更新更多代码解析)

https://zhuanlan.zhihu.com/p/102817180

环境安装 1、安装教程

最好按照官方仓库的安装说明进行,很多博客里面的安装方法都或多或少有点小问题,可能是官方仓库一直在更新但是博客没有更新的缘故。官方安装说明地址:https://github.com/open-mmlab/mmdetection/blob/master/INSTALL.md

简单来说,该仓库目前只支持在linux系统上运行,不支持window;PyTorch的版本要求为:PyTorch 1.0+ or PyTorch-nightly,且要根据其官网的安装命令安装,避免版本冲突问题。 2、运行demo测试环境是否安装成功

因为博主之前使用别的博客的demo代码的时候出现错误,找了半天不知道是什么原因,而当我好好看官方说明的时候才知道这个代码在说明中有,而且已经更新过,所以为了保险期间,这里就不直接贴出代码了,给地址你们自己去看。

测试的demo代码地址为:https://github.com/open-mmlab/mmdetection/blob/master/GETTING_STARTED.md#high-level-apis-for-testing-images 。将代码写入py文件,并存放到mmdetection文件夹目录下,然后运行。但是运行官方代码的前提是你已经下载了相关模型的checkpoint的pth文件,并放在mmdetection文件夹目录下的checkpoints文件夹下。官方提供的所有训练好的pth模型文件下载地址都在MODEL_ZOO.md中。另外随便照一张图片重命名为test.jpg放到mmdetection目录下就可以了。 三、训练自定义的dataset

相信大家用这个mmdetection都不只是为了尝尝鲜试一下的吧,所以这里分享下我训练自定义的数据集的过程记录。

先给大家看一下我的整个mmdetection文件夹的内容。

1、准备dataset

需要说明的是官方提供的所有代码都默认使用的是coco格式的数据集,所以不想太折腾的话就把自己的数据集转化成coco数据集格式吧。各种类型数据转coco格式脚本见:转换工具箱 。我使用的是其中的labelme2coco.py文件,亲测没有问题。

制作好数据集之后,官方推荐coco数据集按照以下的目录形式存储:

其中,$COCO_ROOT需改为你的coco数据集根目录

2、Training前修改相关文件

首先说明的是我的数据集类别一共有4个,分别是:‘Glass_Insulator’, ‘Composite_Insulator’, ‘Clamp’, ‘Drainage_Plate’。且我跑的模型是’configs/faster_rcnn_r50_fpn_1x.py’。

官方提供的代码中都使用的是coco数据集,虽然我们自定义的数据集也已经转换成coco标准格式了,但是像class_name和class_num这些参数是需要修改的,不然跑出来的模型就不会是你想要的。

一些博客例如这个,所提供的方法是按照官方给的定义coco数据集的相关文件,新建文件重新定义自己的数据集和类等,但是其实这是有风险的,我之前按照他们的方法走到最后发现会出现错误,所以最简单便捷且保险的方法是直接修改coco数据集定义文件(官方也是这样建议的)。

1、定义数据种类,需要修改的地方在mmdetection/mmdet/datasets/coco.py。把CLASSES的那个tuple改为自己数据集对应的种类tuple即可。例如:

4、在mmdetection的目录下新建work_dirs文件夹

3、Training

展示下开始训练的界面: 在这里插入图片描述 训练完之后work_dirs文件夹中会保存下训练过程中的log日志文件、每个epoch的pth文件(这个文件将会用于后面的test测试)

四、Testing

有两个方法可以进行测试。 1、如果只是想看一下效果而不要进行定量指标分析的话,可以运行之前那个demo.py文件,但是要改一下checkpoint_file的地址路径,使用我们上一步跑出来的work_dirs下的pth文件。例如:

但是使用这个测试命令的时候会报错,报错的情况我也在官方库的issue上提交了,可以查看我的error描述,看看与你的是否一致。

根据我的问题描述可以知道使用demo.py来测试是可以出结果的,但是会出现”warnings.warn('Class names are not saved in the checkpoint’s ’ "的警告信息。使用这一步的test命令的时候会报错,程序中断,但是其实问题是一致的,应该是训练中保存下来的pth文件中没有CLASSES信息,所以show不了图片结果。因此需要按照下面的步骤修改下官方代码才可以。

(1) 修改mmdetection/mmdet/tools/test.py中的第29行为:

此处的格式化输出称为检测评价矩阵(detection evaluation metrics)。此处摘录COCO数据集文档中对该评价矩阵的简要说明:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
资源 | 一个基于PyTorch的目标检测工具箱,商汤联合港中文开源mmdetection
项目地址:https://github.com/open-mmlab/mmdetection
机器之心
2018/11/06
2.5K0
【目标检测】MMDetection的安装与基础使用
MMDetection是商汤和港中文大学针对目标检测任务推出的一个开源工具包,统一标准化了很多前沿模型,为研究者复现代码提供了便利。本篇就来尝试安装一下MMDetection并简单跑一下官方的示例教程。
zstar
2022/09/23
3.3K0
【目标检测】MMDetection的安装与基础使用
港中大、商汤开源目标检测工具包mmdetection,对比Detectron如何?
近日,香港中文大学-商汤联合实验室开源了基于 PyTorch 的检测库——mmdetection。上个月,商汤和港中大组成的团队在 COCO 比赛的物体检测(Detection)项目中夺得冠军,而 mmdetection 正是基于 COCO 比赛时的 codebase 重构。
AI科技大本营
2018/11/06
1.6K0
ubuntu安装mmdetection
mmdetection 里面分了好多目录,将相关的文件都放在了同一个文件夹中,下面就会介绍一些重要的文件夹
棒棒鸡不棒
2022/09/02
1.1K0
ubuntu安装mmdetection
MMDetection全流程实战指南:手把手带你构建目标检测模型
MMDetection 是一个由 OpenMMLab 开发的开源目标检测工具箱,基于 PyTorch 实现。该库提供了丰富的目标检测算法,包括经典的 Faster R-CNN、YOLO 和最新的一些研究成果,非常方便于研究者和工程师进行模型的训练和推理。具有高度模块化和可扩展性的设计,使得用户可以非常灵活地进行个性化配置和二次开发。这一工具箱已经成为目标检测领域的事实标准之一,被广泛应用于学术研究和产业界。
OpenMMLab 官方账号
2023/12/13
16.4K5
MMDetection全流程实战指南:手把手带你构建目标检测模型
将训练好的 mmdetection 模型转为 tensorrt 模型
mmdetection 是商汤科技(2018 COCO 目标检测挑战赛冠军)和香港中文大学开源的基于Pytorch实现的深度学习目标检测工具箱,性能强大,运算效率高,配置化编程,比较容易训练、测试。但pytorch模型不易于部署,运算速度还有进一步提升的空间,当前比较有效的方法是将模型转换为行为相同的tensorrt模型,本文记录转换流程。 任务思路 转换mmdetection 的 pytorch模型到tensorrt模型有多种方法,本文使用 mmdetection-to-tensorrt 库作为核
为为为什么
2022/08/05
1.2K0
MMDetection 快速开始,训练自定义数据集
pytorch==1.7.0 时多卡训练会发生问题,需参考此 Issue。命令参考:
GoCoding
2021/05/06
1.9K0
MMDetection 快速开始,训练自定义数据集
目标检测框架mmdetection框架的安装与测试
最近利用Conda终于成功安装了mmdetection,说实话,非conda的还真的不好装,特别在.complie的时候,即使成功,总是会出现各种问题,直到conda安装后,才明白之前的问题关键所在,即必须numpy为1.16.2版本,且pytorch需要为1.0版本。之前从release版本中下载了0.4.1的版本,还是有问题。
sparkexpert
2019/05/26
4.7K0
妙啊!MMDetection 训练自定义数据集
上一篇讲到如何安装MMDetection,今天要分享如何使用 MMDetection 训练自定义数据集,其实非常简单!
AI算法与图像处理
2021/03/14
2.3K0
一步一步教你在 docker 容器下使用 mmdetection 训练自己的数据集
这里不再介绍 mmdetection 的安装和配置,使用 mmdetection 较简单的方法是使用已安装 mmdetection 的 docker 容器。这样直接省去了安装 mmdetection 的过程,让重心放在模型训练上!
红色石头
2022/01/12
1.8K0
一步一步教你在 docker 容器下使用 mmdetection 训练自己的数据集
MMDetection环境搭建与安装教程
MMDetection是商汤和港中文大学联合开源的基于PyTorch的目标检测工具箱,支持Faster-RCNN,Mask-RCNN等主流目标检测框架。本文将详细介绍在linux系统下如何进行环境搭建与安装。
guichen1013
2020/12/08
4.9K0
【开发框架】Mmdetection3dlab Docker 环境改良和制作
✨本文提供了一套完整的基于Docker的目标检测研究环境搭建思路,对官方教程进行了一定的修改和补充。同时随文提供SSH和Jupyter server实践,均为可用状态,提供了可靠资料给小伙伴们探索。
杨丝儿
2022/04/11
1.4K0
【开发框架】Mmdetection3dlab Docker 环境改良和制作
满足一切需求的 MMYOLO 可视化:测试过程可视化
可视化在深度学习时代算是核心需求,借助可视化功能,研究者可以快速定位分析模型以及排查问题。
OpenMMLab 官方账号
2022/12/30
1.8K0
满足一切需求的 MMYOLO 可视化:测试过程可视化
目标检测王者库MMDetection迎来重大版本更新!
如果要给目前的目标检测开源库排名的,那由商汤科技和香港中文大学开源的MMDetection库一定是最强的王者,这个开源库基于PyTorch,支持很多主流的目标检测模型,而且在不断更新。近期,MMDetection库迎来了V2.0版本的重大更新:
代码医生工作室
2020/06/29
9880
【目标检测/实例分割】Mask R-CNN简介与Swin Transformer实践测试
之前在看Swin Transformer的时候,发现该算法在目标检测、实例分割等各种视觉任务上屠榜,于是想来实践测试一下。
zstar
2022/10/04
3.4K0
【目标检测/实例分割】Mask R-CNN简介与Swin Transformer实践测试
MMYOLO一站式上手指南,从安装、训练到模型优化全面覆盖
MMYOLO 是一个基于 PyTorch 和 MMDetection 的 YOLO 系列算法开源工具箱,它是 OpenMMLab 项目的一部分。MMYOLO 定位为 YOLO 系列热门开源库以及工业应用核心库,其中实现了很多 YOLO 系列的算法(YOLOv5、v6、v7 以及 RTMDet-Rotated、RTMDet)。
OpenMMLab 官方账号
2023/11/13
2.7K0
MMYOLO一站式上手指南,从安装、训练到模型优化全面覆盖
重磅!OpenMMLab 更新啦!分类/检测/分割/3D等项目全面升级
历时不知道多久,OpenMMLab又迎来了一次全面的更新。为了方便社区的研究者和开发者能够及时获悉 OpenMMLab 各个项目的进展,我们对近期的更新做一个整体的介绍。本次发布赶在 CVPR 之前,希望 OpenMMLab 的各个项目能够帮助到大家的研究和开发。
深度学习技术前沿公众号博主
2020/11/03
1.7K0
重磅!OpenMMLab 更新啦!分类/检测/分割/3D等项目全面升级
OpenMMLab 第二版发布:吸引业界「目光」的史上最完整的目标检测工具箱
AI 科技评论按:去年 10 月,香港中文大学-商汤联合实验室在 OpenMMLab 的首版计划中,开放了 MMCV 和 MMDetection(初期版本)。其初衷是为了在计算机视觉的一些重要方向建立统一而开放的代码库,并不断把新的算法沉淀其中。在过去的半年多时间,这些代码库已经产生了重要影响,越来越多的 MMLab 以外的研究团队开始把 MMDetection 作为实现新的目标检测算法的基础,并不断将其新算法回馈到 MMDetection 中。
AI科技评论
2019/07/12
1.2K0
OpenMMLab 第二版发布:吸引业界「目光」的史上最完整的目标检测工具箱
轻松搭建主干网络,多种视觉任务一网打尽
OpenMMLab 框架几乎全面覆盖了深度学习视觉任务的方方面面。针对每一个具体的任务,我们都提供了一个相应的算法库,如用于分类任务的 MMClassification,用于检测任务的 MMDetection 和用于分割任务的 MMSegmentation 等等。
OpenMMLab 官方账号
2022/05/25
1.1K0
StreamPETR复现详解
该论文提出了一种名为StreamPETR的长序列建模框架,用于多视角三维物体检测。该模型基于PETR系列中的稀疏查询设计,并系统地开发了一个对象中心的时序机制。该模型在线执行,并通过对象查询帧传递长期历史信息。此外,引入了运动感知层归一化以建模物体的移动。StreamPETR仅需微小的计算成本即可实现显著的性能提升,与单帧基线相比,取得了更好的效果。在标准nuScenes基准上,它是第一个在线多视角方法,实现了与激光雷达方法相当的表现(67.6%NDS和65.3%AMOTA)。轻量级版本实现了45.0%mAP和31.7FPS,优于最先进的方法(SOLOFusion)2.3%mAP和1.8倍更快的FPS。代码已在https://github.com/exiawsh/StreamPETR.git中提供。
Srlua
2024/11/28
3900
StreamPETR复现详解
推荐阅读
相关推荐
资源 | 一个基于PyTorch的目标检测工具箱,商汤联合港中文开源mmdetection
更多 >
交个朋友
加入[腾讯云] DeepSeek开发者交流群
前沿技术深度讨论 发展开发者人脉圈
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档