物品导航与实时检测
概述
本文覆盖两个触发式/调试类任务:
ItemNavigatorTask(界面名称:物品导航):有有效content时使用官方地图 WebSocket;未取得任何content时启动本地 WebSocket 服务,指向所选物品的最近采集点,并支持按键标记已获取。RealtimeDetectTask(界面名称:实时检测):循环运行 YOLO 检测,用于在线观察模型、目标类别和置信度表现。
物品导航
使用前提
- 推荐在账号配置页保存官方地图同步
content,或在任务配置中直接填写content。 - 未配置
content时,需要启用外部脚本或工具向本地ws://127.0.0.1:3001推送位置数据。 - 物品点位数据来自
assets/items/map/summary.json和assets/items/map/item_names.json。 - 标记结果写入
configs/marked_points.json,用于避免重复指向已经标记的点位。
配置项
| 配置项 | 默认值 | 说明 |
|---|---|---|
content |
空字符串 | 可选。直接填写 web-api.skland.com/account/info/hg/check 返回 JSON 中的 data.content。有值时优先使用官方地图 WebSocket。 |
地图账号 |
空字符串 | 可选。content 为空时,从账号配置页读取该账号保存的地图同步 content。 |
选择物品 |
[] |
参与导航的物品名称列表;为空时不会筛选出目标。 |
标记按键 |
f |
接近目标后用于标记“已获取”的按键。 |
标记按住时长 |
0.8 |
当前界面保留项;运行实现尚未读取该值。实际需要在目标水平距离 20 内连续按住标记键 2 秒。 |
数据流
flowchart TD
A[任务 content] --> D{是否有 content}
B[账号配置页 map_contents] --> D
C[本地 WS 端口 3001] --> H[统一位置队列]
D -->|有| E[OAuth 换取官方凭证]
E --> F[获取官方 WS token]
F --> G[连接 ws.skland.com]
D -->|无| C
G --> H
H --> I[解析 mapId 和坐标]
I --> J[查询 assets/items/map 数据]
J --> K[绘制方向箭头]
K --> L[按住标记键写入 configs/marked_points.json]
注意事项
- 物品导航依赖当前地图 ID 与坐标数据,点位数据缺失时不会产生有效指向。
- 任务会在窗口上绘制方向箭头;若看不到箭头,先确认 WebSocket 位置数据是否正常。
- “本地 WS 回退”只发生在任务没有取得
content时。若已配置content但官方鉴权或连接失败,当前运行不会自动改用本地 WS;应清空任务content并取消/清空地图账号后再使用本地模式。 - 标记必须在水平距离 20 内连续按住 2 秒;中途松键或离开范围会取消本次计时。
- 油猴脚本帮助按钮会打开临时帮助文档和脚本目录。
实时检测
使用场景
实时检测用于调试 YOLO 模型,不是面向日常自动化流程的任务。它会持续截图并执行目标检测,便于观察某个模型和目标类别的命中情况。
配置项
| 配置项 | 默认值 | 说明 |
|---|---|---|
YOLO模型 |
src/config.py 中 yolo.default_model |
模型配置键,实际模型和标签维护在 src/yolo/models.py。 |
检测目标 |
当前模型 labels 的第一个目标 | 要观察的目标类别。 |
检测置信度 |
0.7 |
取值范围 0 到 1,值越高越严格。 |
扫描间隔(秒) |
0.2 |
每次检测后的等待时间。 |
注意事项
- 目标名称必须存在于所选模型的 labels 中,否则任务会直接报错。
- 该任务会循环运行,停止时会输出总扫描次数、命中轮次和最高置信度。
相关文档:地图官方 WS 客户端实现 / 账号配置用户指南