浏览代码

优化识别

suntianwu 3 年之前
父节点
当前提交
1d2125965b

+ 3 - 3
src/main/java/com/iden/bms/service/FaceIdenService.java

@@ -242,7 +242,7 @@ public class FaceIdenService {
                                 FaceMonitor faceMonitorPerson = FaceMoniterCache.getFaceMonitor(Constants.FACE_CACHE_PERSON_KEY);
                                 if (faceModels[i] != null && faceMonitorPerson != null) {
 
-                                    FaceRetrieveResultVO faceRetrieveResultVO = FaceIdenTool.getHitResult(faceMonitorPerson, faceModels[i]);
+                                    FaceRetrieveResultVO faceRetrieveResultVO = FaceIdenTool.getHitResult(faceMonitorPerson, faceModels[i],false);
                                     if (faceRetrieveResultVO != null) {
                                         long hitIndex = faceRetrieveResultVO.getIndex();
                                         IdenPerson idenPerson = idenPersonService.getById(hitIndex);
@@ -296,7 +296,7 @@ public class FaceIdenService {
     //查询以前的陌生人图库,进行人脸识别,若是同一个人,得到uid
     private String relevanceBeforeFace(String featPtrVisitor){
         FaceMonitor faceMonitorStranger = FaceMoniterCache.getFaceMonitor(Constants.FACE_CACHE_STRANGER_KEY);
-        FaceRetrieveResultVO vo = FaceIdenTool.getHitResult(faceMonitorStranger,featPtrVisitor);
+        FaceRetrieveResultVO vo = FaceIdenTool.getHitResult(faceMonitorStranger,featPtrVisitor,false);
         if(vo != null) {
             long index = vo.getIndex();
             IdenFaceImage idenFaceImage = this.idenFaceImageService.getById(index);
@@ -345,7 +345,7 @@ public class FaceIdenService {
                 }
                 faceMonitorTmp.loadFaceDataset(dataset);
 
-                FaceRetrieveResultVO vo = FaceIdenTool.getHitResult(faceMonitorTmp,featPtr);
+                FaceRetrieveResultVO vo = FaceIdenTool.getHitResult(faceMonitorTmp,featPtr,false);
                 logger.info("FaceIdenService.isContinuation ... 5==" + vo);
                 return vo != null;
             } else {

+ 1 - 3
src/main/java/com/iden/bms/service/TraceService.java

@@ -23,7 +23,6 @@ import com.iden.common.service.IdenCommunityService;
 import com.iden.common.service.IdenFaceImageService;
 import com.iden.common.util.ByteUtil;
 import com.iden.common.util.DateUtils;
-import com.iden.common.util.FileUtil;
 import com.iden.common.util.ImgUtil;
 import com.iden.common.vo.*;
 import org.apache.commons.lang3.StringUtils;
@@ -150,10 +149,9 @@ public class TraceService {
             dataset[i].setFeatValue(ByteUtil.hex2Byte(idenFaceImage.getFeatPtr()));
         }
 
-
         FaceMonitor faceMonitorFaceImag = FaceIdenTool.initFaceMonitorWithDataset(idenRoot,dataset);
         for(FaceModel faceModel : faceModels) {
-            FaceRetrieveResultVO faceRetrieveResultVO = FaceIdenTool.getHitResult(faceMonitorFaceImag,faceModel);
+            FaceRetrieveResultVO faceRetrieveResultVO = FaceIdenTool.getHitResult(faceMonitorFaceImag,faceModel,true);
            if (faceRetrieveResultVO != null) {
                long hitIndex = faceRetrieveResultVO.getIndex();
                IdenFaceImage idenFaceImage = idenFaceImageService.getById(hitIndex);

+ 6 - 3
src/main/java/com/iden/bms/tool/FaceIdenTool.java

@@ -116,11 +116,14 @@ public class FaceIdenTool {
      * @param faceModel
      * @return
      */
-    public static FaceRetrieveResultVO getHitResult(FaceMonitor faceMonitor, FaceModel faceModel) {
+    public static FaceRetrieveResultVO getHitResult(FaceMonitor faceMonitor, FaceModel faceModel,boolean isReleaseEngine) {
         if (faceMonitor == null){
             return null;
         }
         FaceRecogRetrieveResult faceRecogRetrieveResult = faceMonitor.faceRecogRetrieveFaceDataset(faceModel);
+        if(isReleaseEngine){
+            releaseEngine(faceMonitor);
+        }
         if(faceRecogRetrieveResult != null) {
             int index = faceRecogRetrieveResult.getOnePredictIds()[0];
             float score = faceRecogRetrieveResult.getOnePredictScores()[0];
@@ -133,14 +136,14 @@ public class FaceIdenTool {
         }
         return null;
     }
-    public static FaceRetrieveResultVO getHitResult(FaceMonitor faceMonitor,String featPtrVisitor){
+    public static FaceRetrieveResultVO getHitResult(FaceMonitor faceMonitor,String featPtrVisitor,boolean isReleaseEngine){
         FaceModel faceModelPtrVisitor = new FaceModel();
         faceModelPtrVisitor.setName(String.valueOf(0));
         faceModelPtrVisitor.setPersonId(0);
         logger.info("FaceIdenTool getHitResult2 3...");
         faceModelPtrVisitor.setFeatValue(ByteUtil.hex2Byte(featPtrVisitor));
         logger.info("FaceIdenTool getHitResult2 4..");
-        FaceRetrieveResultVO vo = getHitResult(faceMonitor,faceModelPtrVisitor);
+        FaceRetrieveResultVO vo = getHitResult(faceMonitor,faceModelPtrVisitor,isReleaseEngine);
         logger.info("FaceIdenTool getHitResult2 5..");
         return vo;
     }