Files
SmartJavaAI/smartjavaai-face/src/main/java/cn/smartjavaai/face/config/FaceRecConfig.java

96 lines
2.0 KiB
Java
Raw Normal View History

package cn.smartjavaai.face.config;
2025-04-13 20:33:15 +08:00
import cn.smartjavaai.common.enums.DeviceEnum;
import cn.smartjavaai.face.constant.FaceDetectConstant;
import cn.smartjavaai.face.enums.FaceRecModelEnum;
import cn.smartjavaai.face.model.facedect.FaceDetModel;
import cn.smartjavaai.face.model.facerec.FaceRecModel;
import cn.smartjavaai.face.vector.config.VectorDBConfig;
2025-04-13 20:33:15 +08:00
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
2025-04-13 20:33:15 +08:00
/**
* 人脸检测识别模型配置
2025-04-13 20:33:15 +08:00
* @author dwj
*/
@Data
public class FaceRecConfig {
2025-04-13 20:33:15 +08:00
/**
* 人脸模型枚举
2025-04-13 20:33:15 +08:00
*/
private FaceRecModelEnum modelEnum;
2025-04-13 20:33:15 +08:00
/**
* 模型路径
*/
private String modelPath;
/**
* 设备类型
*/
private DeviceEnum device;
/**
* 向量数据库配置
*/
private VectorDBConfig vectorDBConfig;
/**
* 是否自动加载人脸到内存
*/
private boolean isAutoLoadFace = true;
/**
* 是否裁剪人脸
*/
private boolean cropFace = true;
/**
* 是否对齐人脸
*/
private boolean align = false;
/**
* 人脸检测模型
*/
private FaceDetModel detectModel;
/**
* 个性化配置按模型类型动态解析
*/
private Map<String, Object> customParams = new HashMap<>();
public FaceRecConfig() {
}
2025-04-13 20:33:15 +08:00
public FaceRecConfig(FaceRecModelEnum modelEnum) {
this.modelEnum = modelEnum;
}
2025-04-13 20:33:15 +08:00
public FaceRecConfig(FaceRecModelEnum modelEnum, String modelPath) {
this.modelEnum = modelEnum;
this.modelPath = modelPath;
}
public <T> T getCustomParam(String key, Class<T> clazz) {
Object value = customParams.get(key);
if (value == null) return null;
return clazz.cast(value);
}
/**
* 添加个性化配置项
*/
public void putCustomParam(String key, Object value) {
if (customParams == null) {
customParams = new HashMap<>();
}
customParams.put(key, value);
}
2025-04-13 20:33:15 +08:00
}