虹软人脸识别sdk使用教程

人脸识别我用的是虹软Arcface的sdk:

        调用流程:

虹软人脸识别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()方法