1. 人脸关键点检测介绍

人脸关键点检测是检测人脸上的一些特征,通常检测点的数量为5,68,98点。
其流程为:输入一张图片->网络模型->关键点。
此博客以68点为例实现人脸关键点检测。
如图:

实现步骤:

  1. 获得到人脸图片以及其关键点坐标,也就是数据集。
  2. 数据处理
  3. 构建网络模型
  4. 训练模型
  5. 预测图片

2. 数据集

链接:https://pan.baidu.com/s/14W6OIU3h3FVwSEoEmlx8xA 提取码:bj9n
或者登录:https://aistudio.baidu.com/aistudio/datasetdetail/69065

3. 数据预处理

灰度化和数据归一化
由于是对人脸的特征点进行预测,对颜色是不敏感的,所以我们可以把图片进行灰度化处理,然后对图片进行归一化,再将将坐标点放缩到 [-1, 1]加快模型训练速度。
Resize和RandomCrop
将图片调整为指定大小并随机位置裁剪输入的图像,也就是数据增强。

4. 构建网络模型

我们使用mobilenetv2作为主干网络进行特征提取,只需在网络模型后面增加一层ReLU函数和一层输出为68的点的线性层即可。

import paddle
import paddle.nn as nn
from paddle.vision.models import mobilenet_v1, mobilenet_v2, resnet50class FaceKeyPointsNetBody(nn.Layer):def __init__(self, kpt_num=68, backbone='mobilenetv1'):if backbone not in ['mobilenetv1', 'mobilenetv2', 'resnet50']: assert "Backbone definition error"super(FaceKeyPointsNetBody, self).__init__()if backbone == 'mobilenetv1':self.backbone = mobilenet_v1(pretrained=True, scale=1.0)elif backbone == 'mobilenetv2':self.backbone = mobilenet_v2(pretrained=True, scale=1.0)else:self.backbone = resnet50(pretrained=True)self.linear1 = nn.Linear(1000, out_features=512)self.act1 = nn.ReLU()self.linear2 = nn.Linear(512, kpt_num*2)def forward(self, x):x = self.backbone(x)x = self.linear1(x)x = self.act1(x)x = self.linear2(x)return x

5. 训练模型

评估指标

人脸关键点一般是NMS作为评估指标,即所有预测点和真实标签之间的L2 Norm,在除以关键点的个数x两只眼睛的距离

            e=∑i=1N∣∣xi−xi∗∣∣2N×de=\frac{\sum^N_{i=1}||x_i - x^*_i||_2}{N \times d}e=N×d∑i=1N​∣∣xi​−xi∗​∣∣2​​

其中:
xix_ixi​为预测第iii个的坐标。
xi∗x^*_ixi∗​为第iii个真实标签。
ddd为距离,两眼瞳孔距离或者两眼外眼角距离。

损失函数

使用SmoothL1Loss。

SmoothL1Loss对于离群点更加鲁棒,回归更好。

6. 预测图片

效果如下:

7. 代码仓库

gitee地址:https://gitee.com/Hao_gg/facekeypoints-pp
github地址:https://github.com/hao-ux/facepoints-pp

PaddlePadlle2.3实现人脸关键点检测相关推荐

  1. 【机器视觉案例】(11) 眨眼计数器,人脸关键点检测,附python完整代码

    各位同学好,今天和大家分享一下如何使用 mediapipe+opencv 实现眨眼计数器.先放张图看效果. 下图左侧为视频图像,右侧为平滑后的人眼开合比曲线.以左眼为例,若眼眶上下边界的距离与左右边界 ...

  2. 「每周CV论文推荐」 初学深度学习人脸关键点检测必读文章

    人脸关键点检测是人脸图像中重要的基石,今天给大家介绍入门深度学习人脸关键点检测必读的文章. 作者&编辑 | 言有三 1 DCNN Cascade 听这个名字就知道是一个很早期的,使用Casca ...

  3. python人脸识别、人脸关键点检测、性别检测

    python人脸识别.人脸关键点检测.性别检测 文章目录 根据人脸预测年龄性别和情绪 (python + keras)(三) 一款入门级的人脸.视频.文字检测以及识别的项目. age-gender-e ...

  4. CNN人脸关键点检测

    CNN人脸关键点检测 参考文献<Deep Convolutional Network Cascade for Facial Point Detection>\ 摘要 提出一种利用精心设计的 ...

  5. 使用OpenCV进行人脸关键点检测

    使用OpenCV进行人脸关键点检测 1 双脸效果 2 单脸效果

  6. 人脸识别,人脸关键点检测算法

    from http://blog.csdn.net/sloanqin/article/details/48193119 1 Face++:http://www.faceplusplus.com.cn/ ...

  7. 【CV秋季划】人脸关键点检测,人脸识别视频更新

    本次给大家带来的是有三AI-CV秋季划-人脸算法组的视频,包括人脸关键点检测,人脸识别两期的内容,如果你还不知道有三AI-CV秋季划-人脸算法组是什么,可以看下面的视频和图文. 点击边框调出视频工具条 ...

  8. 【每周CV论文推荐】 初学深度学习人脸关键点检测必读文章

    欢迎来到<每周CV论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 人脸关键点检测是人脸图像中重要的基石,今天给 ...

  9. 【论文解读】PFLD:高精度实时人脸关键点检测算法

    这篇文章作者分别来自天津大学.武汉大学.腾讯AI实验室.美国天普大学.该算法对在高通ARM 845处理器可达140fps:另外模型大小较小,仅2.1MB:此外在许多关键点检测的benchmark中也取 ...

  10. 创意赛第二季又来了,PaddleHub人脸关键点检测实现猫脸人嘴特效

    前段时间,下班后闲来无事,参加了百度PaddleHub的AI人像抠图创意赛,凭借着大家的阅读量,获得了一个第三名,得了一个小度音响,真香啊! 对,说的是我 小奖品 PaddleHub创意赛第二期又出来 ...

最新文章

  1. SpringBoot 实战定时任务 Scheduled
  2. org.junit.vintage.engine.descriptor.RunnerTestDescriptor warnAboutUnfilterableRunner
  3. freemarker模板最小案例实现
  4. ORA-27101 Shared memory realm does not exist 之解決 (转)
  5. 使用vue开发一个双向展开的卷轴组件
  6. JavaScript 继承
  7. 码云、coding拉取项目代码
  8. NC / Netcat - 文件传输
  9. 盘一盘2020年上半年的微博热搜词条(文末提供获取热搜词条方法)
  10. URI 、URL 和 URN
  11. pythonindex函数的使用格式_Python正课31 —— 函数参数的使用
  12. YOLO模型train.py文件报错:size mismatch for last_layer0.6.weight: copying a param with shape torch.
  13. 清翔电子51单片机小结——可调表时钟
  14. OPPO手机怎样把图片拼在一起(拼图教程分享)
  15. domain-transfer reid郑哲东 joint 判别和生成REID
  16. linux软件源历史版本,解决deepin 15.9.2以后版本软件太旧的问题,混合lion与panda源使用...
  17. 《途客圈创业记:不疯魔,不成活》导读
  18. 刘润直播预告 | 顶级高手,如何创造财富
  19. Oracle-表的创建与管理
  20. 手把手教你从零跑一个Skynet

热门文章

  1. 修改k8s的集群域名后缀
  2. 阿里云Maven配置方案
  3. 【动态规划】 EditDistance
  4. mbedtls里面的rsa应用函数
  5. PDF解密怎么弄?分享这3个解密软件
  6. oracle 定时备份数据库脚本
  7. Google好用插件推荐(一)
  8. CVPR 2021 Involution: Inverting the Inherence of Convolution for Visual Recognition
  9. JAVA 图片压缩及png转jpg
  10. 云计算就业指南是什么 该如何做好自我介绍