From 0211820cee58b3b97281642f57fd8fdc5b7c9a73 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Wed, 8 Jan 2025 17:31:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/yq/common/utils/FaceEnginUtil.java | 32 +++++++++++++++++-- .../java/yq/system/mapper/MineFaceMapper.java | 2 ++ .../yq/system/service/IMineFaceService.java | 7 ++++ .../service/impl/MineFaceServiceImpl.java | 5 +++ .../mapper/system/MineFaceMapper.xml | 17 +++++++++- 5 files changed, 60 insertions(+), 3 deletions(-) diff --git a/yq-common/src/main/java/yq/common/utils/FaceEnginUtil.java b/yq-common/src/main/java/yq/common/utils/FaceEnginUtil.java index 364a960..47a0862 100644 --- a/yq-common/src/main/java/yq/common/utils/FaceEnginUtil.java +++ b/yq-common/src/main/java/yq/common/utils/FaceEnginUtil.java @@ -107,9 +107,9 @@ public class FaceEnginUtil { * 录入人脸接口存入byte数组特征值 * @return */ - public static byte[] uploadInput(File file) { + public static byte[] uploadInput(InputStream inputStream) { FaceEngine faceEngine = FaceEnginUtil.init(); - ImageInfo imageInfo = getRGBData(file); + ImageInfo imageInfo = getRGBData(inputStream); List faceInfoList = new ArrayList(); faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList); //特征提取 @@ -120,6 +120,32 @@ public class FaceEnginUtil { return featureData; } + /** + * 人脸匹配 + * @param + * @param file 数据库人脸存根 + * @return float 数据判断大于0.7以上 + */ + public static float uploadContrast(MultipartFile file,byte[] faceFeature2) throws IOException { + + byte[] faceFeature1=uploadInput(file); + + FaceFeature targetFaceFeature = new FaceFeature(); + targetFaceFeature.setFeatureData(faceFeature1); + + FaceEngine faceEngine = FaceEnginUtil.init(); + + FaceFeature sourceFaceFeature = new FaceFeature(); + sourceFaceFeature.setFeatureData(faceFeature2); + FaceSimilar faceSimilar = new FaceSimilar(); + //特征比对 + faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar); + FaceEnginUtil.close(faceEngine); + return faceSimilar.getScore(); + } + + + /** * 人脸匹配 * @param @@ -142,6 +168,8 @@ public class FaceEnginUtil { return faceSimilar.getScore(); } + + public static void close(FaceEngine faceEngine) { faceEngine.unInit(); } diff --git a/yq-system/src/main/java/yq/system/mapper/MineFaceMapper.java b/yq-system/src/main/java/yq/system/mapper/MineFaceMapper.java index cb5853c..c6406e2 100644 --- a/yq-system/src/main/java/yq/system/mapper/MineFaceMapper.java +++ b/yq-system/src/main/java/yq/system/mapper/MineFaceMapper.java @@ -11,6 +11,8 @@ import yq.system.domain.MineFace; */ public interface MineFaceMapper { + + public List selectMineFaceByList(); /** * 查询【请填写功能名称】 * diff --git a/yq-system/src/main/java/yq/system/service/IMineFaceService.java b/yq-system/src/main/java/yq/system/service/IMineFaceService.java index 0946841..a1c930b 100644 --- a/yq-system/src/main/java/yq/system/service/IMineFaceService.java +++ b/yq-system/src/main/java/yq/system/service/IMineFaceService.java @@ -11,6 +11,13 @@ import yq.system.domain.MineFace; */ public interface IMineFaceService { + + + /** + * 查询有特征点的数据集合 + * @return 【请填写功能名称】集合 + */ + public List selectMineFaceByList(); /** * 查询【请填写功能名称】 * diff --git a/yq-system/src/main/java/yq/system/service/impl/MineFaceServiceImpl.java b/yq-system/src/main/java/yq/system/service/impl/MineFaceServiceImpl.java index 89e934f..7e4fc64 100644 --- a/yq-system/src/main/java/yq/system/service/impl/MineFaceServiceImpl.java +++ b/yq-system/src/main/java/yq/system/service/impl/MineFaceServiceImpl.java @@ -25,6 +25,11 @@ public class MineFaceServiceImpl implements IMineFaceService private MineFaceMapper mineFaceMapper; + @Override + public List selectMineFaceByList() { + return mineFaceMapper.selectMineFaceByList(); + } + /** * 查询【请填写功能名称】 * diff --git a/yq-system/src/main/resources/mapper/system/MineFaceMapper.xml b/yq-system/src/main/resources/mapper/system/MineFaceMapper.xml index 0a56bd0..80f55d1 100644 --- a/yq-system/src/main/resources/mapper/system/MineFaceMapper.xml +++ b/yq-system/src/main/resources/mapper/system/MineFaceMapper.xml @@ -39,7 +39,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where mf.id = #{id} - + + insert into mine_face