去掉虹软
This commit is contained in:
parent
7b24d7171c
commit
0831e48fec
@ -4,10 +4,6 @@ import cn.hutool.core.io.FileUtil;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.http.HttpUtil;
|
import cn.hutool.http.HttpUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.arcsoft.face.FaceFeature;
|
|
||||||
import com.arcsoft.face.FaceInfo;
|
|
||||||
import com.arcsoft.face.FaceSimilar;
|
|
||||||
import com.arcsoft.face.toolkit.ImageInfo;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
@ -39,8 +35,6 @@ import java.io.FileNotFoundException;
|
|||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static com.arcsoft.face.toolkit.ImageFactory.getRGBData;
|
|
||||||
import static com.zhgd.xmgl.config.FaceRunner.faceEngine;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @program: wisdomSite
|
* @program: wisdomSite
|
||||||
@ -82,42 +76,42 @@ public class UfaceRecognitionController {
|
|||||||
public Result<Map<String, Object>> checkFace(@RequestBody Map<String, Object> map) {
|
public Result<Map<String, Object>> checkFace(@RequestBody Map<String, Object> map) {
|
||||||
Map<String, Object> data = new HashMap<>(16);
|
Map<String, Object> data = new HashMap<>(16);
|
||||||
String os = System.getProperty("os.name");
|
String os = System.getProperty("os.name");
|
||||||
if (Objects.equals(hongruanFacePass, "1")) {
|
// if (Objects.equals(hongruanFacePass, "1")) {
|
||||||
data.put("checkType", "1");
|
data.put("checkType", "1");
|
||||||
data.put("message", "成功");
|
data.put("message", "成功");
|
||||||
return Result.success(data);
|
|
||||||
}
|
|
||||||
if (os.toLowerCase().startsWith(WIN) || os.toLowerCase().startsWith(LINUX)) {
|
|
||||||
String fileUrl = MapUtils.getString(map, "fileUrl");
|
|
||||||
if (StringUtils.isNotEmpty(fileUrl)) {
|
|
||||||
File file = minioUtils.downloadFile(fileUrl);
|
|
||||||
// File file = new File(basePath, fileUrl);
|
|
||||||
log.info("fileUrl:{}", file.getAbsolutePath());
|
|
||||||
ImageInfo imageInfo = getRGBData(file);
|
|
||||||
List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>();
|
|
||||||
int errorCode = faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList);
|
|
||||||
log.info("errorCode:{}", errorCode);
|
|
||||||
if (faceInfoList.size() > 0) {
|
|
||||||
if (faceInfoList.size() > 1) {
|
|
||||||
FileOperation.deleteFile(file);
|
|
||||||
data.put("checkType", "0");
|
|
||||||
data.put("message", "检测到多张人脸");
|
|
||||||
} else {
|
|
||||||
data.put("checkType", "1");
|
|
||||||
data.put("message", "成功");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
FileOperation.deleteFile(file);
|
|
||||||
data.put("checkType", "0");
|
|
||||||
data.put("message", "未检测到人脸");
|
|
||||||
}
|
|
||||||
log.info("{}", faceInfoList);
|
|
||||||
} else {
|
|
||||||
data.put("checkType", "0");
|
|
||||||
data.put("message", "图片路径不正确");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return Result.success(data);
|
return Result.success(data);
|
||||||
|
// }
|
||||||
|
// if (os.toLowerCase().startsWith(WIN) || os.toLowerCase().startsWith(LINUX)) {
|
||||||
|
// String fileUrl = MapUtils.getString(map, "fileUrl");
|
||||||
|
// if (StringUtils.isNotEmpty(fileUrl)) {
|
||||||
|
// File file = minioUtils.downloadFile(fileUrl);
|
||||||
|
//// File file = new File(basePath, fileUrl);
|
||||||
|
// log.info("fileUrl:{}", file.getAbsolutePath());
|
||||||
|
// ImageInfo imageInfo = getRGBData(file);
|
||||||
|
// List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>();
|
||||||
|
// int errorCode = faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList);
|
||||||
|
// log.info("errorCode:{}", errorCode);
|
||||||
|
// if (faceInfoList.size() > 0) {
|
||||||
|
// if (faceInfoList.size() > 1) {
|
||||||
|
// FileOperation.deleteFile(file);
|
||||||
|
// data.put("checkType", "0");
|
||||||
|
// data.put("message", "检测到多张人脸");
|
||||||
|
// } else {
|
||||||
|
// data.put("checkType", "1");
|
||||||
|
// data.put("message", "成功");
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// FileOperation.deleteFile(file);
|
||||||
|
// data.put("checkType", "0");
|
||||||
|
// data.put("message", "未检测到人脸");
|
||||||
|
// }
|
||||||
|
// log.info("{}", faceInfoList);
|
||||||
|
// } else {
|
||||||
|
// data.put("checkType", "0");
|
||||||
|
// data.put("message", "图片路径不正确");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return Result.success(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "海康检测人脸评分", notes = "海康检测人脸评分", httpMethod = "POST")
|
@ApiOperation(value = "海康检测人脸评分", notes = "海康检测人脸评分", httpMethod = "POST")
|
||||||
@ -185,72 +179,74 @@ public class UfaceRecognitionController {
|
|||||||
@PostMapping(value = "/faceComparison")
|
@PostMapping(value = "/faceComparison")
|
||||||
public Result<String> faceComparison(@RequestBody Map<String, Object> map) {
|
public Result<String> faceComparison(@RequestBody Map<String, Object> map) {
|
||||||
Result<String> result = new Result<String>();
|
Result<String> result = new Result<String>();
|
||||||
try {
|
result.successMsg(MessageUtil.get("optSucess"));
|
||||||
String os = System.getProperty("os.name");
|
|
||||||
if (os.toLowerCase().startsWith(WIN)) {
|
|
||||||
String fileUrl = MapUtils.getString(map, "fileUrl");
|
|
||||||
File file = minioUtils.downloadFile(fileUrl);
|
|
||||||
// File file = new File(basePath + "/" + fileUrl);
|
|
||||||
//人脸检测
|
|
||||||
ImageInfo imageInfo = getRGBData(file);
|
|
||||||
List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>();
|
|
||||||
int errorCode = faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList);
|
|
||||||
if (faceInfoList == null || faceInfoList.size() == 0) {
|
|
||||||
FileOperation.deleteFile(file);
|
|
||||||
throw new OpenAlertException(MessageUtil.get("faceNotNumErr"));
|
|
||||||
} else if (faceInfoList.size() > 1) {
|
|
||||||
FileOperation.deleteFile(file);
|
|
||||||
throw new OpenAlertException(MessageUtil.get("faceMultipleNumErr"));
|
|
||||||
}
|
|
||||||
//特征提取
|
|
||||||
FaceFeature faceFeature = new FaceFeature();
|
|
||||||
errorCode = faceEngine.extractFaceFeature(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList.get(0), faceFeature);
|
|
||||||
log.info("特征值大小:" + faceFeature.getFeatureData().length);
|
|
||||||
WorkerInfo info = workerInfoService.getById(MapUtils.getString(map, "workerId"));
|
|
||||||
//人脸检测2
|
|
||||||
ImageInfo imageInfo2 = getRGBData(minioUtils.downloadFile(info.getFieldAcquisitionUrl()));
|
|
||||||
// ImageInfo imageInfo2 = getRGBData(new File(basePath + "/" + info.getFieldAcquisitionUrl()));
|
|
||||||
List<FaceInfo> faceInfoList2 = new ArrayList<FaceInfo>();
|
|
||||||
errorCode = faceEngine.detectFaces(imageInfo2.getImageData(), imageInfo2.getWidth(), imageInfo2.getHeight(), imageInfo.getImageFormat(), faceInfoList2);
|
|
||||||
log.info("{}", faceInfoList);
|
|
||||||
|
|
||||||
if (faceInfoList2 == null || faceInfoList2.size() == 0) {
|
|
||||||
FileOperation.deleteFile(file);
|
|
||||||
throw new OpenAlertException(MessageUtil.get("faceMismatchErr"));
|
|
||||||
}
|
|
||||||
//特征提取2
|
|
||||||
FaceFeature faceFeature2 = new FaceFeature();
|
|
||||||
errorCode = faceEngine.extractFaceFeature(imageInfo2.getImageData(), imageInfo2.getWidth(), imageInfo2.getHeight(), imageInfo.getImageFormat(), faceInfoList2.get(0), faceFeature2);
|
|
||||||
log.info("特征值大小:" + faceFeature2.getFeatureData().length);
|
|
||||||
//特征比对
|
|
||||||
FaceFeature targetFaceFeature = new FaceFeature();
|
|
||||||
targetFaceFeature.setFeatureData(faceFeature.getFeatureData());
|
|
||||||
FaceFeature sourceFaceFeature = new FaceFeature();
|
|
||||||
sourceFaceFeature.setFeatureData(faceFeature2.getFeatureData());
|
|
||||||
FaceSimilar faceSimilar = new FaceSimilar();
|
|
||||||
|
|
||||||
errorCode = faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar);
|
|
||||||
log.info("相似度:" + faceSimilar.getScore());
|
|
||||||
Integer score = MapUtils.getInteger(map, "faceScore");
|
|
||||||
int abc = Double.valueOf(faceSimilar.getScore() * 100).intValue();
|
|
||||||
if (abc >= score) {
|
|
||||||
result.successMsg(MessageUtil.get("optSucess"));
|
|
||||||
} else {
|
|
||||||
FileOperation.deleteFile(file);
|
|
||||||
throw new OpenAlertException(MessageUtil.get("faceMismatchErr"));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
log.info("当前操作系统不是window系统");
|
|
||||||
result.successMsg(MessageUtil.get("optSucess"));
|
|
||||||
}
|
|
||||||
} catch (OpenAlertException e) {
|
|
||||||
//log.error("error:",e);
|
|
||||||
result.error500(e.getMessage());
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("error:", e);
|
|
||||||
log.info(e.getMessage());
|
|
||||||
result.error500(MessageUtil.get("failErr"));
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
|
// try {
|
||||||
|
// String os = System.getProperty("os.name");
|
||||||
|
// if (os.toLowerCase().startsWith(WIN)) {
|
||||||
|
// String fileUrl = MapUtils.getString(map, "fileUrl");
|
||||||
|
// File file = minioUtils.downloadFile(fileUrl);
|
||||||
|
//// File file = new File(basePath + "/" + fileUrl);
|
||||||
|
// //人脸检测
|
||||||
|
// ImageInfo imageInfo = getRGBData(file);
|
||||||
|
// List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>();
|
||||||
|
// int errorCode = faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList);
|
||||||
|
// if (faceInfoList == null || faceInfoList.size() == 0) {
|
||||||
|
// FileOperation.deleteFile(file);
|
||||||
|
// throw new OpenAlertException(MessageUtil.get("faceNotNumErr"));
|
||||||
|
// } else if (faceInfoList.size() > 1) {
|
||||||
|
// FileOperation.deleteFile(file);
|
||||||
|
// throw new OpenAlertException(MessageUtil.get("faceMultipleNumErr"));
|
||||||
|
// }
|
||||||
|
// //特征提取
|
||||||
|
// FaceFeature faceFeature = new FaceFeature();
|
||||||
|
// errorCode = faceEngine.extractFaceFeature(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList.get(0), faceFeature);
|
||||||
|
// log.info("特征值大小:" + faceFeature.getFeatureData().length);
|
||||||
|
// WorkerInfo info = workerInfoService.getById(MapUtils.getString(map, "workerId"));
|
||||||
|
// //人脸检测2
|
||||||
|
// ImageInfo imageInfo2 = getRGBData(minioUtils.downloadFile(info.getFieldAcquisitionUrl()));
|
||||||
|
//// ImageInfo imageInfo2 = getRGBData(new File(basePath + "/" + info.getFieldAcquisitionUrl()));
|
||||||
|
// List<FaceInfo> faceInfoList2 = new ArrayList<FaceInfo>();
|
||||||
|
// errorCode = faceEngine.detectFaces(imageInfo2.getImageData(), imageInfo2.getWidth(), imageInfo2.getHeight(), imageInfo.getImageFormat(), faceInfoList2);
|
||||||
|
// log.info("{}", faceInfoList);
|
||||||
|
//
|
||||||
|
// if (faceInfoList2 == null || faceInfoList2.size() == 0) {
|
||||||
|
// FileOperation.deleteFile(file);
|
||||||
|
// throw new OpenAlertException(MessageUtil.get("faceMismatchErr"));
|
||||||
|
// }
|
||||||
|
// //特征提取2
|
||||||
|
// FaceFeature faceFeature2 = new FaceFeature();
|
||||||
|
// errorCode = faceEngine.extractFaceFeature(imageInfo2.getImageData(), imageInfo2.getWidth(), imageInfo2.getHeight(), imageInfo.getImageFormat(), faceInfoList2.get(0), faceFeature2);
|
||||||
|
// log.info("特征值大小:" + faceFeature2.getFeatureData().length);
|
||||||
|
// //特征比对
|
||||||
|
// FaceFeature targetFaceFeature = new FaceFeature();
|
||||||
|
// targetFaceFeature.setFeatureData(faceFeature.getFeatureData());
|
||||||
|
// FaceFeature sourceFaceFeature = new FaceFeature();
|
||||||
|
// sourceFaceFeature.setFeatureData(faceFeature2.getFeatureData());
|
||||||
|
// FaceSimilar faceSimilar = new FaceSimilar();
|
||||||
|
//
|
||||||
|
// errorCode = faceEngine.compareFaceFeature(targetFaceFeature, sourceFaceFeature, faceSimilar);
|
||||||
|
// log.info("相似度:" + faceSimilar.getScore());
|
||||||
|
// Integer score = MapUtils.getInteger(map, "faceScore");
|
||||||
|
// int abc = Double.valueOf(faceSimilar.getScore() * 100).intValue();
|
||||||
|
// if (abc >= score) {
|
||||||
|
// result.successMsg(MessageUtil.get("optSucess"));
|
||||||
|
// } else {
|
||||||
|
// FileOperation.deleteFile(file);
|
||||||
|
// throw new OpenAlertException(MessageUtil.get("faceMismatchErr"));
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// log.info("当前操作系统不是window系统");
|
||||||
|
// result.successMsg(MessageUtil.get("optSucess"));
|
||||||
|
// }
|
||||||
|
// } catch (OpenAlertException e) {
|
||||||
|
// //log.error("error:",e);
|
||||||
|
// result.error500(e.getMessage());
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// log.error("error:", e);
|
||||||
|
// log.info(e.getMessage());
|
||||||
|
// result.error500(MessageUtil.get("failErr"));
|
||||||
|
// }
|
||||||
|
// return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user