人臉識別流程

一、人臉錄入

1、調(diào)用 init 初始化 SDK

faceEngine.init(context, FaceEngine.ASF_DETECT_MODE_VIDEO, ConfigUtil.getFtOrient(this),
                16, MAX_DETECT_NUM, FaceEngine.ASF_FACE_RECOGNITION | FaceEngine.ASF_FACE_DETECT | FaceEngine.ASF_FACE3DANGLE| FaceEngine.ASF_LIVENESS);

(1) context:上下文
(2) FaceEngine.ASF_DETECT_MODE_VIDEO:采用視頻流方式獲取
(3)FaceEngine.ASF_FACE_RECOGNITION:獲取特征值需要的參數(shù)
FaceEngine.ASF_FACE_DETECT:人臉檢測 FaceEngine.ASF_FACE3DANGLE:獲取人臉的三維角度
FaceEngine.ASF_LIVENESS:獲取是否是活體

2、調(diào)用 detectFaces 進(jìn)行 圖像數(shù)據(jù)/預(yù)覽數(shù)據(jù)處理 (人臉檢測)

faceEngine.detectFaces(nv21, previewSize.width, previewSize.height, FaceEngine.CP_PAF_NV21, faceInfoList)

(1)nv21:圖片預(yù)覽的nv21數(shù)據(jù)
(2)previewSize:攝像頭預(yù)覽尺寸
(3)faceInfoList:人臉數(shù)據(jù)列表

3、調(diào)用 process 接口進(jìn)行人臉信息檢測 (人臉信息檢測)

這一步獲取到人臉的基本信息,如果檢測到的人臉是活體,且三維角度符合{pitch(-8 ~ -4,-2 ~ 2 , 4 ~ 8 ) , yaw( -25 ~ -15 , -5 ~ 5 , 15 ~ 25 ) , roll( -95 ~ -85 )},則進(jìn)行下一步

faceEngine.process(nv21, previewSize.width, previewSize.height, FaceEngine.CP_PAF_NV21, faceInfoList, FaceEngine.ASF_FACE3DANGLE | FaceEngine.ASF_LIVENESS);
faceEngine.getFace3DAngle(face3DAngleList);
faceEngine.getLiveness(faceLivenessInfoList);

(1)nv21:圖片預(yù)覽的nv21數(shù)據(jù)
(2)previewSize:攝像頭預(yù)覽尺寸
(3)faceInfoList:人臉數(shù)據(jù)列表
(4)FaceEngine.ASF_FACE3DANGLE:獲取人臉的三維角度
FaceEngine.ASF_LIVENESS:獲取是否是活體
(5)face3DAngleList:人臉3維信息列表
(5)faceLivenessInfoList:活體信息列表

4、調(diào)用 extractFaceFeature 接 口進(jìn)行人臉特征提取 (獲取人臉特征值)

extractFaceFeature 方法用于獲取人臉的特征值,該數(shù)據(jù)可以用于人臉對比。一般人臉庫中只需保存人臉特征值跟人臉圖片即可

faceEngine.extractFaceFeature(nv21Data, previewSize.width, previewSize.height, format, faceInfo, faceFeature)

(1)nv21Data:圖片預(yù)覽的nv21數(shù)據(jù)
(2)previewSize:攝像頭預(yù)覽尺寸
(3)faceInfo:人臉數(shù)據(jù)
(4)faceFeature:人臉特征值

5、保存人臉特征值及人臉圖片

二、人臉比對

1、調(diào)用 init 初始化 SDK

faceEngine.init(context, FaceEngine.ASF_DETECT_MODE_VIDEO, ConfigUtil.getFtOrient(this),
                16, MAX_DETECT_NUM, FaceEngine.ASF_FACE_RECOGNITION | FaceEngine.ASF_FACE_DETECT | FaceEngine.ASF_FACE3DANGLE| FaceEngine.ASF_LIVENESS);

(1) context:上下文
(2) FaceEngine.ASF_DETECT_MODE_VIDEO:采用視頻流方式獲取
(3)FaceEngine.ASF_FACE_RECOGNITION:獲取特征值需要的參數(shù)
FaceEngine.ASF_FACE_DETECT:人臉檢測 FaceEngine.ASF_FACE3DANGLE:獲取人臉的三維角度
FaceEngine.ASF_LIVENESS:獲取是否是活體

2、調(diào)用 detectFaces 進(jìn)行 圖像數(shù)據(jù)/預(yù)覽數(shù)據(jù)處理 (人臉檢測)

faceEngine.detectFaces(nv21, previewSize.width, previewSize.height, FaceEngine.CP_PAF_NV21, faceInfoList)

(1)nv21:圖片預(yù)覽的nv21數(shù)據(jù)
(2)previewSize:攝像頭預(yù)覽尺寸
(3)faceInfoList:人臉數(shù)據(jù)列表

3、調(diào)用 extractFaceFeature 接 口進(jìn)行人臉特征提取 (獲取人臉特征值)

extractFaceFeature 方法用于獲取人臉的特征值,該數(shù)據(jù)可以用于人臉對比。

faceEngine.extractFaceFeature(nv21Data, previewSize.width, previewSize.height, format, faceInfo, faceFeature)

(1)nv21Data:圖片預(yù)覽的nv21數(shù)據(jù)
(2)previewSize:攝像頭預(yù)覽尺寸
(3)faceInfo:人臉數(shù)據(jù)
(4)faceFeature:人臉特征值

4、調(diào)用 compareFaceFeature 接 口進(jìn)行人臉比對

faceEngine.compareFaceFeature(faceFeature, tempFaceFeature, faceSimilar);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容