diff --git a/examples/face-example/pom.xml b/examples/face-example/pom.xml
index cd2e3c945139ce28458173aed41e9b43957511c3..5562054489da7412912e4022f4fdb9acebe310ff 100644
--- a/examples/face-example/pom.xml
+++ b/examples/face-example/pom.xml
@@ -12,7 +12,7 @@
11
11
UTF-8
- 1.0.23
+ 1.0.24
smartai.examples.face.facedet.FaceDetDemo
@@ -34,7 +34,7 @@
cn.smartjavaai
- smartjavaai-bom
+ bom
${smartjavaai.version}
pom
@@ -94,14 +94,14 @@
cn.smartjavaai
- smartjavaai-face
+ face
ai.djl.pytorch
pytorch-jni
- 2.5.1-0.32.0
+ 2.7.1-0.34.0
runtime
@@ -138,7 +138,7 @@
ai.djl.pytorch
pytorch-native-cpu
${djl.platform.windows-x86_64}
- 2.5.1
+ 2.7.1
runtime
@@ -176,7 +176,7 @@
ai.djl.pytorch
pytorch-native-cpu
${djl.platform.linux-x86_64}
- 2.5.1
+ 2.7.1
runtime
@@ -213,7 +213,7 @@
ai.djl.pytorch
pytorch-native-cpu
${djl.platform.osx-aarch64}
- 2.5.1
+ 2.7.1
runtime
@@ -255,6 +255,14 @@
runtime
+
+ ai.djl.pytorch
+ pytorch-native-cpu
+ linux-aarch64
+ runtime
+ 2.7.1
+
+
diff --git a/examples/face-example/src/main/java/smartai/examples/face/expression/ExpressionRecDemo.java b/examples/face-example/src/main/java/smartai/examples/face/expression/ExpressionRecDemo.java
index 8e351db066b2506225b459d7f67ee087c30219a4..b37e62ea5f3a2f7d2f9415ff75aca8eca3c5c5f3 100644
--- a/examples/face-example/src/main/java/smartai/examples/face/expression/ExpressionRecDemo.java
+++ b/examples/face-example/src/main/java/smartai/examples/face/expression/ExpressionRecDemo.java
@@ -63,15 +63,21 @@ public class ExpressionRecDemo {
}
/**
- * 获取人脸检测模型
+ * 获取人脸检测模型(均衡模型)
+ * 均衡模型:兼顾速度和精度
+ * 注意事项:SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
* @return
*/
public FaceDetModel getFaceDetModel(){
FaceDetConfig config = new FaceDetConfig();
- config.setModelEnum(FaceDetModelEnum.RETINA_FACE);//人脸检测模型
- config.setConfidenceThreshold(FaceDetectConstant.DEFAULT_CONFIDENCE_THRESHOLD);//只返回相似度大于该值的人脸
- config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);//用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
- config.setDevice(device);
+ //人脸检测模型,SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
+ config.setModelEnum(FaceDetModelEnum.MTCNN);
+ //下载模型并替换本地路径,下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
+ config.setModelPath("/Users/wenjie/Documents/develop/face_model");
+ //只返回相似度大于该值的人脸,需要根据实际情况调整,分值越大越严格容易漏检,分值越小越宽松容易误识别
+ config.setConfidenceThreshold(0.5f);
+ //用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
+ config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);
return FaceDetModelFactory.getInstance().getModel(config);
}
@@ -83,7 +89,7 @@ public class ExpressionRecDemo {
public ExpressionModel getExpressionModel(){
FaceExpressionConfig config = new FaceExpressionConfig();
config.setModelEnum(ExpressionModelEnum.FrEmotion);
- config.setModelPath("/Users/xxx/Documents/develop/model/emotion/fr_expression.onnx");
+ config.setModelPath("/Users/wenjie/Documents/develop/model/emotion/fr_expression.onnx");
config.setDevice(device);
config.setAlign(true);
config.setDetectModel(getFaceDetModel());
diff --git a/examples/face-example/src/main/java/smartai/examples/face/facedet/FaceDetDemo.java b/examples/face-example/src/main/java/smartai/examples/face/facedet/FaceDetDemo.java
index e084c20c92cd01c269e22dd70d0321e2456fcac4..99f7192e93b6db85ee4d92e66c8cd7f1d09c37b3 100644
--- a/examples/face-example/src/main/java/smartai/examples/face/facedet/FaceDetDemo.java
+++ b/examples/face-example/src/main/java/smartai/examples/face/facedet/FaceDetDemo.java
@@ -58,18 +58,58 @@ public class FaceDetDemo {
/**
- * 获取人脸检测模型
- * 注意事项:高精度模型,速度较慢
+ * 获取人脸检测模型(均衡模型)
+ * 均衡模型:兼顾速度和精度
+ * 注意事项:SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
* @return
*/
public FaceDetModel getFaceDetModel(){
FaceDetConfig config = new FaceDetConfig();
- //高精度模型,速度慢
- config.setModelEnum(FaceDetModelEnum.RETINA_FACE);//人脸检测模型
+ //人脸检测模型,SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
+ config.setModelEnum(FaceDetModelEnum.MTCNN);
//下载模型并替换本地路径,下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
- config.setModelPath("/Users/xxx/Documents/develop/model/retinaface.pt");
- config.setConfidenceThreshold(FaceDetectConstant.DEFAULT_CONFIDENCE_THRESHOLD);//只返回相似度大于该值的人脸
- config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);//用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
+ config.setModelPath("/Users/wenjie/Documents/develop/face_model");
+ //只返回相似度大于该值的人脸,需要根据实际情况调整,分值越大越严格容易漏检,分值越小越宽松容易误识别
+ config.setConfidenceThreshold(0.5f);
+ //用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
+ config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);
+ return FaceDetModelFactory.getInstance().getModel(config);
+ }
+
+
+ /**
+ * 获取人脸检测模型(高精度模型)
+ * 注意事项:高精度模型,识别准确度高,速度慢
+ * @return
+ */
+ public FaceDetModel getProFaceDetModel(){
+ FaceDetConfig config = new FaceDetConfig();
+ //人脸检测模型,SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
+ config.setModelEnum(FaceDetModelEnum.RETINA_FACE);
+ //下载模型并替换本地路径,下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
+ config.setModelPath("/Users/wenjie/Documents/develop/face_model/retinaface.pt");
+ //只返回相似度大于该值的人脸,需要根据实际情况调整,分值越大越严格容易漏检,分值越小越宽松容易误识别
+ config.setConfidenceThreshold(0.5f);
+ //用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
+ config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);
+ return FaceDetModelFactory.getInstance().getModel(config);
+ }
+
+ /**
+ * 获取人脸检测模型(极速模型)
+ * 注意事项:极速模型,识别准确度低,速度快
+ * @return
+ */
+ public FaceDetModel getFastFaceDetModel(){
+ FaceDetConfig config = new FaceDetConfig();
+ //人脸检测模型,SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
+ config.setModelEnum(FaceDetModelEnum.YOLOV5_FACE_320);
+ //下载模型并替换本地路径,下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
+ config.setModelPath("/Users/wenjie/Documents/develop/face_model/yolo-face/yolov5face-n-0.5-320x320.onnx");
+ //只返回相似度大于该值的人脸,需要根据实际情况调整,分值越大越严格容易漏检,分值越小越宽松容易误识别
+ config.setConfidenceThreshold(0.5f);
+ //用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
+ config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);
return FaceDetModelFactory.getInstance().getModel(config);
}
@@ -84,35 +124,18 @@ public class FaceDetDemo {
config.setModelEnum(FaceDetModelEnum.SEETA_FACE6_MODEL);
//指定模型路径:请根据实际情况替换为本地模型文件的绝对路径(下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234)
config.setModelPath("C:/Users/Administrator/Downloads/sf3.0_models/sf3.0_models");
+ config.setConfidenceThreshold(0.9);
return FaceDetModelFactory.getInstance().getModel(config);
}
- /**
- * 人脸检测(默认配置)
- * 使用默认模型参数检测,默认模型:retinaface,需联网,会自动下载模型
- * 图片参数:图片路径
- */
- @Test
- public void testFaceDetect(){
- try {
- FaceDetModel faceModel = FaceDetModelFactory.getInstance().getModel();
- R detectedResult = faceModel.detect(imgPath);
- if(detectedResult.isSuccess()){
- log.info("人脸检测结果:{}", JSONObject.toJSONString(detectedResult.getData()));
- }else{
- log.info("人脸检测失败:{}", detectedResult.getMessage());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
/**
- * 人脸检测(自定义模型参数)
- * 图片参数:图片路径
+ * 人脸检测
+ * 注意事项:
+ * 1、此用例使用均衡模型,可以切换高精度模型或极速模型
*/
@Test
- public void testFaceDetectCustomConfig(){
+ public void testFaceDetect(){
try {
FaceDetModel faceModel = getFaceDetModel();
R detectedResult = faceModel.detect(imgPath);
@@ -172,10 +195,12 @@ public class FaceDetDemo {
public void testDetectFaceGPU(){
try {
FaceDetConfig config = new FaceDetConfig();
- //高精度模型,速度慢
- config.setModelEnum(FaceDetModelEnum.RETINA_FACE);//人脸检测模型
+ //人脸检测模型,SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
+ config.setModelEnum(FaceDetModelEnum.MTCNN);
//下载模型并替换本地路径,下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
- config.setModelPath("/Users/xxx/Documents/develop/model/retinaface.pt");
+ config.setModelPath("/Users/wenjie/Documents/develop/face_model");
+ //只返回相似度大于该值的人脸,需要根据实际情况调整,分值越大越严格容易漏检,分值越小越宽松容易误识别
+ config.setConfidenceThreshold(0.5f);
config.setDevice(DeviceEnum.GPU);
FaceDetModel faceModel = FaceDetModelFactory.getInstance().getModel(config);
R detectedResult = faceModel.detect(imgPath);
@@ -191,7 +216,7 @@ public class FaceDetDemo {
/**
* 人脸检测(Seetaface6)
- * 图片参数:图片路径
+ * 注意事项:不支持macos
*/
@Test
public void testFaceDetectSeetaface6(){
@@ -211,12 +236,12 @@ public class FaceDetDemo {
/**
* 摄像头人脸检测
- * 注意事项:如果视频比较卡,可以使用轻量的人脸检测模型
+ * 注意事项:实时检测,需要使用极速模型
*/
@Test
public void testDetectCamera(){
try {
- FaceDetModel faceModel = getSeetaface6DetModel();
+ FaceDetModel faceModel = getFastFaceDetModel();
OpenCV.loadShared();
VideoCapture capture = new VideoCapture(0);
if (!capture.isOpened()) {
diff --git a/examples/face-example/src/main/java/smartai/examples/face/facerec/FaceRecDemo.java b/examples/face-example/src/main/java/smartai/examples/face/facerec/FaceRecDemo.java
index 1ed3740a0a3c43c9f4c5e03f86c2131ddb403a9a..cc9d3d2d384d9840bb32b2a0916dc068cd4c0138 100644
--- a/examples/face-example/src/main/java/smartai/examples/face/facerec/FaceRecDemo.java
+++ b/examples/face-example/src/main/java/smartai/examples/face/facerec/FaceRecDemo.java
@@ -53,39 +53,65 @@ public class FaceRecDemo {
/**
- * 获取人脸检测模型(高精度,速度慢)
- * 追求准确度可以使用
- * 也可以使用其他模型,具体其他模型参数可以查看文档:http://doc.smartjavaai.cn/face.html
+ * 获取人脸检测模型(均衡模型)
+ * 均衡模型:兼顾速度和精度
+ * 注意事项:SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
* @return
*/
- public FaceDetModel getHighAccuracyDetModel(){
+ public FaceDetModel getFaceDetModel(){
FaceDetConfig config = new FaceDetConfig();
- //高精度模型,速度慢
- config.setModelEnum(FaceDetModelEnum.RETINA_FACE);//人脸检测模型
+ //人脸检测模型,SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
+ config.setModelEnum(FaceDetModelEnum.MTCNN);
//下载模型并替换本地路径,下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
- config.setModelPath("/Users/xxx/Documents/develop/model/retinaface.pt");
- config.setConfidenceThreshold(FaceDetectConstant.DEFAULT_CONFIDENCE_THRESHOLD);//只返回相似度大于该值的人脸
- config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);//用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
- config.setDevice(device);
+ config.setModelPath("/Users/wenjie/Documents/develop/face_model");
+ //只返回相似度大于该值的人脸,需要根据实际情况调整,分值越大越严格容易漏检,分值越小越宽松容易误识别
+ config.setConfidenceThreshold(0.5f);
+ //用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
+ config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);
return FaceDetModelFactory.getInstance().getModel(config);
}
/**
- * 获取人脸检测模型(高速模型,精度一般)
- * 追求速度可以使用
- * 也可以使用其他模型,具体其他模型参数可以查看文档:http://doc.smartjavaai.cn/face.html
+ * 获取人脸检测模型(高精度模型)
+ * 注意事项:
+ * 1、高精度模型,识别准确度高,速度慢
+ * 2、具体其他模型参数可以查看文档:http://doc.smartjavaai.cn/face.html
* @return
*/
- public FaceDetModel getHighSpeedDetModel(){
+ public FaceDetModel getProFaceDetModel(){
FaceDetConfig config = new FaceDetConfig();
- //高速模型,速度快,精度一般
- config.setModelEnum(FaceDetModelEnum.SEETA_FACE6_MODEL);
+ //人脸检测模型,SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
+ config.setModelEnum(FaceDetModelEnum.RETINA_FACE);
//下载模型并替换本地路径,下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
- config.setModelPath("/Users/xxx/Documents/develop/model/sf3.0_models");
- config.setDevice(device);
+ config.setModelPath("/Users/wenjie/Documents/develop/face_model/retinaface.pt");
+ //只返回相似度大于该值的人脸,需要根据实际情况调整,分值越大越严格容易漏检,分值越小越宽松容易误识别
+ config.setConfidenceThreshold(0.5f);
+ //用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
+ config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);
+ return FaceDetModelFactory.getInstance().getModel(config);
+ }
+
+ /**
+ * 获取人脸检测模型(极速模型)
+ * 注意事项:
+ * 1、极速模型,识别准确度低,速度快
+ * 2、具体其他模型参数可以查看文档:http://doc.smartjavaai.cn/face.html
+ * @return
+ */
+ public FaceDetModel getFastFaceDetModel(){
+ FaceDetConfig config = new FaceDetConfig();
+ //人脸检测模型,SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
+ config.setModelEnum(FaceDetModelEnum.YOLOV5_FACE_320);
+ //下载模型并替换本地路径,下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
+ config.setModelPath("/Users/wenjie/Documents/develop/face_model/yolo-face/yolov5face-n-0.5-320x320.onnx");
+ //只返回相似度大于该值的人脸,需要根据实际情况调整,分值越大越严格容易漏检,分值越小越宽松容易误识别
+ config.setConfidenceThreshold(0.5f);
+ //用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
+ config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);
return FaceDetModelFactory.getInstance().getModel(config);
}
+
/**
* 获取人脸识别模型(高精度,速度慢)
* 追求准确度可以使用
@@ -97,14 +123,14 @@ public class FaceRecDemo {
//高精度模型,速度慢
config.setModelEnum(FaceRecModelEnum.ELASTIC_FACE_MODEL);
//模型路径,请下载模型并替换为本地路径:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
- config.setModelPath("/Users/xxx/Documents/develop/model/elasticface.pt");
+ config.setModelPath("/Users/wenjie/Documents/develop/model/elasticface.pt");
//裁剪人脸:如果图片已经是裁剪过的,则请将此参数设置为false
config.setCropFace(true);
//开启人脸对齐:适用于人脸不正的场景,开启将提升人脸特征准确度,关闭可以提升性能
config.setAlign(true);
config.setDevice(device);
//指定人脸检测模型
- config.setDetectModel(getHighAccuracyDetModel());
+ config.setDetectModel(getProFaceDetModel());
return FaceRecModelFactory.getInstance().getModel(config);
}
@@ -126,7 +152,7 @@ public class FaceRecDemo {
config.setAlign(false);
config.setDevice(device);
//指定人脸检测模型
- config.setDetectModel(getHighSpeedDetModel());
+ config.setDetectModel(getFastFaceDetModel());
return FaceRecModelFactory.getInstance().getModel(config);
}
@@ -137,14 +163,14 @@ public class FaceRecDemo {
public FaceRecModel getFaceRecModelWithDbConfig(){
FaceRecConfig config = new FaceRecConfig();
//高精度模型,速度慢,追求速度请更换高速模型,具体其他模型参数可以查看文档:http://doc.smartjavaai.cn/face.html
- config.setModelEnum(FaceRecModelEnum.ELASTIC_FACE_MODEL);//人脸检测模型
+ config.setModelEnum(FaceRecModelEnum.ELASTIC_FACE_MODEL);//人脸识别模型
config.setModelPath("/Users/xxx/Documents/develop/model/elasticface.pt");
//裁剪人脸:如果图片已经是裁剪过的,则请将此参数设置为false
config.setCropFace(true);
//开启人脸对齐:适用于人脸不正的场景,开启将提升人脸特征准确度,关闭可以提升性能
config.setAlign(true);
- //指定人脸检测模型,高精度模型,速度慢,追求速度请更换高速模型getHighSpeedDetModel
- config.setDetectModel(getHighAccuracyDetModel());
+ //指定人脸检测模型,可切换人脸检测模型(极速:getFastFaceDetModel,高精度:getProFaceDetModel),具体其他模型参数可以查看文档:http://doc.smartjavaai.cn/face.html
+ config.setDetectModel(getFaceDetModel());
config.setDevice(device);
//初始化向量数据库:Milvus数据库配置
@@ -170,13 +196,13 @@ public class FaceRecDemo {
FaceRecConfig config = new FaceRecConfig();
//高精度模型,速度慢, 追求速度请更换高速模型,具体其他模型参数可以查看文档:http://doc.smartjavaai.cn/face.html
config.setModelEnum(FaceRecModelEnum.ELASTIC_FACE_MODEL);//人脸检测模型
- config.setModelPath("/Users/xxx/Documents/develop/model/elasticface.pt");
+ config.setModelPath("/Users/wenjie/Documents/develop/model/elasticface.pt");
//裁剪人脸:如果图片已经是裁剪过的,则请将此参数设置为false
config.setCropFace(true);
//开启人脸对齐:适用于人脸不正的场景,开启将提升人脸特征准确度,关闭可以提升性能
config.setAlign(true);
- //指定人脸检测模型,高精度模型,速度慢,追求速度请更换高速模型getHighSpeedDetModel
- config.setDetectModel(getHighAccuracyDetModel());
+ //指定人脸检测模型,可切换人脸检测模型(极速:getFastFaceDetModel,高精度:getProFaceDetModel),具体其他模型参数可以查看文档:http://doc.smartjavaai.cn/face.html
+ config.setDetectModel(getFaceDetModel());
config.setDevice(device);
//初始化SQLite数据库
diff --git a/examples/face-example/src/main/java/smartai/examples/face/liveness/LivenessDetDemo.java b/examples/face-example/src/main/java/smartai/examples/face/liveness/LivenessDetDemo.java
index 6f3dfb8283cd6af9f48b4da299bddfb0b92ddfed..b1dedd882401aad5395080f1cca6d27e1dc347b9 100644
--- a/examples/face-example/src/main/java/smartai/examples/face/liveness/LivenessDetDemo.java
+++ b/examples/face-example/src/main/java/smartai/examples/face/liveness/LivenessDetDemo.java
@@ -80,7 +80,7 @@ public class LivenessDetDemo {
config.setModelEnum(LivenessModelEnum.IIC_FL_MODEL);
config.setDevice(device);
//需替换为实际模型存储路径
- config.setModelPath("/Users/xxx/Documents/develop/model/anti/IIC_Fl.onnx");
+ config.setModelPath("/Users/wenjie/Documents/develop/model/anti/IIC_Fl.onnx");
//人脸活体阈值,可选,默认0.8,超过阈值则认为是真人,低于阈值是非活体
config.setRealityThreshold(LivenessConstant.DEFAULT_REALITY_THRESHOLD);
/*视频检测帧数,可选,默认10,输出帧数超过这个number之后,就可以输出识别结果。
@@ -122,15 +122,21 @@ public class LivenessDetDemo {
/**
- * 获取人脸检测模型
+ * 获取人脸检测模型(均衡模型)
+ * 均衡模型:兼顾速度和精度
+ * 注意事项:SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
* @return
*/
public FaceDetModel getFaceDetModel(){
FaceDetConfig config = new FaceDetConfig();
- config.setModelEnum(FaceDetModelEnum.RETINA_FACE);//人脸检测模型
- config.setConfidenceThreshold(FaceDetectConstant.DEFAULT_CONFIDENCE_THRESHOLD);//只返回相似度大于该值的人脸
- config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);//用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
- config.setDevice(device);
+ //人脸检测模型,SmartJavaAI提供了多种模型选择(更多模型,请查看文档),切换模型需要同时修改modelEnum及modelPath
+ config.setModelEnum(FaceDetModelEnum.MTCNN);
+ //下载模型并替换本地路径,下载地址:https://pan.baidu.com/s/10l22x5fRz_gwLr8EAHa1Jg?pwd=1234 提取码: 1234
+ config.setModelPath("/Users/wenjie/Documents/develop/face_model");
+ //只返回相似度大于该值的人脸,需要根据实际情况调整,分值越大越严格容易漏检,分值越小越宽松容易误识别
+ config.setConfidenceThreshold(0.5f);
+ //用于去除重复的人脸框,当两个框的重叠度超过该值时,只保留一个
+ config.setNmsThresh(FaceDetectConstant.NMS_THRESHOLD);
return FaceDetModelFactory.getInstance().getModel(config);
}