跨摄像头物体检测(基于YOLO)

SKILL生活服务
生活服务 未标注权限 许可证不明确
安装这个技能

跨多摄像头跟踪实时 RTSP 流中的人员,并保持全局唯一 ID。基于 Ultralytics 的 track()、OSNet ReID,以及拓扑约束(过渡时间窗口、相邻视角和重叠视角匹配)、追加式事件日志和楼层平面图上的轨迹渲染。 作为常驻后台服务运行,提供 6 个回环 HTTP 工具,让 Agent 可以查询状态、列出人员、获取时间线、读取事件日志、渲染实时快照,并触发按需轨迹分析。 当用户想知道某人去了哪里、离开时谁出现了,或者想看跨多个房间/摄像头的人时使用。 可选通过任何兼容 OpenAI 的视觉端点进行 VLM 语义标注(在 settings.json 中配置 `vlm`)。

一句话选型结论

按资料字段整理

跨摄像头物体检测(基于YOLO)是生活服务类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类生活服务 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_2effd27d/rtsp-multi-tracker
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

生活服务
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_2effd27d仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量12.3 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
行程与攻略

按目的地和天数排行程。

日常信息查询

查天气、交通、办事信息。

生活事务整理

把琐事整理成清单逐项处理。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在生活服务场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
跨摄像头物体检测(基于YOLO)当前 未标注权限 未标注 未标注 未标注 有
食谱批量下载文件夹 联网访问 GitHub 仓库 28.5 万 Codex、Claude、Cursor 有
食谱创建演示文稿 未标注权限 GitHub 仓库 28.0 万 Codex、Claude、Cursor 有
recipe 备份 sheet AS CSV 联网访问 GitHub 仓库 27.9 万 Codex、Claude、Cursor 有
recipe create Gmail filter 邮件管理 未标注权限 GitHub 仓库 27.8 万 Codex、Claude、Cursor 有
配方观察驱动器变化 联网访问 GitHub 仓库 27.4 万 Codex、Claude、Cursor 有

SKILL.md 全文

12.3 KB
模型实际读到的说明书原文,来自技能仓库

Multi-Camera Person Tracking

This skill runs as a persistent background service that tracks persons across
multiple RTSP cameras with persistent global IDs — the same physical person
keeps one ID while crossing cameras, with brief disappearances tolerated. It
exposes 6 tools via a loopback HTTP API for the Agent to query tracking data
and trigger trajectory analysis on demand.

The tracker runs passively: it only accumulates events. The Agent decides
when and what to analyze
by calling tools — there are no automatic VLM calls.

Architecture

                        Agent (decision maker)
                              │
                     HTTP tool calls (6 tools)
                              │
┌─────────────────────────────▼─────────────────────────────┐
│              Tracking Service (background)                 │
│                                                            │
│  Camera 1 ──→ YOLO track() ──→ OSNet ReID ──┐              │
│  Camera 2 ──→ YOLO track() ──→ OSNet ReID ──┤→ cross-cam   │
│  Camera 3 ──→ YOLO track() ──→ OSNet ReID ──┘   association│
│                                                    │       │
│                                                    ▼       │
│                                              EventStore    │
│                                              (append-only, │
│                                               memory+JSONL)│
│                                                    │       │
│                                         API Server (:8765) │
└────────────────────────────────────────────────────────────┘

Read frames are per-camera threads; inference + association run serially in the
main loop (shared model). Details: references/configuration.md.

When to Use

  • "Where is everyone right now?" / "Who is in the living room?" → live snapshot
  • "What did person 1 do today?" / "Where did they go?" → timeline + trajectory analysis
  • "What happened while I was away?" → event log queries
  • Suspicious-activity review: a person appeared at an unusual time or place

When NOT to Use

  • Single-camera coarse spatial events (pet on table, zone intrusion) → use the
    sibling skill rtsp-spatial-detector instead.
  • Face recognition / identity naming — this skill assigns anonymous global IDs,
    it cannot say who a person is.
  • No RTSP streams available — camera URLs come from the user or
    @xpai-camera-control.

Quick Start

# 1. One-time: fetch + verify YOLO weights (not bundled, no URLs embedded;
#    slow/blocked networks: import an existing copy via --from, see below)
python scripts/setup_model.py

# 2. Configure cameras + topology in scripts/settings.json (see below)

# 3. Start the background service (tracking mode is the default in settings)
python scripts/run.py --mode tracking

# 4. Verify it is up (any terminal)
curl http://127.0.0.1:8765/api/status

Optional flags: --show (OpenCV preview), --mjpeg-port 8090 (browser view),
--frame-skip N, --conf X, --model PATH. The service keeps running; the
Agent queries the API whenever needed.

Tools Overview

Base URL http://127.0.0.1:8765 (loopback-only; host/port configurable via
api_server in settings.json). All responses are JSON.

# Tool Endpoint Use when
1 tracker_status GET /api/status Check service health: uptime, FPS, camera connectivity, person/event counts
2 list_persons GET /api/persons Overview of all tracked persons + last-seen summary
3 get_person_detail GET /api/person/<global_id> One person's event timeline + previous analyses
4 analyze_trajectory POST /api/analyze Render the trajectory on the floor plan (core analysis tool; global_id = a person id or "all" for a combined multi-person image; optional since/until/include_vlm)
5 get_event_log GET /api/events Raw events, filterable by time / person / type
6 render_snapshot GET /api/snapshot?format=json\|png Current real-time state — who is where right now

Full request/response reference with all fields: references/api.md.

Agent Usage Patterns

Pattern 1 — "Where is everyone?"

GET /api/snapshot                     → who is currently active and where

Pattern 2 — "What did person 1 do today?"

GET /api/person/1                     → timeline overview
POST /api/analyze {"global_id": 1, "include_vlm": true}
                                      → trajectory image (+ VLM labels if configured)
Present the image + summary to the user

Pattern 3 — Suspicious activity

GET /api/status (periodic)            → notice a person appeared at 3am
POST /api/analyze {"global_id": 2, "since": "03:00:00"}
                                      → analyze the suspicious segment
Alert the user with the trajectory image

Pattern 4 — "What happened while I was away?"

GET /api/events?since=09:00:00&until=18:00:00
                                      → list what happened
POST /api/analyze per person of interest → per-person summary

Pattern 5 — "Show me everyone's trajectories"

POST /api/analyze {"global_id": "all", "since": "08:00:00"}
                                      → one combined image, each person in its own color

Pattern 6 — "Where did they go after they disappeared?"

GET /api/person/1                     → when the timeline ends with `vanished`,
                                        `inferred_destination` suggests the most likely
                                        adjacent camera (topology transit-window heuristic),
                                        or explains "still in transit / blind zone / left coverage"

Event Types

The service writes these events to the event store (memory + daily JSONL file
under scripts/trajectories/events/):

Event Written when Key fields
new_person A never-seen person appears (new global_id assigned) global_id, camera, bbox, confidence
appeared A known person's track (re)starts in a camera global_id, camera, bbox, confidence
lingered Track duration ≥ trajectory.linger_threshold_sec (default 8s) global_id, camera, duration_sec
vanished Track unseen for ≥ 3 s (fixed loss threshold) global_id, camera, duration_sec
cross_camera ReID match in another camera (gallery / neighbor / overlap) global_id, camera, transit_sec, confidence (= similarity), details
analysis The Agent triggered POST /api/analyze global_id, analysis_result

Note: the data model additionally defines reappeared and track_update; the
current tracking loop does not write them — they remain valid as query filter
values (get_event_log?event_type=...).

Configuration

Key sections of scripts/settings.json (full field reference:
references/configuration.md):

  • mode — tracking (default) or spatial
  • cameras[] — camera id / name / RTSP source / description
  • topology.links[] — which cameras are adjacent, transit-time window
    [min, max] seconds, overlap flag for shared fields of view
  • tracking.tracker — botsort (default) or bytetrack
  • tracking.track_classes — classes to track (default ["person"])
  • tracking.reid_threshold — OSNet cosine similarity threshold (default 0.45)
  • tracking.gallery_max_age_sec — feature-cache TTL (default 120)
  • trajectory — floor plan image, camera poses on the plan, linger threshold
  • vlm — optional VLM semantic labeling (OpenAI-compatible vision endpoint; API key from an env var, never stored in the file)
  • api_server — host/port for the tool API

Tuning guidance (ReID thresholds, topology calibration, tracker choice):
references/tuning.md.

Modes

mode: "tracking" (default) runs multi-camera person tracking as described
above. mode: "spatial" falls back to the original single-camera spatial
detection (the code path shared with the rtsp-spatial-detector skill) and
expects scenarios[] + rtsp_url in settings — the shipped settings.json
contains neither, so prefer the dedicated sibling skill for spatial use cases.

Model Weights

Model weight files are not distributed with this skill (publishing
constraint). The tracker needs yolo26n.pt; obtain and verify it once:

python scripts/setup_model.py          # fetch if missing, then verify SHA-256
python scripts/setup_model.py --check  # verify only (no network access)
python scripts/setup_model.py --from /path/to/yolo26n.pt   # import a local copy, then verify

setup_model.py embeds no URLs — the download delegates to the installed
ultralytics official-asset mechanism, then the file is verified against the
SHA-256 fingerprint this skill was validated with. On slow/blocked networks,
--from copies an existing local file (another machine, a cache, offline
media) into scripts/ and runs the same fingerprint verification. Offline
machines can also place an official yolo26n.pt (matching the installed
ultralytics version) into scripts/ manually, then run
setup_model.py --check. The OSNet ReID weights are fetched by the torchreid
library on first use (no URLs in this skill either).

Known Limitations

  • VLM semantic labeling is opt-in but config-ready. Fill the vlm section
    in settings.json (enabled / endpoint / model — any OpenAI-compatible
    chat/completions vision API) and set the API key env var (default
    VLM_API_KEY); the startup log states exactly why it is off otherwise.
    Without it, analyze_trajectory still renders the trajectory image and the
    Agent can read the image itself.
  • ReID backend: torchreid OSNet preferred; if torchreid is unavailable the
    extractor falls back to a torchvision resnet18 head (lower accuracy —
    expect more fragmented IDs and retune reid_threshold).
  • Track-loss threshold is fixed at 3 s in main.py (not exposed in
    settings).
  • Floor-plan rendering requires Pillow; if missing, the renderer is
    disabled with a warning and trajectory_image comes back empty.
  • Camera poses must be calibrated (trajectory.camera_positions) for
    meaningful floor-plan positions. Helper: python scripts/calibrate_positions.py — interactive click-position-then-heading
    calibration (ESC skip / R redo) with settings write-back, or --no-gui to
    emit a grid-annotated reference image. When the floor-plan file is missing a
    grid placeholder is generated automatically (no more blank canvas).
  • Anonymous IDs only — no face recognition; "person 1" is whoever the
    system first saw, not a named identity.

References

  • references/api.md — complete request/response reference for all 6 tools
  • references/configuration.md — cameras / topology / tracking / trajectory / api_server fields
  • references/tuning.md — ReID & topology tuning, tracker choice, pose calibration, RTSP performance
  • references/troubleshooting.md — FAQ: config errors, port conflicts, offline model install, stream/connection diagnosis, anti-patterns

常见问题

5 问
答案由本站依据条目字段整理
跨摄像头物体检测(基于YOLO)怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_2effd27d/rtsp-multi-tracker。安装方式为未标注。装完刷新技能列表或重开客户端。

跨摄像头物体检测(基于YOLO)支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

跨摄像头物体检测(基于YOLO)权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

跨摄像头物体检测(基于YOLO)收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

跨摄像头物体检测(基于YOLO)用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。