代码说明:
- 1,在yolov5的检测基础上,加上关键点回归分支,请先下载yolov5的工程:https://github.com/ultralytics/yolov5
- 2,detect_one.py是单张图片的测试代码, 基于部分wideface训练的模型,稍后在百度云公开。
主要修改代码部分:
- (1)hyp.scatch.yaml中增加关键点loss的超参数(landmark: 0.5)
- (2)yolo.py中增加了关键点回归的计算
- (3)face_datasets.py为人脸数据的读取方式,准备数据的格式参考yolov5的格式,在后面增加关键点的坐标(归一化)
- (4) loss.py中增加关键点回归的loss计算
- (5) 链接: https://pan.baidu.com/s/1zjPIF2NZ9CGtB2iUCox6hw 密码: j83n
- (6) 效果图 :
关于口罩人脸的问题:
- 1,增加口罩人脸这个类别,建议不要直接在检测分支中增加类别。
- 2,应该在关键点分支额外增加一个属性分支,接一个二分类,判断有没有戴口罩。
- 3,这样可以减少口罩人脸的误检问题
关于关键点的问题:
- 1,建议可以替换成wingloss训练,可以优化关键点的精准度。
- 2,可以解决关键点的离群点问题
- 3,wideface之中有不少特别小的人脸,如果不处理会对精度有一定的影响。
- 完整的代码可以参考: https://github.com/deepcam-cn/yolov5-face