mcpField
I
i4h-workflow-dataset-annotate

i4h-workflow-dataset-annotate

github.com/nvidia数据与数据库3.8k67 次安装今天更新
代码仓库

关于 i4h-workflow-dataset-annotate

i4h-workflow-dataset-annotate 用于依据自然语言成功标准,为工作流录制中抽取的相机帧评分。它面向检查 HDF5 片段的用户,并将 VLM 判定与模拟器成功状态区分开来。

主要功能

  1. 01对各片段抽样帧评分
  2. 02使用自然语言标准
  3. 03支持 OpenAI 兼容视觉端点
  4. 04提供相机抽样试运行
  5. 05可按判定筛选录制数据

适用场景

  1. 01为所选 HDF5 文件中的每个片段评分
  2. 02发送图像前检查相机抽样
  3. 03评分后生成筛选录制文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nvidia/skills --skill i4h-workflow-dataset-annotate

安装后在 Claude Code 中输入/i4h-workflow-dataset-annotate确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json

详细介绍

标注工作流录制

目的

根据自然语言成功标准对抽样的摄像头帧进行评分,同时将 VLM 标签与模拟器成功状态分开。

说明

  1. 运行检出目录解析器,并选择一个 HDF5 文件和一项标准。
  2. 测试摄像头采样和视觉端点。
  3. 对每个选定的回合运行评分,并按需进行筛选。
  4. 比较判定结果和输出数量。

解析输入和标准

export I4H_WORKFLOWS_REPO_URL="${I4H_WORKFLOWS_REPO_URL:-https://github.com/isaac-for-healthcare/i4h-workflows}"
I4H_REPO_DIR_NAME="${I4H_WORKFLOWS_REPO_URL%/}"
I4H_REPO_DIR_NAME="${I4H_REPO_DIR_NAME##*/}"
I4H_REPO_DIR_NAME="${I4H_REPO_DIR_NAME##*:}"
I4H_REPO_DIR_NAME="${I4H_REPO_DIR_NAME%.git}"
[ -n "$I4H_REPO_DIR_NAME" ] || { echo "Cannot derive a checkout name from I4H_WORKFLOWS_REPO_URL" >&2; exit 2; }
ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"
if [ ! -d "$ROOT/workflows/i4h_workflows" ]; then
  ROOT="${I4H_WORKFLOWS:-$HOME/$I4H_REPO_DIR_NAME}"
  [ -d "$ROOT/workflows/i4h_workflows" ] || git clone "$I4H_WORKFLOWS_REPO_URL" "$ROOT"
fi
export I4H_WORKFLOWS="$ROOT"
cd "$ROOT"
find runs -name '*.hdf5' -type f -printf '%T@ %p\n' | sort -nr | head

将上方的解析器视为技能契约的一部分:托管副本可能在基础仓库之外运行,因此绝不要假设当前检出目录中包含 workflows/i4h_workflows。I4H_WORKFLOWS_REPO_URL 用于选择克隆源。未设置 I4H_WORKFLOWS 时,根据该 URL 推导回退目录;只有在要复用或选择特定目标位置时,才设置 I4H_WORKFLOWS。绝不要替换现有检出目录。

使用显式指定或当前链中的 HDF5 文件。“所有已录制回合”是指所选文件中的每个回合,而不是所有历史运行。检查该文件;如果用户提供了明确的成功标准,则使用该标准;否则,将源 Scene 清单说明与工作流中可见的终点目标语义结合起来。描述放置成功时,应表述为物体到达目标并保持在目标位置,而不是机器人继续抓住物体。

解析端点

优先使用调用方提供的 OpenAI 兼容视觉端点/模型。Local Agent 通过 I4H_AGENT_VL_BASE_URL、I4H_AGENT_VL_MODEL 以及 I4H_AGENT_VL_API_KEY 或 I4H_AGENT_API_KEY 提供此配置。将这些通用 Agent 变量映射到标注器,但不要打印凭据:

VLM_ARGS=()
if [ -n "${I4H_AGENT_VL_BASE_URL:-}" ] && [ -n "${I4H_AGENT_VL_MODEL:-}" ]; then
  I4H_VLM_URL="${I4H_AGENT_VL_BASE_URL%/}"
  case "$I4H_VLM_URL" in */v1) ;; *) I4H_VLM_URL="$I4H_VLM_URL/v1" ;; esac
  export I4H_VLM_URL
  export OPENAI_API_KEY="${I4H_AGENT_VL_API_KEY:-${I4H_AGENT_API_KEY:-EMPTY}}"
  VLM_ARGS=(--model "$I4H_AGENT_VL_MODEL")
fi

如果没有调用方提供的端点/模型,则启动仓库的本地服务:

tools/annotator/scripts/vllm.sh ensure

记录此次调用是否启动了该服务。不要在技能中硬编码模型名称;除非用户提供模型,否则使用 CLI/服务默认值。

按需进行试运行采样

uv run --project tools/annotator i4h-annotator \
  --task "<success criterion>" \
  --dry-run \
  offline /absolute/path/to/recording.hdf5

用此操作在不传输图像的情况下验证摄像头和抽样帧。

评分和筛选

RUN_DIR="$(pwd)/runs/<workflow>/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$RUN_DIR"
uv run --project tools/annotator i4h-annotator \
  --task "<success criterion>" \
  "${VLM_ARGS[@]}" \
  offline /absolute/path/to/recording.hdf5 \
  --write

仅在选择使用时,才添加全局 --base-url、--model、--camera 或 --frames。仅在请求指定片段时,才添加离线 --node。仅在请求筛选时,才添加 --filter "$RUN_DIR/filtered.hdf5";仅要求总结的提示词应对所有回合评分,无需至少有一个成功回合。将凭据保存在环境变量中;绝不要打印凭据。

只有此次调用启动了本地 VLM,才停止它:

tools/annotator/scripts/vllm.sh stop

验证

检查标注器摘要。如果请求了筛选,还要检查筛选后的文件:

uv run --project tools/dataset i4h-dataset inspect "$RUN_DIR/filtered.hdf5" --segments

确保每个选定回合都有判定,并核对通过/失败数量,以及适用时的筛选后数量。将端点错误、摄像头缺失、部分写入和无法解释的零回合输出视为失败。对于仅要求总结的提示词,全部判定为失败也属于有效的已完成评分运行;但这不构成有效的筛选数据集。

故障排除

在检查端点/身份验证错误之前,先检查摄像头采样。绝不要接受部分写入,或数量为零且无法解释的筛选文件。

前置条件

需要可读取且包含摄像头帧的工作流 HDF5 文件;除试运行外,还需要可访问的 OpenAI 兼容视觉端点。

限制

视觉评分无法恢复缺失帧,也无法证明画面中不可见的模拟器状态。

示例

  • Run annotation on all recorded episodes and summarize. → 选择当前 HDF5 文件,对每个回合评分,验证筛选后的文件,并报告通过/失败数量。

完成门槛

报告源 HDF5 文件、选定的标准/摄像头/模型/端点来源、评分后的通过/失败数量、按需报告筛选路径/数量、使用试运行时的结果,以及本地服务清理情况。

评论

支持 Markdown