当前位置:网站首页>pytorch yolov5 训练自定义数据
pytorch yolov5 训练自定义数据
2022-07-05 17:51:00 【mtl1994】
pytorch yolov5 训练自定义数据
文章目录
前言
环境
python: 3.9.7
torch: 1.10.2
labelimg: 1.8.6
#yolov5 https://github.com/ultralytics/yolov5
#pytorch https://pytorch.org/
#labelimg https://github.com/tzutalin/labelImg
paddleocr 有三种模型 det 检测 cls 方向 rec 识别
一、创建环境
安装miniconda
https://blog.csdn.net/mtl1994/article/details/114968140创建环境
#linux 需要先 source conda create -n pytorch_yolov5 python=3.9.7 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/安装完以后进入环境
conda activate pytorch_yolov5
二、安装环境
pytorch
#选择对应的cuda/cpu版本 pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113yolov5
#下载源代码 git clone https://github.com/ultralytics/yolov5 # clone cd yolov5 #安装依赖 python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/测试一下
import torch # Model model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # or yolov5n - yolov5x6, custom # Images img = 'https://ultralytics.com/images/zidane.jpg' # or file, Path, PIL, OpenCV, numpy, list # Inference results = model(img) # Results results.print() # or .show(), .save(), .crop(), .pandas(), etc.

选择模型
https://github.com/ultralytics/yolov5/releases
模型参数

我使用的模型是
yolov5x
三、标注图片
我使用的labelimg
#安装
pip install labelimg
#打开
labelimg
标注完以后会有两个目录、一个存图片、一个存txt
四、训练
1.切分数据
def make_datasets(txt_path, img_path, out="./out", split_rate=0.05):
txt_dir = Path(txt_path)
img_dir = Path(img_path)
out_dir = Path(out)
dataset = []
train_label = out_dir / "labels/train2007/"
train_image = out_dir / "images/train2007/"
test_label = out_dir / "labels/test2007/"
test_image = out_dir / "images/test2007/"
train_label.mkdir(parents=True, exist_ok=True)
train_image.mkdir(parents=True, exist_ok=True)
test_label.mkdir(parents=True, exist_ok=True)
test_image.mkdir(parents=True, exist_ok=True)
"""
过滤空txt
"""
for item in txt_dir.rglob("*.txt"):
if item.read_text() != "":
dataset.append(item)
"""
切分训练集,验证集
"""
tv = random.sample(dataset, int(len(dataset) * split_rate))
"""
组装数据
"""
print(len(dataset))
for item in dataset:
for jpg in img_dir.rglob(item.stem + ".jpg"):
if item in tv:
print(jpg, test_image / jpg.name)
# jpg.replace(test_image / jpg.name)
shutil.copy(str(jpg), test_image / jpg.name)
shutil.copy(str(item), test_label / item.name)
# item.replace(test_label / item.name)
else:
print(jpg, train_image / jpg.name)
# jpg.replace(train_image / jpg.name)
# item.replace(train_label / item.name)
shutil.copy(str(jpg), train_image / jpg.name)
shutil.copy(str(item), train_label / item.name)
执行完以后,目录结构
2.修改训练的模型 yml
3.开始训练
nohup python train.py --img 640 --batch 32 --epochs 600 --data voc.yaml --weights yolov5s.pt --device 0,1,2,3 &
训练结果都保存在runs/train/递增的运行目录中,例如runs/train/exp2,runs/train/exp3
五、已经训练的模型,有了新数据需要继续训练
1.使用迁移学习
训练的时候指定 weights 为 上一次训练的输出
六、常用命令
1.训练
nohup python train.py --img 640 --batch 32 --epochs 600 --data wp_voc.yaml --weights runs/train/exp27/weights/best.pt --device 0,1,2,3 &
2.识别
python detect.py --weights runs/train/exp6/weights/best.pt --source ../datasets/infer/2022-2-24/
3.导出onnx
python export.py --weights yolov5s.pt --img 640 --batch 1 # export at 640x640 with batch size 1
总结
边栏推荐
- 小白入门NAS—快速搭建私有云教程系列(一)[通俗易懂]
- 破解湖+仓混合架构顽疾,星环科技推出自主可控云原生湖仓一体平台
- VBA drives SAP GUI to realize office automation (II): judge whether elements exist
- mybash
- Gimp 2.10 tutorial "suggestions collection"
- Six bad safety habits in the development of enterprise digitalization, each of which is very dangerous!
- 使用QT遍历Json文档及搜索子对象
- 深拷贝与浅拷贝【面试题3】
- Disabling and enabling inspections pycharm
- 模拟百囚徒问题
猜你喜欢

EPM related

神经网络自我认知模型

Star ring technology data security management platform defender heavy release

南京大学:新时代数字化人才培养方案探讨

Sophon Base 3.1 推出MLOps功能,为企业AI能力运营插上翅膀

Leetcode daily question: the first unique character in the string

MATLAB查阅

Sophon CE社区版上线,免费Get轻量易用、高效智能的数据分析工具

ELK日志分析系统

ISPRS2022/雲檢測:Cloud detection with boundary nets基於邊界網的雲檢測
随机推荐
Sophon kg upgrade 3.1: break down barriers between data and liberate enterprise productivity
破解湖+仓混合架构顽疾,星环科技推出自主可控云原生湖仓一体平台
请问下为啥有的表写sql能查到数据,但在数据地图里查不到啊,查表结构也搜不到
为什么阳历中平年二月是28天
Cmake tutorial step5 (add system self-test)
Configure pytorch environment in Anaconda - win10 system (small white packet meeting)
Neural network self cognition model
修复漏洞 - mysql 、es
南京大学:新时代数字化人才培养方案探讨
从XML架构生成类
Tkinter window preload
Data access - entityframework integration
EPM related
深拷贝与浅拷贝【面试题3】
Check namespaces and classes
Customize the theme of matrix (I) night mode
Disorganized series
How can cluster deployment solve the needs of massive video access and large concurrency?
How to improve the thermal management in PCB design with the effective placement of thermal through holes?
Find the first k small element select_ k