10 分钟跑通 OmniParser:让 AI 看懂屏幕并动手操作的完整指南
【免费下载链接】OmniParserA simple screen parsing tool towards pure vision based GUI agent项目地址: https://gitcode.com/GitHub_Trending/omn/OmniParser
你写过"帮我点那个按钮"这种提示词吗?大模型回你一句"已点击",然后你盯着屏幕发现什么都没发生。问题出在 AI 根本看不见你的界面。OmniParser 是一个纯视觉的屏幕解析工具,它把界面截图拆成带坐标和文字描述的结构化元素,任何视觉大模型接上它,就能真正操作你的电脑。
快速起步:OmniParser 安装与模型下载
三步就能跑起来:拉代码、下模型、起服务。
1. 拉取代码,建好环境
git clone https://gitcode.com/GitHub_Trending/omn/OmniParser cd OmniParser conda create -n omni python=3.12 conda activate omni pip install -r requirements.txt装依赖大概要 5 到 10 分钟,耐心等一下。
2. 下载 OmniParser 模型权重(约 1GB,视网速 5 分钟起)
huggingface-cli download microsoft/OmniParser-v2.0 icon_detect_v3/model.pt \ --revision refs/pr/37 --local-dir weights这是 YOLO 检测器的权重,负责把界面上的按钮、输入框、菜单项一个个框出来。
再下描述模型:
for f in icon_caption/{config.json,generation_config.json,model.safetensors}; do huggingface-cli download microsoft/OmniParser-v2.0 "$f" --local-dir weights done mv weights/icon_caption weights/icon_caption_florence3. 启动 OmniParser 服务
只试屏幕解析:
python gradio_demo.py想跑"看屏幕 + 动手操作"的完整流程,启动 OmniTool:
python omnitool/gradio/app.py可以加--server_port 8080换端口。启动后浏览器会打开主界面,左边下指令,右边实时直播 Windows 虚拟机画面:
原理拆解:OmniParser 如何把截图变成可点击的坐标
打个比方,它像一个人照着餐厅菜单念菜名。你拍一张菜单照片,AI 先把每道菜的菜名找出来,再告诉你每道在纸面上的位置。
具体分三步:
- 框元素:YOLO 检测器(一种目标检测模型,专门圈出物体位置)扫一遍截图,把按钮、输入框、菜单项全部框出来,编号 0 到 159。
- 读文字:OCR(光学字符识别,把图里的字读出来)负责把界面上的文字认出来。
- 写描述:Florence2 模型(微软的图像描述模型)给每个框生成语义说明,比如"搜索按钮"、"用户名输入框"。
最后汇总成一份编号列表,附上坐标和描述,交给大模型。大模型说"点 12 号",computer.py 就把鼠标键盘指令发到虚拟机。任何视觉大模型接上 OmniParser,都能变成会动手的 GUI Agent(图形界面智能体):
实战演练:用 OmniTool 自动操作 Excel 填表
📌 任务:在 Excel 里新建工作表,往 A1 到 C3 填数据,设置表格格式。
🖥️ 过程:
- AI 识别桌面 Excel 图标,双击启动
- 自动新建空白工作簿
- 依次向 A1 到 C3 单元格输入数据
- 添加边框,调整格式
📸 结果:
右边监控视图全程直播每一步,左边对话区同步解释 AI 为什么这么做。它点错了也能立刻看出来,操作全程透明。
按需调优:常用配置参数一览表
解析不顺手时,改这几个参数就行。gradio_demo.py 界面里就有对应的滑动条。
| 配置项 | 作用 | 默认值 | 什么时候改 |
|---|---|---|---|
| Box Threshold | 检测框置信度过滤线,框不确定的直接扔掉 | 0.05 | 界面出现一堆误检的杂框时调高;有用按钮没被框出来时调低 |
| IOU Threshold | 重叠框的合并阈值,IOU 是衡量两个框重合程度的指标 | 0.1 | 同一个按钮被反复框好几层时调高 |
| Use PaddleOCR | 切换 OCR 识别引擎 | PaddleOCR | 中文识别不准时切换引擎试试 |
| Icon Detect Image Size | 检测模型的输入分辨率 | 640 | 界面元素密集、小图标总漏检时调到 1280,代价是变慢 |
| typing delay | 键盘输入的间隔毫秒数,位于 computer.py | 12 | 虚拟机卡顿、输入丢字时调大 |
这些坑别踩
现象:启动就报"模型文件找不到"。解法:模型没下全。重跑一遍上面的下载命令,确认weights目录下有icon_detect_v3和icon_caption_florence两个文件夹。
现象:检测不准,小图标总漏框,大按钮却框出一堆。解法:把 Box Threshold 从 0.05 提到 0.1 左右试试。先解决误检,再回头处理漏检。
现象:解析一张截图要等好几秒,甚至更久。解法:Florence2 要逐元素生成描述,元素越多的界面越慢。把 Icon Detect Image Size 调回 640 会快不少,追求精度再调高。
回头看开头那个"点按钮"的尴尬场景。AI 不是不想点,是压根不知道按钮在哪。OmniParser 替它把屏幕变成一份带坐标的菜单,大模型对着编号列表选目标就行。这就是纯视觉 GUI Agent 能落地的核心。现在打开终端,跑一遍gradio_demo.py,传张截图试试。更多细节看 README.md。
【免费下载链接】OmniParserA simple screen parsing tool towards pure vision based GUI agent项目地址: https://gitcode.com/GitHub_Trending/omn/OmniParser
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考