行人持刀检测数据集 voc yolo
行人持刀检测数据集 9000张 持刀检测 带标注 voc yolo


行人持刀检测数据集
数据集描述
该数据集旨在用于行人持刀行为的检测任务,涵盖了多种场景下的行人图像,特别是那些携带刀具的行人。数据集包含大量的图像及其对应的标注信息,可用于训练计算机视觉模型,以识别和定位行人手中的刀具。
数据规模
数据集共有9000张图像,这些图像都带有详细的标注信息。
类别及数量
数据集中的主要类别为:
- 行人持刀 (person_with_knife):标注出图像中携带刀具的行人。
标注格式
数据集中的标注信息采用了VOC(Visual Object Classes)格式,每个图像都有一个对应的XML文件,记录了每个对象的位置信息(边界框坐标)和类别标签。此外,也可以选择YOLO格式的标注文件(TXT文件),方便使用YOLO系列模型进行训练。
数据集结构
典型的数据集目录结构如下:
深色版本
1pedestrian_knife_detection_dataset/
2├── Annotations/
3│ ├── img_0001.xml
4│ ├── img_0002.xml
5│ └── ...
6├── ImageSets/
7│ ├── Main/
8│ │ ├── train.txt
9│ │ ├── val.txt
10│ │ └── test.txt
11├── JPEGImages/
12│ ├── img_0001.jpg
13│ ├── img_0002.jpg
14│ └── ...
15└── labels/
16 ├── train/
17 │ ├── img_0001.txt
18 │ ├── img_0002.txt
19 └── val/
20 ├── img_0001.txt
21 ├── img_0002.txt
应用场景
该数据集可以用于以下应用场景:
- 公共安全:实时监测公共场所中的行人是否携带刀具,提高公共安全水平。
- 安防监控:辅助安防系统的视频监控,及时发现潜在威胁。
- 事件响应:在发生紧急事件时,快速识别携带刀具的人员,以便采取相应措施。
- 科研分析:用于研究行人持刀行为的识别技术和算法。
示例代码
以下是一个使用Python和相关库(如OpenCV、PyTorch等)来加载和展示数据集的简单示例代码:
python
深色版本
1import os
2import cv2
3import xml.etree.ElementTree as ET
4from PIL import Image
5import numpy as np
6
7# 数据集路径
8dataset_path = 'path/to/pedestrian_knife_detection_dataset/'
9
10# 加载图像和标签
11def load_image_and_label(image_path, annotation_path):
12 # 读取图像
13 image = Image.open(image_path).convert('RGB')
14 # 解析XML文件
15 tree = ET.parse(annotation_path)
16 root = tree.getroot()
17 objects = []
18 for obj in root.findall('object'):
19 name = obj.find('name').text
20 bbox = obj.find('bndbox')
21 xmin = int(bbox.find('xmin').text)
22 ymin = int(bbox.find('ymin').text)
23 xmax = int(bbox.find('xmax').text)
24 ymax = int(bbox.find('ymax').text)
25 objects.append([xmin, ymin, xmax, ymax, name])
26 return image, objects
27
28# 展示图像
29def show_image_with_boxes(image, boxes):
30 img = np.array(image)
31 for box in boxes:
32 xmin, ymin, xmax, ymax, name = box
33 cv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
34 cv2.putText(img, name, (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
35 cv2.imshow('Image with Boxes', img)
36 cv2.waitKey(0)
37 cv2.destroyAllWindows()
38
39# 主函数
40if __name__ == "__main__":
41 images_dir = os.path.join(dataset_path, 'JPEGImages')
42 annotations_dir = os.path.join(dataset_path, 'Annotations')
43
44 # 获取图像列表
45 image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
46
47 # 随机选择一张图像
48 selected_image = np.random.choice(image_files)
49 image_path = os.path.join(images_dir, selected_image)
50 annotation_path = os.path.join(annotations_dir, selected_image.replace('.jpg', '.xml'))
51
52 # 加载图像和标签
53 image, boxes = load_image_and_label(image_path, annotation_path)
54
55 # 展示带有标注框的图像
56 show_image_with_boxes(image, boxes)
这段代码展示了如何加载图像和其对应的VOC XML标注文件,并在图像上绘制边界框和类别标签。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。
示例代码:从VOC格式转换为YOLO格式
以下是将VOC格式的标注文件转换为YOLO格式的标签文件的示例代码:
python
深色版本
1import os
2import xml.etree.ElementTree as ET
3import shutil
4
5# 数据集路径
6dataset_path = 'path/to/pedestrian_knife_detection_dataset/'
7
8# VOC标注文件目录
9voc_annotations_dir = os.path.join(dataset_path, 'Annotations')
10# 输出YOLO标签文件目录
11yolo_labels_dir = os.path.join(dataset_path, 'labels')
12
13# 创建YOLO标签目录
14os.makedirs(yolo_labels_dir, exist_ok=True)
15
16# 复制VOC图像集划分文件到YOLO目录
17for split in ['train', 'val']:
18 shutil.copy(os.path.join(dataset_path, 'ImageSets/Main/{}.txt'.format(split)), os.path.join(yolo_labels_dir, '{}.txt'.format(split)))
19
20# 从VOC格式转换为YOLO格式
21def convert_voc_to_yolo(voc_path, yolo_path, width, height):
22 with open(voc_path, 'r') as infile:
23 tree = ET.parse(infile)
24 root = tree.getroot()
25 objects = []
26 for obj in root.findall('object'):
27 name = obj.find('name').text
28 bbox = obj.find('bndbox')
29 xmin = int(bbox.find('xmin').text)
30 ymin = int(bbox.find('ymin').text)
31 xmax = int(bbox.find('xmax').text)
32 ymax = int(bbox.find('ymax').text)
33 x_center = (xmin + xmax) / 2.0
34 y_center = (ymin + ymax) / 2.0
35 w = xmax - xmin
36 h = ymax - ymin
37 x_center /= width
38 y_center /= height
39 w /= width
40 h /= height
41 objects.append([name, x_center, y_center, w, h])
42
43 with open(yolo_path, 'w') as outfile:
44 for obj in objects:
45 class_index = {'person_with_knife': 0}[obj[0]] # 假设只有一个类别
46 line = f"{class_index} {obj[1]} {obj[2]} {obj[3]} {obj[4]}\n"
47 outfile.write(line)
48
49# 主函数
50if __name__ == "__main__":
51 # 获取VOC标注文件列表
52 voc_files = [f for f in os.listdir(voc_annotations_dir) if f.endswith('.xml')]
53
54 # 遍历VOC文件并转换为YOLO格式
55 for voc_file in voc_files:
56 # 获取图像尺寸
57 image_file = os.path.join(dataset_path, 'JPEGImages', voc_file.replace('.xml', '.jpg'))
58 image = Image.open(image_file)
59 width, height = image.size
60
61 # 转换并保存YOLO标签文件
62 yolo_file = os.path.join(yolo_labels_dir, voc_file.replace('.xml', '.txt'))
63 convert_voc_to_yolo(os.path.join(voc_annotations_dir, voc_file), yolo_file, width, height)
这段代码展示了如何将VOC格式的标注文件转换为YOLO格式的标签文件,方便使用YOLO系列模型进行训练。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。如果您的数据集中有多个类别,请调整 class_index 字典中的映射关系。
相关文章:
行人持刀检测数据集 voc yolo
行人持刀检测数据集 9000张 持刀检测 带标注 voc yolo 行人持刀检测数据集 数据集描述 该数据集旨在用于行人持刀行为的检测任务,涵盖了多种场景下的行人图像,特别是那些携带刀具的行人。数据集包含大量的图像及其对应的标注信息,可用于训练…...
基于51单片机的汽车倒车防撞报警器系统
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 本课题基于微控制器控制器, 设计一款汽车倒车防撞报警器系统。 要求: 要求:1.配有距离, 用于把车和障碍物之间的距离信号送入控制器。 2.配有报警系…...
NLP 文本匹配任务核心梳理
定义 本质上是做了意图的识别 判断两个内容的含义(包括相似、矛盾、支持度等)侠义 给定一组文本,判断语义是否相似Yi 分值形式给出相似度 广义 给定一组文本,计算某种自定义的关联度Text Entailment 判断文本是否能支持或反驳这个…...
FastAPI 的隐藏宝石:自动生成 TypeScript 客户端
在现代 Web 开发中,前后端分离已成为标准做法。这种架构允许前端和后端独立开发和扩展,但同时也带来了如何高效交互的问题。FastAPI,作为一个新兴的 Python Web 框架,提供了一个优雅的解决方案:自动生成客户端代码。本…...
了解云容器实例云容器实例(Cloud Container Instance)
1.什么是云容器实例? 云容器实例(Cloud Container Instance, CCI)服务提供 Serverless Container(无服务器容器)引擎,让您无需创建和管理服务器集群即可直接运行容器。 Serverless是一种架构理念…...
OpenStack Yoga版安装笔记(十三)neutron安装
1、官方文档 OpenStack Installation Guidehttps://docs.openstack.org/install-guide/ 本次安装是在Ubuntu 22.04上进行,基本按照OpenStack Installation Guide顺序执行,主要内容包括: 环境安装 (已完成)OpenStack…...
[系列]参数估计与贝叶斯推断
系列 点估计极大似然估计贝叶斯估计(统计学)——最小均方估计和最大后验概率估计贝叶斯估计(模式识别)线性最小均方估计最小二乘估计极大似然估计&贝叶斯估计极大似然估计&最大后验概率估计线性最小均方估计&最小二乘…...
【Pyside】pycharm2024配置conda虚拟环境
知识拓展 Pycharm 是一个由 JetBrains 开发的集成开发环境(IDE),它主要用于 Python 编程语言的开发。Pycharm 提供了代码编辑、调试、版本控制、测试等多种功能,以提高 Python 开发者的效率。 Pycharm 与 Python 的关系 Pycharm 是…...
【RabbitMQ 项目】服务端:数据管理模块之消息队列管理
文章目录 一.编写思路二.代码实践 一.编写思路 定义消息队列 名字是否持久化 定义队列持久化类(持久化到 sqlite3) 构造函数(只能成功,不能失败) 如果数据库(文件)不存在则创建打开数据库打开 msg_queue_table 数据库表 插入队列移除队列将数据库中的队列恢复到内存…...
SDKMAN!软件开发工具包管理器
认识一下SDKMAN!(The Software Development Kit Manager)是您在Unix系统上轻松管理多个软件开发工具包的可靠伴侣。想象一下,有不同版本的SDK,需要一种无感知的方式在它们之间切换。SDKMAN拥有易于使用的命令行界面(CLI)和API。其…...
《使用 LangChain 进行大模型应用开发》学习笔记(四)
前言 本文是 Harrison Chase (LangChain 创建者)和吴恩达(Andrew Ng)的视频课程《LangChain for LLM Application Development》(使用 LangChain 进行大模型应用开发)的学习笔记。由于原课程为全英文视频课…...
gbase8s数据库常见的索引扫描方式
1 顺序扫描(Sequential scan):数据库服务器按照物理顺序读取表中的所有记录。 常发生在表上无索引或者数据量很少或者一些无法使用索引的sql语句中 2 索引扫描(Index scan):数据库服务器读取索引页&#…...
边缘智能-大模型架构初探
R2Cloud接口 机器人注册 请求和应答 注册是一个简单的 HTTP 接口,根据机器人/用户信息注册,创建一个新机器人。 请求 URL URLhttp://ip/robot/regTypePOSTHTTP Version1.1Content-Typeapplication/json 请求参数 Param含义Rule是否必须缺省roboti…...
《python语言程序设计》2018版第8章18题几何circle2D类(上部)
一、利用第7章的内容来做前5个点 第一章之1--从各种角度来测量第一章之2--各种结果第二章之1--建立了针对比对点在圆内的几段第二章之2--利用建立的对比代码,得出的第2点位置 第一章之1–从各种角度来测量 class Circle2D:def __init__(self, x, y, radius):self._…...
nginx upstream转发连接错误情况研究
本次测试用到3台服务器: 192.168.10.115:转发服务器A 192.168.10.209:upstream下服务器1 192.168.10.210:upstream下服务器2 1台客户端:192.168.10.112 服务器A中nginx主要配置如下: log_format main…...
alias 后门从入门到应急响应
目录 1. alias 后门介绍 2. alias 后门注入方式 2.1 方式一(以函数的方式执行) 2.2 方式二(执行python脚本) 3.应急响应 3.1 查看所有连接 3.2 通过PID查看异常连接的进程,以及该进程正在执行的命令行命令 3.3 查看别名 3.4 其他情况 3.5 那么检查这些…...
【远程调用PythonAPI-flask】
文章目录 前言一、Pycharm创建flask项目1.创建虚拟环境2.创建flask项目 二、远程调用PythonAPI——SpringBoot项目集成1.修改PyCharm的host配置2.防火墙设置3.SpringBoot远程调用PythonAPI 前言 解决Pycharm运行Flask指定ip、端口更改无效的问题 首先先创建一个新的flask项目&…...
[今日Arxiv] 思维迭代:利用内心对话进行自主大型语言模型推理
思维迭代:利用内心对话进行自主大型语言模型推理 Iteration of Thought: Leveraging Inner Dialogue for Autonomous Large Language Model Reasoning URL:https://arxiv.org/abs/2409.12618 注:翻译可能存在误差,详细内容建议…...
glTF格式:WebGL应用的3D资产优化解决方案
摘要 glTF作为一种高效的3D资产格式,为WebGL、OpenGL ES和OpenGL运行时的应用提供了强有力的支持。它不仅简化了3D模型的传输与加载流程,还通过优化资产大小,使得打包、解包更加便捷。本文将深入探讨glTF格式的优势,并提供实用的代…...
Unity3D入门(一) : 第一个Unity3D项目,实现矩形自动旋转,并导出到Android运行
1. Unity3D介绍 Unity3D是虚拟现实行业中,使用率较高的一款软件。 它有着强大的功能,是让玩家轻松创建三维视频游戏、建筑可视化、实时三维动画等互动内容的多平台、综合型 虚拟现实开发工具。是一个全面整合的专业引擎。 2. Unity安装 官网 : Unity…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
