用yolov5做人脸检测
2023-04-18 15:43:30 时间
配置:ubuntu20,pytorch1.7.1,GTX1660Ti
1、anaconda、yolov5下载、环境、数据处理、数据标注等:
yolov5 URL:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
请参考其他人的。
2、数据集:CASIA-FaceV5
如果想自己打标的话,可以下官网的或我的百度网盘里的。如果不想自己打标,可以用我打标后的,数据存储位置已经过处理,打标工具labelimg,打的没有数据标注员的好,不过我自己检测的时候效果也不错。
官网:BIT
我的百度网盘:链接: https://pan.baidu.com/s/1dXbGO5KceMFISaf2lc-0yw 提取码: 8jyg
--来自百度网盘超级会员v5的分享
本人打标后的:链接: https://pan.baidu.com/s/1bZzX7jchBln7NYx7H-26XQ 提取码: sv2v
--来自百度网盘超级会员v5的分享
数据集存储位置:
train:2000张图片
val:500张图片
test:没放图片。
按流出法可以自己按6:2:2即1500:500:500存放。
yolov5-master
└─ CASIA-FaceV5
├─ images
│ ├─ train
│ ├─ val
│ └─ test
└─ labels
├─ train
├─ val
├─ test
3、创建数据集及模型配置文件:
1、在yolov5-master/data下创建***.yaml文件(***自己起名),内容如下:
train: ***/yolov5-master/CASIA-FaceV5/images/train
val: ***/yolov5-master/CASIA-FaceV5/images/val
nc: 1
names: ["face"]
***:请填写自己的路径
nc:1 是因为要识别的只有人脸
names:["face"] 如果自己打的标请填写自己的标注名称,如果用的我打标的数据请不要修改。
2、在yolov5-master/models下创建***.yaml文件(可以自己直接复制旁边的yolov5s.yaml,我选择的这个模型,如有需要,可改为其他模型),只修改nc: 1即可,不要改其他的!
4、模型训练(迁移学习):
请于终端进入yolov5-master文件夹下进行操作
python train.py --data data/***.yaml --cfg models/***.yaml --weights pretrained/yolov5s.pt --epoch 5 --batch-size 16 --device cuda:0
训练完后,终端会显示训练后的参数保存在哪里
5、模型验证:
python val.py --data ./data/***.yaml --weights ./runs/train/exp4/weights/best.pt --batch-size 8 --device cuda:0
6、模型测试:
我没有建立测试集来进行测试,而是采用摄像头实时检测我自己。(按q退出)
python detect.py --weights runs/train/exp4/weights/best.pt --source 0
7、应用:
# 摄像头实时检测
python detect.py --weights runs/train/exp4/weights/best.pt --source 0
# 图片、视频(source 后面路径+文件名)
python detect.py --weights runs/train/exp4/weights/best.pt --source path/name
# 网络视频(字符串式的URL)
python detect.py --weights runs/train/exp4/weights/best.pt --source "***"
相关文章
- 网络层和arp协议
- 网络基础之物理层和数据链路层
- 使用迭代器接收数据并自动停止
- 最新数据库排行榜(2020年4月)
- DB-Engines公布8月最新数据库排行榜
- Redis Labs宣布正式更名为Redis
- 为什么你的数据库这么慢?
- Forest v1.5.3 正式版本发布
- 10月数据库排行榜出炉,Oracle位居第一
- MySQL 8.0.27正式GA
- c语言中如何计算数组长度
- 如何使用mysql查询where条件里的or和and
- 【ASP.NET Core】EF Core - “影子属性”
- 如何用python list删除指定元素?
- 【ASP.NET Core】EF Core 模型与数据库的创建
- 如何处理单元测试中的请求?
- 【.net 深呼吸】连接Access数据库应注意的几点
- 【Win 10 应用开发】Sqlite 数据库的简单用法
- 【Win 10 应用开发】通过数据绑定更新进度条
- 【Win 10 应用开发】UDP广播