修改路径,从src放到根目录

This commit is contained in:
zqc
2026-01-08 10:32:36 +08:00
parent 96589ebdbd
commit f86effd63c
37 changed files with 51 additions and 410 deletions

0
algorithm/__init__.py Normal file
View File

View File

@@ -0,0 +1,75 @@
# face_recognition_algorithm.py
from insightface.app import FaceAnalysis
class FaceRecognitionAlgorithm:
"""
人脸识别核心算法类
负责模型加载和设备配置,与业务逻辑分离
"""
def __init__(self, model_name: str = 'buffalo_l', use_gpu: bool = True, use_npu: bool = False,
npu_device_id: int = 0):
# 设备配置映射NPU采用华为指定的完整参数
self.DEVICE_CONFIG = {
"cpu": (['CPUExecutionProvider'], -1),
"gpu": (['CUDAExecutionProvider'], 0),
"npu": (
[
(
"CANNExecutionProvider",
{
"device_id": npu_device_id,
"arena_extend_strategy": "kNextPowerOfTwo",
"npu_mem_limit": 16 * 1024 * 1024 * 1024,
"op_select_impl_mode": "high_precision",
"precision_mode": "allow_fp32_to_fp16",
"enable_cann_graph": True,
},
),
"CPUExecutionProvider"
],
npu_device_id
)
}
# 算法参数设置
self.det_size = 640 # 320快速 640中等 1280慢
self.det_threshold = 0.5 # 人脸置信度
# 根据设备类型选择配置
if use_npu:
device_type = "npu"
print(f"✅ 使用NPU设备设备ID: {npu_device_id}")
elif use_gpu:
device_type = "gpu"
print("✅ 使用GPU设备")
else:
device_type = "cpu"
print("✅ 使用CPU设备")
providers, ctx_id = self.DEVICE_CONFIG[device_type]
# 初始化人脸识别模型
self.app = FaceAnalysis(name=model_name, providers=providers)
self.app.prepare(
ctx_id=ctx_id,
det_thresh=self.det_threshold,
det_size=(self.det_size, self.det_size)
)
print(f"✅ 人脸识别算法初始化完成 - 设备: {device_type.upper()}")
def set_det_threshold(self, threshold: float):
"""设置检测阈值"""
self.det_threshold = threshold
print(f"✅ 检测阈值设置为: {threshold}")
def set_det_size(self, size: int):
"""设置检测尺寸"""
self.det_size = size
print(f"✅ 检测尺寸设置为: {size}")
def get_app(self) -> FaceAnalysis:
"""获取底层的FaceAnalysis实例"""
return self.app