虹软人脸识别sdk使用教程
人脸识别我用的是虹软Arcface的sdk:
调用流程:
1.先重写activity的startActivityForResult()方法,访问手机的所有图片,并获取到图片文件
2.再通过重写activity的onActivityResult()方法,处理startActivityForResult返回的文件数据(人脸图片),处理方式:
2.1拿到文件的路径后,将图片文件转成bitMap形式,便于计算机处理图片信息(图片的人脸信息)
2.2将bitmap转为nv21,得到图片的nv21格式,宽,高后,就调用FaceEngine对象的detectFaces()方法
List<FaceInfo> faceInfoList = new ArrayList<>();
//人脸检测
int detectCode = faceEngine.detectFaces(nv21, width, height, FaceEngine.CP_PAF_NV21, faceInfoList);
detectFaces()方法的关键代码如下:
faceInfoList.clear();
int count = this.detectFaces(this.handle, data, width, height, format, this.mFaceInfoArray, this.error);
if (count > 0) {
for(int i = 0; i < count; ++i) {
faceInfoList.add(new FaceInfo(this.mFaceInfoArray[i]));
}
}
return this.error.code;
3.拿到预处理的图像数据faceInfo后就调用extractFaceFeature()方法
int frCode = faceEngine.extractFaceFeature(nv21Data, width, height, format, faceInfo, faceFeature);
图片的类型是主图 * processImage()拿到图片的uri,将文件图片转为bitmap,在转为na21,有算法 提取人脸特征,分析出人脸的基本数据 * 主图就显示算法分析出信息,子图分析出信息,并给出与主图的相似度的评分值
先调用detectFaces()方法