4月6日每日总结

今日学习如何做到人脸识别

虹软sdk调用

// 初始化引擎
FaceEngine faceEngine = new FaceEngine();
int errorCode = faceEngine.init(this, DetectMode.ASF_DETECT_MODE_VIDEO, DetectFaceOrientPriority.ASF_OP_0_ONLY, 16, 20, FaceEngine.ASF_FACE_RECOGNITION | FaceEngine.ASF_FACE_DETECT);
if (errorCode != ErrorInfo.MOK) {
Log.e(TAG, "Init failed: " + errorCode);
return;
}

// 创建相机实例
Camera camera = Camera.open(0);
camera.setPreviewCallback(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
// 检测人脸
List<FaceInfo> faceInfoList = new ArrayList<>();
int detectCode = faceEngine.detectFaces(data, camera.getParameters().getPreviewSize().width, camera.getParameters().getPreviewSize().height, FaceEngine.CP_PAF_NV21, faceInfoList);
if (detectCode != ErrorInfo.MOK) {
Log.e(TAG, "Face detection failed: " + detectCode);
return;
}

// 进行人脸识别
int recognizeCode = faceEngine.process(data, camera.getParameters().getPreviewSize().width, camera.getParameters().getPreviewSize().height, FaceEngine.CP_PAF_NV21, faceInfoList, FaceEngine.ASF_RECOGNITION, new ArrayList<FaceFeature>());
if (recognizeCode != ErrorInfo.MOK) {
Log.e(TAG, "Face recognition failed: " + recognizeCode);
return;
}

// 处理识别结果
for (int i = 0; i < faceInfoList.size(); i++) {
FaceInfo faceInfo = faceInfoList.get(i);
if (faceInfo.getFaceId() != -1) { // 判断是否检测到人脸
// 获取人脸特征数据
FaceFeature feature = new FaceFeature();
int getFeatureCode = faceEngine.getFaceFeature(faceInfo.getFaceId(), feature);
if (getFeatureCode != ErrorInfo.MOK) {
Log.e(TAG, "Get face feature failed: " + getFeatureCode);
continue;
}

// 进行人脸比对
float similarity = 0.0f;
int compareCode = faceEngine.compareFaceFeature(feature, registeredFeature, SimilarityThreshold, similarity);
if (compareCode == ErrorInfo.MOK) {
if (similarity >= SimilarityThreshold) {
Log.i(TAG, "Face matched with similarity: " + similarity);
} else {
Log.i(TAG, "Face not matched with similarity: " + similarity);
}
}
}
}
}
});

// 开始预览
camera.startPreview();

posted @ 2023-04-06 21:16  catchtheRainbow  阅读(34)  评论(0)    收藏  举报