深度学习目标检测yolo算法如何训练自己的数据集之—行为类别数据集(考场考试学生行为检测数据集/打架暴力行为摔倒数据集)
行为类别数据集打架数据集 考场行为数据集 考生行为数据集 学生行为检测数据集 学生数据集 1.考场考生行为检测数据集14类 7000张 带标注 voc yolo 2打架数据集3类 打架 摔倒 持械
打架数据集 考场行为数据集 考生行为数据集 学生行为检测数据集 学生数据集 1.考场考生行为检测数据集14类 7000张 带标注 voc yolo 2打架数据集3类 打架 摔倒 持械 行为类别数据集 打架数据集 考场行为数据集 考生行为数据集 学生行为检测数据集 学生数据集 1.考场考生行为检测数据集14类 7000张 带标注 voc yolo 2打架数据集3类 打架 摔倒 持械
一,考场行为数据集

1.考场考生行为检测数据集14类 7000张 带标注 voc yolo

考场考生行为检测数据集

数据集概述
此数据集主要用于考场内考生的行为检测任务,涵盖了十一种不同的行为类别。该数据集包含7163张图像,总共标注了82640个行为实例,以VOC XML格式标注,同时提供了YOLO TXT格式的选配标注,可以直接用于基于VOC和YOLO格式的目标检测算法模型训练。
数据集特点
- 高清影像:所有图像均为高清影像,适合用于精确的行为检测。
- 详细标注:每张图像都标注了十一种不同行为的位置,可以用于训练模型来识别这些行为。
- 多样性:涵盖了不同情境下的考生行为场景,适用于多种环境下的应用。
- 直接可用性:数据集已按照标准VOC XML格式标注,同时提供了YOLO TXT格式标注,无需进一步处理即可直接用于模型训练。
- 多类别:数据集中标注了十一种类别,适合进行多目标检测任务。
数据集统计
| 行为类型 | 类别ID | 图像数量 | 标注个数 |
|---|---|---|---|
| 正确坐姿 | 0 | 2836 | 11507 |
| 右侧移动 | 1 | 1364 | 2084 |
| 左侧移动 | 2 | 1629 | 2800 |
| 后退移动 | 3 | 540 | 759 |
| 站立 | 4 | 1131 | 1856 |
| 前进移动 | 5 | 444 | 672 |
| 注视 | 6 | 671 | 8325 |
| 无聊 | 7 | 708 | 7459 |
| 寻求帮助 | 8 | 54 | 730 |
| 鞠躬 | 9 | 219 | 233 |
| 手部动作 | 10 | 3415 | 25662 |
| 低头 | 11 | 2636 | 14149 |
| 作弊 | 12 | 2078 | 3341 |
| 偷看 | 13 | 2088 | 3063 |
| 总计 | 7163 | 82640 |
数据集结构
ExamCandidateBehaviorDetectionDataset/
├── images/ # 图像文件
│ ├── train/ # 训练集图像
│ │ ├── image_00001.jpg
│ │ ├── image_00002.jpg
│ │ └── ...
│ ├── val/ # 验证集图像
│ │ ├── image_00001.jpg
│ │ ├── image_00002.jpg
│ │ └── ...
│ └── test/ # 测试集图像(如果存在)
│ ├── image_00001.jpg
│ ├── image_00002.jpg
│ └── ...
└── annotations/ # 标注文件夹
├── annotations_voc/ # VOC/Pascal VOC格式标注
│ ├── train/ # 训练集标注
│ │ ├── image_00001.xml
│ │ ├── image_00002.xml
│ │ └── ...
│ ├── val/ # 验证集标注
│ │ ├── image_00001.xml
│ │ ├── image_00002.xml
│ │ └── ...
│ └── test/ # 测试集标注(如果存在)
│ ├── image_00001.xml
│ ├── image_00002.xml
│ └── ...
└── annotations_yolo/ # YOLO格式标注
├── train/ # 训练集标签
│ ├── image_00001.txt
│ ├── image_00002.txt
│ └── ...
├── val/ # 验证集标签
│ ├── image_00001.txt
│ ├── image_00002.txt
│ └── ...
└── test/ # 测试集标签(如果存在)
├── image_00001.txt
├── image_00002.txt
└── ...
标注格式示例
VOC/Pascal VOC格式
<annotation>
<folder>images</folder>
<filename>image_00001.jpg</filename>
<path>/path/to/images/image_00001.jpg</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>640</width>
<height>480</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>correct_posture</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>100</xmin>
<ymin>150</ymin>
<xmax>200</xmax>
<ymax>300</ymax>
</bndbox>
</object>
<object>
<name>right_side_move</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>300</xmin>
<ymin>250</ymin>
<xmax>400</xmax>
<ymax>350</ymax>
</bndbox>
</object>
<!-- 其他行为的标注 -->
</annotation>
YOLO格式
class_id cx cy w h
class_id:类别ID(从0开始编号)- 0:
correct_posture - 1:
right_side_move - 2:
left_side_move - 3:
backward_move - 4:
stand - 5:
forward_move - 6:
looking - 7:
boring - 8:
asking - 9:
bowing - 10:
hand - 11:
bowhead - 12:
cheat - 13:
peep
- 0:
cx:目标框中心点x坐标 / 图像宽度。cy:目标框中心点y坐标 / 图像高度。w:目标框宽度 / 图像宽度。h:目标框高度 / 图像高度。
例如:
0 0.453646 0.623148 0.234375 0.461111
1 0.553646 0.723148 0.134375 0.361111
使用该数据集进行模型训练
1. 数据预处理与加载
首先,我们需要加载数据并将其转换为适合YOLOv5等模型使用的格式。假设你已经安装了PyTorch和YOLOv5。
import os
from PIL import Image
import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
import xml.etree.ElementTree as ET
class ExamCandidateBehaviorDetectionDataset(Dataset):
def __init__(self, image_dir, annotation_dir, transform=None):
self.image_dir = image_dir
self.annotation_dir = annotation_dir
self.transform = transform
self.image_files = [f for f in os.listdir(image_dir) if f.endswith('.jpg')]
def __len__(self):
return len(self.image_files)
def __getitem__(self, idx):
img_name = self.image_files[idx]
img_path = os.path.join(self.image_dir, img_name)
annotation_path = os.path.join(self.annotation_dir, img_name.replace('.jpg', '.xml'))
# 加载图像
image = Image.open(img_path).convert('RGB')
if self.transform:
image = self.transform(image)
# 加载标注
tree = ET.parse(annotation_path)
root = tree.getroot()
boxes = []
labels = []
for obj in root.findall('object'):
category = obj.find('name').text.lower()
if category == 'correct_posture':
class_id = 0
elif category == 'right_side_move':
class_id = 1
elif category == 'left_side_move':
class_id = 2
elif category == 'backward_move':
class_id = 3
elif category == 'stand':
class_id = 4
elif category == 'forward_move':
class_id = 5
elif category == 'looking':
class_id = 6
elif category == 'boring':
class_id = 7
elif category == 'asking':
class_id = 8
elif category == 'bowing':
class_id = 9
elif category == 'hand':
class_id = 10
elif category == 'bowhead':
class_id = 11
elif category == 'cheat':
class_id = 12
elif category == 'peep':
class_id = 13
else:
continue
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)
boxes.append([xmin, ymin, xmax, ymax])
labels.append(class_id)
boxes = torch.tensor(boxes, dtype=torch.float32)
labels = torch.tensor(labels, dtype=torch.int64)
return image, boxes, labels
# 数据增强
transform = transforms.Compose([
transforms.Resize((640, 640)),
transforms.ToTensor(),
])
# 创建数据集
train_dataset = ExamCandidateBehaviorDetectionDataset(image_dir='ExamCandidateBehaviorDetectionDataset/images/train/', annotation_dir='ExamCandidateBehaviorDetectionDataset/annotations_voc/train/', transform=transform)
val_dataset = ExamCandidateBehaviorDetectionDataset(image_dir='ExamCandidateBehaviorDetectionDataset/images/val/', annotation_dir='ExamCandidateBehaviorDetectionDataset/annotations_voc/val/', transform=transform)
train_loader = DataLoader(train_dataset, batch_size=4, shuffle=True, num_workers=4)
val_loader = DataLoader(val_dataset, batch_size=4, shuffle=False, num_workers=4)
2. 构建模型
我们可以使用YOLOv5模型进行目标检测任务。假设你已经克隆了YOLOv5仓库,并按照其文档进行了环境设置。
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt
创建数据配置文件 data/exam_candidate_behavior_detection.yaml:
train: path/to/ExamCandidateBehaviorDetectionDataset/images/train
val: path/to/ExamCandidateBehaviorDetectionDataset/images/val
test: path/to/ExamCandidateBehaviorDetectionDataset/images/val # 如果没有单独的测试集,可使用验证集作为测试集
nc: 14 # 类别数
names: ['correct_posture', 'right_side_move', 'left_side_move', 'backward_move', 'stand', 'forward_move', 'looking', 'boring', 'asking', 'bowing', 'hand', 'bowhead', 'cheat', 'peep']
3. 训练模型
使用YOLOv5进行训练。
python train.py --img 640 --batch 16 --epochs 100 --data data/exam_candidate_behavior_detection.yaml --weights yolov5s.pt --cache
4. 评估模型
在验证集上评估模型性能。
python val.py --img 640 --batch 16 --data data/exam_candidate_behavior_detection.yaml --weights runs/train/exp/weights/best.pt --task test
5. 推理
使用训练好的模型进行推理。
python detect.py --source path/to/test/image.jpg --weights runs/train/exp/weights/best.pt --conf 0.5
实验报告
实验报告应包括以下内容:
- 项目简介:简要描述项目的背景、目标和意义。
- 数据集介绍:详细介绍数据集的来源、规模、标注格式等。
- 模型选择与配置:说明选择的模型及其配置参数。
- 训练过程:记录训练过程中的损失变化、学习率调整等。
- 评估结果:展示模型在验证集上的性能指标(如mAP、准确率)。
- 可视化结果:提供一些典型样本的检测结果可视化图。
- 结论与讨论:总结实验结果,讨论可能的改进方向。
- 附录:包含代码片段、图表等补充材料。
依赖库
确保安装了以下依赖库
pip install torch torchvision
pip install -r yolov5/requirements.txt
总结
这个考场考生行为检测数据集提供了丰富的标注数据,非常适合用于训练和评估行为检测模型。通过YOLOv5框架,可以方便地构建和训练高性能的行为检测模型。实验报告可以帮助你更好地理解和分析模型的表现,并为进一步的研究提供参考。由于数据集规模较大且多样,建议在训练过程中使用数据增强技术以提高模型的泛化能力。
2,打架行为数据集 打架数据集


打架/摔倒识别数据集介绍

数据集概述
此数据集主要用于打架、摔倒以及持械行为的识别任务,涵盖了三种不同的行为类别。该数据集已经按照YOLO格式标注,包含11596张训练图像和1289张验证图像。数据集已经按照标准YOLO TXT格式标注,可以直接用于YOLOv5或其他基于YOLO的目标检测算法模型训练。
数据集特点
- 高清影像:所有图像均为高清影像,适合用于精确的行为检测。
- 详细标注:每张图像都标注了三种不同行为的位置,可以用于训练模型来识别这些行为。
- 多样性:涵盖了不同情境下的行为场景,适用于多种环境下的应用。
- 直接可用性:数据集已按照标准YOLO TXT格式标注,无需进一步处理即可直接用于模型训练。
- 多类别:数据集中标注了三种类别,适合进行多目标检测任务。
数据集统计
| 行为类型 | 类别ID | 训练集数量 | 验证集数量 |
|---|---|---|---|
| 打架 | 0 | 未知 | 未知 |
| 摔倒 | 1 | 未知 | 未知 |
| 持械 | 2 | 未知 | 未知 |
| 总计 | 11596 | 1289 |
数据集结构
FightFallWeaponDetectionDataset/
├── images/ # 图像文件
│ ├── train/ # 训练集图像
│ │ ├── image_00001.jpg
│ │ ├── image_00002.jpg
│ │ └── ...
│ ├── val/ # 验证集图像
│ │ ├── image_00001.jpg
│ │ ├── image_00002.jpg
│ │ └── ...
└── labels/ # YOLO格式标注文件夹
├── train/ # 训练集标签
│ ├── image_00001.txt
│ ├── image_00002.txt
│ └── ...
└── val/ # 验证集标签
├── image_00001.txt
├── image_00002.txt
└── ...
标注格式示例
YOLO格式
每行表示一个物体的边界框和类别:
class_id cx cy w h
class_id:类别ID(从0开始编号)- 0:
fight - 1:
fall - 2:
weapon
- 0:
cx:目标框中心点x坐标 / 图像宽度。cy:目标框中心点y坐标 / 图像高度。w:目标框宽度 / 图像宽度。h:目标框高度 / 图像高度。
例如:
0 0.453646 0.623148 0.234375 0.461111
1 0.553646 0.723148 0.134375 0.361111
2 0.353646 0.823148 0.154375 0.261111
使用该数据集进行模型训练
1. 数据预处理与加载
由于数据集已经按照YOLO格式标注,我们可以直接使用YOLOv5进行训练。假设你已经克隆了YOLOv5仓库,并按照其文档进行了环境设置。
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt
创建数据配置文件 data/fight_fall_weapon_detection.yaml:
train: path/to/FightFallWeaponDetectionDataset/images/train
val: path/to/FightFallWeaponDetectionDataset/images/val
test: path/to/FightFallWeaponDetectionDataset/images/val # 如果没有单独的测试集,可使用验证集作为测试集
nc: 3 # 类别数
names: ['fight', 'fall', 'weapon']
2. 训练模型
使用YOLOv5进行训练。根据你的描述,之前已经有训练结果达到了90%的识别精度。
python train.py --img 640 --batch 16 --epochs 100 --data data/fight_fall_weapon_detection.yaml --weights yolov5s.pt --cache
3. 评估模型
在验证集上评估模型性能。
python val.py --img 640 --batch 16 --data data/fight_fall_weapon_detection.yaml --weights runs/train/exp/weights/best.pt --task test
4. 推理
使用训练好的模型进行推理。
python detect.py --source path/to/test/image.jpg --weights runs/train/exp/weights/best.pt --conf 0.5
实验报告
实验报告应包括以下内容:
- 项目简介:简要描述项目的背景、目标和意义。
- 数据集介绍:详细介绍数据集的来源、规模、标注格式等。
- 模型选择与配置:说明选择的模型及其配置参数。
- 训练过程:记录训练过程中的损失变化、学习率调整等。
- 评估结果:展示模型在验证集上的性能指标(如mAP、准确率)。根据你的描述,模型已经达到了90%的识别精度。
- 可视化结果:提供一些典型样本的检测结果可视化图。
- 结论与讨论:总结实验结果,讨论可能的改进方向。
- 附录:包含代码片段、图表等补充材料。
依赖库
确保安装了以下依赖库:
pip install torch torchvision
pip install -r yolov5/requirements.txt
总结
这个打架/摔倒识别数据集提供了丰富的标注数据,非常适合用于训练和评估行为检测模型。通过YOLOv5框架,可以方便地构建和训练高性能的行为检测模型。实验报告可以帮助你更好地理解和分析模型的表现,并为进一步的研究提供参考。由于数据集规模较大且多样,建议在训练过程中使用数据增强技术以提高模型的泛化能力。
更多推荐
所有评论(0)