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

密集行人数据集 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.mfbz.cn/a/882390.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024个人简历模板免费可编辑,可能是整理最全的简历(支持Word格式下载)

提供各行业简历模板WORD可编辑格式下载,涵盖求职简历模板、大学生简历模板、个人简历模板、留学简历模板、英文简历模板、免费简历模板、工作简历模板、保研简历模板、暑期实习简历、寒假实习简历、校招简历等。 都是word格式,直接下载就能用。 网盘链…

zabbix入门单机部署

zabbix官网 1进入官网后选择右上角Download 选择你要的版本以及需要的组件,网页下方会自动生成需要操作的步骤 ,跟着步骤一步一步安装即可: 这里跟着官网步骤一步步走下去就可以了 但是需要注意的是安装 yum install centos-release-scl源…

全面详尽的 PHP 环境搭建教程

目录 目录 PHP 环境搭建概述 在 Windows 上搭建 PHP 环境 使用集成环境 XAMPP 安装步骤 配置和测试 常用配置 手动安装 Apache、PHP 和 MySQL 安装 Apache 安装 PHP 安装 MySQL 配置 PHP 连接 MySQL 在 Linux 上搭建 PHP 环境 使用 LAMP 方案 安装 Apache 安装 …

vcruntime140_1.dll无法继续执行代码的6种解决方法

在计算机编程和软件开发中,我们经常会遇到各种错误和问题。其中,vcruntime140_1.dll无法继续执行代码是一个常见的问题。这个问题可能会导致程序崩溃,影响我们的工作进度。因此,了解这个问题的原因以及如何解决它是非常重要的。 …

Netty笔记10-Netty参数调优

文章目录 一、CONNECT_TIMEOUT_MILLISCONNECT_TIMEOUT_MILLIS设置为1秒超时CONNECT_TIMEOUT_MILLIS设置为5秒超时注意事项 二、SO_BACKLOG代码示例注意事项 三、ulimit -n(文件描述符)设置文件描述符限制在注意事项 四、TCP_NODELAY使用 TCP_NODELAY 的场景注意事项 五、SO_SND…

JavaWeb--纯小白笔记03:servlet入门---动态网页的创建

笔记:index.html在tomcat中为默认的名字,html里面的语法不严谨。改配置文件要小心,不然容易删掉其他 Servlet:服务器端小程序,写动态网页需要用Servlet,普通的java类通过继承HttpServlet,可以响…

【重学 MySQL】三十一、字符串函数

【重学 MySQL】三十一、字符串函数 函数名称用法描述ASCII(S)返回字符串S中的第一个字符的ASCII码值CHAR_LENGTH(s)返回字符串s的字符数,与CHARACTER_LENGTH(s)相同LENGTH(s)返回字符串s的字节数,和字符集有关CONCAT(s1,s2,…,sn)连接s1,s2,…,sn为一个字…

Docker + Win 10 学习记录

下载Docker Release notes | Docker Docs 推荐使用4.33版本,最新的Docker版本在win10 22H2无法安装。需要升级到win11. 查看Win10版本是否与最新版的Docker兼容 运行 win R, 然后输入winver 如果你的Docker版本无法在当前的win10安装,请更…

828华为云征文|华为云Flexus云服务器X实例部署Xnote笔记应用

828华为云征文|华为云Flexus云服务器X实例部署Xnote笔记应用 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Note Mark 介绍2.1 Xnote简介2.2 Xnote特点2.3 主要使用场景 三、本次实…

豆包Python SDK接入流程

模型与价格 豆包的模型介绍可以看豆包大模型介绍,模型价格可以看豆包定价文档里的“模型推理” - “大语言模型” - “字节跳动”部分。 推荐使用以下模型: Doubao-lite-32k:每百万 token 的输入价格为 0.3 元,输出价格为 0.6 元…

JavaEE: 深入探索TCP网络编程的奇妙世界(六)

文章目录 TCP核心机制TCP核心机制九: 面向字节流TCP核心机制十: 异常处理 小小的补充(URG 和 PSH)~TCP小结TCP/UDP 对比用UDP实现可靠传输(经典面试题) 结尾 TCP核心机制 上一篇文章JavaEE: 深入探索TCP网络编程的奇妙世界(五) 书接上文~ TCP核心机制九: 面向字节流 TCP是面…

桶排序和计数排序(非比较排序算法)

桶排序 桶排序是一种基于分配的排序算法,特别适合用来排序均匀分布的数据。它的基本思想是将输入的数据分到有限数量的桶里,然后对每个桶内的数据分别进行排序,最后再将各个桶内的数据合并得到最终的排序结果。(通常用于浮点数,因…

Linux:RPM软件包管理以及yum软件包仓库

挂载光驱设备 RPM软件包管理 RPM软件包简介 区分软件名和软件包名 软件名:firefox 软件包名:firefox-52.7.0-1.el7.centos.x86_64.rpm 查询软件信息 查询软件(参数为软件名) ]# rpm -qa #当前系统中所有已安装的软件包 ]# r…

WebGL颜色与纹理

WEBGL中的着色器变量包括以下种类: 属性变量(Attribute Variables):这些变量用于接收从应用程序中传递的顶点数据,比如顶点位置和颜色,是只读的不可修改。统一变量(Uniform Variables&#xff…

AI浪潮新崛起:借助AI+实景/视频直播创新魅力,开启无人自动直播新时代!

AI浪潮新崛起:借助AI实景/视频直播创新魅力,开启无人自动直播新时代! 在科技日新月异的今天,人工智能(AI)已不再仅仅是科幻电影中的桥段,它正以不可阻挡之势渗透到我们生活的方方面面&#xff…

力扣718-最长重复子数组(Java详细题解)

题目链接:718. 最长重复子数组 - 力扣(LeetCode) 前情提要: 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 dp五部曲。 1.确定dp数组和i下标的含义。 2.确定递推公式。 3.dp初始化。 4.确定dp的遍历顺序。 5…

【编程底层原理】Java常用读写锁的使用和原理

一、引言 在Java的并发世界中,合理地管理对共享资源的访问是至关重要的。读写锁(ReadWriteLock)正是一种能让多个线程同时读取共享资源,而写入资源时需要独占访问的同步工具。本文将带你了解读写锁的使用方法、原理以及它如何提高…

这8款AI论文工具帮你一键搞定!ai论文一键生成任务书

在当今学术研究和论文写作领域,AI技术的应用已经成为一种趋势。通过智能算法和大数据分析,AI工具能够帮助学者和学生提高写作效率、优化内容结构,并确保论文的原创性和质量。以下是8款值得推荐的AI论文工具,其中特别推荐千笔-AIPa…

选择排序(C语言实现)

目录 1.基本思想 2.代码实现 代码思路 代码实现 代码测试 3.复杂度分析 1)时间复杂度 2)空间复杂度 4.特性总结 1.基本思想 选择排序是一种简单直观的比较排序算法。该算法的基本思想是在每一轮中选出当前未排序部分的最小(或最大&a…

通过 LabVIEW 正则表达式读取数值(整数或小数)

在LabVIEW开发中,字符串处理是一个非常常见的需求,尤其是在处理包含复杂格式的数字时。本文通过一个具体的例子来说明如何利用 Match Regular Expression Function 和 Match Pattern Function 读取并解析字符串中的数字,并重点探讨这两个函数…