OmniParser 是微软开源的屏幕解析工具,能把 UI 截图转成结构化可交互元素,大幅提升 GPT-4V 等多模态模型操控电脑桌面的准确率。25k Stars 登顶 HuggingFace 趋势榜,支持本地日志记录训练数据,支持 OpenAI/DeepSeek/Qwen 等主流视觉模型。
🎤 引言
让 AI 操控电脑桌面,这件事看起来简单,做起来却非常难。
主流多模态模型(如 GPT-4V)看截图的能力不差,但要把"看到的东西"和"能点击的位置"对应上,经常对不上——模型说"点击绿色的开始按钮",实际上那是个绿色图标的广告。定位不准,自动化就无从谈起。
微软开源的 OmniParser 就是来解决这个问题的:把 UI 截图解析成带标签的结构化元素,让模型知道"这个是可交互按钮,那个是文本框,另一个是图标"。25k Stars 的热度也证明了它确实是刚需。
⭐ 核心功能
屏幕元素结构化解析
OmniParser 干的事情本质上是"语义分割 + 标签生成"。给定一张 UI 截图,它能输出画面中每个可交互区域的:边界框、元素类型(按钮/输入框/图标/文本等)、功能描述("搜索按钮"、"设置图标")。
这比直接让视觉模型"自己理解哪里能点"靠谱多了——解析层把 GUI 结构抽出来,模型只需要决定"点哪个",而不是"在哪点"。
双模型架构
项目包含两个独立模型:
- 交互区域检测模型(Interactive Region Detection):找出屏幕上所有可交互元素的位置,输出边界框
- 图标功能描述模型(Icon Description Model):识别每个图标的语义标签,比如"文件夹图标"、"设置齿轮"、"播放按钮"等
两者配合,给每个界面元素打上"身份标签",模型就能准确理解元素是什么、能不能点。
V2 版本重大升级
2025 年 2 月发布的 OmniParser V2 在 Screen Spot Pro 基准测试中取得了 39.5% 的准确率(业界领先水平)。V2 主要提升包括:
- 更细粒度的小图标检测
- 预测每个元素是否"可交互"(interactable)
- 显著优化了对复杂真实应用界面的解析能力
OmniTool:AI 操控 Windows 虚拟机
项目还配套了 OmniTool,可以用自然语言控制 Windows 11 虚拟机。支持的视觉模型包括:OpenAI(GPT-4o/o1/o3-mini)、DeepSeek R1、Qwen 2.5VL、Anthropic Computer Use。
也就是说,你可以对 AI 说"打开浏览器访问 Google",AI 就能控制虚拟机自动完成操作,全程不需要人工干预。
本地数据日志记录
V2 支持本地记录轨迹数据(trajectory logging),可以在本地构建训练数据管道,针对特定领域的 GUI 自动化任务微调专属代理。这对做垂直行业 AI 自动化的人来说很有价值。
纯视觉方案(Pure Vision Based)
和传统依赖 HTML 源码或 accessibility tree 的方案不同,OmniParser 完全基于截图视觉理解,不依赖前端代码。这意味着它能处理任何应用——包括那些不提供 accessibility 接口的传统桌面软件。
📥 安装与使用
快速体验(Docker)
# 拉取并运行 OmniParser 服务
docker pull ghcr.io/microsoft/omniparser
docker run -p 8000:8000 ghcr.io/microsoft/omniparser
# 通过 API 调用
curl -X POST http://localhost:8000/parse \
-F "[email protected]"HuggingFace 在线 Demo
不想装也可以直接体验:https://huggingface.co/spaces/microsoft/OmniParser
本地部署
# 克隆仓库
git clone https://github.com/microsoft/OmniParser.git
cd OmniParser
# 安装依赖
pip install -r requirements.txt
# 下载预训练模型
# V2 模型
from transformers import AutoModelForVision2Seq, AutoProcessor
model = AutoModelForVision2Seq.from_pretrained("microsoft/OmniParser-v2-uncased")
processor = AutoProcessor.from_pretrained("microsoft/OmniParser-v2-uncased")
# V1.5 模型
model = AutoModelForVision2Seq.from_pretrained("microsoft/OmniParser-v1.5-uncased")
processor = AutoProcessor.from_pretrained("microsoft/OmniParser-v1.5-uncased")配合视觉模型使用
from PIL import Image
import base64
def parse_screenshot(image_path):
# 解析屏幕截图
image = Image.open(image_path)
inputs = processor(images=image, return_tensors="pt")
outputs = model.generate(**inputs)
parsed_elements = processor.decode(outputs[0], skip_special_tokens=True)
return parsed_elements
# 解析后结合 GPT-4V 做决策
parsed = parse_screenshot("desktop.png")
# parsed 输出示例:
# [{"bbox": [100,50,150,80], "type": "button", "label": "开始菜单"},
# {"bbox": [200,100,300,130], "type": "icon", "label": "浏览器图标"}]OmniTool 使用
cd OmniParser/omnitool
# 配置你的 API key(OpenAI/DeepSeek/Qwen 等)
export OPENAI_API_KEY="sk-..."
# 启动控制界面
python omnitool.py
# 输入自然语言指令,AI 自动操控 Windows VM🎯 适用场景
桌面自动化测试
传统 RPA(机器人流程自动化)依赖坐标点击或图像识别,灵活性差。OmniParser 让 AI 理解界面语义,可以应对 UI 变化自动调整策略,测试覆盖率更高、维护成本更低。
无障碍辅助工具
视障用户可以通过 OmniParser + 语音交互,用自然语言操控电脑,不需要记快捷键或找按钮位置。对需要做无障碍改造的应用来说是底层能力。
AI 桌面助手
配合 OmniTool,可以实现"自然语言操控电脑"——说句话就让 AI 帮忙填表、查资料、发邮件。不依赖特定应用接口,通用性强。
垂直行业数据采集
本地日志功能支持把操作轨迹记录下来,用于训练专用代理模型。比如财务人员可以采集"打开 Excel → 填报表格 → 保存文件"这类操作的数据,用来微调专属自动化模型。
🔍 对比/替代方案
Figma/C4 模型
传统的设计稿解析工具(如 Figma API)依赖设计文件本身,不适用于运行时桌面截图。OmniParser 解决的是"任意应用、任意时刻"的问题,通用性更强。
Playwright/Selenium 定位器
传统自动化工具需要开发者手动维护元素选择器,UI 变一下就挂了。OmniParser 让模型自主理解界面结构,抗 UI 变化能力更强,但目前推理速度比原生选择器慢,不适合高频重复操作。
Anthropic Computer Use
Claude 的 Computer Use 功能思路类似,但需要 Claude API 支持。OmniParser 作为开源方案,可以本地部署、自行微调,不受 API 限流约束,成本更低。
⚠️ 注意事项
推理速度有限
OmniParser 是基于视觉模型的双模型pipeline,解析一张截图需要数秒。在需要毫秒级响应的场景(如实时录屏交互)下可能不够用。可以考虑用 V1.5 轻量版替代 V2,平衡速度与精度。
复杂界面解析仍有误差
在高度自定义的 UI(如游戏界面、CAD 软件、3D 渲染工具)中,小图标和重叠元素的检测准确率会下降。GitHub Issues 中有开发者反馈复杂企业软件截图解析失败的情况,V2 有所改善但未完全解决。
需要配套视觉模型
OmniParser 只负责解析,不负责决策。需要搭配 GPT-4V、Qwen VL 等视觉语言模型才能组成完整代理。模型能力直接影响最终操控准确率。
本地部署门槛
虽然支持本地 Docker 部署,但显存要求不低(至少 8GB)。纯 CPU 运行速度较慢,建议用 GPU 加速。
✅ 总结
OmniParser 解决的是一个很实在的问题:视觉模型知道"界面长什么样",但不知道"哪些东西能操作"。通过把截图解析成带语义的元素结构,它让 AI 操控电脑从"大概能点对"变成了"基本能点对"。
25k Stars 的热度说明这不是小众需求——随着 AI Agent 概念火热,让模型精准理解和操作 GUI 成了核心技术之一。微软选择开源这条路也很聪明,靠社区力量快速迭代,覆盖更多场景。
不过也要看到它目前的局限:速度慢、复杂界面效果有限、依赖配套视觉模型能力。它的定位更像是"基础设施"而不是"端到端解决方案"——你需要把它集成到自己的 pipeline 里才能发挥作用。
对做 AI 自动化、桌面助手、无障碍工具的朋友来说,OmniParser 值得关注。
GitHub: https://github.com/microsoft/OmniParser
HuggingFace Demo: https://huggingface.co/spaces/microsoft/OmniParser