密集行人数据集 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.mzph.cn/news/880115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis的主从模式、哨兵模式、集群模式

最近学习了一下这三种架构模式,这里记录一下,仅供参考 目录 一、主从架构 1、搭建方式 2、同步原理 3、优化策略: 4、总结: 二、哨兵架构 1、搭建哨兵集群 2、RedisTemplate如何使用哨兵模式 三、分片集群架构 1&#…

SkyWalking 环境搭建部署

架构简介 skywalking agent : 和业务系统绑定在一起,负责收集各种监控数据skywalking oapservice : 是负责处理监控数据的,比如接受skywalking agent的监控数据,并存储在数据库中;接受skywalking webapp的前端请求,从数据库查询数据,并返回数据给前端。Skywalking oapserv…

19_Python中的上下文管理器

Python中的上下文管理器 在Python中,上下文管理器(Context Manager)是一种用于资源管理的技术,它可以确保资源在使用后被正确释放,例如文件、网络连接或锁。 上下文管理器(Context Manager)是…

计算机毕业设计 | SSM 凌云招聘平台 求职问答审批系统(附源码)

1,绪论 人力资源是企业产生效益、创造利润的必不可少的、最重要的资源。人作为人力资源的个体可看作是一个承载着有效知识、能力的信息单元。这样的信息单元可看作是一个为企业产生价值和利润的个体。从而使得这样的信息单元所具有的信息就是一个有价值的信息。 校…

python是什么语言写的

Python是一种计算机程序设计语言。是一种面向对象的动态类型语言。现今Python语言很火,可有人提问,这么火的语言它的底层又是什么语言编写的呢? python是C语言编写的,它有很多包也是用C语言写的。 所以说,C语言还是很…

中间件:maxwell、canal

文章目录 1、底层原理:基于mysql的bin log日志实现的:把自己伪装成slave2、bin log 日志有三种模式:2.1、statement模式:2.2、row模式:2.3、mixed模式: 3、maxwell只支持 row 模式:4、maxwell介…

全栈开发(四):使用springBoot3+mybatis-plus+mysql开发restful的增删改查接口

1.创建user文件夹 作为增删改查的根包 路径 src/main/java/com.example.demo/user 2.文件夹里文件作用介绍 1.User(实体类) package com.example.demo.user; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.IdType; impo…

Web端云剪辑解决方案,BS架构私有化部署,安全可控

传统视频制作流程繁琐、耗时,且对专业设备和软件的高度依赖,常常让企业望而却步,美摄科技凭借其强大的技术实力和创新能力,推出了面向企业用户的Web端云剪辑解决方案,为企业提供一站式、高效、便捷的视频生产平台。 B…

【docker】在IDEA工具内,远程操作服务器上的docker

一,配置 在服务器上,对docker配置如下内容: vi /usr/lib/systemd/system/docker.service添加如下: -H tcp://0.0.0.0:2375重新加载,并重启docker: #重新加载配置 systemctl daemon-reload# 重启docker …

使用 IntelliJ IDEA 连接到达梦数据库(DM)

前言 达梦数据库是一款国产的关系型数据库管理系统,因其高性能和稳定性而被广泛应用于政府、金融等多个领域。本文将详细介绍如何在 IntelliJ IDEA 中配置并连接到达梦数据库。 准备工作 获取达梦JDBC驱动: 访问达梦在线服务平台网站或通过其他官方渠道…

SkyWalking 持久化链路数据

默认持久化 H2 数据库config/application.yml storage:selector: ${SW_STORAGE:h2} MySQL持久化 修改配置 MySQL 数据库config/application.yml storage:selector: ${SW_STORAGE:h2}mysql:properties:jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest&q…

基于yolov8的红外小目标无人机飞鸟检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的红外小目标无人机与飞鸟检测系统是一项集成了前沿技术的创新解决方案。该系统利用YOLOv8深度学习模型的强大目标检测能力,结合红外成像技术,实现了对小型无人机和飞鸟等低空飞行目标的快速、准确检测。 YOLOv8作为YOLO系列的…

Springboot与minio

一、介绍 Minio是一个简单易用的云存储服务,它让你可以轻松地把文件上传到互联网上,这样无论你在哪里,只要有网络,就能访问或分享这些文件。如果你想要从这个仓库里取出一张图片或一段视频,让网站的访客能看到或者下载…

How do you send files to the OpenAI API?

题意:你如何向 OpenAI API 发送文件 问题背景: For fun I wanted to try to make a tool to ask chatgpt to document rust files. I found an issue, in that the maximum message length the API allows seems to be 2048 characters. 为了好玩&…

【深度学习】(3)--损失函数

文章目录 损失函数一、L1Loss损失函数1. 定义2. 优缺点3. 应用 二、NLLLoss损失函数1. 定义与原理2. 优点与注意3. 应用 三、MSELoss损失函数1. 定义与原理2. 优点与注意3. 应用 四、BCELoss损失函数1. 定义与原理2. 优点与注意3. 应用 五、CrossEntropyLoss损失函数1. 定义与原…

K8S容器实例Pod安装curl-vim-telnet工具

在没有域名的情况下,有时候需要调试接口等需要此工具 安装curl、telnet、vim等 直接使用 apk add curlapk add vimapk add tennet

CMake 构建Qt程序弹出黑色控制台

CMake 构建Qt程序弹出黑色控制台

mysql 内存被打满记录

一:早上收到报警:提示:您的云数据库RDS的1个实例因存储空间满将被锁定,请关注实例的存储空间使用情况,可通过存储扩容或空间清理解除锁定。后续查看错误日志如下:磁盘没有空间了 没有多余的空间写binlog和…

STM32 单片机最小系统全解析

STM32 单片机最小系统全解析 本文详细介绍了 STM32 单片机最小系统,包括其各个组成部分及设计要点与注意事项。STM32 最小系统在嵌入式开发中至关重要,由电源、时钟、复位、调试接口和启动电路等组成。 在电源电路方面,采用 3.3V 直流电源供…

Golang | Leetcode Golang题解之第417题太平洋大西洋水流问题

题目: 题解: type pair struct{ x, y int } var dirs []pair{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}func pacificAtlantic(heights [][]int) (ans [][]int) {m, n : len(heights), len(heights[0])pacific : make([][]bool, m)atlantic : make([][]bool, …