算法环境配置1_YOLOX_OBB

一、环境配置

前言

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

1.创建虚拟环境

conda create -n py37_YOLOX_OBB python=3.7 

2.激活虚拟环境

source activate py37_YOLOX_OBB

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

我自己是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

4.检查是否安装OK

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

5.安装相关依赖

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

6.安装数据处理工具包

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

cd BboxToolkit
python setup.py develop

二、数据标注和转换

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

在这里插入图片描述

(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

修改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.训练

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

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

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

在这里插入图片描述

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

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

bash my_exps/train.sh

2.预测

bash my_exps/demo.sh

四、部署

五、

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

德卡先生的信箱

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

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

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

打赏作者

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

抵扣说明:

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

余额充值