可以用于人脸识别,人脸搜索等等。
广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等; 而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。 生物特征识别技术所研究的生物特征包括脸、指纹、手掌纹、虹膜、视网膜、声音(语音)、体形、个人习惯(例如敲击键盘的力度和频率、签字)等, 相应的识别技术就有人脸识别、指纹识别、掌纹识别、虹膜识别、视网膜识别、语音识别(用语音识别可以进行身份识别,也可以进行语音内容的识别, 只有前者属于生物特征识别技术)、体形识别、键盘敲击识别、签字识别等。
人脸识别涉及的关键技术包含:人脸检测,人脸关键点,人脸特征提取,人脸比对,人脸对齐。
人脸检测(含5个人脸关键点)提供了两个模型的实现:
模型推理例子代码: LightFaceDetectionExample.java
模型推理例子代码: RetinaFaceDetectionExample.java
[INFO ] - Face detection result image has been saved in: build/output/retinaface_detected.png
[INFO ] - [
class: "Face", probability: 0.99993, bounds: [x=0.552, y=0.762, width=0.071, height=0.156]
class: "Face", probability: 0.99992, bounds: [x=0.696, y=0.665, width=0.071, height=0.155]
class: "Face", probability: 0.99976, bounds: [x=0.176, y=0.778, width=0.033, height=0.073]
class: "Face", probability: 0.99961, bounds: [x=0.934, y=0.686, width=0.032, height=0.068]
class: "Face", probability: 0.99949, bounds: [x=0.026, y=0.756, width=0.039, height=0.078]
]
运行成功后,输出图片效果如下:
运行成功后,命令行应该看到下面的信息:
[INFO ] - Face feature: [-0.04026184, -0.019486362, -0.09802659, 0.01700999, 0.037829027, ...]
人脸识别完整的pipeline:人脸检测(含人脸关键点) --> 人脸对齐 --> 人脸特征提取 --> 人脸比对
运行成功后,命令行应该看到下面的信息:
比对使用的是欧式距离的计算方式。
[INFO ] - face1 feature: [0.19923544, 0.2091935, -0.17899065, ..., 0.7100589, -0.27192503, 1.1901716]
[INFO ] - face2 feature: [0.1881579, -0.40177754, -0.19950306, ..., -0.71886086, 0.31257823, -0.009294844]
[INFO ] - kana1 - kana2 Similarity: 0.68710256
提取特征计算相似度。可以进一步对112 * 112 人脸图片按比例裁剪,去除冗余信息,比如头发等,以提高精度。 如果图片模糊,可以结合人脸超分辨模型使用。