算法环境配置4_实例分割SOLOv2

该文详细介绍了如何在Ubuntu系统中配置用于对象检测的环境,包括创建和激活虚拟环境,安装CUDA、Torch及其相关库,以及Detectron2和AdelaiDet的构建。此外,还讲解了数据标注、转换为COCO格式,训练和预测的步骤。
摘要由CSDN通过智能技术生成

一、环境配置

前言

建议使用anaconda 创建的虚拟环境,在创建虚拟环境的时候可以指定python版本,在虚拟环境里可以指定安装对应的cuda版本。

0.我的环境(仅供参考)

Ubuntu 20.04
GPU NVIDIA RTX 3080Ti 12G
源码+预训练模型下载地址
百度云地址:
链接:https://pan.baidu.com/s/1OsZDdIKAXNh7bUUgGkosWA
提取码:m3an

1.创建虚拟环境

conda create -n py37_SOLOV2 python=3.7 

2.激活虚拟环境

source activate py37_SOLOV2

3.安装cuda,torch,torchvision,toraudio

pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 
-f https://download.pytorch.org/whl/torch_stable.html
或者
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.3 
-c pytorch -c conda-forge

4.检查是否安装OK

import torch
print(torch.cuda.is_available())#打印cuda是否可用
print(torch.cuda.device_count())#打印可用的GPU数量
print(torch.version.cuda)#查看虚拟环境cuda版本

5.安装预建的 Detectron2(仅限 Linux)


python -m pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu111/torch1.10/index.html
或者下载源码安装
解压后在AdelaiDet主目录下
python -m pip install -e detectron2

6.构建AdelaiDet

pip3 install -U pip #升级pip 是为了后面安装依赖库的顺利
cd AdelaiDet
python setup.py build develop

二、数据标注和转换

1.数据标注

我们使用labelme来标注数据分割数据,具体安装和使用可以自行百度

2.按照下面的格式组织文件

(可以直接执行python ./datasets/make_dir.py生成coco以及子文件夹)
然后直接把你标注好的jpg和json复制到coco/totalFiles中
文件夹存放文件介绍
-coco:数据集名称
-coco/totalFiles:存放所有的图片jpg和标注的json文件
-coco/images:
-coco/images/train2014: 存放训练集图片jpg和标注的json文件
-coco/images/val2014: 存放验证集图片jpg和标注的json文件
-coco/annotations:存放转换后的coco格式的json文件

3.划分训练集和验证集

执行python ./datasets/train_val_split.py可以打乱数据,
训练集:一部分作为训练集放到./datasets/coco/images/train2014,
验证集:一部分作为训练集放到./datasets/coco/images/val2014,
自己可以修改数据划分比例,默认trainval:val=9:1

4.数据转换(转换成coco格式)

然后执行python ./datasets/labemel2coco.py ,
会自动生成./datasets/coco/annotations/instances_train2014.json
会自动生成./datasets/coco//annotations/instances_val2014.json

最终文件夹结构如下

├── coco
│   ├── totalFiles
│   │   ├── 0001.jpg
│   │   ├── 0001.json
│   │   ├── 0002.jpg
│   │   ├── 0002.json
│   │   ├── 0003.jpg
│   │   └── 0003.jsob
│   │    ........
│   ├── annotations
│   │   ├──instances_train2014.json
│   │   └──instances_val2014.json
│   │    
│   └── images
│   │   ├── test2014
│   │   ├── train2014
│   │      ├── 0001.jpg
│   │      ├── 0001.json
│   │      ├── 0003.jpg
│   │      ├── 0003.json
│   │       ........
│   │   ├── val2014
│   │      ├── 0007.jpg
│   │      ├── 0007.json
│   │      ├── 0005.jpg
│   │      ├── 0005.json
│   │       ........


三、配置文件

1.下载预训练文件

下载预训练文件(文章开头的下载链接包含有预训练模型),并拷贝到weights下存放

下面不同网络的预训练文件选一个下载就可以
sudo wget https://cloudstor.aarnet.edu.au/plus/s/chF3VKQT4RDoEqC/download -O SOLOv2_R50_3x.pth
或
sudo wget https://cloudstor.aarnet.edu.au/plus/s/glqFc13cCoEyHYy/download -O fcos_R_50_1x.pth
sudo wget 

2.训练前需要注册数据集

(1)修改./adet/data/builtin.py 注册数据集
在这里插入图片描述

(2)指定注册的数据
因为我们用的SOLOV2,所以修改./configs/SOLOv2/Base-SOLOv2.yaml
在这里插入图片描述

(3)下载或指定R50.pkl
模型训练会自动联网下载这个文件,但是如果下载不顺利的化,就自己在CSDN或其他地方下载好,这里修改对应的路径,我的路径是./weights/R-50.pkl
在这里插入图片描述

3.训练

(1)绝大部分的参数配置,放在detectron2/detectron2/config/default.py

-常用参数修改

# 每10000 iterations保存一次checkpoints
_C.SOLVER.CHECKPOINT_PERIOD = 10000

# 输出文件保存路径
_C.OUTPUT_DIR = "./output"

_C.SOLVER.LR_SCHEDULER_NAME = "WarmupMultiStepLR"

_C.SOLVER.MAX_ITER = 40000

_C.SOLVER.BASE_LR = 0.001

_C.SOLVER.MOMENTUM = 0.9

OMP_NUM_THREADS=1 python tools/train_net.py \
    --config-file configs/SOLOv2/R50_3x.yaml \
    --num-gpus 1 \
    OUTPUT_DIR training_dir/R_50_3x

(2)训练的事项
训练开始会自动打印该模型的所有配置参数和软件版本信息,存放在你指定的OUTPUT_DIR training_dir/R_50_3x 的log中
同时配置参数也会同步一份保存在./training_dir/R_50_3x.config.yaml

4.预测

(1)修改demo/demo.py中相关参数
下面参数的如果不想在执行时指定,直接在demp.py文件写好,要注意格式
–input default=[“./testdata/input2.jpg”]之所以用列表是因为一次可以指定1或多个输入路径
–opts default=[“MODEL.WEIGHTS”,“./weights/SOLOv2_R50_3x.pth”] #这里直接用预训练文件预测
当然也可以执行时指定

python3 demo/demo.py \
    --config-file configs/SOLOv2/R50_3x.yaml \ 
    --input  ./testdata/input2.jpg \
    --opts MODEL.WEIGHTS ./weights/SOLOv2_R50_3x.pth
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

德卡先生的信箱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值