amc-run-sample-calibration 是 NVIDIA AMC(AutoMagicCalib)技能集中的一项技能,作用是对随附样例数据集执行完整标定流程,以验证刚启动的 AMC 技术栈是否可以端到端正常工作。
用途
当用户希望用内置样例数据对运行中的 AMC 服务做健全性检查时启用本技能。典型提示包括“测试样例数据集”“运行样例标定”“验证 AMC 安装”“启动并测试”(若微服务尚未运行,可与 amc-setup-calibration-stack 技能链式使用)。本技能仅针对 assets/sdg_08_2_sample_data_010926.zip。
不应使用本技能的情形:用户引用自有视频路径(如 /data/videos/、非内置 zip 中的 cam_*.mp4),应改用 amc-run-video-calibration;用户提供实时 RTSP 流或 rtsp://… URL,应改用 amc-run-rtsp-calibration。
主要能力
对内置样例数据集(sdg_08_2_sample_data_010926.zip,含 4 路合成仓库摄像头及真值)执行完整标定。样例包含 GT,因此运行会产出评估指标(L2 距离、重投影误差),无需标定参数调优。技能会自动探测 8000–8009 端口上运行的后端、幂等地解压样例数据、运行捆绑脚本创建新项目、上传视频/对齐/布局/GT、执行标定并轮询项目状态,最后报告最终指标与 UI 地址供人工检查。当项目报告 vggt_state: READY 时,默认尝试 VGGT 精化;否则脚本会说明 VGGT 设置为可选、可稍后启用以进行精化。
使用方式
前置条件:AMC 微服务运行在 8000–8009 端口之一(否则先委派 amc-setup-calibration-stack);样例 zip 存在于 assets/sdg_08_2_sample_data_010926.zip;Python 3 并安装 requests(python3 -m pip install requests,若 pip 不可用需先安装发行版的 Python 打包支持)。
典型指令流程:
- 若用户说“启动 AMC 并测试样例数据集”:先运行 amc-setup-calibration-stack/SKILL.md,等待 /v1/ready 返回 OK,再解压样例数据,运行捆绑脚本,报告指标与 UI 地址。
- 若微服务已在运行、用户说“测试样例数据集”:探测端口 8000–8009 中的 /v1/ready,若无则指向设置技能;如未缓存则解压样例数据;运行捆绑脚本;报告指标。
探测后端示例命令: MS_PORT="" for port in {8000..8009}; do if curl -s "http://localhost:$port/v1/ready" | grep -q '"code":0'; then MS_PORT=$port; break fi done [ -z "$MS_PORT" ] && { echo "No running backend. Run amc-setup-calibration-stack skill first."; exit 1; } echo "Backend on port $MS_PORT"
解压样例数据(幂等):需设置 REPO_ROOT 指向 auto-magic-calib 检出目录,脚本会校验 README.md 与 compose/ms/compose.yml,然后解压到 zip 同级的 .cache/sdg_08_2_sample_data_010926 目录,预期得到 alignment_data/、GT.zip、videos/。
运行脚本:从 amc-run-sample-calibration 技能包中运行捆绑脚本(scripts/run_sample_calibration.py),而非从仓库根目录运行;若直接指向技能目录,需设置 AMC_SAMPLE_SKILL_DIR。脚本未设置 BASE_URL/MS_PORT 时自动探测 8000–8009 上运行的后端,接受 BASE_URL、MS_PORT、SAMPLE_DIR、RUN_VGGT 覆盖,每次运行创建新项目,ready 时尝试 VGGT,最后打印 NGC 仓库数据集说明。
备选:Swagger UI 手动流程。微服务在 http://<HOST_IP>:<MS_PORT>/docs 提供交互式 OpenAPI UI。若用户明确要求手动走查,可按顺序调用以下端点,并把步骤 1 的 project_id 复制到后续路径:
- POST /v1/create_project(project_name:任意字符串)
- POST /v1/upload_video_files/{project_id}(上传 videos/cam_0*.mp4 全部 4 个,按名称排序)
- POST /v1/upload_alignment/{project_id}(alignment_file:alignment_data/alignment_data.json)
- POST /v1/upload_layout/{project_id}(layout_file:alignment_data/layout.png)
- POST /v1/upload_gt_file/{project_id}(gt_file:GT.zip)
- POST /v1/verify_project/{project_id}(预期 project_state: READY)
- POST /v1/calibrate/{project_id}(JSON:{"detector_type": "resnet"})
- GET /v1/get_project_info/{project_id}(每约 10 秒刷新直到 project_state = COMPLETED)
- GET /v1/result/{project_id}/evaluation_statistics(读取 L2 距离与重投影误差) 10.(可选)POST /v1/vggt/calibrate/{project_id},再 GET /v1/vggt_results/{project_id}/evaluation_statistics(仅当 vggt_state 为 READY 时运行,轮询至 COMPLETED)
状态字段说明
project_info.project_state 是项目的 AMC 标定生命周期,轮询至 COMPLETED(或遇到 ERROR 停止)。project_info.vggt_state 是项目级 VGGT 精化生命周期,而非直接的服务或模型加载状态;新项目即使模型已就绪也可能报告 INIT。预期生命周期为 INIT →(AMC 标定完成后)READY →(VGGT 精化运行中)RUNNING → COMPLETED(或 ERROR)。
成功标准
项目在约 30 分钟内达到 project_state == "COMPLETED";/v1/result/{id}/evaluation_statistics 返回非空统计(已上传 GT);VGGT 要么运行至 vggt_state == "COMPLETED" 并报告 /v1/vggt_results/{id}/evaluation_statistics,要么因项目未就绪而被跳过并给出设置指引;期间不出现 ERROR 状态。样例的代表性指标(结果应相近):平均 L2 距离 < 1.5 m;平均重投影误差 0 < 10 px。
输出与监控
结果持久化在服务器的 $REPO_ROOT/projects/project_<project_id>/ 下,包含 output/single_view_results/cam_XX/(camInfo_hyper_XX.yaml、trajDump_Stream_0_3d.txt)、output/multi_view_results/BA_output/results_ba/refined/camInfo_XX.yaml(最终标定,使用此文件)以及 calibration.log。可通过 tail -F 跟踪项目的 calibration.log,或用 docker compose -f "$REPO_ROOT/compose/compose.yml" logs -f auto-magic-calib-ms 查看服务日志。
故障排查要点
requests 未安装:先执行 python3 -m pip install requests。上传视频数远大于 4:说明 SAMPLE_DIR 解析过宽导致扫到陈旧视频,应修正 SAMPLE_DIR 并新建项目。verify_project 状态非 READY:确认 4 个视频、对齐、布局、GT 均已上传,检查项目信息响应。样例未解压:手动解压到 .cache 目录。cam_*.mp4 匹配 0 个文件:检查包装目录层级。标定超时(>60 分钟):查看 calibration.log 是否提示 insufficient tracklets。上传返回 413:提高服务器上传限制或拆分文件。端口扫描未发现后端:后端未运行,先运行 amc-setup-calibration-stack。
附加样例数据集
根 README.md 还记录了 nv_warehouse_032326.zip,这是可从 NGC 获取的真实仓库数据集。使用 ngc registry resource download-version "nvidia/amc-nv-warehouse" 下载;随后使用 amc-run-video-calibration,在配置步骤上传 nv_warehouse_config.json,并使用 transformer 检测器运行。它不含真值数据。
相关技能
skills/amc-setup-calibration-stack/SKILL.md(启动微服务与 UI,前置条件);skills/amc-run-video-calibration/SKILL.md(对自有预录 MP4 运行标定);skills/amc-run-rtsp-calibration/SKILL.md(通过 VIOS 采集从实时 RTSP 流运行标定)。
限制
本技能仅适用于内置样例数据集 assets/sdg_08_2_sample_data_010926.zip;若当前环境无法执行(无后端、缺少样例数据等),技能会说明阻塞原因并描述预期工作流与 API 序列,不会伪造标定输出、评估指标或轨迹。