当前位置:   article > 正文

算法环境配置1_YOLOX_OBB_yolox obb

yolox obb

一、环境配置

前言

因为需要安装Bboxtoolkit需要编译的cuda版本为11.0,如果你本机的显卡只支持高版本的cuda,没法降低cuda版本,这种情况下,建议使用anaconda 创建的虚拟环境,在创建虚拟环境的时候可以指定python版本,在虚拟环境里可以指定安装对应的cuda版本。

1.创建虚拟环境

conda create -n py37_YOLOX_OBB python=3.7 
  • 1

2.激活虚拟环境

source activate py37_YOLOX_OBB
  • 1

3.安装cuda,torch,torchvision,toraudio

我的环境conda 安装后,导入torch会报错,所以我使用的是pip安装

conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0 -c pytorch
  • 1

我自己是pip 安装的

pip install torch==1.7.0+cu110 torchvision==0.8.1+cu110 torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
  • 1

4.检查是否安装OK

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

5.安装相关依赖

cd YOLOX_OBB
pip3 install -U pip #升级pip 是为了后面安装依赖库的顺利
pip3 install -r requirements.txt #安装依赖库
pip3 install -v -e. 
  • 1
  • 2
  • 3
  • 4

6.安装数据处理工具包

(PS:这个工具在上面git clone --recursive中作为子模块导入了)

cd BboxToolkit
python setup.py develop
  • 1
  • 2

二、数据标注和转换

1.使用rolabelImg标注斜框数据

rolabelImg的安装软件包,可以参考资源rolabelImg安装软件包
rolabelImg的安装教程参考:rolabelImg安装教程

2.数据准备

按照下面的格式组织文件
(可以直接执行python ./datasets/make_dir.py生成img20220920以及子文件夹)

test:存放测试集文件
trainval_images:存放原图片
trainval_xmlFiles:存放rolabelImg标注生成的xml文件

trainval_DotaTxt:存放rolabelImg格式文件转换成的Dota格式的文件

train_images和val_images:分别存放训练和验证的原图片文件
train_labelTxt和val_labelTxt:分别存放训练和验证的Dota格式文件

在这里插入图片描述

3.rolabelImg格式转dota格式

修改YOLOX_OBB/datasets/rolabelImg2dota.py下面代码后,在主文件夹下执行python ./datasets/rolabelImg2dota.py
xml_path:rolabelImg标注后生成的标注文件所在文件夹
target_dir:转换后的dota格式数据存放文件夹
在这里插入图片描述

4.划分训练集和验证集

YOLOX_OBB 下执行 python ./datasets/train_val_split.py,可以打乱数据,然后自动拷贝图片和标注文件到
train_images和val_images:分别存放训练和验证的原图片文件
train_labelTxt和val_labelTxt:分别存放训练和验证的Dota格式文件
自己可以修改数据划分比例,默认train:val=9:1
在这里插入图片描述

5.dota格式 转 BboxToolkit格式

(1)在BboxToolkit中,导入自己数据的类别名称

cd BboxToolkit/BboxToolkit/datasets
打开 misc.py
  • 1
  • 2

在这里插入图片描述

(2)修改配置文件

cd BboxToolkit/tools/split_configs && cp -a dota1_0 mydata
cd mydata (根据自己需要改相关配置,我们这里修改ss_train.json, ss代表单尺度,ms代表多尺度)
vim ss_train.json/ss_val.json
  • 1
  • 2
  • 3

修改ss_train.json
在这里插入图片描述

修改ss_val.json
在这里插入图片描述

img_dirs是dota格式的图片文件夹
ann_dirs是dota格式标注文件夹,
save_dir是BboxToolkit生成的数据集的文件夹。
sizes为切图后图片大小,如果图片不需要切图,将sizes设置为自己数据大小max(w,h)
gaps为切图时图片的之间,如果你的图片不需要切图,设置为0.
gaps示意图如下:

在主文件夹下执行bash my_exps/split_img.sh
在这里插入图片描述

将config_train与config_val改为自己相应文件路径
会在dataset/My_classes下生成如下文件夹,
dataset/My_classes/train存放我们训练集的数据
dataset/My_classes/val 存放我们验证集的数据

之后把生成的train,val,test都放进都My_classes文件夹里,最终文件夹结构如下

├── test
│   ├── annfiles
│   │   ├── ori_annfile.pkl
│   │   ├── patch_annfile.pkl
│   │   └── split_config.json
│   └── images
│       ├── 1_0000.png
│       ├── 1_0001.png
│       ├── 2_0000.png
│       └── 2_0001.png
|        ...
├── train
│   ├── annfiles
│   │   ├── ori_annfile.pkl
│   │   ├── patch_annfile.pkl
│   │   └── split_config.json
│   └── images
│       ├── 3_0000.png
│       ├── 3_0001.png
│       ├── 4_0000.png
│       └── 4_0001.png
|        ...
└── val
    ├── annfiles
    │   ├── ori_annfile.pkl
    │   ├── patch_annfile.pkl
    │   └── split_config.json
    └── images
        ├── 5_0000.png
        ├── 5_0001.png
        ├── 6_0000.png
        └── 6_0001.png
          ...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

三、训练验证

1.训练

(1).修改配置文件My_classes.yaml

cd configs/datasets && cp dota10.yaml My_classes.yaml(自己数据集)
vim  My_classes.yaml
  • 1
  • 2

data_dir:我们上一步生成的数据
num_classes:分类的类别数
class_names:识别的类别名称
在这里插入图片描述

(2).修改 yolox_s_My_classes.py

添加刚才配置路径,OK,配置工作完成(另外上图中有一个aug_ignore选项,这是用来忽略那些水平标注的旋转增强,里面是类别的名称,如果你也有目标是水平标注的,你可以把里面的类别变为水平标注的类别,如果没有就删掉)

cd exps/example/yolox_obb && cp -a yolox_s_dota1_0.py yolox_s_My_classes.py
vim yolox_s_My_classes.py
  • 1
  • 2

在这里插入图片描述

(3).在tool/train.py 中修改训练参数

修改相关配置文件,batch_size等参数,后再YOLOX_OBB 目录下执行

bash my_exps/train.sh
  • 1

2.预测

bash my_exps/demo.sh

四、部署

五、

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/722333
推荐阅读
相关标签
  

闽ICP备14008679号