|
|
@ -84,6 +84,25 @@ public class FaceEnginUtil { |
|
|
|
return faceEngine; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 录入人脸接口存入byte数组特征值 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public static byte[] uploadInput(MultipartFile file) throws IOException { |
|
|
|
FaceEngine faceEngine = FaceEnginUtil.init(); |
|
|
|
InputStream inputStream = file.getInputStream(); |
|
|
|
ImageInfo imageInfo = getRGBData(inputStream); |
|
|
|
List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>(); |
|
|
|
faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList); |
|
|
|
//特征提取
|
|
|
|
FaceFeature faceFeature = new FaceFeature(); |
|
|
|
faceEngine.extractFaceFeature(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList.get(0), faceFeature); |
|
|
|
byte[] featureData = faceFeature.getFeatureData(); |
|
|
|
FaceEnginUtil.close(faceEngine); |
|
|
|
inputStream.close(); |
|
|
|
return featureData; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 录入人脸接口存入byte数组特征值 |
|
|
|
* @return |
|
|
@ -103,27 +122,19 @@ public class FaceEnginUtil { |
|
|
|
|
|
|
|
/** |
|
|
|
* 人脸匹配 |
|
|
|
* @param file 人脸数据 |
|
|
|
* @param |
|
|
|
* @param faceFeature1 数据库人脸存根 |
|
|
|
* @return float 数据判断大于0.7以上 |
|
|
|
*/ |
|
|
|
public static float uploadContrast(File file,byte[] faceFeature1) { |
|
|
|
public static float uploadContrast(byte[] faceFeature1,byte[] faceFeature2) { |
|
|
|
|
|
|
|
FaceFeature targetFaceFeature = new FaceFeature(); |
|
|
|
targetFaceFeature.setFeatureData(faceFeature1); |
|
|
|
|
|
|
|
FaceEngine faceEngine = FaceEnginUtil.init(); |
|
|
|
|
|
|
|
ImageInfo imageInfo = getRGBData(file); |
|
|
|
List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>(); |
|
|
|
faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList); |
|
|
|
|
|
|
|
//特征提取
|
|
|
|
FaceFeature faceFeature = new FaceFeature(); |
|
|
|
faceEngine.extractFaceFeature(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList.get(0), faceFeature); |
|
|
|
|
|
|
|
FaceFeature sourceFaceFeature = new FaceFeature(); |
|
|
|
sourceFaceFeature.setFeatureData(faceFeature.getFeatureData()); |
|
|
|
sourceFaceFeature.setFeatureData(faceFeature2); |
|
|
|
FaceSimilar faceSimilar = new FaceSimilar(); |
|
|
|
//特征比对
|
|
|
|
faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar); |
|
|
|