一、人脸对齐基本概念

人脸对齐通过人脸关键点检测得到人脸的关键点坐标,然后根据人脸的关键点坐标调整人脸的角度,使人脸对齐,由于输入图像的尺寸是大小不一的,人脸区域大小也不相同,角度不一样,所以要通过坐标变换,对人脸图像进行归一化操作。人脸关键点检测有很多算法可以使用包括:ASM、AAM、DCNN 、TCDCN 、MTCNN 、TCNN、TCNN等,这里就不详细介绍,主要说一下得到人脸关键点之后如何进行人脸对齐,使所有人脸达到归一化效果,该过程如下图所示:

二、3D空间中的变换方式

欧氏变换:最简单的变换,它保持了向量的长度和夹角,相当于把一个刚体原封不动的移动或者旋转。

相似变换:比欧氏变换多一个自由度,它允许对物体进行均匀的缩放。

防射变换:又叫正交投影,经过变换后,立方体不再是方的,但是各个面仍是平行四边形。

射影变换:最一般的变换。例如使用相机随意拍摄一个方形的地板砖,在照片中的样子,它不再是方的,由于远近不同,甚至不再是平行四边形。如果焦距无穷远,则为仿射变换。

变换方式 矩阵 不变性质

欧氏变换

6dof

长度
夹角
体积

相似变换

7dof

体积比

仿射变换

12dof

平行性
体积比

射影变换

15dof

接触平面的相交和相切

三、对齐在图像领域的应用

(1)、人脸器官定位、器官跟踪。通过人脸对齐,我们能够定位到人脸的每个部件,提取相应的部件特征。

(2)、表情识别。通过人脸对齐后,我们能够利用对齐后的人脸形状分析人脸的表情状态。

(3)、人脸漫画/素描图像生成。通过人脸对齐后,我们能够进行人脸漫画和素描生成。

(4)、虚拟现实和增强现实。通过人脸对齐后,我们能够做出很多好玩的应用

(5)、人脸老化、年轻化、年龄推断。特征融合/图像增强。通过人脸对齐后,我们能够有效提取人脸特征,并分析人脸年龄、人脸老化等。

(6)、3D卡通。通过人脸对齐能够进行3D卡通模拟。

(7)、人脸识别、人脸比对等相关领域

四、人脸对齐在开源人脸识别中的应用

该项目是阿里云视觉智能开放平台的人脸1:N的开源替代,项目中使用的模型均为开源模型,项目支持milvus和proxima向量存储库,并具有较高的自定义能力。其次项目使用纯Java开发,免去使用Python带来的服务不稳定性,支持docker一键部署、支持Java客户端,restful接口等。

项目的gitee地址:https://gitee.com/open-visual/face-search

对齐工具:

https://gitee.com/open-visual/face-search/blob/master/face-search-core/src/main/java/com/visual/face/search/core/utils/AlignUtil.java

人脸识别中的重要环节-对齐之3D变换-Java版(文末附开源地址)的更多相关文章

  1. 揭秘人脸对齐之3D变换-Java版(文末赋开源地址)

    一.人脸对齐基本概念 人脸对齐通过人脸关键点检测得到人脸的关键点坐标,然后根据人脸的关键点坐标调整人脸的角度,使人脸对齐,由于输入图像的尺寸是大小不一的,人脸区域大小也不相同,角度不一样,所以要通过坐 ...

  2. 阿里云人脸1:N搜索开源版-Java版(文末附开源地址)

    ​ 一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...

  3. 阿里云视觉智能开放平台的人脸1:N搜索的开源替代-Java版(文末赋开源地址)

    ​ 一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...

  4. 机器学习:PCA(人脸识别中的应用——特征脸)

    一.思维理解 X:原始数据集: Wk:原始数据集 X 的前 K 个主成分: Xk:n 维的原始数据降维到 k 维后的数据集: 将原始数据集降维,就是将数据集中的每一个样本降维:X(i) . WkT = ...

  5. (转载)人脸识别中Softmax-based Loss的演化史

    人脸识别中Softmax-based Loss的演化史  旷视科技 近期,人脸识别研究领域的主要进展之一集中在了 Softmax Loss 的改进之上:在本文中,旷视研究院(上海)(MEGVII Re ...

  6. 深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用

    深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用 周翼南 北京大学 工学硕士 373 人赞同了该文章 基于深 ...

  7. 浅谈人脸识别中的loss 损失函数

    浅谈人脸识别中的loss 损失函数 2019-04-17 17:57:33 liguiyuan112 阅读数 641更多 分类专栏: AI 人脸识别   版权声明:本文为博主原创文章,遵循CC 4.0 ...

  8. atitit.人脸识别的应用场景and使用最佳实践 java .net php

    atitit.人脸识别的应用场景and使用最佳实践 java .net php 1. 人脸识别的应用场景 1 2. 框架选型 JNI2OpenCV.dll and JavaCV 1 3. Url ap ...

  9. atitit.人脸识别的应用场景and使用最佳实践 java .net php

    atitit.人脸识别的应用场景and使用最佳实践 java .net php 1. 人脸识别的应用场景1 2. 标准化的api1 3. 框架选型 JNI2OpenCV.dll and JavaCV ...

随机推荐

  1. Hbase(二)【shell操作】

    目录 一.基础操作 1.进入shell命令行 2.帮助查看命令 二.命名空间操作 1.创建namespace 2.查看namespace 3.删除命名空间 三.表操作 1.查看所有表 2.创建表 3. ...

  2. Linux 设置时区

    一.查看和修改Linux的时区 1. 查看当前时区命令 : "date -R" 2. 修改设置Linux服务器时区方法 A命令 : "tzselect" 方法 ...

  3. android studio 生成aar和引用aar

    以android studio 2.0正式版为例 1.aar包是Android studio下打包android工程中src.res.lib后生成的aar文件,aar包导入其他android stud ...

  4. gen already exists but is not a source folder. Convert to a source folder or rename it 的解决办法

    1. Right click on the project and go to "Properties" //鼠标右键点击项目,然后选中Properties   2. Select ...

  5. Undefined symbols for architecture arm64:问题

    Undefined symbols for architecture arm64: "_sqlite3_prepare_v2", referenced from: +[HMJSch ...

  6. 最基础前端路由实现,事件popstate使用

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 为什么volatile能保证有序性不能保证原子性

    对于内存模型的三大特性:有序性.原子性.可见性. 大家都知道volatile能保证可见性和有序性但是不能保证原子性,但是为什么呢? 一.原子性.有序性.可见性 1.原子性: (1)原子的意思代表着-- ...

  8. typescript接口---interface

    假如我现在需要批量生产一批对象,这些对象有相同的属性,并且对应属性值的数据类型一致.该怎么去做? 在ts中,因为要检验数据类型,所以必须对每个变量进行规范,自然也提供了一种批量规范的功能.这个功能就是 ...

  9. <转>libevent基本使用demo

    这篇文章介绍下libevent在socket异步编程中的应用.在一些对性能要求较高的网络应用程序中,为了防止程序阻塞在socket I/O操作上造成程序性能的下降,需要使用异步编程,即程序准备好读写的 ...

  10. (转)synchronize线程同步例子

    在CSDN开了博客后,一直也没在上面发布过文章,直到前一段时间与一位前辈的对话,才发现技术博客的重要,立志要把CSDN的博客建好.但一直没有找到好的开篇的主题,今天再看JAVA线程互斥.同步的时候又有 ...