2025-05-09 20:10:04 +08:00
|
|
|
|
package cn.smartjavaai.face.config;
|
2025-04-13 20:33:15 +08:00
|
|
|
|
|
|
|
|
|
|
import cn.smartjavaai.common.enums.DeviceEnum;
|
2025-05-09 20:10:04 +08:00
|
|
|
|
import cn.smartjavaai.face.constant.FaceDetectConstant;
|
|
|
|
|
|
import cn.smartjavaai.face.enums.FaceModelEnum;
|
2025-06-09 12:12:10 +08:00
|
|
|
|
import cn.smartjavaai.face.enums.VectorDBType;
|
|
|
|
|
|
import cn.smartjavaai.face.vector.config.VectorDBConfig;
|
2025-04-13 20:33:15 +08:00
|
|
|
|
import lombok.Data;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2025-05-09 20:10:04 +08:00
|
|
|
|
* 人脸检测识别模型配置
|
2025-04-13 20:33:15 +08:00
|
|
|
|
* @author dwj
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Data
|
|
|
|
|
|
public class FaceModelConfig {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2025-05-26 16:24:24 +08:00
|
|
|
|
* 人脸模型枚举
|
2025-04-13 20:33:15 +08:00
|
|
|
|
*/
|
|
|
|
|
|
private FaceModelEnum modelEnum;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 置信度阈值
|
|
|
|
|
|
*/
|
2025-05-09 20:10:04 +08:00
|
|
|
|
private double confidenceThreshold = FaceDetectConstant.DEFAULT_CONFIDENCE_THRESHOLD;
|
2025-04-13 20:33:15 +08:00
|
|
|
|
|
2025-04-19 19:48:12 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 相似度阈值 作用:判断是否为同一人脸
|
|
|
|
|
|
*/
|
2025-06-09 12:12:10 +08:00
|
|
|
|
//private double similarityThreshold = 0D;
|
2025-04-19 19:48:12 +08:00
|
|
|
|
|
2025-04-13 20:33:15 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 非极大抑制阈值 作用:消除重叠检测框,保留最优结果
|
|
|
|
|
|
*/
|
2025-05-09 20:10:04 +08:00
|
|
|
|
private double nmsThresh = FaceDetectConstant.NMS_THRESHOLD;
|
2025-04-13 20:33:15 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 模型路径
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String modelPath;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 人脸库路径
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String faceDbPath;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 设备类型
|
|
|
|
|
|
*/
|
|
|
|
|
|
private DeviceEnum device;
|
|
|
|
|
|
|
2025-04-19 19:48:12 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* gpu设备ID 当device为GPU时生效
|
|
|
|
|
|
*/
|
|
|
|
|
|
private int gpuId = 0;
|
|
|
|
|
|
|
2025-05-17 11:19:46 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 人脸特征提取配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
private FaceExtractConfig extractConfig;
|
|
|
|
|
|
|
2025-06-09 12:12:10 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 向量数据库配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
private VectorDBConfig vectorDBConfig;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 是否自动加载人脸到内存
|
|
|
|
|
|
*/
|
|
|
|
|
|
private boolean isAutoLoadFace = true;
|
|
|
|
|
|
|
2025-04-28 16:13:34 +08:00
|
|
|
|
public FaceModelConfig() {
|
|
|
|
|
|
}
|
2025-04-13 20:33:15 +08:00
|
|
|
|
|
2025-04-28 16:13:34 +08:00
|
|
|
|
public FaceModelConfig(FaceModelEnum modelEnum) {
|
|
|
|
|
|
this.modelEnum = modelEnum;
|
|
|
|
|
|
}
|
2025-04-13 20:33:15 +08:00
|
|
|
|
|
2025-04-28 16:13:34 +08:00
|
|
|
|
public FaceModelConfig(FaceModelEnum modelEnum, String modelPath) {
|
|
|
|
|
|
this.modelEnum = modelEnum;
|
|
|
|
|
|
this.modelPath = modelPath;
|
|
|
|
|
|
}
|
2025-04-13 20:33:15 +08:00
|
|
|
|
}
|