目录
0 公开数据
SCB-Dataset3 数据集【百度云】:链接:https://pan.baidu.com/s/1ROnHmndynlzNiLWyzSMA3g?pwd=5qyf
提取码:5qyf
训练数据【百度云】:链接:https://pan.baidu.com/s/1Of6cG4X0FP015c1mQKnfng?pwd=sm7k
提取码:sm7k
paper:https://arxiv.org/pdf/2310.16267.pdf
1 环境配置
YOLOv5 github :https://github.com/ultralytics/yolov5
PyTorch / 1.8.1 / 3.8(ubuntu18.04) / 11.1
2 SCB-Dataset3-S 数据准备
这里使用YOLOv5 训练自定义数据集(SCB-Dataset3)
备注:关于SCB-Dataset3公开在github中:
https://github.com/Whiffe/SCB-dataset
在平台中上传数据,通过阿里云盘的方式上传
解压数据
unzip 5k_HRW_yolo_Dataset.zip
unzip 0.355k_university_yolo_Dataset.zip
unzip 0.71k_university_yolo_Dataset.zip
3 YOLOv5 安装
安装命令
git clone https://gitee.com/YFwinston/yolov5.git
cd yolov5
pip install -r requirements.txt
推理:
python detect.py --weight yolov5n.pt --source 1.png
YOLOv5 训练
训练的yaml文件
将下面的文件放到:yolov5/data/
5k_HRW_yolo_Dataset.yaml
train: /root/autodl-tmp/5k_HRW_yolo_Dataset/images/train
val: /root/autodl-tmp/5k_HRW_yolo_Dataset/images/val
# number of classes
nc: 3
# class names
names: [ 'hand-raising','reading','writing']
权重下载与上传
训练SCB-Dataset3-S
建议先把这个下载到本地,然后上传:https://ultralytics.com/assets/Arial.ttf
cp Arial.ttf /root/.config/Ultralytics/Arial.ttf
yolov5n
修改models/yolov5n.yaml内容如下:
yolov5n 训练
python train.py --weights yolov5n.pt --data data/5k_HRW_yolo_Dataset.yaml --cfg models/yolov5n.yaml --batch 8 --epochs 100 && /usr/bin/shutdown
yolov5n 验证
python val.py --weights runs/train/exp/weights/best.pt --data data/5k_HRW_yolo_Dataset.yaml
fps GPU
python fps.py --weights runs/train/exp/weights/best.pt
fps:107.5
fps CPU
python fps.py --weights runs/train/exp/weights/best.pt --device cpu
BSI
python detect.py --weight runs/train/exp/weights/best.pt --source /root/autodl-tmp/5k_HRW_yolo_Dataset/images/val/ --save-txt --device cpu
python BehaviorSimilarityCalculation.py --labels_path runs/detect/exp2/labels
all_count_category: {‘0’: 2413, ‘1’: 3060, ‘2’: 828}
all_count_overlap: {‘1 2’: 117, ‘0 2’: 2, ‘0 1’: 13}
1 2: 0.038 0.141
0 2: 0.001 0.002
0 1: 0.005 0.004
yolov5s
yolov5s 训练
python train.py --weights yolov5s.pt --data data/5k_HRW_yolo_Dataset.yaml --cfg models/yolov5s.yaml --batch 8 --epochs 100 && /usr/bin/shutdown
yolov5s 验证
python val.py --weights runs/train/exp2/weights/best.pt --data data/5k_HRW_yolo_Dataset.yaml
fps
python fps.py --weights runs/train/exp2/weights/best.pt
fps:92.2
python fps.py --weights runs/train/exp2/weights/best.pt --device cpu
BSI
python detect.py --weight runs/train/exp2/weights/best.pt --source /root/autodl-tmp/5k_HRW_yolo_Dataset/images/val/ --save-txt --device cpu
python BehaviorSimilarityCalculation.py --labels_path runs/detect/exp3/labels
all_count_category: {‘0’: 2415, ‘1’: 2859, ‘2’: 787}
all_count_overlap: {‘0 1’: 11, ‘0 2’: 4, ‘1 2’: 94}
0 1: 0.005 0.004
0 2: 0.002 0.005
1 2: 0.033 0.119
yolov5m
yolov5m 训练
python train.py --weights yolov5m.pt --data data/5k_HRW_yolo_Dataset.yaml --cfg models/yolov5m.yaml --batch 8 --epochs 100 && /usr/bin/shutdown
yolov5m 验证
python val.py --weights runs/train/exp3/weights/best.pt --data data/5k_HRW_yolo_Dataset.yaml
fps
python fps.py --weights runs/train/exp3/weights/best.pt
fps:55.3
BSI
python detect.py --weight runs/train/exp3/weights/best.pt --source /root/autodl-tmp/5k_HRW_yolo_Dataset/images/val/ --save-txt --device cpu
python BehaviorSimilarityCalculation.py --labels_path runs/detect/exp4/labels
all_count_category: {‘0’: 2300, ‘2’: 728, ‘1’: 2688}
all_count_overlap: {‘1 2’: 86, ‘0 2’: 6, ‘0 1’: 10}
1 2: 0.118 0.032
0 2: 0.003 0.008
0 1: 0.004 0.004
yolov5l
yolov5l 训练
python train.py --weights yolov5l.pt --data data/5k_HRW_yolo_Dataset.yaml --batch 8 --epochs 100 && /usr/bin/shutdown
yolov5l 验证
python val.py --weights runs/train/exp4/weights/best.pt --data data/5k_HRW_yolo_Dataset.yaml
BSI
python detect.py --weight runs/train/exp4/weights/best.pt --source /root/autodl-tmp/5k_HRW_yolo_Dataset/images/val/ --save-txt
python BehaviorSimilarityCalculation.py --labels_path runs/detect/exp6/labels
all_count_category: {‘0’: 2241, ‘1’: 2655, ‘2’: 710}
all_count_overlap: {‘1 2’: 87, ‘0 1’: 8, ‘0 2’: 1}
1 2: 0.033 0.123
0 1: 0.004 0.003
0 2: 0.000 0.001
yolov5x
yolov5x 训练
python train.py --weights yolov5x.pt --data data/5k_HRW_yolo_Dataset.yaml --cfg models/yolov5x.yaml --batch 8 --epochs 100 && /usr/bin/shutdown
断点训练
python train.py --weights runs/train/exp5/weights/last.pt --data data/5k_HRW_yolo_Dataset.yaml --cfg models/yolov5x.yaml --batch 8 --epochs 100 --resume && /usr/bin/shutdown
yolov5x 验证
python val.py --weights runs/train/exp5/weights/best.pt --data data/5k_HRW_yolo_Dataset.yaml
BSI
python detect.py --weight runs/train/exp5/weights/best.pt --source /root/autodl-tmp/5k_HRW_yolo_Dataset/images/val/ --save-txt
python BehaviorSimilarityCalculation.py --labels_path runs/detect/exp7/labels
all_count_category: {‘0’: 2208, ‘1’: 2588, ‘2’: 712}
all_count_overlap: {‘0 1’: 12, ‘1 2’: 94, ‘0 2’: 1}
0 1: 0.005 0.005
1 2: 0.036 0.132
0 2: 0.000 0.001