ubuntu16.04使用yolox-tiny,训练自己的数据集并验证

一、安装

  • pytorch==1.7.1
  • torchvision-0.8.2
  • cuda10.1
git clone https://github.com/Megvii-BaseDetection/YOLOX
conda create -n yolox3.7 python=3.7
source activate yolox3.7
cd YOLOX
git clone https://github.com/NVIDIA/apex
cd apex
pip install https://download.pytorch.org/whl/cu101/torch-1.7.1%2Bcu101-cp37-cp37m-linux_x86_64.whl
pip install https://download.pytorch.org/whl/cu101/torchvision-0.8.2%2Bcu101-cp37-cp37m-linux_x86_64.whl
pip3 install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
cd ..
pip3 install -r requirements.txt
python3 setup.py install
pip3 install cython
pip3 install 'git+https://github.com/cocodataset/cocoapi#subdirectory=PythonAPI'
pip install loguru thop tabulate
pip install opencv-python
  • 问题cannot import name 'PILLOW_VERSION' from 'PIL',方法conda install pillow==6.1

二、DEMO

  • 下载预训练文件,目前github上的有问题
python tools/demo.py image -f exps/default/yolox_tiny.py -c yolox_tiny.pth --path image.png  --conf 0.5 --nms 0.45 --tsize 640 --save_result --device gpu
  • 问题没有yolox模块,方法在demo.py里最前面加上import sys和sys.path.append("/home/lwd/code/dl/YOLOX")
  • 问题torch.nn‘ has no attribute ‘SiLU‘,方法对应行改成module = SiLU()
  • 问题yolox_tiny.pth is a zip archive,是因为pytorch版本低于1.6,遂决定使用cuda10.1

三、训练自己的数据集

  • 参考这篇,使用VOC格式训练
  • 先使用labelme给数据打好标签,然后在图片和json文件的目录下运行以下代码
  • 需要先新建saved_path对应的文件夹
  • 和参考博文不一样的是,坐标使用int,因为使用浮点数在训练时会出现错误:invalid literal for int() with base 10,错误的原因是直接将浮点型的字符串转成int,比如int('111.0'),应该是int(float('111.0'))
import os
import numpy as np
import codecs
import json
from glob import glob
import cv2
import shutil
from sklearn.model_selection import train_test_split

labelme_path = "./"              
saved_path = "./MyVOC/VOC0520/"                


if not os.path.exists(saved_path + "Annotations"):
    os.makedirs(saved_path + "Annotations")
if not os.path.exists(saved_path + "JPEGImages/"):
    os.makedirs(saved_path + "JPEGImages/")
if not os.path.exists(saved_path + "ImageSets/Main/"):
    os.makedirs(saved_path + "ImageSets/Main/")
    

files = glob(labelme_path + "*.json")
files = [i.split(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刀么克瑟拉莫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值