玩手机数据集 8201张玩手机的照片,有对应的xml和txt文件,可以用于yolo训练

玩手机数据集

8201张玩手机的照片,有对应的xml和txt文件,可以用于yolo训练

玩手机数据集(Phone Usage Detection Dataset)

数据集概述

该数据集专为检测人们使用手机的行为设计,旨在帮助研究人员和工程师开发高效的目标检测算法,以识别图像中的人们是否在使用手机。数据集包含8201张高清照片,并且每张照片都附有详细的标注信息,包括XML格式的Pascal VOC标注文件和YOLO格式的TXT标注文件。这些照片展示了不同场景下人们使用手机的情况,涵盖了不同的环境、光照条件和背景干扰。数据集可以直接用于基于YOLO的目标检测模型训练。

数据集特点
  • 高质量图像:所有图像均为高分辨率,能够清晰地显示人物及其使用手机的动作。
  • 详细标注:每张图像都附有精确的边界框以及类别标签(手机),便于训练目标检测模型。
  • 标准化格式:图像采用JPG或PNG格式存储,标签则同时提供了Pascal VOC的XML格式和YOLO的TXT格式,方便与主流框架结合使用。
  • 多样化场景:图像来自不同的地理位置和环境条件,增强了模型的泛化能力。
  • 数据增强:虽然未明确提及,但通常可以通过数据增强技术进一步增加样本多样性。
  • 自动发货:购买后可以自动获取数据集,方便快捷。
数据集构成
  • 图像数量:8201张
  • 图像格式:JPG或PNG
  • 标签数量:对应每张图像各有一个XML和一个TXT标注文件
  • 类别数:1类
  • 类别名称
    • phone:手机
  • 数据集划分:未明确提供具体的训练集、验证集和测试集划分,用户可以根据需要自行划分。
  • 配置文件 :如果需要,可以创建data.yaml配置文件来描述数据集路径和类别信息。
数据集用途
  • 手机使用检测:主要用于开发高效准确的目标检测算法,识别并定位图像中的人们是否在使用手机。
  • 行为分析:帮助研究机构进行人类行为分析,了解人们在不同场景下的手机使用习惯。
  • 安全监控:辅助交通管理部门和公共场所的安全监控系统,防止因使用手机而引发的安全隐患。
  • 性能评估:作为基准数据集,可以用来比较不同算法或模型之间的性能差异。
  • 研究与开发:支持学术界和工业界的研究人员探索新的计算机视觉技术和方法。
  • 教育与培训:适合作为教材内容,帮助学生理解实际应用场景下的机器学习问题解决流程。
示例代码

以下是一个简单的Python脚本示例,用于加载数据集中的一对图像-标签对,并可视化其中的标注信息:

import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
import xml.etree.ElementTree as ET

# 数据集目录路径
data_dir = 'path/to/phone_usage_dataset'
image_dir = os.path.join(data_dir, 'images')
label_dir = os.path.join(data_dir, 'labels')

# 选取一张图像及其对应标签
image_files = os.listdir(image_dir)
image_file = image_files[0]  # 假设取第一张图
label_file_txt = os.path.splitext(image_file)[0] + '.txt'
label_file_xml = os.path.splitext(image_file)[0] + '.xml'

image_path = os.path.join(image_dir, image_file)
label_path_txt = os.path.join(label_dir, label_file_txt)
label_path_xml = os.path.join(label_dir, label_file_xml)

# 加载图像
image = cv2.imread(image_path, cv2.IMREAD_COLOR)
height, width, _ = image.shape

# 解析YOLO格式标签
def parse_yolo_label(label_path, image_width, image_height):
    bboxes = []
    with open(label_path, 'r') as f:
        lines = f.readlines()
        for line in lines:
            class_id, x_center, y_center, box_width, box_height = map(float, line.strip().split())
            x_min = int((x_center - box_width / 2) * image_width)
            y_min = int((y_center - box_height / 2) * image_height)
            box_width = int(box_width * image_width)
            box_height = int(box_height * image_height)
            bboxes.append((class_id, x_min, y_min, box_width, box_height))
    return bboxes

# 解析Pascal VOC格式标签
def parse_voc_label(label_path, image_width, image_height):
    bboxes = []
    tree = ET.parse(label_path)
    root = tree.getroot()
    for obj in root.findall('object'):
        name = obj.find('name').text
        bbox = obj.find('bndbox')
        xmin = int(bbox.find('xmin').text)
        ymin = int(bbox.find('ymin').text)
        xmax = int(bbox.find('xmax').text)
        ymax = int(bbox.find('ymax').text)
        x_min = xmin
        y_min = ymin
        box_width = xmax - xmin
        box_height = ymax - ymin
        bboxes.append((0, x_min, y_min, box_width, box_height))  # 假设只有一个类别
    return bboxes

# 解析标签
bboxes_yolo = parse_yolo_label(label_path_txt, width, height)
bboxes_voc = parse_voc_label(label_path_xml, width, height)

# 可视化标注
fig, ax = plt.subplots(figsize=(10, 10))
ax.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
colors = ['red']  # 仅有一类,所以只用一种颜色
names = ['phone']

for bbox in bboxes_yolo + bboxes_voc:
    class_id, x, y, w, h = bbox
    rect = Rectangle((x, y), w, h, linewidth=2, edgecolor=colors[int(class_id)], facecolor='none')
    ax.add_patch(rect)
    ax.text(x, y - 10, names[int(class_id)], color=colors[int(class_id)], fontsize=8)

plt.title('Phone Usage Detection')
plt.axis('off')
plt.show()
数据集结构示例
├── phone_usage_dataset
│   ├── images
│   │   ├── 00000.jpg
│   │   ├── 00001.jpg
│   │   └── ...
│   ├── labels
│   │   ├── 00000.txt
│   │   ├── 00001.txt
│   │   └── ...
│   │   ├── 00000.xml
│   │   ├── 00001.xml
│   │   └── ...
│   └── data.yaml  # 如果需要,可以创建这个文件来描述数据集路径和类别信息
数据集使用指南
  1. 数据准备:确认数据集路径是否正确,并且图像和标签文件均存在指定的目录下。
  2. 数据划分:根据需要将数据集划分为训练集、验证集和测试集。建议按照70%、15%、15%的比例进行划分。
  3. 配置文件 :如果使用YOLO框架,可以创建一个data.yaml配置文件来描述数据集路径和类别信息。
  4. 模型训练:利用选定的深度学习框架开始训练目标检测模型。注意要合理设置超参数以优化训练效果。
  5. 结果分析:完成训练后,对模型预测结果进行详细分析,必要时调整模型架构或训练策略以进一步提高准确性。
相关推荐
weixin_468466852 天前
医学影像数据集汇总分享
深度学习·目标检测·数据集·图像分割·机器视觉·医学影像·ct影像
数据岛13 天前
大模型应用的数字能源数据集
大数据·数据分析·数据集·能源
知来者逆16 天前
Octo—— 基于80万个机器人轨迹的预训练数据集用于训练通用机器人,可在零次拍摄中解决各种任务
人工智能·机器学习·机器人·数据集·大语言模型
数据猎手小k17 天前
EmoAva:首个大规模、高质量的文本到3D表情映射数据集。
人工智能·算法·3d·数据集·机器学习数据集·ai大模型应用
数据猎手小k20 天前
GEOBench-VLM:专为地理空间任务设计的视觉-语言模型基准测试数据集
人工智能·语言模型·自然语言处理·数据集·机器学习数据集·ai大模型应用
dundunmm20 天前
论文阅读之方法: Single-cell transcriptomics of 20 mouse organs creates a Tabula Muris
论文阅读·数据挖掘·数据集·聚类·单细胞·细胞聚类·细胞测序
数据猎手小k20 天前
BioDeepAV:一个多模态基准数据集,包含超过1600个深度伪造视频,用于评估深度伪造检测器在面对未知生成器时的性能。
人工智能·算法·数据集·音视频·机器学习数据集·ai大模型应用
数据猎手小k21 天前
HNTS-MRG 2024 Challenge:是一个包含200个头颈癌病例的磁共振图像及其标注的公开数据集,旨在推动AI在头颈癌放射治疗自动分割领域的研究。
人工智能·数据集·机器学习数据集·ai大模型应用
数据猎手小k1 个月前
OSPTrack:一个包含多个生态系统中软件包执行时生成的静态和动态特征的标记数据集,用于识别开源软件中的恶意行为。
数据集·开源软件·机器学习数据集·ai大模型应用
HyperAI超神经1 个月前
NeurIPS 2024 有效投稿达 15,671 篇,数据集版块内容丰富
人工智能·开源·自动驾驶·数据集·多模态·化学光谱·neurips 2024