密集行人数据集 CrowdHumanvoc和yolo两种格式,yolo可以直接使用train val test已经划分好有yolov8训练200轮模型

server/2024/9/24 2:48:20/

密集行人数据集 CrowdHuman
voc和yolo两种格式,yolo可以直接使用
train val test已经划分好
有yolov8训练200轮模型。

CrowdHuman 密集行人检测数据集

数据集描述

CrowdHuman数据集是一个专为密集行人检测设计的数据集,旨在解决行人密集场景下的检测挑战。该数据集包括了大量的行人图像,涵盖了各种复杂的场景,如街道、广场等人流密集的地方。CrowdHuman数据集的目的是帮助研究人员和开发者提高在拥挤环境中的行人检测精度。

数据规模

数据集已经被划分为三个子集:

  • 训练集 (train):包含用于训练模型的数据。
  • 验证集 (val):包含用于验证模型的数据。
  • 测试集 (test):包含用于最终测试模型性能的数据。

具体的数据量如下:

  • 训练集:已划分好的训练集。
  • 验证集:已划分好的验证集。
  • 测试集:已划分好的测试集。
目标类别

数据集的目标类别包括:

  1. 行人 (Pedestrian)

此外,数据集中可能存在一些遮挡部分行人的情况,标注信息中可能也会包括这部分信息。

标注格式

数据集中的标注信息支持两种格式:

  1. VOC格式:每个图像都有一个对应的XML文件,记录了每个对象的位置信息(边界框坐标)和类别标签。
  2. YOLO格式:每个图像都有一个对应的TXT文件,记录了每个对象的位置信息(边界框坐标归一化)和类别标签。这种格式可以直接用于YOLO系列模型的训练。
数据集结构

典型的数据集目录结构如下:

1CrowdHuman/
2├── train/
3│   ├── images/
4│   │   ├── img_00001.jpg
5│   │   ├── img_00002.jpg
6│   │   └── ...
7│   ├── labels/
8│   │   ├── img_00001.txt
9│   │   ├── img_00002.txt
10│   │   └── ...
11├── val/
12│   ├── images/
13│   │   ├── img_00001.jpg
14│   │   ├── img_00002.jpg
15│   │   └── ...
16│   ├── labels/
17│   │   ├── img_00001.txt
18│   │   ├── img_00002.txt
19│   │   └── ...
20├── test/
21│   ├── images/
22│   │   ├── img_00001.jpg
23│   │   ├── img_00002.jpg
24│   │   └── ...
25└── yolov8_weights.pt  # 训练了200轮的YOLOv8模型权重文件
应用场景

数据集可以用于以下应用场景:

  • 公共安全:用于实时监测人流密集区域,提高公共安全水平。
  • 安防监控:辅助安防系统的视频监控,及时发现人群异常情况。
  • 事件响应:在发生紧急事件时,快速识别人群中的异常行为,以便采取相应措施。
  • 科研分析:用于研究行人检测技术,尤其是在人群密集的场景下。

示例代码

以下是一个使用Python和相关库(如OpenCV、PIL等)来加载和展示数据集的简单示例代码:

1import os
2import cv2
3import numpy as np
4from PIL import Image
5
6# 数据集路径
7dataset_path = 'path/to/CrowdHuman/'
8
9# 加载图像和标签
10def load_image_and_label(image_path, label_path):
11    # 读取图像
12    image = Image.open(image_path).convert('RGB')
13    # 解析标签文件
14    with open(label_path, 'r') as infile:
15        lines = infile.readlines()
16        objects = []
17        for line in lines:
18            data = line.strip().split()
19            class_id = int(data[0])  # 假设类别ID为0(行人)
20            x_center, y_center, w, h = map(float, data[1:])
21            objects.append([x_center, y_center, w, h, class_id])
22    return image, objects
23
24# 展示图像
25def show_image_with_boxes(image, boxes):
26    img = np.array(image)
27    class_name = 'Pedestrian'
28    for box in boxes:
29        x_center, y_center, w, h, class_id = box
30        w, h = int(w * img.shape[1]), int(h * img.shape[0])
31        x_center, y_center = int(x_center * img.shape[1]), int(y_center * img.shape[0])
32        xmin, xmax = x_center - w // 2, x_center + w // 2
33        ymin, ymax = y_center - h // 2, y_center + h // 2
34        cv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
35        cv2.putText(img, class_name, (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
36    cv2.imshow('Image with Boxes', img)
37    cv2.waitKey(0)
38    cv2.destroyAllWindows()
39
40# 主函数
41if __name__ == "__main__":
42    subset = 'train'  # 可以选择 'val' 或 'test'
43    images_dir = os.path.join(dataset_path, subset, 'images')
44    labels_dir = os.path.join(dataset_path, subset, 'labels')
45    
46    # 获取图像列表
47    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
48    
49    # 随机选择一张图像
50    selected_image = np.random.choice(image_files)
51    image_path = os.path.join(images_dir, selected_image)
52    label_path = os.path.join(labels_dir, selected_image.replace('.jpg', '.txt'))
53    
54    # 加载图像和标签
55    image, boxes = load_image_and_label(image_path, label_path)
56    
57    # 展示带有标注框的图像
58    show_image_with_boxes(image, boxes)

这段代码展示了如何加载图像和其对应的YOLO TXT标注文件,并在图像上绘制边界框和类别标签。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。

示例代码:使用预训练模型进行推理

以下是使用YOLOv8预训练模型进行推理的示例代码:

1import torch
2import cv2
3import numpy as np
4from pathlib import Path
5
6# 数据集路径
7dataset_path = 'path/to/CrowdHuman/'
8subset = 'test'  # 可以选择 'train' 或 'val'
9
10# 加载预训练模型
11weights_path = os.path.join(dataset_path, 'yolov8_weights.pt')
12model = torch.hub.load('ultralytics/yolov5', 'custom', path=weights_path, force_reload=True)
13
14# 主函数
15if __name__ == "__main__":
16    images_dir = os.path.join(dataset_path, subset, 'images')
17    
18    # 获取图像列表
19    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
20    
21    # 随机选择一张图像
22    selected_image = np.random.choice(image_files)
23    image_path = os.path.join(images_dir, selected_image)
24    
25    # 使用预训练模型进行推理
26    results = model(image_path)
27    results.show()  # 显示结果
28    results.save()  # 保存结果图像

这段代码展示了如何使用YOLOv8预训练模型进行推理,并显示和保存推理结果。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。如果您需要使用YOLOv8模型进行更高级的功能,如模型微调或增量训练,可以参考YOLOv8的官方文档来进行相应的配置和操作。

 


http://www.ppmy.cn/server/121125.html

相关文章

力扣(leetcode)每日一题 2414 最长的字母序连续子字符串的长度

题干 字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说,字符串 “abcdefghijklmnopqrstuvwxyz” 的任意子字符串都是 字母序连续字符串 。 例如,“abc” 是一个字母序连续字符串,而 “acb” 和 “za” 不是。 给你一个仅由小写…

一行命令,一分钟轻松搞定SSL证书自动续期

httpsok 是一个便捷的 HTTPS 证书自动续签工具,专为 Nginx 服务器设计。已服务众多中小企业,稳定、安全、可靠。现在的网站SSL免费证书有效期只有3个月,所以就会有经常更快SSL证书的需求,如果手上需要更换的SSL证书比较多的情况下…

Spring扩展点系列-MergedBeanDefinitionPostProcessor

文章目录 简介源码分析示例示例一:Spring中Autowire注解的依赖注入 简介 spring容器中Bean的生命周期内所有可扩展的点的调用顺序 扩展接口 实现接口ApplicationContextlnitializer initialize AbstractApplicationContext refreshe BeanDefinitionRegistryPos…

BDE在Win10下的ntwdblib.dll问题

老旧的delphi7运行在WIN10以上,用BDE连接MSSQL2008时,使用默认驱动MSSQL,登录时报错: Vendor initialization failed. Cannot load an IDAPI serverice library File :NTWDBLIB.dll 解决办法: 1、拷贝ntwdblib.dl…

【Linux】权限理解(超详细)

目录 用户 角色切换 创建和删除普通用户 权限管理 文件访问者分类(人) 文件类型和访问权限(事物属性)​编辑 文件访问权限的相关设置方法 chmod chown chgrp 问题解答 粘滞位 用户 Linux下有两种用户:超级…

C++的初阶模板和STL

C的初阶模板和STL 回顾之前的内存管理,我们还要补充一个概念:内存池 也就是定位new会用到的场景,内存池只会去开辟空间。 申请内存也就是去找堆,一个程序中会有很多地方要去找堆,这样子效率会很低下,为了…

RK3568平台(音频篇)Tinyalsa open调用流程

一.TinyALSA 简介 TinyALSA 是一个轻量级的 ALSA(Advanced Linux Sound Architecture,高级 Linux 音频架构)实现,用于与 Linux 内核中的 ALSA(高级 Linux 声音架构)进行交互,旨在为嵌入式系统和资源受限的设备提供音频支持。 ALSA是位于Linux Kernel层面的音频系统。T…

开源模型应用落地-qwen模型小试-调用Qwen2-VL-7B-Instruct-更清晰地看世界-集成vLLM(二)

一、前言 学习Qwen2-VL ,为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野,更让我们站在科技发展的潮头,紧跟时代的步伐。 Qwen2-VL 具有卓越的图像和视频理解能力,以及多语言支…