当前位置: 首页 > news >正文

西安网站改版的公司网龙网络公司官网

西安网站改版的公司,网龙网络公司官网,wordpress伪静态标签,做网站至少多少钱文章目录 YOLOv5训练长方形图像详解一、引言二、数据集准备1、创建文件夹结构2、标注图像3、生成标注文件 三、配置文件1、创建数据集配置文件2、选择模型配置文件 四、训练模型1、修改训练参数2、开始训练 五、使用示例1、测试模型2、评估模型 六、总结 YOLOv5训练长方形图像详…

文章目录

  • YOLOv5训练长方形图像详解
    • 一、引言
    • 二、数据集准备
      • 1、创建文件夹结构
      • 2、标注图像
      • 3、生成标注文件
    • 三、配置文件
      • 1、创建数据集配置文件
      • 2、选择模型配置文件
    • 四、训练模型
      • 1、修改训练参数
      • 2、开始训练
    • 五、使用示例
      • 1、测试模型
      • 2、评估模型
    • 六、总结

YOLOv5训练长方形图像详解

在这里插入图片描述

一、引言

YOLOv5 是一种高效的目标检测算法,广泛应用于各种图像识别任务。然而,当处理长方形图像时,可能会遇到一些特殊问题,如图像尺寸不匹配、标注不准确等。本文将详细介绍如何在 YOLOv5 中训练长方形图像,确保模型能够准确地检测和识别目标。

二、数据集准备

1、创建文件夹结构

首先,需要在 YOLOv5 根目录下创建一个文件夹 VOCData,并在其中创建以下子文件夹:

  • images:存放待标注的图像文件(JPG格式)。
  • Annotations:存放标注后的文件(采用 XML 格式)。
VOCData/
├── images/         # 存放图像文件
├── Annotations/    # 存放标注文件

2、标注图像

使用在线标注工具如 MAKE SENSE 进行标注。标注完成后,将标注文件保存为 XML 格式,并存放在 Annotations 文件夹中。

3、生成标注文件

创建 voc_label.py 文件,将训练集、验证集、测试集生成 YOLO 格式的标注文件,并将数据集路径导入到 train.txtval.txt 文件中。代码如下:

import xml.etree.ElementTree as ET
import os
from os import getcwdsets = ['train', 'val', 'test']
classes = ["class1", "class2"]  # 根据实际情况修改类别名称def convert(size, box):dw = 1. / size[0]dh = 1. / size[1]x = (box[0] + box[1]) / 2.0 - 1y = (box[2] + box[3]) / 2.0 - 1w = box[1] - box[0]h = box[3] - box[2]return x * dw, y * dh, w * dw, h * dhdef convert_annotation(image_id):in_file = open('VOCData/Annotations/%s.xml' % (image_id), encoding='UTF-8')out_file = open('VOCData/labels/%s.txt' % (image_id), 'w')tree = ET.parse(in_file)root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)for obj in root.iter('object'):difficult = obj.find('difficult').textcls = obj.find('name').textif cls not in classes or int(difficult) == 1:continuecls_id = classes.index(cls)xmlbox = obj.find('bndbox')b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text), float(xmlbox.find('ymax').text))b1, b2, b3, b4 = bif b2 > w:b2 = wif b4 > h:b4 = hb = (b1, b2, b3, b4)bb = convert((w, h), b)out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')in_file.close()out_file.close()wd = getcwd()
for image_set in sets:if not os.path.exists('VOCData/labels/'):os.makedirs('VOCData/labels/')image_ids = open('VOCData/ImageSets/Main/%s.txt' % (image_set)).read().strip().split()list_file = open('VOCData/dataSet_path/%s.txt' % (image_set), 'w')for image_id in image_ids:list_file.write(wd + '/VOCData/images/%s.jpg\n' % (image_id))convert_annotation(image_id)list_file.close()

三、配置文件

1、创建数据集配置文件

在 YOLOv5 目录下的 data 文件夹下新建一个 myvoc.yaml 文件,内容如下:

train: D:/Yolov5/yolov5/VOCData/dataSet_path/train.txt
val: D:/Yolov5/yolov5/VOCData/dataSet_path/val.txt# number of classes
nc: 2# class names
names: ["class1", "class2"]

确保路径和类别名称与实际情况一致。

2、选择模型配置文件

YOLOv5 有多种配置文件,如 yolov5s.yamlyolov5m.yamlyolov5l.yamlyolov5x.yaml。选择一个合适的配置文件,例如 yolov5x.yaml,并将其复制到 models 文件夹中,重命名为 ddjc_model.yaml,然后修改 nc 为实际的类别数。

四、训练模型

1、修改训练参数

train.py 文件中,找到 def parse_opt(known=False) 函数,修改训练参数。例如:

parser = argparse.ArgumentParser()
parser.add_argument('--weights', type=str, default='yolov5x', help='initial weights path')
parser.add_argument('--cfg', type=str, default=ROOT / 'models/ddjc_model.yaml', help='model.yaml path')
parser.add_argument('--data', type=str, default=ROOT / 'data/myvoc.yaml', help='dataset.yaml path')
parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch-low.yaml', help='hyperparameters path')
parser.add_argument('--epochs', type=int, default=50)
parser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs, -1 for autobatch')
parser.add_argument('--imgsz', '--img', '--img-size', type=int, default=640, help='train, val image size (pixels)')
parser.add_argument('--rect', action='store_true', help='rectangular training')
parser.add_argument('--device', default='cuda', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')

2、开始训练

在终端中运行以下命令开始训练:

python train.py --img 640 --batch 16 --epochs 50 --data data/myvoc.yaml --cfg models/ddjc_model.yaml --weights yolov5x.pt --name ddjc_model

五、使用示例

1、测试模型

训练完成后,可以使用 detect.py 文件进行测试。例如:

python detect.py --weights runs/train/ddjc_model/weights/best.pt --img 640 --conf 0.25 --source data/images

2、评估模型

使用 val.py 文件评估模型性能:

python val.py --weights runs/train/ddjc_model/weights/best.pt --data data/myvoc.yaml --img 640

六、总结

本文详细介绍了如何在 YOLOv5 中训练长方形图像,包括数据集准备、标注、配置文件设置和模型训练。通过这些步骤,可以确保模型能够准确地检测和识别长方形图像中的目标。希望本文对您有所帮助。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • Yolov5训练自己的数据集(详细完整版)_yolov5缔宇-CSDN博客
  • 如何制作数据集并基于yolov5训练成模型并部署
http://www.yayakq.cn/news/483708/

相关文章:

  • seo做的比较好的网站的几个特征一站式做网站服务
  • 文化传播公司网站备案推广注册app拿佣金
  • itc 做市场分析的网站wordpress添加菜单分类目录是灰的
  • 阿里云网站安装域名备案进度查询
  • 电子商务网站模板免费下载4399页游网站
  • 营销型网站免费模板下载七牛链接wordpress
  • 深圳做网站哪个好晚上正能量免费下载软件安全
  • 怎么选择锦州网站建设邢台网站制作公司
  • 做网站一年能赚多少钱营销的三个基本概念是什么
  • 泰安网站建设企业精美网站制作公司
  • php企业网站源码下载网站策划书包含的内容
  • 赚钱做任务的网站有哪些电子商务都包括什么
  • 营口旅游网站开发网站优化建设公司
  • 电商网站开发人员Godaddy如何建设网站
  • 网站收录提交入口wordpress二维码手工
  • 企业网站设计步骤建设银行有招投标网站吗
  • 可信赖的宜昌网站建设范县网站建设公司
  • 国内常见的博客网站网站可以自己建立吗
  • 网站描述标签长沙哪里做网站
  • 专业摄影网站推荐廊坊做网站的企业哪家好
  • 网站做404是什么意思百度平台投诉人工电话
  • 企业营销策划心得体会长沙网站优化培训
  • 天空在线网站建设中国软件
  • 广州网站开发定制设计wordpress输出分类
  • 建设网站的基本流程安徽省住房城乡建设厅网站官网
  • 网站备案费一般是多少内蒙古建设工程造价信息网解释
  • 福州有名的公司网站设计南京前十名传媒广告公司
  • 织梦快速做双语网站做外贸主要在那些网站找单
  • 团购网站短信平台wordpress多媒体mp4
  • 商业网站缩写专业手机网站建设平台