把截图读成可操作清单:OmniParser 纯视觉屏幕解析上手指南
【免费下载链接】OmniParserA simple screen parsing tool towards pure vision based GUI agent项目地址: https://gitcode.com/GitHub_Trending/omn/OmniParser
你想让 AI 替你操作电脑,却只能递给它一张截图。屏幕上那么多按钮、输入框和菜单,AI 不知道哪个是哪个,点错一个,后面步步错。OmniParser 是面向 GUI Agent(图形界面智能体)的纯视觉屏幕解析工具:不碰软件内部代码,只靠视觉特征把截图里的元素变成带编号的结构化清单,交给大模型点按。
不读源码只读像素:两步把截图变清单 🧭
它不挂钩应用代码、不读任何内部接口,截图就是唯一输入,直接从像素解析。第一步用 YOLOv9-E 区域检测模型,把屏幕上所有可交互元素——按钮、下拉框、标签页、小图标——逐个框出来。
第二步由图标描述模型(Florence-2)给每个框写一句大白话描述,同时用 OCR(光学字符识别)标出可见文字的位置。最终输出两样东西:带编号框的标注图 + “编号: 描述”的清单。这个编号是它最关键的机制:大模型说“点击 icon 27”时,能精确落到那个框上,不用猜。解析管线入口在 util/omniparser.py,想抠细节从这里看起。
复杂界面不丢件:工具栏、弹窗、小图标都进清单 📋
做 GUI Agent 或界面自动化测试的人最头疼的是界面千差万别。OmniParser 覆盖 Windows、macOS、iOS 等系统的界面,从 Excel 的密集功能区、浏览器地址栏,到聊天应用的侧边栏,连工具栏里的小图标也能被框出并配上描述。
自动化某个软件时,不用再为每个按钮手写定位代码,只要元素的视觉特征没变,解析结果就基本稳定,多窗口、跨界面场景也不会乱。解析出来的清单是纯文本结构,可以直接拼进你自己的指令模板,跨系统混用同一套流程。
换大脑不用换眼睛:V2 提速与模型解耦
OmniParser V2 比 V1 快约 60%,对跨系统、跨应用及应用内图标的识别也更多。更重要的是解耦:解析层只负责定位和描述,“大脑”可以随便换——OpenAI 的 4o/o1 系列、DeepSeek R1、Qwen、Anthropic 的 computer use 都能直接接入,配套的 Windows 11 虚拟机 + Gradio 控制面板玩法见 omnitool/ 目录。
这意味着迁移成本低:底层大模型升级或更换时不用重训解析层,换一台新系统做测试也不用动“大脑”。仓库里的 omniparserserver 服务还能用 FastAPI 把解析能力暴露成接口,供已有自动化管线直接调用。
从克隆到出图:四步跑通最小示例
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/omn/OmniParser - 创建 Python 3.12 环境并安装依赖(在 OmniParser 目录下执行):
conda create -n omni python==3.12 && conda activate omni && pip install -r requirements.txt - 下载检测与描述模型权重(官方 PR 合并后首次运行也会自动拉取):
huggingface-cli download microsoft/OmniParser-v2.0 --local-dir weights - 启动网页演示,打开终端输出的本地地址,上传截图即可得到编号清单:
python gradio_demo.py
用不了的截图与两个顺手方向
它是为“界面截图”设计的:3D 游戏场景、没有 UI 语义的纯相机或视频画面,解析价值很低;官方提示也不建议喂入含暴力、有害内容的截图;分辨率过低、图标过密的界面可能出现漏框。两个值得试的延伸:一是把解析输出的坐标接到你已有的截屏 + 鼠标点击流程里,拼成端到端的自动化链路;二是配合 OmniTool 的本地轨迹记录,在自己领域里积累真实操作数据,攒一套 GUI 操作数据集来训练智能体。
回到开头的场景:与其让 AI 对着截图猜坐标,不如先给它一份编号清单,误触和卡住的问题自然少一截。仓库是开源只读的,先克隆下来、跑通一张截图,看看清单能不能准确产出。今晚就可以试一次——截一张你常用软件的复杂界面走一遍流程,框得对,你的自动化链路就有了一只靠谱的眼睛。
【免费下载链接】OmniParserA simple screen parsing tool towards pure vision based GUI agent项目地址: https://gitcode.com/GitHub_Trending/omn/OmniParser
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考