玩手机数据集 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. 结果分析:完成训练后,对模型预测结果进行详细分析,必要时调整模型架构或训练策略以进一步提高准确性。
相关推荐
城南皮卡丘12 天前
苹果果实成熟度检测数据集 4195张+YOLO格式
深度学习·yolo·目标检测·计算机视觉·数据集
微尘hjx12 天前
【数据集 11】面向城市道路的坑洞检测数据集(含8760张,已按比例划分训练、验证、测试集,支持YOLO全系列训练)
人工智能·yolo·目标检测·数据集·道路坑洞·路坑数据集·路坑
数聚天成DeepSData15 天前
两份名录里的同名机构,主键该怎么合并
人工智能·深度学习·机器学习·数据集·deepsdata
Felaim18 天前
【SLAM】SLAM数据集相机规格说明
数据集·vslam·slam·相机标定
数聚天成DeepSData19 天前
第三方地图工具导出的 Landsat 影像,使用条件和 USGS 官方下载的一样吗
人工智能·深度学习·机器学习·数据集·deepsdata
数聚天成DeepSData20 天前
验收一批标注数据时,一致性到底在比谁和谁
人工智能·深度学习·机器学习·数据集·deepsdata
数聚天成DeepSData21 天前
两批标注数据合并前要核对什么
人工智能·深度学习·机器学习·数据集·deepsdata
数聚天成DeepSData21 天前
外部标注需求里该写清哪几项,样例包才验收得动
人工智能·深度学习·机器学习·数据集·deepsdata
数聚天成DeepSData21 天前
Landsat 影像去哪里下载:选景、批量与脚本检索怎么选
人工智能·深度学习·机器学习·数据集·deepsdata
数聚天成DeepSData1 个月前
夜间灯光可以代表经济活动吗?先处理年际一致性
人工智能·深度学习·机器学习·数据集·deepsdata