feat: 支持按算法独立配置置信度阈值
通过 ALGO_CONF_{ALGO_CODE} 环境变量为每个算法设置独立的 conf_threshold,
未配置的算法回退到全局 CONF_THRESHOLD。推理过程零改动,仅后处理过滤阶段
按 bind.algo_code 使用对应阈值。
当前配置:离岗=0.4(降低漏检),入侵=0.5(减少误报)。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
14
main.py
14
main.py
@@ -598,14 +598,24 @@ class EdgeInferenceService:
|
||||
self._logger.debug(f"[推理诊断] batch_data shape={batch_data.shape}, outputs={shapes}, 耗时={inference_time_ms:.1f}ms")
|
||||
|
||||
batch_size = len(chunk)
|
||||
|
||||
# 按算法类型获取每个 item 的独立置信度阈值
|
||||
per_item_conf = [
|
||||
self._settings.inference.get_conf_threshold(item[2].algo_code)
|
||||
for item in chunk
|
||||
]
|
||||
|
||||
batch_results = self._postprocessor.batch_process_detections(
|
||||
outputs,
|
||||
batch_size,
|
||||
conf_threshold=self._settings.inference.conf_threshold
|
||||
per_item_conf_thresholds=per_item_conf,
|
||||
)
|
||||
|
||||
total_detections = sum(len(r[0]) for r in batch_results)
|
||||
self._logger.debug(f"[推理] batch_size={batch_size}, 总检测数={total_detections}, conf_thresh={self._settings.inference.conf_threshold}")
|
||||
self._logger.debug(
|
||||
f"[推理] batch_size={batch_size}, 总检测数={total_detections}, "
|
||||
f"conf_thresholds={per_item_conf}"
|
||||
)
|
||||
|
||||
for idx, (camera_id, roi, bind, frame, _, scale_info) in enumerate(chunk):
|
||||
boxes, scores, class_ids = batch_results[idx]
|
||||
|
||||
Reference in New Issue
Block a user