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

项目(一)

数据加载核心组件

1. 图像格式支持

YOLOv5 支持多种图像格式:

img_formats = ['.bmp', '.jpg', '.jpeg', '.png', '.tif', '.tiff', '.dng']
vid_formats = ['.mov', '.avi', '.mp4', '.mpg', '.mpeg', '.m4v', '.wmv', '.mkv']

2. EXIF 方向校正

def exif_size(img):# 获取图像 EXIF 信息中的方向标签,自动校正图像方向s = img.size  # (width, height)try:rotation = dict(img._getexif().items())[orientation]if rotation == 6 or rotation == 8:  # 旋转 270 或 90 度s = (s[1], s[0])except:passreturn s

3. 数据加载器创建函数

def create_dataloader(path, imgsz, batch_size, stride, opt, hyp=None, augment=False, cache=False, pad=0.0, rect=False,rank=-1, world_size=1, workers=8):

关键参数说明:

  • path: 数据集路径

  • imgsz: 输入图像尺寸

  • batch_size: 批次大小

  • stride: 模型步长

  • augment: 是否进行数据增强

  • cache: 是否缓存图像到内存

  • rect: 是否使用矩形训练

  • rank: 分布式训练中的进程排名

分布式训练支持

# 确保 DDP 中只有第一个进程处理数据集,其他进程使用缓存
with torch_distributed_zero_first(rank):dataset = LoadImagesAndLabels(path, imgsz, batch_size,augment=augment,hyp=hyp,rect=rect,cache_images=cache,stride=int(stride),pad=pad,rank=rank)

命令行参数配置

YOLOv5 提供了丰富的命令行参数用于推理和训练:

模型相关参数

--weights yolov5s.pt          # 模型权重文件路径
--img-size 640                # 推理尺寸(像素)

推理设置

--source inference/images     # 输入源:文件/文件夹/摄像头
--output inference/output     # 输出文件夹
--conf-thres 0.4             # 目标置信度阈值
--iou-thres 0.5              # NMS 的 IOU 阈值

功能开关

--view-img                   # 显示推理结果
--save-txt                   # 保存结果到 txt 文件
--agnostic-nms               # 类别无关的 NMS
--augment                    # 增强推理
--update                     # 更新所有模型

类别过滤

--classes 0 2 3              # 按类别过滤:只检测类别 0,2,3

数据加载优化

1. 工作进程数计算

nw = min([os.cpu_count() // world_size, batch_size if batch_size > 1 else 0, workers])

自动计算最优的工作进程数量,考虑 CPU 核心数、批次大小和用户设置。

2. 分布式采样器

sampler = torch.utils.data.distributed.DistributedSampler(dataset) if rank != -1 else None

在分布式训练中确保数据正确分发到各个进程。

3. 无限数据加载器

使用 InfiniteDataLoader 确保在长时间训练中数据不会耗尽。

http://www.dtcms.com/a/524501.html

相关文章:

  • SaaS多租户架构实践:字段隔离方案(共享数据库+共享Schema)
  • 企业网站网页设计的步骤房地产网站建设需求说明书
  • 中国专门做生鲜的网站著名品牌展厅设计
  • 开发避坑指南(66):IDEA 2025 Gradle构建安全协议警告:Maven仓库HTTPS切换或允许HTTP的配置方法
  • 前端新手入门-HBuilder工具安装
  • AceContainer::Initialize()函数的分析
  • 石家庄网站建设方案咨询涉县住房与城乡建设厅网站
  • 鸿蒙Next媒体开发全攻略(ArkTS):播放、录制、查询与转码
  • vs2015网站开发基础样式福田庆三下巴
  • Hugging Face介绍
  • 要建立网站和账号违法违规行为数据库和什么黑名单企业所得税优惠税率
  • 大模型训练中的关键技术与挑战:数据采集、微调与资源优化
  • 【文献笔记】arXiv 2018 | PointSIFT
  • 如何检测和解决I2C通信死锁
  • 深度学习快速入门手册
  • 如何看待 AI 加持下的汽车智能化?带来更好体验的同时能否保证汽车安全?
  • Linux中的一些常见命令
  • 三步将AI模型转换为 DeepX 格式并完成精度评估
  • 做第一个网站什么类型天津市建筑信息平台
  • 找一个网站做优化分析app界面设计属于什么设计
  • 【开题答辩全过程】以 毕业设计选题系统的设计与实现为例,包含答辩的问题和答案
  • 语言基础再谈
  • 网站后台用什么开发网页制作怎么做多个网站
  • 每周读书与学习->JMeter主要元件详细介绍(二)函数助手
  • asp网站开发技术免费建网站模板平台
  • 前端竞态问题是什么?怎么解决?
  • 问题记录--elementui中el-form初始化表单resetFields()方法使用时出现的问题
  • 运用jieba库解决词频分析问题
  • 【Linux】自动化构建工具--make/Makefile
  • 乡镇网站建设工作计划商城网站支付端怎么做