重构: 模型类别配置动态化,适配 v2+ (5 类) 模型
- settings.py: 删除 80 类 COCO_CLASS_NAMES 硬编码,改为 MODEL_CLASS_NAMES
+ 新增 MODEL_NUM_CLASSES / MODEL_OUTPUT_CHANNELS 辅助常量
+ 新增 ALGO_INTENT_CLASSES 字典 + get_algo_target_classes() 辅助函数
+ COCO_CLASS_NAMES 保留名称向后兼容,指向 MODEL_CLASS_NAMES
- postprocessor.py: 4 处硬编码 84 → MODEL_OUTPUT_CHANNELS
+ 支持不同类别数模型切换不改代码
- algorithms.py: 4 处硬编码 target_classes 默认值 → get_algo_target_classes()
+ IllegalParkingAlgorithm / VehicleCongestionAlgorithm /
NonMotorVehicleParkingAlgorithm / GarbageDetectionAlgorithm
+ 自动过滤当前模型不支持的类(truck/bus 等)
以后换模型只需修改 settings.py 一处 MODEL_CLASS_NAMES。
This commit is contained in:
@@ -11,6 +11,8 @@ import cv2
|
||||
import numpy as np
|
||||
import redis
|
||||
|
||||
from config.settings import get_algo_target_classes
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
@@ -800,7 +802,7 @@ class IllegalParkingAlgorithm(BaseAlgorithm):
|
||||
self.parking_countdown_sec = parking_countdown_sec
|
||||
self.confirm_clear_sec = confirm_clear_sec
|
||||
self.cooldown_sec = cooldown_sec
|
||||
self.target_classes = target_classes or ["car", "truck", "bus", "motorcycle"]
|
||||
self.target_classes = target_classes or get_algo_target_classes("illegal_parking")
|
||||
self._alarm_level = alarm_level if alarm_level is not None else self.DEFAULT_ALARM_LEVEL
|
||||
|
||||
# 状态变量
|
||||
@@ -1070,7 +1072,7 @@ class VehicleCongestionAlgorithm(BaseAlgorithm):
|
||||
self.confirm_congestion_sec = confirm_congestion_sec
|
||||
self.confirm_clear_sec = confirm_clear_sec
|
||||
self.cooldown_sec = cooldown_sec
|
||||
self.target_classes = target_classes or ["car", "truck", "bus", "motorcycle"]
|
||||
self.target_classes = target_classes or get_algo_target_classes("vehicle_congestion")
|
||||
self._alarm_level = alarm_level if alarm_level is not None else self.DEFAULT_ALARM_LEVEL
|
||||
self.dissipation_ratio = dissipation_ratio # Step 6
|
||||
|
||||
@@ -1336,7 +1338,7 @@ class NonMotorVehicleParkingAlgorithm(BaseAlgorithm):
|
||||
self.parking_countdown_sec = parking_countdown_sec
|
||||
self.confirm_clear_sec = confirm_clear_sec
|
||||
self.cooldown_sec = cooldown_sec
|
||||
self.target_classes = target_classes or ["bicycle", "motorcycle"]
|
||||
self.target_classes = target_classes or get_algo_target_classes("non_motor_vehicle_parking")
|
||||
self._alarm_level = alarm_level if alarm_level is not None else self.DEFAULT_ALARM_LEVEL
|
||||
|
||||
# 状态变量
|
||||
@@ -1599,7 +1601,7 @@ class GarbageDetectionAlgorithm(BaseAlgorithm):
|
||||
self.confirm_garbage_sec = confirm_garbage_sec
|
||||
self.confirm_clear_sec = confirm_clear_sec
|
||||
self.cooldown_sec = cooldown_sec
|
||||
self.target_classes = target_classes or ["garbage"]
|
||||
self.target_classes = target_classes or get_algo_target_classes("garbage")
|
||||
self._alarm_level = alarm_level if alarm_level is not None else self.DEFAULT_ALARM_LEVEL
|
||||
|
||||
# 状态变量
|
||||
|
||||
Reference in New Issue
Block a user