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

YOLOv8 训练工程车航拍数据集,1260 张航拍工程车数据集


如何使用 YOLOv8 训练工程车航拍数据集的详细步骤。这个数据集包含 1260 张航拍工程车图片,标注文件为 VOC 和 YOLO 格式,可以直接用于模型训练。我们将详细介绍如何整合这些数据集,并使用 YOLOv8 进行训练。

一、数据准备

  1. 数据集结构
    假设你的数据集已经按照 YOLO 格式组织,并且结构如下:

深色版本
construction_vehicle_dataset/
├── images/
│ ├── train/
│ │ ├── 000001.jpg
│ │ ├── 000002.jpg
│ │ └── …
│ └── val/
│ ├── 000001.jpg
│ ├── 000002.jpg
│ └── …
├── labels/
│ ├── train/
│ │ ├── 000001.txt
│ │ ├── 000002.txt
│ │ └── …
│ └── val/
│ ├── 000001.txt
│ ├── 000002.txt
│ └── …
└── construction_vehicle.yaml
images/ 目录包含输入图像。
labels/ 目录包含对应的标注文件,每个标注文件中的每一行表示一个目标框,格式为 class_id x_center y_center width height。
construction_vehicle.yaml 是数据集的配置文件。
2. 配置文件
创建一个 construction_vehicle.yaml 文件,内容如下:

yaml
深色版本

数据集路径

path: ./construction_vehicle_dataset

类别名称

names:
0: construction_vehicle

数据集划分

train: images/train
val: images/val
二、安装依赖
确保你已经安装了 YOLOv8 所需的依赖。可以使用以下命令安装:

bash
深色版本
pip install ultralytics
三、训练模型

  1. 导入库
    python
    深色版本
    import torch
    from ultralytics import YOLO
  2. 加载模型
    python
    深色版本

加载预训练的YOLOv8s模型

model = YOLO(‘yolov8s.yaml’)
3. 配置训练参数
python
深色版本

配置训练参数

model.train(
data=‘construction_vehicle.yaml’, # 数据集配置文件
epochs=100, # 训练轮数
imgsz=640, # 输入图像大小
batch=16, # 批量大小
name=‘construction_vehicle_detection’, # 训练结果保存的文件夹名称
device=‘cuda’ # 使用GPU进行训练
)
四、评估模型
训练完成后,可以使用验证集来评估模型的性能。

python
深色版本

评估模型

results = model.val(data=‘construction_vehicle.yaml’, imgsz=640, batch=16, device=‘cuda’)

打印评估结果

print(results)
五、保存模型
训练完成后,模型会自动保存到指定的文件夹中。你也可以手动保存模型:

python
深色版本

保存模型

model.save(‘construction_vehicle_detection_model.pt’)
六、完整代码
将上述所有步骤整合成一个完整的脚本:

python
深色版本
import torch
from ultralytics import YOLO

加载预训练的YOLOv8s模型

model = YOLO(‘yolov8s.yaml’)

配置训练参数

model.train(
data=‘construction_vehicle.yaml’, # 数据集配置文件
epochs=100, # 训练轮数
imgsz=640, # 输入图像大小
batch=16, # 批量大小
name=‘construction_vehicle_detection’, # 训练结果保存的文件夹名称
device=‘cuda’ # 使用GPU进行训练
)

评估模型

results = model.val(data=‘construction_vehicle.yaml’, imgsz=640, batch=16, device=‘cuda’)

打印评估结果

print(results)

保存模型

model.save(‘construction_vehicle_detection_model.pt’)
七、运行脚本
将上述代码保存为一个 Python 脚本文件(例如 train_construction_vehicle_detection.py),然后在命令行中运行:

bash
深色版本
python train_construction_vehicle_detection.py
八、数据增强代码

  1. 数据增强脚本
    python
    深色版本
    import albumentations as A
    import cv2
    import os

def augment_image(image_path, label_path, output_dir, num_augments=5):
transform = A.Compose([
A.HorizontalFlip(p=0.5),
A.RandomBrightnessContrast(p=0.2),
A.RandomGamma(p=0.2),
A.RandomRotate90(p=0.5),
A.Cutout(num_holes=8, max_h_size=8, max_w_size=8, fill_value=0, p=0.5)
], bbox_params=A.BboxParams(format=‘yolo’, label_fields=[‘class_labels’]))

image = cv2.imread(image_path) with open(label_path, 'r') as f: lines = f.readlines() bboxes = [] class_labels = [] for line in lines: parts = line.strip().split() class_id = int(parts[0]) x_center, y_center, width, height = map(float, parts[1:]) bboxes.append([x_center, y_center, width, height]) class_labels.append(class_id) for i in range(num_augments): augmented = transform(image=image, bboxes=bboxes, class_labels=class_labels) augmented_image = augmented['image'] augmented_bboxes = augmented['bboxes'] augmented_class_labels = augmented['class_labels'] output_image_path = os.path.join(output_dir, f"{os.path.splitext(os.path.basename(image_path))[0]}_aug_{i}.jpg") output_label_path = os.path.join(output_dir, f"{os.path.splitext(os.path.basename(image_path))[0]}_aug_{i}.txt") cv2.imwrite(output_image_path, augmented_image) with open(output_label_path, 'w') as f: for j in range(len(augmented_bboxes)): bbox = augmented_bboxes[j] class_id = augmented_class_labels[j] f.write(f"{class_id} {bbox[0]} {bbox[1]} {bbox[2]} {bbox[3]}\n")

增强训练集

train_image_dir = ‘construction_vehicle_dataset/images/train’
train_label_dir = ‘construction_vehicle_dataset/labels/train’
output_dir = ‘construction_vehicle_dataset/augmented/train’
os.makedirs(output_dir, exist_ok=True)
for image_file in os.listdir(train_image_dir):
image_path = os.path.join(train_image_dir, image_file)
label_path = os.path.join(train_label_dir, image_file.replace(‘.jpg’, ‘.txt’))
augment_image(image_path, label_path, output_dir, num_augments=5)

增强验证集

val_image_dir = ‘construction_vehicle_dataset/images/val’
val_label_dir = ‘construction_vehicle_dataset/labels/val’
output_dir = ‘construction_vehicle_dataset/augmented/val’
os.makedirs(output_dir, exist_ok=True)
for image_file in os.listdir(val_image_dir):
image_path = os.path.join(val_image_dir, image_file)
label_path = os.path.join(val_label_dir, image_file.replace(‘.jpg’, ‘.txt’))
augment_image(image_path, label_path, output_dir, num_augments=5)
九、注意事项
数据集路径:确保数据集路径正确,特别是图片和标注文件的路径。
硬件资源:训练大型模型可能需要较多的计算资源,建议使用 GPU。
超参数调整:根据实际情况调整学习率、批量大小等超参数,以获得更好的训练效果。
数据增强:为了提高模型的泛化能力,可以在训练过程中使用数据增强技术,如随机裁剪、翻转等。
十、引用数据集
如果你需要在论文中引用这个数据集,可以参考以下格式:

bibtex
深色版本
@article{construction_vehicle_dataset,
title={Aerial Construction Vehicle Detection Dataset},
author={Author Name},
journal={Journal Name},
year={2023},
note={Available at: \url{https://example.com/construction_vehicle_dataset}}
}
请根据实际的数据集来源和作者信息进行修改。

希望这些步骤和脚本能帮助你成功训练一个工程车航拍检测模型。

http://www.jsqmd.com/news/1249400/

相关文章:

  • Cortex-M0+ 非对齐访问 HardFault 深度剖析
  • Tiva μDMA控制器寄存器详解与实战配置指南
  • 2026年7月亲身探访杭州亨得利名表服务中心|全部地址与售后热线电话 - 亨得利官方博客
  • 电流镜电路分析仿真电路结果与分析
  • 《AI 渐进编程》之二十一:Agent 不光要交代码,还要交证据包
  • 2026 天府新区豪宅哪家好?家庭自住优选悦蓉九州 - 优企甄选
  • 【计算机毕业设计案例】基于Python的大学生每日健康打卡防疫管理系统 高校疫情公告推送与信息统计系统(程序+文档+讲解+定制)
  • TM4C1292微控制器EEPROM与Flash保护寄存器实战指南
  • C语言数组介绍
  • AI写作效率提升300%的5个隐藏技巧:从选题到爆款发布的全流程拆解
  • 基于Zernike矩与快速相反权重学习的乳腺肿块分类系统
  • 做线上商城哪家好?先看它能不能开好“第二家店”
  • Nature子刊都用它的数据?气象大数据的“隐形冠军”是如何炼成的
  • 广州电工证考证机构推荐:实训服务推荐榜 - 思溯深度专栏
  • 美度石家庄客户服务热线:2026年7月最新全国统一售后网点地址信息查询 - 亨得利钟表维修中心
  • 2026 年六枝优秀的二手制冷机组定做厂家选哪家,别再买新机了!揭秘二手制冷机组的隐藏价值 - 企业推荐官【认证官方】
  • AI编程新范式:Vibe Coding与提示词工程实战
  • JAVA练习326- 下一个排列
  • 2026年怎么选高性价比ai读文字工具:零成本日均省12分钟工作
  • 【模拟IC学习笔记】 PSS和Pnoise仿真
  • 从零开始学前端 | 第四十一章:表单、提交与基础后端交互意识
  • AI 情报局:用 PowerMem + SeekDB 做一个多 Agent 记忆小游戏
  • 苍穹外卖初始工程涉及技术点
  • 气体灭火钢瓶合规管护:2026年消防维保领域的隐形刚需与选型观察 - 优质品牌测评
  • 山地风电长距光缆排查解法 G-4000A 让单人野外巡线落地可行
  • SIM820X-M2 5G HAT OpenWrt软路由器——安装MySQL(二)问题记录
  • 国内可编程直流电源供应商哪家性价比高?深度解析与优选指南 - 品研笔录
  • 别再被谣言误导!麦通MSX带你了解海外市场的6个常见误区
  • 苏州符合行业规范黄金回收商家,大盘回收不扣损耗不压色 - 奢侈品回收评测
  • 如何基于小型工控机与openwrt打造家用软路由