学校介绍网站模板,网站建设学的是什么知识,医院网站建设方案详细,东莞微信网站一、前言
很久没用mmdetection了#xff0c;作为目标检测常见的几个深度学习框架#xff0c;mmdetection用的人还是很多的#xff0c;其中比较吸引人的一点就是mmdetection集成了非常多的算法#xff0c;对于想做实验对比和算法学习的人来说#xff0c;基于这个框架可以事…一、前言
很久没用mmdetection了作为目标检测常见的几个深度学习框架mmdetection用的人还是很多的其中比较吸引人的一点就是mmdetection集成了非常多的算法对于想做实验对比和算法学习的人来说基于这个框架可以事半功倍。因为外面提出的各种各样的算法依赖的环境会有所不同数据集的格式也有区别我们单独去跑这一个个算法实际上是很费劲的所以mmdetection的出现直接把这些算法集成到一个统一的平台对于大家系统性的学习非常便利。
最近几天摸索了一下过程还比较顺利但是摸索也耗时间所以在这里记一下既为以后使用方便也为有需要的人提供参考。
重点说明本环境未使用 mim库进行环境安装使用常规的conda、pip安装过程非常简单高效。以前大致瞅见过 mim库估计是可以自动检测软硬件环境以匹配合适的库进行安装命令可能是模仿的 pip这个库一般来说可以避免使用所以这里未考虑使用mim库。
官网安装教程如下网址https://mmdetection.readthedocs.io/zh_CN/latest/get_started.html
下面是本文推荐的安装教程。
二、环境安装
1、下载mmdetection框架的所有文件可以
git clone https://github.com/open-mmlab/mmdetection.git也可以直接去官网https://github.com/open-mmlab/mmdetection 下载压缩包 我下载的是3.1.0版本的压缩包 2、创建运行需要的虚拟环境 很常规的操作不熟悉的需要时间理解摸索一下 ①一般涉及到使用的操作系统Linux或windows这里用的是Linux下的Ubuntu 16.04。 ②然后是显卡驱动软件深度学习要用显卡计算一般得有显卡驱动的版本一般有12基本够用显卡驱动软件版本就是nvidia-smi右上角的cuda version表示环境中cudatoolkit可以安装的最高版本号。之前有段时间以为需要单独安装CUDA实际发现只需要安装显卡驱动软件 虚拟环境安装cudatoolkit 就可以跑深度学习代码 ③然后就是常规的虚拟环境创建安装相关库。
假设创建一个名称为mmlab的虚拟环境
conda create -n mmlab python3.8 -y激活进入虚拟环境
conda activate mmlab安装pytorch等深度学习库我的显卡驱动软件是12.2的版本我选择装CUDA11.3版本的pytorch其他具体命令可去pytorch官网查询我的是
conda install pytorch1.12.1 torchvision0.13.1 torchaudio0.12.1 cudatoolkit11.3 -c pytorch这时可以验证一下pytorch库是否可以调用显卡进入python环境
import torch
torch.cuda.is_available()
True输出True则说明可正常调用显卡
接着是安装 mmengine
pip install mmengine然后是mmcv官网给了一个版本推荐 我是根据这个推荐尝试了的但是发现后面会报错无法导入mmdet而且提示我mmcv版本不对所以不能完全按照教程来。后面我看了一下可能是装的mmdetection是3.x版本的而教程里是2.X版本的教程。 我安装能用的是
pip install mmcv2.0.0rc4这条命令的安装时间很长估计有半小时以上
装完之后可以进入python命令行测试一下
import mmdet如果可以正常导入的话说明库之间的调用是没问题的 最后就是进入mmdetection进行编译
cd mmdetection-main
pip install -v -e .运行完就会提示安装成功。 上述就是我装环境的过程完全没有使用mim而且安装起来也不复杂我提供的这个版本也是验证了可以使用的。总共没几条命令特别简单就是要花点时间。
三、训练自己的数据集
1、数据集准备 mmdetection要求数据集的格式是coco形式的即训练、测试图片两个各自的json文件具体格式自行查询coco数据集制作或介绍的内容 2、网络配置 以前配置网络感觉过程还挺复杂的在一些文件里 加数据集路径数据集类别名等现在不用这么复杂了可以自己写一个配置文件覆盖掉提供的文件基于自己提供的信息去训练网络。
①我一般在configs文件夹下创建一个专门用来跑自己想跑的算法的文件夹假设为test_task ②把要跑的算法拷贝test_task假设是fcos.py ③把_base_要求的文件也拷进来可能会改内容。在test_task文件夹下创建一个_base_文件夹放coco_detection.py , schedule_1x.py , default_runtime.py 代码注意在fcos.py里修改相对路径
④自己写一个配置文件比如fcos_base.py用来给fcos.py继承注意配置文件fcos_base.py的内容必须是fcos.py出现了的变量仅是覆盖掉之前的配置示例fcos_base.py内容主要如下 表示继承自fcos.py
_base_ ./fcos.py更改 model 中的 num_classes 以匹配数据集中的类别数,本地加载预训练模型加checkpoint参数建议绝对路径
model dict(backbone dict(init_cfgdict(checkpoint./resnet50.pth)),bbox_headdict(num_classes1))修改数据集相关配置,dataroot建议数据集的绝对路径metainfo给出数据集的类别训练集和验证集的ann_file写自己的数据集路径和名称,batch_size也可以设置
data_root data/balloon/
metainfo {classes: (balloon, )}
train_dataloader dict(batch_size1,datasetdict(data_rootdata_root,metainfometainfo,ann_filetrain/annotation_coco.json,data_prefixdict(imgtrain/)))
val_dataloader dict(datasetdict(data_rootdata_root,metainfometainfo,ann_fileval/annotation_coco.json,data_prefixdict(imgval/)))
test_dataloader val_dataloader# 修改评价指标相关配置
val_evaluator dict(ann_filedata_root val/annotation_coco.json)
test_evaluator val_evaluator所以基本上用着一个配置文件就可以完成个性化的训练任务不需要去改那么多的参数和文件了
训练命令
python tools/train.py configs/test_task/fcos_base.py这样就可以开始训练了。 我的训练界面