用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/majiayu000/claude-skill-registry --skill ui-detector命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | ui-detector |
| description | YOLO UI元素检测器项目管理。训练自定义模型识别界面元素(按钮、输入框、二维码等),用于半自动化操作。 |
| triggers | ["UI检测","界面元素检测","标注按钮","YOLO训练","半自动化","ui-detector"] |
基于 YOLO 的界面元素检测系统,支持多项目隔离管理。
# 创建项目
ui-detector new <项目名>
# 启动标注
ui-detector annotate <项目名>
# 训练模型
ui-detector train <项目名>
# 检测图片
ui-detector detect <项目名> <图片路径>
~/ui-detector/
├── ui-detector # 主命令
├── projects/ # 项目目录(完全隔离)
│ ├── bilibili/
│ │ ├── classes.txt # 中文类别定义
│ │ ├── images/raw/ # 原始截图
│ │ ├── labels/ # YOLO格式标注
│ │ └── models/best.pt # 训练好的模型
│ └── <其他项目>/
├── .venv-labelimg/ # Python 3.11 环境
└── scripts/ # 辅助脚本
| 键 | 功能 |
|---|---|
W | 画矩形框 |
D | 下一张 |
A | 上一张 |
Ctrl+S | 保存 |
Ctrl+D | 删除框 |
登录按钮、注册按钮、确定按钮、取消按钮、返回按钮
提交按钮、发送按钮、搜索按钮、其他按钮、二维码
输入框、密码框、搜索框、下拉框、复选框
单选框、开关、图标、头像、链接、文本
可在 classes.txt 中自定义。
| 数据量 | 效果 |
|---|---|
| 每类 10-20 张 | 基本可用 |
| 每类 30-50 张 | 稳定可靠 |
| 每类 100+ 张 | 高精度 |
# 快速训练(测试用)
ui-detector train bilibili --epochs 10
# 标准训练
ui-detector train bilibili --epochs 50
# 大模型(更准确但更慢)
ui-detector train bilibili --model s --epochs 50
模型大小:n(nano最快) < s(small) < m(medium) < l(large) < x(xlarge)
检测后输出:
detected_<图片名> - 标注后的图片1. 采集截图 → 放入 projects/<名>/images/raw/
2. 启动标注 → ui-detector annotate <名>
3. 训练模型 → ui-detector train <名>
4. 检测元素 → 输出坐标 → 自动点击
标注少量数据 → 训练初版 → 检测新截图 → 修正标注 → 再训练
| 组件 | 版本 | 用途 |
|---|---|---|
| Python | 3.11 | 标注工具 |
| labelImg | 1.8.6 | 标注界面 |
| PyTorch | 2.x | 深度学习 |
| Ultralytics | 8.x | YOLOv8 |
| CUDA | 12.x | GPU加速 |
| 模型 | 训练 | 推理 |
|---|---|---|
| yolov8n | ~2GB | ~1GB |
| yolov8s | ~4GB | ~2GB |
| yolov8m | ~6GB | ~3GB |
RTX 3060 (6GB) 推荐 n 或 s 模型。
# 检查环境
ls ~/ui-detector/.venv-labelimg/bin/python
# 手动启动
cd ~/ui-detector/projects/<项目名>
~/ui-detector/.venv-labelimg/bin/python -c "
import sys
sys.argv = ['labelImg', 'images/raw', 'classes.txt']
from labelImg import labelImg
labelImg.main()
"
# 检查标注数量
ls ~/ui-detector/projects/<名>/labels/*.txt | wc -l
# 至少需要 10 个标注文件
# 使用更小的批次
ui-detector train <名> --batch 8
# 或用 CPU(很慢)
export CUDA_VISIBLE_DEVICES=""
ui-detector train <名>
训练好的模型可用于:
示例代码:
from ultralytics import YOLO
model = YOLO("~/ui-detector/projects/bilibili/models/best.pt")
results = model("screenshot.png")
for box in results[0].boxes:
cls = int(box.cls)
xywh = box.xywh[0] # 中心点坐标
print(f"元素类型: {cls}, 点击位置: ({int(xywh[0])}, {int(xywh[1])})")
browser-use: 浏览器自动化visual-analyzer: 视觉分析agent-browser: 无头浏览器~/ui-detector/ # 主目录
~/.local/bin/ui-detector # 命令入口
~/.local/share/yolo-venv/ # YOLO 环境
~/ui-detector/.venv-labelimg/ # 标注环境