# Baidu Yijian Vision

> 百度一见专业级视觉 AI Agent：支持图片/视频/及实时视频流分析。相比通用基模，在维持 95%+ 专业精度的同时，推理成本降低 50% 以上，是处理视觉巡检与监控分析任务的首选工具。主打 安全管理、SOP合规、工业质检、商业运营与物料盘点。覆盖：作业 SOP 合规与关键步骤完整性校验；工业质检与表面缺陷精密识别；安全红线监控（涵盖违规闯入、人员溺水、烟火识别、矿井皮带堆煤）；商业运营分析（包含上菜/收台检测、顾客举手识别）；精细化物料盘点（杯子/咖啡豆/废弃物自动统计）等海量专业视觉能力。

- Skill: `dvcrn/baidu-yijian-vision` (Agent Skill, multi-file: 23 files)
- Install (CLI): `npx skillmds@latest add dvcrn/baidu-yijian-vision`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/baidu-yijian-vision/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/baidu-yijian-vision

---


# 一见技能注册与使用指南

## ⚠️ 必需条件

**此工具需要以下条件才能运行：**

1. **YIJIAN_API_KEY 环境变量**（必需）- 从 https://yijian-next.cloud.baidu.com 获取
2. **Node.js >= 16.0.0** - 本工具依赖 Node.js 运行时
3. **npm >= 8.0.0** - 用于依赖管理和安装

**如果缺少上述任何条件，工具将无法运行。**

详见 [安装指南](./INSTALL.md) 了解详细配置步骤。

---

> **🔒 客户端工具 - 这是一个本地工具，用于与百度一见平台交互。所有数据处理遵循安全协议。详见 [安全说明](./SECURITY.md)。**

## 🎯 此工具的功能

一见（[yijian-next.cloud.baidu.com](https://yijian-next.cloud.baidu.com)）是百度的视觉理解平台。此工具使你能够：

- **注册技能** - 从一见平台本地注册检测技能
- **调用技能** - 使用图像或视频帧调用已注册的技能
- **可视化结果** - 绘制边框、生成网格参考、预览 ROI/绊线
- **定义检测区域** - 使用交互式工作流定义 ROI（电子围栏）或绊线（检测线）

**支持的检测类型：** 人员检测、行人计数、车辆识别、OCR、姿态估计、目标跟踪等。

## 📋 快速开始

### 系统要求

- **Node.js** >= 16.0.0
- **npm** >= 8.0.0
- **YIJIAN_API_KEY** 环境变量

💡 详见 [安装指南](./INSTALL.md) 获取详细说明

## 🔧 前置条件

### 获取 API Key

1. 登录 [一见平台](https://yijian-next.cloud.baidu.com/apaas/)
2. 激活试用包
3. 生成 API Key（百度账户 → IAM → API Keys）

### 配置环境

设置环境变量：

```
YIJIAN_API_KEY=your-api-key
```

## 📚 使用指南

### 基本工作流

```bash
# 1. 列出可用技能（预设和已注册的）
node scripts/invoke.mjs --list

# 2. 调用一个技能
echo '{"input0":{"image":"photo.jpg"}}' | node scripts/invoke.mjs ep-xxxx-yyyy

# 3. 可视化或显示结果（可选）
node scripts/visualize.mjs photo.jpg '<result-json>'
```

**或先注册一个技能再使用：**

```bash
# 注册技能
YIJIAN_API_KEY=${YIJIAN_API_KEY} node scripts/register.mjs ep-xxxx-yyyy

# 然后调用
echo '{"input0":{"image":"photo.jpg"}}' | node scripts/invoke.mjs ep-xxxx-yyyy
```

### 定义检测区域

**需要定义感兴趣区域（ROI）或检测线（绊线）？**

- **[ROI 工作流](./roi-workflow.md)** — 创建电子围栏，仅在指定区域检测
- **[绊线工作流](./tripwire-workflow.md)** — 绘制检测线，统计穿越事件

两个工作流都包含完整的交互步骤和示例对话。

### 查看完整文档

- **[安装指南](./INSTALL.md)** — 详细的安装和配置说明
- **[安全说明](./SECURITY.md)** — 数据安全和隐私说明
- **[类型定义](./types-guide.md)** — 检测、ROI、绊线数据结构
- **[可视化指南](./visualization-guide.md)** — 显示检测结果、生成网格
- **[视频帧提取](./video-guide.md)** — 从视频提取帧进行检测
- **[网格输入系统](./grid-guide.md)** — 使用网格坐标指定点

## 💡 常见任务

### 注册一个技能

获得 ep-id 后：

```bash
YIJIAN_API_KEY=${YIJIAN_API_KEY} node scripts/register.mjs <ep-id>
```

### 调用一个技能

```bash
echo '{"input0":{"image":"photo.jpg"}}' | node scripts/invoke.mjs <ep-id>
```

带有 ROI：
```bash
echo '{"input0":{"image":"photo.jpg","roi":{...}}}' | node scripts/invoke.mjs <ep-id>
```

带有绊线：
```bash
echo '{"input0":{"image":"photo.jpg","tripwire":{...}}}' | node scripts/invoke.mjs <ep-id>
```

### 预览 ROI/绊线

在调用前在图像上预览：

```bash
node scripts/visualize.mjs photo.jpg '[]' preview.png \
  --overlays '[{"kind":"ROI","name":"zone","points":[...]}]'
```

### 生成网格

帮助用户使用网格坐标指定点位置：

```bash
node scripts/show-grid.mjs photo.jpg grid.png
```

---

## 📋 使用示例

### 示例 1：基本检测工作流

**场景：** 你有一张监控画面图像，想使用预设一见技能检测摔倒的人员。

```bash
# 第 1 步：列出可用技能
node scripts/list.mjs

# 第 2 步：调用技能
echo '{"input0":{"image":"surveillance.jpg"}}' | \
  node scripts/invoke.mjs ep-public-inqm15aq

# 第 3 步：可视化结果
detections='[{"bbox":[150,200,80,180],"confidence":0.94,"category":{"id":"person","name":"人体"}}]'
node scripts/visualize.mjs surveillance.jpg "$detections" output.jpg

# 第 4 步：处理结果
echo "$detections" | jq 'length'  # 计数人数
```

### 示例 2：基于网格的 ROI 设置

**场景：** 在走廊监控摄像机中计数进入特定房间的人员，使用 ROI 限制检测区域。

```bash
# 第 1 步：生成网格参考
node scripts/show-grid.mjs hallway.jpg --cols 6 --rows 4

# 第 2 步：根据网格识别坐标（B1, D1, D3, B3）并创建 ROI
roi='{"kind":"ROI","points":[[320,270],[960,270],[960,810],[320,810]]}'

# 第 3 步：验证 ROI
node scripts/visualize.mjs hallway.jpg '[]' roi_preview.jpg \
  --overlays "[{\"kind\":\"ROI\",\"name\":\"doorway\",\"points\":[320,270,960,270,960,810,320,810]}]"

# 第 4 步：使用 ROI 运行检测
echo "{\"input0\":{\"image\":\"hallway.jpg\",\"roi\":$roi}}" | \
  node scripts/invoke.mjs ep-public-2403um2p
```

### 示例 3：视频帧处理和跟踪

**场景：** 处理 30 秒监控视频，逐帧检测和跟踪人员。

```bash
# 第 1 步：提取帧
ffmpeg -i surveillance_30sec.mp4 -vf fps=1 frames/frame_%04d.jpg

# 第 2 步：计算 sourceId（视频标识符）
sourceId=$(head -c 65536 surveillance_30sec.mp4 | md5sum | awk '{print substr($1, 1, 16)}')

# 第 3 步：处理每个帧并跟踪
for frame_file in frames/frame_*.jpg; do
  frame_num=$(basename "$frame_file" | grep -oE '[0-9]+' | head -1)
  frame_index=$((10#$frame_num - 1))
  timestamp=$((frame_index * 1000))
  imageId="frame_$(printf '%04d' "$frame_num")"

  frame_data="{\"file\":\"$frame_file\",\"sourceId\":\"$sourceId\",\"imageId\":\"$imageId\",\"timestamp\":$timestamp}"

  result=$(echo "{\"input0\":{\"image\":$frame_data}}" | \
    node scripts/invoke.mjs ep-public-2403um2p)

  detections=$(echo "$result" | jq '.outputs[0].parsedValue')
  echo "$detections" > "results/${imageId}_detections.json"
done
```

---

**API Key 从 `YIJIAN_API_KEY` 环境变量读取。所有脚本将 JSON 输出到标准输出，错误输出到标准错误。**

