赞
踩
因为需要安装Bboxtoolkit需要编译的cuda版本为11.0,如果你本机的显卡只支持高版本的cuda,没法降低cuda版本,这种情况下,建议使用anaconda 创建的虚拟环境,在创建虚拟环境的时候可以指定python版本,在虚拟环境里可以指定安装对应的cuda版本。
conda create -n py37_YOLOX_OBB python=3.7
source activate py37_YOLOX_OBB
我的环境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
import torch
print(torch.cuda.is_available())#打印cuda是否可用
print(torch.cuda.device_count())#打印可用的GPU数量
print(torch.version.cuda)#查看虚拟环境cuda版本
cd YOLOX_OBB
pip3 install -U pip #升级pip 是为了后面安装依赖库的顺利
pip3 install -r requirements.txt #安装依赖库
pip3 install -v -e.
(PS:这个工具在上面git clone --recursive中作为子模块导入了)
cd BboxToolkit
python setup.py develop
rolabelImg的安装软件包,可以参考资源rolabelImg安装软件包
rolabelImg的安装教程参考:rolabelImg安装教程
按照下面的格式组织文件
(可以直接执行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格式文件
修改YOLOX_OBB/datasets/rolabelImg2dota.py
下面代码后,在主文件夹下执行python ./datasets/rolabelImg2dota.py
xml_path:rolabelImg标注后生成的标注文件所在文件夹
target_dir:转换后的dota格式数据存放文件夹
YOLOX_OBB 下执行 python ./datasets/train_val_split.py
,可以打乱数据,然后自动拷贝图片和标注文件到
train_images和val_images:分别存放训练和验证的原图片文件
train_labelTxt和val_labelTxt:分别存放训练和验证的Dota格式文件
自己可以修改数据划分比例,默认train:val=9:1
cd BboxToolkit/BboxToolkit/datasets
打开 misc.py
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 ...
cd configs/datasets && cp dota10.yaml My_classes.yaml(自己数据集)
vim My_classes.yaml
data_dir:我们上一步生成的数据
num_classes:分类的类别数
class_names:识别的类别名称
添加刚才配置路径,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
修改相关配置文件,batch_size等参数,后再YOLOX_OBB 目录下执行
bash my_exps/train.sh
bash my_exps/demo.sh
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。