搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
2023面试高手
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
vue -- 无法打卡vue ui创建项目_deprecate request@^2.67.0 request has been depreca
2
react 遍历生产form表单(FormItem)_react 循环form.item
3
build opencv3.3.0 with VTK8.0, CUDA9.0 on ubuntu9.0
4
java正则表达式校验日期_java验证出生日期正则表达式
5
01_C++ Qt开发:Qt的安装与配置
6
C# 使用EPPlus创建Excel文件_c# epplus excel
7
linux多进程通信框架,Linux下多进程IPC通讯的例子
8
Unity摄像机详解_unity 摄像机 后视镜开发
9
DOM编程-表单验证_html dom表单验证
10
Sora给中国AI带来的真实变化
当前位置:
article
> 正文
68点人脸关键点定位_人脸68个关键点
作者:2023面试高手 | 2024-02-19 17:53:46
赞
踩
人脸68个关键点
人脸对齐/人脸关键点基本概念
根据输入的人脸图像,自动定位出面部关键特征点,如眼睛,鼻尖,嘴角点,眉毛以及人脸各部件轮廓点等
想要表示形状信息时,使用的是点的集合(向量)
2D人脸:5 / 21 / 29 / 68 / 96 / 192等等
3D人脸:1000 / 8000点
评价人脸关键点性能的指标:
NME:Normalized mean error (预测点和基准点之间的欧式距离)
CED: Cumulative Errors Distribution (CED) curve
NME的计算公式
为了去掉因为脸的大小而带来的误差,所以进行标准化。
d i o d_{io}
d
i
o
的值通常使用1:两外眼角间距离 2: 人脸外接矩形对角线长度
CED是结合NME绘制出来的曲线。其中横坐标表达当前的偏差值,而纵坐标表达了满足当前偏差值的图片的数量
人脸关键点方法(传统方法 / 深度学习方法)
传统方法
基于形状学习的模型:ASM(点分布模型(主动形状模型Active Shape Model)),AAM(Active Appearance Model 产生式模型)
基于级联回归学习的模型:CPR
首先会对人脸的特征点进行建模。这个建模的过程就是人脸模型构造的过程。人脸模型构造如下:
首先会选择一个基准的图片。利用这个基准图片作为参照,将训练集中的图片以这个基准图片为基准进行相应的变换(尺度上的放缩/旋转),然后我们就可以拿到一个处理过的训练集合。
根据在训练集中人脸关键点标定的位置,我们对每一个点来进行特征提取。对于点的特征提取操作是这样的:以这个关键点为中心提取它的一个局部图像区域。然后对这个局部的图像区域进行特征提取(特征可以使用颜色,纹理等等)。于是就可以利用这个点的领域信息来对这个点进行表示。
然后进行点搜索。 假设有五个关键点,我们就会拿到5个特征向量。于是在给定一个测试集中的图片时,我们会先进行一个关键点的搜索。在初步搜索的时候,我们会选择这5个关键点中的某几个点,如只选择眼睛作为最开始点搜索的对象。如何进行点搜索呢?对测试图片中的每一个点计算特征向量,会得到一组向量。然后利用最开始的基准5个特征向量与这一组向量去计算相似度,就能找到最佳匹配的一些点,而这些点就是我们想找到的人脸关键点。
接着对人脸进行对齐。让测试集的人脸和我们的基准人脸尽可能相似。这个过程也包含了一系列的旋转放缩。人脸对齐是依赖关键点的,当我们拿到关键点后,通过仿射变换就可以对人脸对齐。
然后再对其他点来进行定位。我们由于这里已经和基准人脸进行对齐了,所以我们通过基准人脸就可以估算出在测试集人脸中想要定位的其他点的大致的位置(也就是基准模型中该点的位置)。有了这个大致位置,我们在变形的图片中这个点的领域/周边去寻找我们想要拿到的最终的关键点的位置。
(最后这两步有疑惑,关于变形测试集人脸的原因)
级联回归是一种迭代的算法。
首先需要初始化人脸关键点的坐标
S i S_i
S
i
:利用平均人脸来初始化。平均人脸就是对训练集中人脸关键点的坐标求平均。
然后对当前人脸图像进行特征提取(颜色/纹理/高层语意特征等等),利用提取出来的特征的来回归出我们最终的人脸关键点的位置和当前计算出来的人脸关键点的偏差
Δ s \Delta s
Δ
s
。利用其对之前计算出来的关键点进行调整,得到下一轮所使用的计算关键点。
级联回归的三个问题:
1.如何表示这个关键点
S i S_i
S
i
(使用向量来表示)
2: 要提取什么样的特征:
ϕ \phi
ϕ
操作(LBP:Local Binary Pattern,局部二值模式。是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点。它是首先由T. Ojala, M.Pietikäinen, 和D. Harwood 在1994年提出,用于纹理特征提取。而且,提取的特征是图像的局部的纹理特征; / HOG :方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成特征。)
3:如何利用这个特征来得到
Δ s \Delta s
Δ
s
(通过一个回归函数
r t r_t
r
t
来进行计算,这个回归函数的输入是我们提取出来的特征
S t + 1 = S t + r t ( ϕ ( I , S t ) ) S_{t+1} = S_{t} + r_t(\phi (I,S_t) )
S
t
+
1
=
S
t
+
r
t
(
ϕ
(
I
,
S
t
)
)
)
模型收敛的标准 就是
Δ s \Delta s
Δ
s
不再变化或者变化范围很小
深度学习的方法
多级回归(DCNN / DCNN-Face++: 由粗到细进行求参数,然后取这些值的平均值) 多任务(TCDCN:同时完成了人脸属性和人脸关键点定位这两个不同的任务 / MTCNN: 通过三个级联的网络完成了人脸检测和关键点定位)
直接回归模型(Vanilla CNN:特征提取之后对其进行分析,发现特征具有类别。将特征进行分类,然后这些不同类别的特征分别去预测一个关键点) / 热力图(DAN:将每个关键点变成一个区域,中心的关键点定义为1,边缘一圈定义为0,关键点到边缘之间的距离定义为均匀分布或者高斯分布)
人脸对齐算法之3D脸
3D人脸要预测出的关键点的数量要远多于2D人脸(稠密的点)
3D人脸多余2D人脸的就是:需要用到深度信息
比较常用的是3D mesh / UV图(UV图描述了3D人脸的坐标信息 / 因为对于3D人脸的标注是很麻烦的8000个点,如果从2D就直接能映射出来3D的结构就很方便)
2D图片 -> UV图(利用3D人脸的UV图我们就可以定义一个3D人脸网络监测结构:输入2D图,输出UV图,中间的网络结构就是一个Enconder->Decoder过程)
目前主流的方法:Dense Face Alignment / DenseReg / FAN / 3DDFA / PRNet
人脸关键点常用的数据集
300W-LP数据集 / Dlib库(利用这个库能检测出人脸位置,并且可以完成一个68点的人脸定位)只是去验证其合理性,可以用这个库检测,但是如果要做一个工程型人物就需要人工标注人脸。
人脸关键点定位问题挑战及解决思路
环境变化(暗光/强光) -> 数据增强(添加对光照的变化/对图像一些扭曲的变化 / 图像的旋转等等)
姿态的变化(大尺度姿态变化如侧脸,使人脸关键点被挡住) -> 对姿态进行分类,不同的姿态采用不同的回归模型 人脸对齐(在网络中加入一个分支完成人脸对齐和矫正)
表情的变化(睁眼/闭眼导致关键点重合) -> 数据增强(利用GAN网络去生成一些不同的表情)
遮挡问题(一部分关键点消失/利用点和点之间的关联性来找出遮挡住的关键点 真假关键点,假就是消失掉的关键点,可以加一个标记位看该点是否可见)-> 使用3D人脸,对我们的人脸加一个深度信息来解决相关问题,如PRNet 编解码网络 热力图 也可以去优化主干网络
稠密点(3D人脸)
采用SENet / ResNet来搭建网络
姿态估计:定位出人体中非常重要的骨骼点,也是一个点回归问题
服装关键点定位:用于FashionAI 流行趋势的预测(比较流行的方面)
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/2023面试高手/article/detail/116100
推荐阅读
article
es6
箭头
函数
_
箭头
函数
与
function
的
区别...
箭头
函数
使用几个注意点1.
函数
体内
的
this对象,就是定义时所在
的
对象,而不是使用时所在
的
对象。2.不可以当做构造
函数
,...
赞
踩
article
前后
端
交互_bs
架构
前后
端
的
数据通信
...
ajax (js)_bs
架构
前后
端
的
数据通信
bs
架构
前后
端
的
数据通信
...
赞
踩
article
Python
数据分析
——
matplotlib
快速
绘图
_
python
如何
使用
matplotlib
画...
matplotlib
采用面向对象的技术来实现,因此组成图表的各个元素都是对象,在编写较大的应用程序时通过面向对象的方式使...
赞
踩
article
python
+OpenCv+
dlib
实现
人脸
68个
关键点
检测
并标注_
人脸
检测
68个
关键点
基于
人脸
的
解...
寒假跟着老师做科技部
的
项目,主要做微表情
的
检测
。刚开始一头雾水,在研究了两天之后,渐渐找到了一点感觉。 ——这里主要实现...
赞
踩
article
LabVIEW
快速实现
OpenCV
DNN(
YunNet
)的
人脸
检测(含源码)_
labview
人脸
识...
人脸
检测是计算机视觉领域的一个重要问题,它是很多应用(如
人脸
识别
、
人脸
表情识别等)的必要步骤。YuNet 是一种高效的人...
赞
踩
article
Python
Turtle
初学者指南_
turtle
.
bgcolor
...
了解
Python
turtle
库
turtle
是一个预装的
Python
库,它使用户能够通过为他们提供虚拟画布来创建图片...
赞
踩
article
1
、什么是
箭头
函数
...
目录基础语法
箭头
函数
与function的区别
1
、this的指向:2、构造
函数
3、变量提升什么时候不该使用
箭头
函数
1
、在对...
赞
踩
article
Python
、QT的
人脸识别
项目_
cv
:
:
facedetectoryn
:
:
create
...
FaceRecognitionMain_ui.py== 这个文件是你通过
Python
自带的QT设计工具设计了一个后缀为....
赞
踩
article
Unity
3D
对象
显示有
透明度
的
纹理
(图像或视频) ---- 靠谱可用_
unity3d
纹理
半透明
...
1 问题背景有一个
3D
游戏
对象
(再次强调,是
3D
对象
,不是2D的UI喔),如Cube, Plane啥的,需要贴上一张图,...
赞
踩
article
Linux
环境下实现
MariaDB
数据库
多
实例
...
数据库
多
实例
实验,也是一台设备的
数据库
开放三个端口供连接1、计划开放端口3306、3307、33082、为好区分,新建目...
赞
踩
article
antd
中封装
Modal
的几种方式
_
antd
modal
...
1 利用
Modal
.method.特点:无需考虑visible。抛出数据方便基本使用:1新建一个Dilaog.js。核心...
赞
踩
article
[
Swift
]
LeetCode336
.
回文
对 |
Palindrome
Pairs
...
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqing...
赞
踩
article
cherry
键盘
alt
+
tab
无法切换窗口
的
问题解决_樱桃
键盘
alt
tab
切换不了桌面...
不同
的
樱桃
键盘
可能方法不一样,下面是两个方案,本人
的
键盘
是MX6.0 G80 3930红轴,用
的
方法一解决就了,方法二不...
赞
踩
article
手机
python
下载
安装教程,
python
手机
版
下载
官方_
pip
install
pygame
下载
手...
adb是安卓的一种组件,也可以直接在安卓当中使用,通过
python
使用的adb的操作,打个比方,a会吃饭,要吃饭,然后b...
赞
踩
article
KITTI
数据
集转为LVI-
SAM
使用格式_
lvi
-
sam
lvi
-
sam
在
kitti
数据
集...
KITTI
官网下载:真值:Download odometry ground truth poses (4 MB)标定参数...
赞
踩
article
Python
源码30:
海龟
画图
turtle
画紫色的小熊_
python
绘图
工具源码...
此外,
turtle
模块还提供了一些高级功能,例如创建自己的
绘图
函数、保存和加载
绘图
文件等等。
turtle
模块可以让您轻松...
赞
踩
article
Matplotlib
绘图基础详细教程
_
matplotlib
画图
...
Matplotlib
数据可视化文章目录
Matplotlib
数据可视化1.
画图
的基本步骤1.1一步一步看3.散点图条形图...
赞
踩
article
游戏
角色
口型
老是
对不上
?这里有
一个
高效
解决方案
_
unity
口型
...
https://www.fgba.net/sitemap.xml_
unity
口型
unity
口型
...
赞
踩
article
QT
属性
表控件:新增
自定义
属性
类型
_
qtpropertybrowser
自定义
...
QT
属性
表支持设置的
属性
时根据QVariant确定的,但是qt
属性
表并没有为每一种QVariant
类型
实现一种
属性
管理器...
赞
踩
article
神经网络
分类
四种
模型
,
神经网络
分类
特点
区别
...
混沌理论是指描述具有混沌行为的非线性动力学系统的基本理论、概念、方法,它把动力学系统的复杂行为理解为其自身与其在同外界进...
赞
踩
相关标签
es6箭头函数
服务器
网络
http
python
数据分析
matplotlib
opencv
dlib
dnn
计算机视觉
人工智能
深度学习
javascript
qt
开发语言
unity
linux环境切换数据库实例
react.js
vue.js
swift
计算机外设
ubuntu
3d