修改算法位置

This commit is contained in:
zqc
2026-02-02 11:32:59 +08:00
parent b3fbc1577d
commit 49f0c2c678
7 changed files with 33 additions and 24 deletions

View File

@@ -31,7 +31,7 @@ except Exception as e:
# -------------------------- Kadian 检测相关导入 -------------------------- # -------------------------- Kadian 检测相关导入 --------------------------
from npu_yolo_onnx_person_car_phone import YOLOv8_ONNX # 主检测模型(人/车/后备箱/手机) from algorithm.checkpoint.npu_yolo_onnx_person_car_phone import YOLOv8_ONNX # 主检测模型(人/车/后备箱/手机)
from yolox.tracker.byte_tracker import BYTETracker from yolox.tracker.byte_tracker import BYTETracker
@@ -46,7 +46,7 @@ FACE_RECOGNITION_ENABLED = True # 是否启用人脸识别
police_prisoner_input_size = 1280 police_prisoner_input_size = 1280
# RTSP 服务配置 # RTSP 服务配置
RTSP_TARGET_FPS = 30.0 RTSP_TARGET_FPS = 10.0
FRAMES_PER_SEGMENT = 300 FRAMES_PER_SEGMENT = 300
VIDEO_OUTPUT_DIR = "./videos" VIDEO_OUTPUT_DIR = "./videos"
WS_HOST = "0.0.0.0" WS_HOST = "0.0.0.0"
@@ -607,11 +607,23 @@ class FrameProcessorWorker(threading.Thread):
if result['has_passed']: if result['has_passed']:
logger.info(f"[INFO] 犯人带出: {result['passed_person_id']}") logger.info(f"[INFO] 犯人带出: {result['passed_person_id']}")
# 记录当前帧人脸告警信息 # # 记录当前帧人脸告警信息
current_face_alert = { # current_face_alert = {
# "person_name": result['passed_person_id'],
# "timestamp": ts
# }
# 发送take_out类型的WebSocket消息
take_out_msg = {
"msg_type": "take_out",
"person_name": result['passed_person_id'], "person_name": result['passed_person_id'],
"timestamp": ts "historical_alert_count": result.get('historical_alert_count', 0)
} }
try:
logger.info(f"take_out {take_out_msg}")
self.ws_queue.put(take_out_msg, timeout=1.0)
except queue.Full:
logger.warning("[WARN] ws_send_queue full, drop take_out message")
except Exception as e: except Exception as e:
logger.error(f"[WARN] 人脸识别处理失败: {e}") logger.error(f"[WARN] 人脸识别处理失败: {e}")
@@ -622,6 +634,9 @@ class FrameProcessorWorker(threading.Thread):
result_img = result["image"] result_img = result["image"]
result_type = result["alerts"] result_type = result["alerts"]
result_img = frame
result_type = []
# 绘制人脸识别结果 # 绘制人脸识别结果
if video_face_prison_biz is not None and face_results: if video_face_prison_biz is not None and face_results:
result_img = video_face_prison_biz.draw_detections(result_img, face_results) result_img = video_face_prison_biz.draw_detections(result_img, face_results)
@@ -632,10 +647,10 @@ class FrameProcessorWorker(threading.Thread):
cv2.putText(result_img, face_info_text, (10, result_img.shape[0] - 20), cv2.putText(result_img, face_info_text, (10, result_img.shape[0] - 20),
cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 255), 2) cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 255), 2)
# 写视频 # # 写视频
writer, video_path = self._get_writer(cam_id, frame) # writer, video_path = self._get_writer(cam_id, frame)
writer.write(result_img) # writer.write(result_img)
self.video_counts[cam_id] = self.video_counts.get(cam_id, 0) + 1 # self.video_counts[cam_id] = self.video_counts.get(cam_id, 0) + 1
# 5) 通过 WebSocket 发送帧结果 # 5) 通过 WebSocket 发送帧结果
try: try:

View File

@@ -14,12 +14,11 @@ import base64
import asyncio import asyncio
import websockets import websockets
from dataclasses import dataclass from dataclasses import dataclass
from typing import Dict, Any, Tuple, List from typing import Dict, Any
from datetime import datetime
from test_cam import get_camera_preview_url from test_cam import get_camera_preview_url
# -------------------------- Kadian 检测相关导入 -------------------------- # -------------------------- Kadian 检测相关导入 --------------------------
from npu_yolo_onnx_person_car_phone import YOLOv8_ONNX # 主检测模型(人/车/后备箱/手机) from algorithm.checkpoint.npu_yolo_onnx_person_car_phone import YOLOv8_ONNX # 主检测模型(人/车/后备箱/手机)
from yolox.tracker.byte_tracker import BYTETracker from yolox.tracker.byte_tracker import BYTETracker

View File

@@ -15,12 +15,11 @@ import asyncio
import websockets import websockets
import requests import requests
from dataclasses import dataclass from dataclasses import dataclass
from typing import Dict, Any, Tuple, List from typing import Dict, Any
from datetime import datetime
from test_cam import get_camera_preview_url from test_cam import get_camera_preview_url
# -------------------------- Kadian 检测相关导入 -------------------------- # -------------------------- Kadian 检测相关导入 --------------------------
from npu_yolo_onnx_person_car_phone import YOLOv8_ONNX # 主检测模型(人/车/后备箱/手机) from algorithm.checkpoint.npu_yolo_onnx_person_car_phone import YOLOv8_ONNX # 主检测模型(人/车/后备箱/手机)
from yolox.tracker.byte_tracker import BYTETracker from yolox.tracker.byte_tracker import BYTETracker

View File

@@ -12,16 +12,14 @@ import yaml
import json import json
import base64 import base64
import asyncio import asyncio
import requests
import websockets import websockets
from dataclasses import dataclass from dataclasses import dataclass
from typing import Dict, Any, Tuple, List from typing import Dict, Any
from datetime import datetime
from test_cam import get_camera_preview_url from test_cam import get_camera_preview_url
# -------------------------- Kadian 检测相关导入 -------------------------- # -------------------------- Kadian 检测相关导入 --------------------------
from npu_yolo_onnx_person_car_phone import YOLOv8_ONNX # 主检测模型(人/车/后备箱/手机) from algorithm.checkpoint.npu_yolo_onnx_person_car_phone import YOLOv8_ONNX # 主检测模型(人/车/后备箱/手机)
from npu_yolo_pose_onnx import YOLOv8_Pose_ONNX # Pose 专用模型 from algorithm.checkpoint.npu_yolo_pose_onnx import YOLOv8_Pose_ONNX # Pose 专用模型
from yolox.tracker.byte_tracker import BYTETracker from yolox.tracker.byte_tracker import BYTETracker

View File

@@ -4,7 +4,6 @@
import cv2 import cv2
import numpy as np import numpy as np
import os
import time import time
import threading import threading
import queue import queue
@@ -14,11 +13,10 @@ import base64
import asyncio import asyncio
import websockets import websockets
from dataclasses import dataclass from dataclasses import dataclass
from typing import Dict, Any, Tuple, List from typing import Dict, Any
from datetime import datetime
# -------------------------- Kadian 检测相关导入 -------------------------- # -------------------------- Kadian 检测相关导入 --------------------------
from npu_yolo_onnx_person_car_phone import YOLOv8_ONNX # 主检测模型(人/车/后备箱/手机) from algorithm.checkpoint.npu_yolo_onnx_person_car_phone import YOLOv8_ONNX # 主检测模型(人/车/后备箱/手机)
from yolox.tracker.byte_tracker import BYTETracker from yolox.tracker.byte_tracker import BYTETracker