前言:旷视科技推出了YOLOX,速度可以说是有很大的提升。
看图
本人显卡:GTX1660(6G)
IDE:Pycharm
Cuda11.2+cudnn8.2 (注意必须配套)
Cuda下载链接
CUDNN下载链接(需要登陆,邮箱登录就行)
pip list
安装Pytorch+ torchvision+torchaudio GPU版
pip install torch===1.7.1+cu110 torchvision===0.8.2+cu110 torchaudio===0.7.2 -f https://downlo ad.pytorch.org/whl/torch_stable.html
测试代码(终端cmd输入运行) 别忘了切换环境
python import torch torch.cuda.is_available() #如果为True就安装好了1.源码+基础环境配置
1.下载源码
下载YOLO-X源码:git clone git@github.com:Megvii-baseDetection/YOLOX.git
Git使用不了的点击:这是一个超链接,只为解决Git使用不了
2.安装所需环境配置
cd YOLOX #进入YOLOX的目录下 pip3 install -U pip #更新pip工具 #补充一句 这里最好在新创建一个环境。(不创建也不影响以下操作) pip3 install -r requirements.txt #下载所需要的包 pip3 install -v -e . # or python3 setup.py develop
最后一步不是太理解:详细解释
2.安装apexAPEX为NVIDIA开源的,非常支持Pytorch框架,可以改变数据格式和模型占用的显存,对于训练帮助十分的大。不训练的不用下载,直接进行下一步骤。
apex下载地址:这是一个超链接,下载apex
解压过后的文件夹保存到自己的环境下,贴上我的路径,我的为:
C:ProgramDataAnaconda3envstf2.0Libsite-packages 注:tf2.0为我的环境名字。
执行命令,进入到apex的文件里
cd C:ProgramDataAnaconda3envstf2.0Libsite-packagesapex 注:选用自己的路径 pip install -r requirements.txt #安装所需包 python setup.py install #安装apex3.安装pycocotools
pip install cython #接下来的操作需要微软vs中的几个动态库 如果有 Visual Studio 系列可以忽略提醒。 没有的去官网下载,或者稍后会有链接。 下载cocoapi https://github.com/cocodataset/cocoapi cd PythonAPI #进入到文件目录下 python setup.py install #安装cocoapi
Visual Studio下载:下载VS使用
cocoapi 下载:CocoAP下载
①下载预训练模型(下面链接中包含yolox_s 和yolox_m)
这里下载预训练模型
提取码: 563f
②执行推理代码
python tools/demo.py image -n yolox-s -c ./yolox_s.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu 参数解释 -n 是模型的名字 -c 为权重文件地址 –path是测试的图片路径 –conf 置信度阈值 –nms nms的iou阈值 –tsize 测试图片大小 –save_result 是否保存推理结果5.进行训练
1.数据集格式
├── data │ ├── VOCdevkit │ │ ├── VOC2007 │ │ │ ├── Annotations #xml文件 │ │ │ ├── JPEGImages #图片 │ │ │ ├── ImageSets │ │ │ │ ├── Main │ │ │ │ │ ├── test.txt │ │ │ │ │ ├── trainval.txt
我直接使用的VOC2007的数据集,没有自己准备。
VOC全数据下载地址
构建训练集以及验证集
import os
import random
trainval_percent = 0.1
train_percent = 0.9
xmlfilepath = './data/VOCdevkit/VOC2007/Annotations/'
txtsavepath = './data/VOCdevkit/VOC2007/images/'
total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)
os.makedirs('./data/VOCdevkit/VOC2007/ImageSets', exist_ok=True)
ftest = open('./data/VOCdevkit/VOC2007/ImageSets/test.txt', 'w')
os.makedirs('./data/VOCdevkit/VOC2007/ImageSets', exist_ok=True)
ftrain = open('./data/VOCdevkit/VOC2007/ImageSets/trainval.txt', 'w')
for i in list:
name = total_xml[i][:-4] + 'n'
if i in trainval:
ftest.write(name)
else:
ftrain.write(name)
ftrain.close()
ftest.close()
2、修改代码
设定自己的分类类别 ,VOC为20类。可以不用动,根据实际情况修改。
位置: ./exps/example/yolox_voc/yolox_voc_s.py
这块的2012一定要删了。我就是没有删除,一直报错。
位置:./data/datasets/voc_classes.py,为自己的classname
3.开始训练
python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 16 --fp16 -o -c weights/yolox_s.pth 参数解释 -d 使用多少张显卡训练 -b 批次大小 –fp16 是否开启半精度训练
4.错误列表



