IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> PaddlePadlle2.3实现人脸关键点检测 -> 正文阅读

[人工智能]PaddlePadlle2.3实现人脸关键点检测

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, resnet50

class 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 = 1 N ∣ ∣ x i ? x i ? ∣ ∣ 2 N × d e=\frac{\sum^N_{i=1}||x_i - x^*_i||_2}{N \times d} e=N×di=1N?xi??xi??2??

其中:
x i x_i xi?为预测第 i i i个的坐标。
x i ? x^*_i xi??为第 i i i个真实标签。
d d d为距离,两眼瞳孔距离或者两眼外眼角距离。

损失函数

使用SmoothL1Loss。
在这里插入图片描述
SmoothL1Loss对于离群点更加鲁棒,回归更好。

6. 预测图片

效果如下:
在这里插入图片描述

7. 代码仓库

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

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:10:12  更:2022-05-24 18:13:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:01:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码