本项目结合目标检测+跟踪+分类实现学生行为检测(是否玩手机)。

环境说明:

torch==1.21.1

torchvision==0.13.1

ultralytics==8.0.228

tensorboardX==2.6.2.2

scikit-learn==1.3.2

requests==2.32.4

pillow==10.4.0

matplotlib==3.7.5

loguru==0.5.3


本项目为有偿提供

github:

https://github.com/YINYIPENG-EN/student_class

数据集

数据集有两个类,play_phone和person,数据集解压存放在classification/datasets/下。目录格式如下:

datasets/
|-- test
|   |-- person
|   `-- play_phone
`-- train
    |-- person
    `-- play_phone

训练集两个类各有:8378张、10422张

测试集两个类各有:1897张、1770张


训练

步骤1:解压完成后,运行以下命令,生成cls_train.txt和cls_test.txt

cd classification
python txt_annotation.py

(生成后检查txt中label和image path是否正确)正确形式如下:

1;E:\student_class\classification/datasets/train\person\ZYuUThsEF6XMAB9QS1v7ifPgeqHdtxyO.jpg
1;E:\student_class\classification/datasets/train\person\zZNJeQmhgR0wHa3IkPTropBKdVb4X6xU.jpg
1;E:\student_class\classification/datasets/train\person\zZP85dBwj79vHWQtrXiynLOSo0AfqYG3.jpg
0;E:\student_class\classification/datasets/train\play_phone\01cXjIpEetAs73d8PVKJuY5mCrvgBfHO.jpg
0;E:\student_class\classification/datasets/train\play_phone\01IAyscWf3Q5XaSmHePDvBO69GJzLRg2.jpg

步骤2:输入以下命令进行训练。(确保在classification文件下)

python train.py --backbone --model_path --epoch 30

--backbone支持resnet50,mobilenet,vgg16,vit

--Freeze:冻结训练

--Freeze_epoch:init_epoch~Freeze_epoch之间为冻结训练,Freeze_epoch后为解冻训练

训练后的权重会报错在classification/logs下

TOP-X accuracy测试

支持Top-1和Top-5的Accuracy测试

运行以下命令(确保在classification文件下)

python eval_top1.py --model_name resnet50 --weights 权重路径
​
python eval_top5.py --model_name resnet50 --weights 权重路径

F1值、P、R测试

运行以下命令可复现F1值、P、R评价指标。

python eval.py --model_name resnet50 --weights 权重路径

图片测试(不含目标检测和跟踪)

此功能仅对图像进行分类任务或可视化,未含基于YOLOv8的目标检测和目标跟踪

输入以下命令进行检测:

python predict_demo.py --weights 权重路径 --model_name resnet50 

输入以下命令进行特征可视化

python predict_demo.py --weights 权重路径 --model_name resnet50 --visualize

特征图会保存在feat文件下

基于YOLOv8的行为检测

基于YOLOv8+跟踪+分类识别,完成行为检测(是否玩手机)。

运行以下命令进行检测(支持图像/视频):

python detect_v2.0.py --weights 权重路径 --model_name --thres 0.6 --source 图像/视频路径

检测效果如下:

获取截图如下:


本项目为版开源,完整项目为有偿(可提供调试)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐