人脸特征点定位与检测

前两周研究了一点关于人脸表情识别的文章,很多方法都是基于在提取人脸特征点的基础上完成的,然后利用网格模型或者形变模型对特征点进行分析和检测以及分类的方法实现对人脸表情的识别,可以看出人脸关键点(特征点)的提取与定位在人脸表情识别占有很重要的地位,决定画1-2周时间研读一些人脸关键点提取的文章,本周主要调研了人脸特征点检测、定位和人脸校准的算法:

人脸特征点检测的方法主要看了ASM(Active Shape Model)算法,是基于点分布模型PDM的算法,在近几年的CVPR很多文章有介绍,主要也是包括训练和搜索两个部分,训练的样本只需要包括人脸区域就可以了,不需要考虑图像尺寸问题,但是必须要手动记录每个训练样本的K个特征呢个点,主要是记录关键特征点的位置坐标信息,保存在文本文件中,可以考虑使用编码来实现。然后是构建训练集的特征向量,比如N个训练样本,就得到了N个特征向量,构建好特征向量后将形状归一化,目的就是在于对前面的手动标定的人脸特征点进行对齐,消除不同角度、不同距离、不同姿态等外界因素造成的非形状干扰,从而使得模型更有效,一般该步骤都是采用的是Procrustes方法进行归一化,主要也是将点分布模型进行适当的平移、缩放等变换,在不改变分布模型的情况下得到同一个点分布模型。Procrustes方法也是一种求解变换矩阵的方法,得到最后的平均人脸模型,然后将模型进行PCA处理,选取前几个特征向量。然后就为每个特征点构建局部特征,主要也是在特征点上选取m个像素得到特征向量,对向量进行灰度求导得到局部纹理。得到纹理均值和方差,这样一个特征点的新特征与其训练好的局部特征之间的相似性度量就可以用马氏距离来表示。第二步就是ASM的搜索,主要也是通过仿射变换旋转缩放操作计算每个特征点的新位置。整个ASM算法操作思路比较清晰。

另外也看了ECCV2014上哦人脸检测和校准的文章以及CVPR2014上面利用局部二值特征进行人脸配准的算法。前一篇文章主要级联检测器进行分类,很多方法都用到了前人的方法,包括回归函数,特征点回归算法还有state-of-the-art方法都是直接采用的,但是从检测效果来看非常不错,完全弄懂该算法,还需要学习以前的基础算法,主要是机器学习相关的基本算法的实现和流程。前面一篇文章的方法在后面的文章中也有介绍,第二篇文章的应用价值很高,属于现行判别形状回归的方法,主要介绍线性回归和回归树(什么是回归树还不知道?),整体思路 首先对图片初始化
1 个shape(这个shape 就是一组点,目标是将它们移动到相应的眼睛鼻子嘴巴上)然后基于这个Shape计算其每个点的周围像素,或者两shape两个点中间像素的值(为了对光照鲁棒,一般是两个点像素的差值),这个特征记做Features。

随后计算当前shape和人工标记好shape 的差异Delta_Shape , 然后训练一个函数y = f(x) , 使 delta_Shape = f(Features)。最后将这个Delta_Shape 加上初始的Shape 就是最终要求的人脸形状。这个过程就是该方法的Face Alignmeng核心过程。所谓配准就是计算这个增量。训练就是学习特征与这个增量的关系。本文的方法是对这个过程进行了级联,从而降低了每次配准的难度。将上文最后的结果代入第一步循环10次。就是整体的过程。下图是整个思路:

文章对于如何提取一个landmark周围的像素点没有说明。应该是先求得当前形状和平均形状之间的旋转和尺寸变换后,在用变换后的offset去像素点(在One Millisecond Face Alignment with anEnsemble of Regression Trees中有详细说明)。

参考文献:

[1] Joint Cascade Face Detectionand Alignment.ECCV 2014.

[2] Face Alignment at 3000 FPS viaRegressing Local Binary Features.CVPR 2014.

[3] Cascade Pose Regression.CVPR2010.

时间: 2024-09-28 19:28:24

人脸特征点定位与检测的相关文章

Android 人脸特征点检测(主动形状模型) ASM Demo (Active Shape Model on Android)

目前Android平台上进行人脸特征识别非常火爆,本人研究生期间一直从事人脸特征的处理,所以曾经用过一段ASM(主动形状模型)提取人脸基础特征点,所以这里采用JNI的方式将ASM在Android平台上进行了实现,同时在本应用实例中,给出了几个其他的图像处理的示例. 由于ASM (主动形状模型,Active Shape Model)的核心算法比较复杂,所以这里不进行算法介绍,我之前写过一篇详细的算法介绍和公式推导,有兴趣的朋友可以参考下面的连接: ASM(主动形状模型)算法详解 接下来介绍本应用的

Tensorflow实现Mask R-CNN实例分割通用框架,检测,分割和特征点定位一次搞定(多图)

Mask R-CNN实例分割通用框架,检测,分割和特征点定位一次搞定(多图) 导语:Mask R-CNN是Faster R-CNN的扩展形式,能够有效地检测图像中的目标,同时还能为每个实例生成一个高质量的分割掩码. 对Facebook而言,想要提高用户体验,就得在图像识别上做足功夫. 雷锋网此前报道<Facebook AML实验室负责人:将AI技术落地的N种方法>(上 ,下篇)就提到,做好图像识别,不仅能让Facebook的用户更精准搜索到想要的图片,为盲人读出图片中包含的信息,还能帮助用户在

基于人体部件小边特征的多行人检测和跟踪算法

基于人体部件小边特征的多行人检测和跟踪算法 detection tracking edgelet feature multiple occluded human Bayesian combination 读"B. Wu, R. Nevatia. Detection and tracking of multiple, partially occluded humans by Bayesian combination of edgelet based part detectors[J],IJCV,7

人脸识别完整项目实战(14):实时人脸特征点标定程序设计

一.前言 本文是<人脸识别完整项目实战>系列博文第14章<实时人脸特征点标定程序设计>,本章内容详细介绍Win10 环境下,基于Visual Studio 2015 + Opencv + Dlib开发环境,如何实现实时视频流人脸特征点标定程序的设计.本文内容已经同步录制成视频课程,课程地址:<人脸识别完整项目实战> 二.正文 2.1 界面设计 人脸特征点标定程序沿用之前的界面设计,新增人脸特征点标定按钮,界面设计如下图所示: 2.2 执行结果 人脸特征点标定程序运行后,

opencv实现人脸,人眼,微笑检测

1.首先实现人脸检测 1 import cv2 2 3 img = cv2.imread("people.jpg",1) #读入图像 4 #导入人脸级联分类器引擎,“.xml”文件里包含了训练出来的人脸特征 5 face_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml') 6 #用人脸级联分类器引擎进行人脸识别,返回的faces为人脸的坐标列表 7 #sc

人脸特征

---恢复内容开始--- 人脸识别中最核心的部分就是特征表示,人脸识别的发展史更多是人脸特征的发展. 优秀的人脸特征必须满足以下条件: 对类间变化十分敏感,如在人脸检测时,能非常有效地区分出背景区域和人脸区域,在识别时,能对不同人的细微区别十分敏感: 对类间变化具有一定的不变性,要求特征对人脸角度.光照变化.表情变化等具有一定的不变性. 人脸特征分类: 像素灰度值特征:最简单的人脸特征,包含全部人脸信息. 有监督特征:Haar, LBP, SIFT, HOG, Gabor, TPLBP, FPL

『cs231n』图像定位与检测

图像处理任务 分类,定位,检测,图像分割辨析: 定位: 每张图片只有单个对象(可以有多个类),后面有提到,一般只要是固定个对象即可,不一定是一个(人体姿势判断部分)由于实现相对简单,所以能划分为定位任务时尽量划分为定位任务 检测: 每张图片可以有多个对象和多个类 分割: 不是简单的画框,而是围出轮廓,本节不予讨论 图像分类&定位 定位任务引入 和分类任务输出一个代表类标签的向量不同,定位任务输出的是描述框的四个数字,而网络评估不使用准确率而使用IOU.[注]IOU定义如下: 矩形框A.B的一个重

对物联网操作系统特征和定位的思考

对物联网操作系统特征和定位的思考 在周末的上午,坐在五道口Starbucks咖啡厅里,慢慢啜着稍带苦涩的冰美式,嚼着偶尔从吸管里吸上来的焦糖粒,目光停留在玻璃窗外来回穿梭的车辆上,心绪散漫-很久没有这么悠闲和放松了.记得第一次喝星巴克的美式(Americano)咖啡,貌似是2004年,在中东的巴林做项目,跟客户交流的时候.当时也是周末,交流地点就定在一个星巴克咖啡厅里.有两个客户,名字都很阿拉伯化,一个叫做Ahmad(貌似翻译为艾哈迈德),另外一个叫做Mohamod(莫哈默德),分别是巴林电信的

万张PubFig人脸数据实现基于python+OpenCV的人脸特征定位程序(1)

在最近刷今日头条以及其他媒体软件时,经常会发现一些AI换脸的视频,于是我想,可不可以自己实现一个可以进行人脸识别的软件程序.我的具体流程是先配合python网络爬虫先进行万张PubFig人脸公共图片的爬取,分析出图片具体特征,然后再配合机器学习的OpenCV视觉库进行软件的构建.有一篇Github的文章讲得很详细,大家可以参考:https://github.com/Hironsan/BossSensor. 前几篇博客先向大家讲解如何爬取PubFig人脸数据,然后本片的话先用一些动漫人脸图片,向大