人脸识别中的重要环节-对齐之3D变换-Java版(文末附开源地址)
一、人脸对齐基本概念
人脸对齐通过人脸关键点检测得到人脸的关键点坐标,然后根据人脸的关键点坐标调整人脸的角度,使人脸对齐,由于输入图像的尺寸是大小不一的,人脸区域大小也不相同,角度不一样,所以要通过坐标变换,对人脸图像进行归一化操作。人脸关键点检测有很多算法可以使用包括: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
对齐工具:
人脸识别中的重要环节-对齐之3D变换-Java版(文末附开源地址)的更多相关文章
- 揭秘人脸对齐之3D变换-Java版(文末赋开源地址)
一.人脸对齐基本概念 人脸对齐通过人脸关键点检测得到人脸的关键点坐标,然后根据人脸的关键点坐标调整人脸的角度,使人脸对齐,由于输入图像的尺寸是大小不一的,人脸区域大小也不相同,角度不一样,所以要通过坐 ...
- 阿里云人脸1:N搜索开源版-Java版(文末附开源地址)
一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...
- 阿里云视觉智能开放平台的人脸1:N搜索的开源替代-Java版(文末赋开源地址)
一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...
- 机器学习:PCA(人脸识别中的应用——特征脸)
一.思维理解 X:原始数据集: Wk:原始数据集 X 的前 K 个主成分: Xk:n 维的原始数据降维到 k 维后的数据集: 将原始数据集降维,就是将数据集中的每一个样本降维:X(i) . WkT = ...
- (转载)人脸识别中Softmax-based Loss的演化史
人脸识别中Softmax-based Loss的演化史 旷视科技 近期,人脸识别研究领域的主要进展之一集中在了 Softmax Loss 的改进之上:在本文中,旷视研究院(上海)(MEGVII Re ...
- 深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用
深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用 周翼南 北京大学 工学硕士 373 人赞同了该文章 基于深 ...
- 浅谈人脸识别中的loss 损失函数
浅谈人脸识别中的loss 损失函数 2019-04-17 17:57:33 liguiyuan112 阅读数 641更多 分类专栏: AI 人脸识别 版权声明:本文为博主原创文章,遵循CC 4.0 ...
- atitit.人脸识别的应用场景and使用最佳实践 java .net php
atitit.人脸识别的应用场景and使用最佳实践 java .net php 1. 人脸识别的应用场景 1 2. 框架选型 JNI2OpenCV.dll and JavaCV 1 3. Url ap ...
- atitit.人脸识别的应用场景and使用最佳实践 java .net php
atitit.人脸识别的应用场景and使用最佳实践 java .net php 1. 人脸识别的应用场景1 2. 标准化的api1 3. 框架选型 JNI2OpenCV.dll and JavaCV ...
随机推荐
- A Child's History of England.12
Dunstan, Abbot of Glastonbury Abbey, was one of the most sagacious of these monks. He was an ingenio ...
- 【leetocde】922. Sort Array By Parity II
Given an array of integers nums, half of the integers in nums are odd, and the other half are even. ...
- LinkBinTree
package ch11; import java.util.ArrayList; import java.util.List; import java.util.Stack; public clas ...
- Spring Cloud集成RabbitMQ的使用
同步 or 异步 前言:我们现在有一个用微服务架构模式开发的系统,系统里有一个商品服务和订单服务,且它们都是同步通信的. 目前我们商品服务和订单服务之间的通信方式是同步的,当业务扩大之后,如果还继续使 ...
- Mysql多字段模糊查询
MySQL同一字段多值模糊查询 一. 同一字段多值模糊查询,使用多个or进行链接,效率不高,但没有更好的解决方案.(有看到CHARINDEX 关键字,可查询结果并不是模糊,举个栗子 例如SELECT ...
- 类型类 && .class 与 .getClass() 的区别
一. 什么是类型类 Java 中的每一个类(.java 文件)被编译成 .class 文件的时候,Java虚拟机(JVM)会为这个类生成一个类对象(我们姑且认为就是 .class 文件),这个对象包含 ...
- java多线程并发编程中的锁
synchronized: https://www.cnblogs.com/dolphin0520/p/3923737.html Lock:https://www.cnblogs.com/dolphi ...
- Java分层思想
从最常规的分层结构来说,系统层次从上到下依次为: 表现层/UI层/界面层:主要是客户端的展示. 服务层/业务层:直接为客户端提供的服务或功能.也是系统所能对外提供的功能. 领域层:系统内的领域活动. ...
- 三维引擎导入obj模型不可见总结
最近有客户试用我们的三维平台,在导入模型的时候,会出现模型全黑和不可见的情况.上一篇文章说了全黑的情况.此文说下不可见的情况. 经过测试,发现可能有如下两种情况. 导入的模型不在镜头视野内 导入的模型 ...
- vue+element项目中动态表格合并
需求:elementui里的table虽然有合并函数(:span-method),单基本都是设置固定值合并.现在有一个树型结构的数据,要求我们将里面的某个list和其他属性一起展开展示,并且list中 ...