Files
OperationRoomMonitor/main_debug.py
2026-05-26 14:22:44 +08:00

76 lines
2.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""Debug 入口Excel I 列时间段替代 ActionFormer其余 Phase2 与 main.py 一致。"""
from __future__ import annotations
import argparse
import os
import sys
from pathlib import Path
PACK_ROOT = Path(__file__).resolve().parent
sys.path.insert(0, str(PACK_ROOT / "src"))
from paths import ensure_code_on_path
ensure_code_on_path(PACK_ROOT)
from config import load_run_config
from orchestrator import run_debug_pipeline
def main() -> int:
os.environ.setdefault("OPENCV_FFMPEG_LOGLEVEL", "8")
ap = argparse.ArgumentParser(
description="手术室耗材 Debug 主流程Excel 时间段 → Phase2跳过 ActionFormer"
)
ap.add_argument("--video", type=Path, required=True, help="输入 MP4")
ap.add_argument(
"--excel",
type=Path,
required=True,
help="商品表 ExcelC 列白名单 + I 列时间段 + 产品编码)",
)
ap.add_argument("--out", type=Path, required=True, help="输出 TSV")
ap.add_argument(
"--config",
type=Path,
default=PACK_ROOT / "configs" / "default_config.yaml",
help="继承 weights / phase2 / tear_merge / doctor 的 YAML忽略 io 与 phase1",
)
ap.add_argument(
"--time-col-index",
type=int,
default=8,
help="时间段列索引,默认 8 即 Excel I 列视频2 可用 9J 列)",
)
ap.add_argument(
"--min-seg-seconds",
type=float,
default=None,
help="最短段时长(秒);默认 0 表示不过滤短段",
)
args = ap.parse_args()
cfg_path = args.config.resolve()
if not cfg_path.is_file():
print("找不到配置:", cfg_path, file=sys.stderr)
return 1
run_cfg = load_run_config(PACK_ROOT, cfg_path)
run_cfg.video = args.video.resolve()
run_cfg.excel = args.excel.resolve()
run_cfg.out = args.out.resolve()
run_cfg.excel_time_col_index = int(args.time_col_index)
if args.min_seg_seconds is not None:
run_cfg.af_min_seg_seconds = float(args.min_seg_seconds)
else:
run_cfg.af_min_seg_seconds = 0.0
run_cfg.merge_adjacent_tear = False
return int(run_debug_pipeline(run_cfg))
if __name__ == "__main__":
raise SystemExit(main())