Browse Source

狗强1

mine
吴远 5 months ago
parent
commit
8d75a1cdd1
  1. 3
      yq-admin/src/main/java/yq/web/controller/mine/MineFaceController.java
  2. 40
      yq-common/src/main/java/yq/common/utils/FaceEnginUtil.java

3
yq-admin/src/main/java/yq/web/controller/mine/MineFaceController.java

@ -96,8 +96,7 @@ public class MineFaceController extends BaseController
if(!file.exists()) {
throw new ServiceException("文件不存在");
}
FileInputStream fileInputStream = new FileInputStream(file);
byte[] bytes = FaceEnginUtil.uploadInput(fileInputStream);
byte[] bytes = FaceEnginUtil.uploadInput(file);
mineFace.setFaceByte(bytes);
}
return toAjax(mineFaceService.insertMineFace(mineFace));

40
yq-common/src/main/java/yq/common/utils/FaceEnginUtil.java

@ -23,6 +23,8 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import static com.arcsoft.face.toolkit.ImageFactory.getRGBData;
/**
* minio文件上传工具类
@ -86,18 +88,9 @@ public class FaceEnginUtil {
* 录入人脸接口存入byte数组特征值
* @return
*/
public static byte[] uploadInput(InputStream inputstream) {
public static byte[] uploadInput(File file) {
FaceEngine faceEngine = FaceEnginUtil.init();
ImageInfo imageInfo = null;
try {
imageInfo = ImageFactory.getRGBData(inputstream);
if (inputstream != null) {
inputstream.close();
}
} catch (IOException e) {
throw new ServiceException("文件非图像类型");
}
ImageInfo imageInfo = getRGBData(file);
List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>();
faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList);
//特征提取
@ -114,32 +107,25 @@ public class FaceEnginUtil {
* @param faceFeature1 数据库人脸存根
* @return float 数据判断大于0.7以上
*/
public static float uploadContrast(MultipartFile file,Byte[] faceFeature1) {
public static float uploadContrast(File file,byte[] faceFeature1) {
FaceFeature targetFaceFeature = new FaceFeature();
targetFaceFeature.setFeatureData(faceFeature1);
FaceEngine faceEngine = FaceEnginUtil.init();
InputStream inputstream = null;
ImageInfo imageInfo = null;
try {
inputstream = file.getInputStream();
imageInfo = ImageFactory.getRGBData(inputstream);
if (inputstream != null) {
inputstream.close();
}
} catch (IOException e) {
throw new ServiceException("文件非图像类型");
}
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);
byte[] featureData = faceFeature.getFeatureData();
//特征比对
FaceFeature targetFaceFeature = new FaceFeature();
targetFaceFeature.setFeatureData(featureData);
FaceFeature sourceFaceFeature = new FaceFeature();
sourceFaceFeature.setFeatureData(faceFeature.getFeatureData());
FaceSimilar faceSimilar = new FaceSimilar();
//特征比对
faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar);
FaceEnginUtil.close(faceEngine);
return faceSimilar.getScore();

Loading…
Cancel
Save