多状态 UI 识别¶
类型 ID:vision.multi_state_ui。添加路径:工具 → 多状态 UI 识别。本页对应 2026-09-09 开发候选;请确认当前客户端已包含相应节点能力与组件。
每次检查只取一帧,全部启用状态的条件共享这帧。节点只识别,不点击、不执行攻略,也不会因状态表中有多行而隐式执行动作。
输入来源与等待¶
执行输入为 0;数据输入始终只有同一个 source 端口,索引为 1。切换抓取模式会改变该端口类型,不会额外增加第二个目标口。
| 设置 | 行为 |
|---|---|
抓取模式 target(默认,界面称“进程”) | 输入 android:、window: 或 screen: 目标信息字符串;连线优先,否则使用配置中的 target。目标语法与截图相同。 |
抓取模式 image | 输入图像值;不截图,也不把编辑底板作为运行输入。支持图像节点的实际 RGB 图像值及视觉媒体中的静态图片,不支持视频。 |
等待模式 once(默认) | 识别一次即沿执行输出继续,无论总布尔是真还是假;需要分流时连接“总布尔值”到分支节点。 |
等待模式 poll | 按 pollIntervalSeconds 间隔重复检查,直到总布尔值为真才继续;默认间隔 1 秒,范围 0–3600,0 表示协作式最快检查。 |
允许 image + poll。图像输入在进入节点时取值,不会在轮询中自动更新;条件始终不满足时会持续等待,用户仍可暂停或停止。标题栏显示小警告,但不会因这个组合拒绝运行、切回一次性或强制超时。如果要反复截图,使用 target + poll,或在普通循环中重新运行截图节点。
maxEvaluationMs 是单帧本机评估预算,默认 5000 毫秒,范围 100–60000;不是整段轮询的总时限,也不是设备摄像头精确帧龄。需要整段总时限时可结合受保护执行域。
条件表和总布尔值¶
双击节点后,当前画布切换为分区编辑工作区,不以弹窗承载整个编辑器。左侧是主要底板预览区,左下集中设置条件表达式、总布尔及抓取/等待模式,右侧编辑状态、条件和资源;顶栏提供返回与保存。
可导入截图或截取填写的目标画面;每条条件的 ROI 使用独立、可保存的颜色,支持选中、移动及拖动八个手柄调整范围,也可填写 0–1 归一化 X、Y、宽、高。底板不作为运行时的输入帧;输入来自上游连线时,编辑器不会为预览擅自执行上游节点。
新条件默认是图像模板,模板来源默认为“底板当前 ROI”:预览随 ROI 更新,运行时从已保存底板的对应 ROI 裁出模板,不为每次拖框另外导入一份裁切资产。也可以切换为独立图像,使用受支持的已有资源选择、导入或文件拖入入口。无底板或缺少模板资源时应补齐,不把未配置条件当作成功。
最多 32 个状态,每个状态最多 16 个条件。每个状态有稳定 ID、名称、启用开关与优先级;每条条件可为文字、图像模板或 ONNX 目标检测,具有独立 ROI 和阈值。
- 文字条件使用实际 OCR
rec_score,文字包含/完全相同且分数达到阈值才满足。 - 模板条件使用实际匹配分数。
- ONNX 条件只用于目标检测,可填写目标类别并检查实际检测分数;不是任意 ONNX 分类、分割或通用模型执行器。通过模型目录选择或受支持的导入入口取得受管引用,不用任意绝对路径代替模型资源。组件、模型文件、使用权益及资源授权仍按正常流程检查。
- 各类分数都不是经过校准的概率,不能跨模型直接比较高低。
- 所有条件默认 AND 汇总为状态结果;所有启用状态默认 AND 汇总为总布尔值。状态内和总布尔层均可编辑嵌套表达式。
all(AND)为全部满足;any(OR)为至少一个满足;none为一个都不满足;partial为至少一个满足但并非全部;not对唯一子表达式取反。- 后端失败、无效数据或缺失必要分数不能被 NOT 转成成功。合法的“无文字/无模板命中”与后端错误不同。
状态选择独立于总布尔值:多状态命中报告冲突;只有唯一最高优先级状态才会被选中,同优先级并列不选中。none 成立可以令总布尔为真,但不会凭空制造选中状态或位置。
输出¶
| 索引 | 值 |
|---|---|
| 0 | 执行:一次性评估完成,或轮询总布尔为真时继续 |
| 1 | 总布尔值 |
| 2 | 结果有效 |
| 3 | 选中状态 ID,无选中时为空字符串 |
| 4 | 命中状态 ID 数组 |
| 5 | 未知状态 |
| 6 | 多状态冲突 |
| 7 | 位置有效 |
| 8 | 源帧百分比坐标 Vector2,范围 0–1 |
| 9 | 源帧像素坐标 Vector2 |
| 10 | 被选位置条件的实际分数 |
| 11 | 识别详情 JSON,含状态、条件和分数种类等诊断 |
位置必须来自使表达式成立的正向命中条件。自动选择仅接受唯一有效位置;多个候选时可明确选择 positionConditionId。纯 NOT/none 不产生位置;无效位置和缺失分数保持空值,不补成 (0,0) 或 0。发送点击前应检查“位置有效”,并确保点击目标与识别源及几何范围一致。
搜索入口¶
搜索显示完整来源,例如“工具 → 多状态 UI 识别 · 抓取模式 → 图像”。抓取/等待是两个独立字段,各两项,共四个候选;不枚举四种两两组合。选择抓取图像项时等待仍默认一次性,选择等待轮询项时抓取仍默认进程。添加后的节点标题显示当前模式,重命名不会抹掉模式说明。
配置存放在 valueOverrides.multiStateUiRecognitionConfig;准确默认配置见机器可读节点目录。图像资源经正常蓝图保存边界提升为根 Image 引用,不手写失效临时路径。