From 603cb36a5123e46656b06a5deb8d7ac7ff81307f Mon Sep 17 00:00:00 2001 From: 554325746@qq.com <554325746@qq.com> Date: 星期三, 25 十二月 2019 08:48:51 +0800 Subject: [PATCH] a --- app/src/main/java/com/basic/security/manager/FeatureManager.java | 80 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 79 insertions(+), 1 deletions(-) diff --git a/app/src/main/java/com/basic/security/manager/FeatureManager.java b/app/src/main/java/com/basic/security/manager/FeatureManager.java index f44f0f5..257c38e 100644 --- a/app/src/main/java/com/basic/security/manager/FeatureManager.java +++ b/app/src/main/java/com/basic/security/manager/FeatureManager.java @@ -2,11 +2,14 @@ import com.basic.security.activity.MainActivity; import com.basic.security.model.ModelAdapter; +import com.basic.security.model.PersonA; +import com.basic.security.utils.Constants; import com.basic.security.utils.FaceId; import java.util.List; public class FeatureManager { + public static void initCppFeatureMap() { List<ModelAdapter> list = PersonManager.findPersonList("select * from person where del_flag='0'"); for (ModelAdapter result : list) { @@ -15,12 +18,87 @@ String all_device = result.getString("all_device"); byte[] camera_image_feature = result.getBlob("camera_image_feature"); if (camera_image_feature != null && camera_image_feature != null) { - FaceId.instance.addFeatureToDb(id, camera_image_feature); + addFeature(id, camera_image_feature); } } catch (Exception e) { e.printStackTrace(); } } + initAllPersonFeaturesMap(); MainActivity.faceDbInitComplete = true; } + + public static void initAllPersonFeaturesMap() { + List<ModelAdapter> personList = PersonManager.findPersonList("select * from person where 1==1"); + for (ModelAdapter person : personList) { + try { + String id = person.getId(); + String all_device = person.getString("all_device"); + byte[] camera_image_feature = person.getBlob("camera_image_feature"); + if (camera_image_feature != null) { + addFeatureToAllFeatures(id, camera_image_feature); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + List<ModelAdapter> personAList = PersonAManager.findPersonAList("select * from " + PersonA.tableName); + for (ModelAdapter personA : personAList) { + try { + String id = personA.getString(PersonA.id); + byte[] faceFeature = personA.getBlob(PersonA.faceFeature); + if (faceFeature != null) { + addFeatureToAllFeatures(id, faceFeature); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static void addFeatureToAllFeatures(String personId, byte[] featureData) { + FaceId.instance.addFeatureToAllDb(personId, featureData); + } + + public static String compareFeatureInAllDb(byte[] featureArray, int score) { + String compareResultStr = FaceId.instance.compareFeatureInAllDb(featureArray, score); + return compareResultStr; + } + + public static void addFeature(String personId, byte[] featureData) { + addFeatureToAllFeatures(personId, featureData); + FaceId.instance.addFeatureToDb(personId, featureData); + } + + public static void removeFeature(String personId) { + FaceId.instance.removeFeatureFromDb(personId); + } + + public static String compareFeature(byte[] featureArray, int score) { + String compareResultStr = FaceId.instance.compareFeatureInDb(featureArray, score); + return compareResultStr; + } + + public static String isDuplicateInAllDb(ModelAdapter selectedPerson) { + try { + byte[] camera_image_feature = selectedPerson.getBlob("camera_image_feature"); + return isDuplicateInAllDb(camera_image_feature); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static String isDuplicateInAllDb(byte[] camera_image_feature) { + try { + if (camera_image_feature != null && camera_image_feature.length > 0) { + String compareResultStr = FeatureManager.compareFeatureInAllDb(camera_image_feature, Constants.minRecognizeScore); + return compareResultStr.split(",", -1)[0]; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + } -- Gitblit v1.8.0