基于轻量主干网搭建的人脸质量评估模型,主要用于多人多场景的人脸质量评估,质量属性包括:模糊度,是否戴眼镜,是否睁闭眼,是否带墨迹,是否带口罩面具等
这部分是通过txt文件,自动读取图片和标签,需要您先运行Del_Data.py以此来保证每类数量的大小一致,说明在代码中已经注释。 注意:这部分需要你根据自己数据的数量,去设置每类标签大致数量,如:
数据集大小 430026 模糊各类别数 337594 92432 左眼各类别数: 313504 54816 27979 5114 7854 20759 右眼各类别数: 311599 56320 27719 5353 7772 21263 嘴巴各类别数: 7369 68004 177376 177277
重新删选数据后,即可大致保证一致,(有类别数据重复)执行后: 数据集大小 434947 模糊各类别数 336774 98173 左眼各类别数: 220237 100433 53688 9911 14400 36278 右眼各类别数: 217811 102444 53113 10402 14263 36914 嘴巴各类别数: 8572 78203 174323 173849
训练集大小: (326210,) 测试集大小: (108737,)
blurness:模糊度(0-1),1为最模糊 leftEyeType:左眼类型(0不带眼镜睁着眼,1不戴眼镜闭着眼,2带普通眼镜睁着眼,3带着普通眼镜闭着眼,4带着墨墨镜,5其他) rightEyeType:右眼类型(0不带眼镜睁着眼,1不戴眼镜闭着眼,2带普通眼镜睁着眼,3带着普通眼镜闭着眼,4带着墨墨镜,5其他) mouthType:嘴巴类型(0带着⾯面具或者带着口罩,1不带口罩)
选择训练集和验证集的txt即可训练,两种方案均已给出,执行相应训练文件即可
运行pytorch2onnx.py ,选择要转的pth文件和导出的文件名即可
选择需要测试的模型,模型保存在checkpoins文件夹中,运行demo.py,程序会自动验证测试集前50个案例。
测试了148个epoch,最终效果如下 epoch 148, loss: 0.1194,blurness: 0.9787 ,leftEye: 0.9435, rightEye: 0.9459, mouth: 0.9814 Validation loss: 0.1782, blurness: 0.9721, leftEye: 0.9411, rightEye: 0.9489, mouth: 0.9712 注:精度还在浮动,还在升,训练过程详情见logs/acc.txt
[weights] 链接:https://pan.baidu.com/s/1mC-P8qWCYA6YYd0-Eepoyw?pwd=c12m 提取码:c12m
[onnx] 链接:https://pan.baidu.com/s/1cGBG8FmwPYtzu6jiNHVHUg?pwd=39hg 提取码:39hg
[shape_predictor] 链接:https://pan.baidu.com/s/1Ca9niK6iLTjTtyudn3hZWg?pwd=pqxa 提取码:pqxa
将其分别放入对应的文件夹