人脸对齐的算法是我本科阶段的毕业设计课题,从最初的一脸迷茫到最后完成毕设,两个月的时光,恭喜自己顺利完成了毕业设计,在过程中,更是不能缺少指导老师以及学长们给予的帮助。衷心感谢!


  • 人脸对齐的目的是对人脸进行归一化,工作核心是定位面部关键点。本博客中讨论的SDM是一种人脸对齐的优化算法。利用SIFT算法计算人脸关键点处的特征点描述子,在训练过程中学习多组特征点集的下降方向,使得初始化的特征点集向标记特征点集收敛。

宿佳宁老师的《人脸对齐算法研究》中提到:图像采集、人脸检测、人脸对齐、分类识别四个部分组成了人脸识别的工作过程。

其中人脸对齐作为人脸识别的一个组成部分,将会影响整个流程的工作效率和正确率,所以高效率的人脸对齐算法是研究的主要目的。
人脸对齐算法的研究工作存在很多难点,人脸图像易受外界因素影响,这些因素大致有以下几点:面部遮挡、光照变化、复杂的背景、采集图像时的拍摄角度、面部表情变化。


在研究过程中采集面部轮廓、眉毛、鼻子、眼睛、嘴唇的形状作为关键点集合,包含68个关键点,其中17个点代表人脸轮廓,10个点代表眉毛形状,9个点代表鼻子形状,12个点代表眼睛形状,20个点代表嘴唇形状,如下图所示:


  • 过程中的数学建模的部分就不细写了,在很多老师的论文中都有数学建模的过程以及其原理。
  • 在研究过程中,我将整个SDM算法分为了三个框架:图像预处理框架、训练框架、测试框架

预处理

为了方便后期的工作,先将样本集归一化,这样可以大大的提高训练的效率。对载入的图像进行人脸检测,并对人脸进行裁剪,将人脸部分裁剪为200*200大小的图片;同时,也对图像对应的标记关键点集做变化,生成对应大小的关键点集。下图是原样本集的图像截图:

经过预处理后的截图为:

(在研究初期我并没有对样本集进行预处理,导致我在研究过程中一次次的绕弯,但是走不到终点。。。对此,感觉自己被自己蠢哭了。。hhhhhh)

训练

a.求偏差:进入训练框架后,首先需要计算当前特征点集(当前形状)与标记特征点集(目标形状)的偏差;
b.计算特征点描述子:载入当前样本图片和关键点集,通过SIFT计算关键点的描述子;
c.计算回归器并保存数据:将a和b的结果传入实现最小二乘法/梯度下降法的函数,求解出使得目标函数(损失函数)取最小值时的数据(回归器)并保存。
不过此处我建议使用梯度下降法,因为我在最初的时候是使用最小二乘法,也可能是我实现过程中的缺陷,每运行一次训练,就需要很大的时间成本,而且过程中出现了很多大大小小的bug。所以我建议采用matlab一起结合,用matlab实现梯度下降法,大大减小了时间成本

测试

下面直接放上测试的结果:

  • 首先是简化的训练样本集和测试集(设置了一个卡通人脸样本集的训练,算法的原理和流程和SDM算法一模一样,唯一不同的是卡通人脸样本的特征点较少,证明SDM算法的可行性):

  • 人脸样本集:在研究过程中,人脸样本集的测试我分了几种情况:1.遮挡测试;2.角度测试;3.表情测试;4.光照测试;5.图片质量测试。在本博客中就不一一展示,只放出几张测试图。


    最后是为了测试算法的真实性,指导老师要求测试本人的一张照片,这个结果还存在偏差,并不是最优结果,还需要再进行迭代收敛。


好了,到这里就结束了这次人脸对齐算法的博客更新。很多具体的细节都没有写出来,如果有疑问的博友,可以留言;还有,因为只是自己的研究,所以过程中可能也有错误的观点,希望各位博友指出并给出建议,感谢!

SDM人脸对齐算法研究相关推荐

  1. SDM人脸对齐系列一:数据预处理

    人脸对齐是人脸识别系统中很重要的一个环节,SDM是传统人脸对齐算法中性能较为不错的一种,在今天这个深度学习如火如荼的时代,SDM依旧具有一定的优势.SDM相比深度网络具有模型小,速度快等优点.尽管SD ...

  2. 机器学习--详解人脸对齐算法SDM-LBF

    https://www.cnblogs.com/Anita9002/p/7095380.html 引自:http://blog.csdn.net/taily_duan/article/details/ ...

  3. 人脸对齐算法调研(Face Alignment)

    人脸对齐算法调研(Face Alignment) 转载自 https://zhuanlan.zhihu.com/p/101250334 一.人脸对齐的定义与作用(引用): https://blog.c ...

  4. 人脸检测 和 人脸对齐算法-Dlib-Opencv-MTCNN

    人脸检测 和 人脸对齐算法算法-Dlib-Opencv-MTCNN 1.Dlib人脸检测 2.Opencv人脸检测 3.MTCNN人脸检测 1.Dlib人脸检测 2.Opencv人脸检测 3.MTCN ...

  5. 重磅!清华商汤开源CVPR2018超高精度人脸对齐算法LAB

    清华&商汤开源超高精度人脸对齐算法LAB 同时发布含10000张人脸的多属性人脸关键点数据集 该算法来自CVPR2018论文<Look at Boundary: A Boundary-A ...

  6. 人脸对齐算法常用评价标准总结

    转载请注明作者和出处: http://blog.csdn.net/john_bh/ 文章目录 1. I O N 和 I P N ION和IPN ION和IPN 2. M N E MNE MNE (th ...

  7. 3d人脸对齐代码matlab,重磅!清华商汤开源CVPR2018超高精度人脸对齐算法LAB

    清华&商汤开源超高精度人脸对齐算法LAB 同时发布含10000张人脸的多属性人脸关键点数据集 该算法来自CVPR2018论文<Look at Boundary: A Boundary-A ...

  8. 人脸对齐之SDM / 人脸对齐之LBF / 人脸实时替换

    人脸对齐之SDM(Supervised Descent Method) 人脸对齐之LBF(Local Binary Features) 人脸识别技术大总结(1):Face Detection & ...

  9. 基于正交拉普拉斯脸的人脸识别算法研究

    直觉上,自然存在的人脸数据可以由支持的概率分布采样生成或者近似于环绕空间的子流线型分布.据此,我们提出了一种基于外观的人脸识别算法,称为正交拉普拉斯脸(Orthogonal Laplacianface ...

最新文章

  1. AutoLayout全解
  2. CRM系统开发经验谈
  3. 【案例分享】无线唤醒技术在灌溉系统上的应用案例
  4. MySQL 添加where 1= 1 是否会引起索引失效
  5. 如何高效检查一个数组中是否包含某个值?
  6. paip.c++ qt __gxx_personality_sj0 __gxx_personality_v0问题的解决
  7. 焕新:CANape 19真香~
  8. 和秋叶一起学PPT之段落排版与字体(课时四、五)
  9. 一系列自动化测试的开源项目介绍
  10. 运营简史:一文读懂互联网运营的20年发展与演变
  11. 如何保障企业业务流程的落地实施?
  12. 如何使用SQL对数据进行分析和可视化
  13. Apache2.2.22 + PHP5.2.17 + MySQL5.5.22 快速搭建部署PHPWind开源论坛
  14. 二叉树(Binary Tree):先序遍历、中序遍历、后序遍历和层次遍历
  15. 计算机网络冲刺串讲,计算机应用基础串讲冲刺讲义(二)
  16. Firefox旧版本及插件安装下载
  17. 新书推荐 |《AI安全之对抗样本入门》
  18. 元宇宙务“虚”,网易智企务“实”
  19. 六界仙尊h5服务器维护多久,六界仙尊H5游戏常见问题说明
  20. 程序员面试基本分为两大步骤

热门文章

  1. 安徽身份证网上办理最全攻略
  2. JS基础-循环精灵图
  3. ★★★Win10切换本地账户(最全版本)
  4. 树莓4派开机动画_最贵的树莓派单板计算机!8GB内存单板树莓派4上市,售价532元...
  5. maven加载依赖时总是Updating [central] https://repo.maven.apache.org/maven2
  6. 老板喜欢的高绩效哪里来?
  7. NYOJ71——独木舟上的旅行(贪心)
  8. 情人节快乐 2008 追赶情人的情人节
  9. 计算机打字总是会返回到桌面,电脑打字的时候经常回到桌面是什么原因?
  10. Linux -- 如何修改 Linux 虚拟机 SNMP 的团体名