diff --git a/app.py b/app.py index 59b48ed..0054905 100644 --- a/app.py +++ b/app.py @@ -52,10 +52,10 @@ BASE_IMAGE_DIR_UP_IMAGES = str((PROJECT_ROOT / "up_images").resolve()) BASE_MODEL_DIR = str((PROJECT_ROOT / "resource" / "models").resolve()) # 模型文件目录 # 打印路径配置(调试用,确认目录正确) -logger.info(f"[Flask 配置] 项目根目录:{PROJECT_ROOT}") -logger.info(f"[Flask 配置] 模型目录:{BASE_MODEL_DIR}") -logger.info(f"[Flask 配置] 人脸图片目录:{BASE_IMAGE_DIR_UP_IMAGES}") -logger.info(f"[Flask 配置] 检测图片目录:{BASE_IMAGE_DIR_DECT}") +# logger.info(f"[Flask 配置] 项目根目录:{PROJECT_ROOT}") +# logger.info(f"[Flask 配置] 模型目录:{BASE_MODEL_DIR}") +# logger.info(f"[Flask 配置] 人脸图片目录:{BASE_IMAGE_DIR_UP_IMAGES}") +# logger.info(f"[Flask 配置] 检测图片目录:{BASE_IMAGE_DIR_DECT}") # ------------------------------ # 安全检查装饰器(不变,防路径遍历/非法文件) diff --git a/core/establish.py b/core/establish.py index 1a800dc..2092319 100644 --- a/core/establish.py +++ b/core/establish.py @@ -1,4 +1,3 @@ -import os import datetime from pathlib import Path @@ -9,19 +8,19 @@ def create_directory_structure(): # 1. 创建根目录下的resource文件夹(存在则跳过,不覆盖子内容) resource_dir = Path("resource") resource_dir.mkdir(exist_ok=True) - print(f"确保resource目录存在: {resource_dir.absolute()}") + # print(f"确保resource目录存在: {resource_dir.absolute()}") # 2. 在resource下创建dect文件夹 dect_dir = resource_dir / "dect" dect_dir.mkdir(exist_ok=True) - print(f"确保dect目录存在: {dect_dir.absolute()}") + # print(f"确保dect目录存在: {dect_dir.absolute()}") # 3. 在dect下创建三个模型文件夹 model_dirs = ["ocr", "face", "yolo"] for model in model_dirs: model_dir = dect_dir / model model_dir.mkdir(exist_ok=True) - print(f"确保{model}模型目录存在: {model_dir.absolute()}") + # print(f"确保{model}模型目录存在: {model_dir.absolute()}") # 4. 调用外部方法获取所有客户端IP地址 try: @@ -59,7 +58,7 @@ def create_directory_structure(): # 递归创建目录(存在则跳过,不覆盖) month_dir.mkdir(parents=True, exist_ok=True) - print(f"为客户端IP {ip} 创建/确保目录存在: {month_dir.absolute()}") + # print(f"为客户端IP {ip} 创建/确保目录存在: {month_dir.absolute()}") except Exception as e: print(f"处理客户端IP和日期目录时发生错误: {str(e)}") diff --git a/core/face.py b/core/face.py index b8e972a..d5c728b 100644 --- a/core/face.py +++ b/core/face.py @@ -1,12 +1,9 @@ import os import numpy as np -import cv2 import gc import time import threading -from PIL import Image from insightface.app import FaceAnalysis -# 假设service.face_service中get_all_face_name_with_eigenvalue可获取人脸数据 from service.face_service import get_all_face_name_with_eigenvalue # GPU状态检查支持 diff --git a/core/yolo.py b/core/yolo.py index 924cc01..1f58648 100644 --- a/core/yolo.py +++ b/core/yolo.py @@ -1,5 +1,3 @@ -import os -import numpy as np from ultralytics import YOLO from service.model_service import get_current_yolo_model # 带版本校验的模型获取 diff --git a/service/device_service.py b/service/device_service.py index 248a2ba..b8657b2 100644 --- a/service/device_service.py +++ b/service/device_service.py @@ -1,5 +1,5 @@ import json -from datetime import datetime, date +from datetime import date from fastapi import APIRouter, Query, HTTPException, Request, Path from mysql.connector import Error as MySQLError diff --git a/util/file_util.py b/util/file_util.py index 2305ed2..2e9be83 100644 --- a/util/file_util.py +++ b/util/file_util.py @@ -12,7 +12,7 @@ def save_face_to_up_images( ) -> Dict[str, str]: """ 保存人脸图片到 `/up_images/用户IP/人脸名字/` 路径 - 修复路径计算错误,确保所有路径在up_images根目录下,且统一使用正斜杠 + 确保db_path以up_images开头,且统一使用正斜杠 参数: client_ip: 客户端IP(原始格式,如192.168.1.101) @@ -38,7 +38,7 @@ def save_face_to_up_images( safe_face_name = "".join([c for c in safe_face_name if c not in r'\/:*?"<>|']) # 过滤非法字符 # 3. 构建根目录(强制转为绝对路径,避免相对路径混淆) - root_dir = Path("up_images").resolve() # 转为绝对路径 + root_dir = Path("up_images").resolve() # 转为绝对路径(如D:/Git/bin/video/up_images) if not root_dir.exists(): root_dir.mkdir(parents=True, exist_ok=True) print(f"[FileUtil] 已创建up_images根目录:{root_dir}") @@ -60,9 +60,9 @@ def save_face_to_up_images( if not local_abs_path.resolve().is_relative_to(root_dir.resolve()): raise Exception(f"图片路径不在up_images根目录下(安全校验失败):{local_abs_path}") - # 数据库存储路径:从root_dir开始的相对路径,强制替换为正斜杠 - relative_path = local_abs_path.relative_to(root_dir) - db_path = str(relative_path).replace("\\", "/") # 关键修复:统一使用正斜杠 + # 数据库存储路径:强制包含up_images前缀,统一使用正斜杠 + relative_path = local_abs_path.relative_to(root_dir.parent) # 相对于root_dir的父目录 + db_path = str(relative_path).replace("\\", "/") # 此时会包含up_images部分 # 7. 写入图片文件 with open(local_abs_path, "wb") as f: @@ -73,8 +73,8 @@ def save_face_to_up_images( return { "success": True, - "db_path": db_path, # 存数据库的相对路径(使用正斜杠) - "local_abs_path": str(local_abs_path), # 本地绝对路径 + "db_path": db_path, # 格式为 up_images/192_168_110_31/小龙/xxx.jpg + "local_abs_path": str(local_abs_path), # 本地绝对路径(完整路径) "msg": "图片保存成功" }