mmdetection2.6_Windows10版本配置、训练及推理

直接进入正题(如需环境安装包,请私信,每日回复)

一.Mmdetection2.X的windows环境安装与测试

二.Mmdetection的训练与测试

Mmdetection的2.1,2.2,2.3的配置windows都不行。前提:CUDA需求10.1(首先要装CUDA),vs2017整个都要装以及anaconda的环境变量

一.Mmdetection2.6的windows环境安装与测试

① 安装pytorch及虚拟环境
conda create -n mmd python=3.7
conda activate mmd
执行下面添加源的命令,否则找不到torchvision-
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes # 设置搜索时显示通道地址
#再加入Pytorch的Anaconda第三方镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
开始安装pytorch及其组件
conda install pytorch=1.6 torchvision cudatoolkit=10.1
(下面这个命令不需要编译mmcv,直接就可以安装,减少了很多手动编译的错误)
pip install mmcv-full==1.1.5 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html
② 安装完上述后,cd/d 到mmdetection 文件夹,执行如下语句

pip install -r requirements.txt
python setup.py develop
pip install opencv-python==4.2.0.34(官方给的mmd2.6opencv适配版本,否则会报错)

③ 测试1:
此时,我们已经将mmdetection的环境装好了,输入下面的命令进行测试:
python demo/webcam_demo.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
此命令需要无驱摄像头,连接即可实时检测
测试2:
python demo/image_demo.py demo/demo.jpg configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
此命令就是测试一下demo图片

二.Mmdetection的训练与测试

  1. 数据集的准备
    标注软件选用labelme,将已标注的图片和每一个图片标注完后生成的json文件同时放入data/coco/train2014文件夹中
    接着在val2014文件中放入已标注的图片及json文件作为验证集,最后在test2014文件夹中只放入预测的图片即可。
    在数据集的位置放置正确后,运行每一个文件夹中已经存在的labelme2coco.py脚本,语句为python .\labelme2coco.py。运行完之后会在当前文件夹里生成一个大的instances_train2014.json文件,将该文件放入data/coco/annotations文件夹中。

  2. 修改根目录下的change.py的num_class = 类别并运行,这一步的目的是下载我们的预训练权重,运行之后就会在mmdetection2.6文件夹下生成适合所需要训练类别的backbone。

  3. 跟mmdetection1.x版本不同的是现在的配置文件分为了三个,所以要修改三次,首先修改mmdetection2.6\configs_base_\models\faster_rcnn_r50_fpn.py,其num_classes = 类别;接着修改mmdetection2.6\configs_base_\schedules\schedule 1x.py,学习率lr和训练此时total_epochs都可以修改(尽量都是十的倍数);最后修改mmdetection2.6\configs_base\default_runtime.py,第一个interval是每隔多少次保存权重文件,第二个interval是val2014文件夹图片数目。

  4. 修改mmdetection2.6\configs_base_\datasets\coco_detection.py,将’annotations/instances_train2017.json’修改为’annotations/instances_train2014.json’,test和val同理,一共改六个部位的数字。

  5. 修改mmdetection2.6\mmdet\datasets\coco.py,将其原有类别注释,修改为自己的数据类别

  6. 修改mmdetection\configs_base_\default_runtime.py,将load_from = ‘你的model’,

  7. 定位到(每个人的路径可能不一样)D:\ProgramData\Anaconda3\envs\mmd26\Lib\site-packages\mmcv\runner\epoch_based_runner.py 172行改为:shutil.copy(filepath, dst_file),否则训练时会出现保存权重的错误,这是因为platform是windows,如果是linux就不会有错误。

  8. 在anaconda中进入虚拟环境,cd到mmdetection文件夹,执行语句:
    python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py
    开始训练,如下图所示:
    mmdetection2.6_Windows10版本配置、训练及推理_第1张图片

  9. 在训练过程中可以在mmdetection\work_dirs中看到训练日志,可以获取数据画曲线图。

  10. 在anaconda中进入虚拟环境,cd到mmdetection文件夹,执行语句:
    python demo/image_demo.py demo/00000.bmp configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py work_dirs/faster_rcnn_r50_fpn_1x_coco/epoch_20.pth
    用训练好的权重文件来测试自己的图片

你可能感兴趣的:(深度学习+torch专栏,mmdetection,windows,目标检测,深度学习,PaddlePaddle)