最近在尝试做一个人脸识别项目,在对比几款主流人脸识别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> | 人脸检测结果列表 |
FaceInfo定义:
参数 | 类型 | 类型 |
---|---|---|
rect | Rect | 人脸 |