最近在尝试做一个人脸识别项目,在对比几款主流人脸识别SDK后,采用了虹软的Arcface SDK,因为它提供了免费版本,并且可以离线使用,接入难度也比较低。项目中有一个需求就是显示检测到的人脸,但是如何从一张图片中抠取合适大小的人脸呢?本文将从以下步骤来介绍如何实现:
1. 如何获得人脸框
2. 如何根据人脸框裁剪
3. 如何进行结果图旋转
4. 应用场景举例
1. 如何获得人脸框
首先我们来看一下虹软Android ArcFace SDK用于人脸检测的detectFaces函数以及人脸数据类FaceInfo:
detectFaces函数:
参数
类型
说明
data
byte[]
图像数据的内存
width
int
图像的宽
height
int
图像的高
format
int
图像的格式
faceInfoList
List
人脸检测结果列表
FaceInfo定义:
参数
类型
说明
rect
Rect
人脸在图像中的坐标
orient
int
人脸的朝向
faceId
int
人脸id,用于标识人脸
人脸检测函数介绍的文章有很多,这里就不多做介绍了。FaceInfo中的rect就是我们用来抠取人脸的重要参数,下图