首页 > 其他分享 >如何使用yolov8训练无人机视角坦克检测数据集 人 交通工具 数据集voc :3500+张 5类 并实现可视化及评估

如何使用yolov8训练无人机视角坦克检测数据集 人 交通工具 数据集voc :3500+张 5类 并实现可视化及评估

时间:2024-12-15 09:27:24浏览次数:5  
标签:训练 voc 3500 py cv2 yolov8 drone 格式

在这里插入图片描述
无人机视角坦克检测数据集 人 交通工具 房屋 检测数据集目标检测带标注voc
内含有img和ground truth
数量:3500+张
目标:human、truck、vehicle、house、tank

在这里插入图片描述
完整训练脚本

from ultralytics import YOLO

# 加载预训练的YOLOv8m模型
model = YOLO('yolov8m.pt')

# 训练模型
results = model.train(
    data='drone_military_dataset/data.yaml',
    epochs=100,
    batch=16,
    imgsz=640,
    save_period=-1,  # 不保存中间权重
    project='runs/detect/drone_military',
    name='yolov8m_drone'
)

# 评估模型
metrics = model.val(data='drone_military_dataset/data.yaml')
print(metrics)

# 测试模型
test_image_path = 'path/to/test/image.jpg'
img = cv2.imread(test_image_path)

# 进行预测
results = model(img)

# 显示结果
for result in results:
    boxes = result.boxes.cpu().numpy()
    for box in boxes:
        r = box.xyxy[0].astype(int)
        cls = int(box.cls[0])
        conf = box.conf[0]
        label = f'{model.names[cls]} {conf:.2f}'
        cv2.rectangle(img, (r[0], r[1]), (r[2], r[3]), (0, 255, 0), 2)
        cv2.putText(img, label, (r[0], r[1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)

cv2.imshow('Inference Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述



```![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/15380efa6f5945b0960444c92ed5d52a.png)

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5004b993d3a444c78cfd323fee44074d.png)
如何使用无人机视角目标检测数据集来训练YOLOv8目标检测模型。这个数据集包含3500多张图片,并且标注格式为VOC(Visual Object Classes)格式,但我们可以通过一些工具将其转换为YOLO格式,以便直接用于训练YOLOv8。

### 数据集介绍

#### 基本信息
- **类别**: `human`, `truck`, `vehicle`, `house`, `tank`
- **格式**: 图片(JPEG/PNG)和标注文件(XML)
- **标注格式**: VOC 格式
- **数量**: 3500+ 张图片

### 数据集结构

假设数据集的目录结构如下:

drone_military_dataset/
├── images/
│ ├── img1.jpg
│ ├── img2.jpg
│ └── …
├── annotations/
│ ├── img1.xml
│ ├── img2.xml
│ └── …
├── data.yaml
└── README.md


### 类别标签文件 (`data.yaml`)



### 步骤概述

1. **安装依赖项**
2. **准备数据集**
3. **将VOC格式转换为YOLO格式**
4. **划分数据集**
5. **编写训练脚本**
6. **运行训练脚本**
7. **评估模型**
8. **推理与测试**

### 详细步骤

#### 1. 安装依赖项

确保你已经安装了必要的Python库:

```bash
pip install ultralytics opencv-python lxml pandas scikit-learn
2. 准备数据集

确保你的数据集目录结构如上述所示,并且所有图片和对应的XML标注文件都在正确的文件夹中。

3. 将VOC格式转换为YOLO格式

我们可以使用一个Python脚本来完成这一任务。以下是一个示例脚本:

将上述代码保存为 convert_voc_to_yolo.py 并运行:

python convert_voc_to_yolo.py

这将把所有的VOC XML标注文件转换为YOLO TXT格式,并按比例划分为训练集和验证集。

4. 编写训练脚本

创建一个训练脚本来启动训练过程。

将上述代码保存为 train_yolov8.py

5. 运行训练脚本

在终端中运行训练脚本:

python train_yolov8.py
6. 评估模型

训练完成后,可以使用验证集评估模型性能。

将上述代码保存为 evaluate_yolov8.py 并运行:

python evaluate_yolov8.py
7. 推理与测试

使用训练好的模型进行推理和测试。

将上述代码保存为 infer_yolov8.py 并运行:

python infer_yolov8.py
8. 可视化训练结果

你可以使用Ultralytics提供的工具来可视化训练过程中的损失曲线、mAP等指标。

tensorboard --logdir runs/detect/drone_military/yolov8m_drone

然后在浏览器中打开 http://localhost:6006 查看TensorBoard界面。

总结

通过以上步骤,你可以成功地使用无人机视角目标检测数据集训练一个YOLOv8目标检测模型。这个模型能够有效地识别无人机拍摄的军事目标。希望这些详细的信息和代码示例对你有所帮助

其他注意事项

  • 数据增强: 为了提高模型的泛化能力,可以考虑使用数据增强技术。
  • 超参数调优: 根据实际情况调整训练的超参数,如学习率、批量大小等。
  • 硬件加速: 如果可能,使用GPU加速训练过程,以加快训练速度。

以下是一个完整的训练脚本示例,包含了所有必要的步骤:

将上述代码保存为 train_yolov8.py 并运行即可完成整个训练、评估和测试流程。

标签:训练,voc,3500,py,cv2,yolov8,drone,格式
From: https://blog.csdn.net/2401_88441190/article/details/144463580

相关文章

  • 【YOLO】-目标检测数据集格式转换:将labelme格式转为YOLO以及VOC格式
    前言一个目标检测项目需要自己找图片标注数据进行训练,训练需要YOLO格式,但数据增广需要VOC格式,该文记录如何将labelme标注的数据格式转为YOLO格式,再从YOLO格式转为VOC格式,只作为自己用的记录,如果你刚好也需要这么干,或者需要文中提到的某一种转换,也可以参考一下。文中有些代码是参考......
  • YOLOv8目标检测(四)_图片推理
    YOLOv8目标检测(一)_检测流程梳理:YOLOv8目标检测(一)_检测流程梳理_yolo算法检测流程-CSDN博客YOLOv8目标检测(二)_准备数据集:YOLOv8目标检测(二)_准备数据集_yolo目标检测数据集准备-CSDN博客YOLOv8目标检测(三)_训练模型:YOLOv8目标检测(三)_训练模型-CSDN博客YOLOv8目标......
  • yolov8 转华为昇腾om脚本
    目录yolov8转华为昇腾om脚本测试ok推理demo:yolov8转华为昇腾om脚本测试okimportsysimportosos.chdir(os.path.dirname(os.path.abspath(__file__)))importtorchcurrent_dir=os.path.dirname(os.path.abspath(__file__))paths=[os.path.abspath......
  • 基于yolov8的车牌检测与识别系统,支持图像、视频和摄像实时检测【pytorch框架、python
       更多目标检测、图像分类识别、目标追踪等项目可看我主页其他文章功能演示:基于yolov8的车牌检测与识别系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】_哔哩哔哩_bilibili(一)简介基于yolov8的车牌检测与识别系统在pytorch框架下实现的,这是一个完整的项目......
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-model.py
    model.pyultralytics\engine\model.py目录model.py1.所需的库和模块2.classModel(nn.Module): 1.所需的库和模块#UltralyticsYOLO......
  • YOLOv8模型开发流程优化-Roboflow数据处理与API集成教程
    本文收录于专栏:精通AI实战千例专栏合集https://blog.csdn.net/weixin_52908342/category_11863492.html从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到......
  • 关于 YOLOv8 和 YOLOv11 的 Detect 的大坑问题 | 科研人一定注意
    问题这篇文章写于2024年12月2日,主要讨论YOLO11的变化,以及这些变化对模型性能和兼容性的影响。首先,YOLO11已经发布了两个月,对于这次更新的主要改动,我不再赘述。概括来说,新加入了两个模块:C3k2和C2PSA。此外,还有一个容易被忽略的变化,就是Detect模块的更新。这个改动......
  • 如何使用YOLOv8训练自动驾驶路面分类模型。涵数据集准备、模型训练、等步骤,并提供自动
    自动驾驶路面分类数据集,按照不同的天气条件,即干燥、湿润、水上、新雪、融化的雪和冰。不同的道路材料属性包括沥青、混凝土、泥浆和碎石。不同的道路平整性分为光滑、轻微不平和严重不平。共27类,37万张图像,13GB数据好的,让我们从数据集准备开始,逐步介绍如何使用深度学习框......
  • 如何使用yolov8纽扣电池缺陷检测数据集进行训练,并提供详细的步骤和代码示例 纽扣电池
    纽扣电池缺陷检测数据集包含3种缺陷类别(脏污、凹陷、划痕),已经划分为训练集和验证集,有xml和txt标签,yolo可用,共1110张类别名称names:0:dirty1:depression2:scratch数据集包含3种缺陷类别(脏污、凹陷、划痕),已经划分为训练集和验证集,并且标注为YOLO格式和VOC格式,亲......
  • YOLOv8实战bdd100k自动驾驶目标识别
      本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对BDD100K自动驾驶目标数据集进行训练和优化,该数据集包含丰富的自动驾驶车辆目标图像样本,为模型的准确性和泛化......