OmniParser 项目详细介绍
项目概述
OmniParser是一个全面的方法,用于将用户界面截图解析为结构化且易于理解的元素,这显著增强了GPT-4V生成能够准确定位到界面对应区域的操作的能力。
项目地址: https://github.com/microsoft/OmniParser
核心功能
1. 屏幕解析能力
- 交互式图标检测: 能够可靠地识别用户界面中可交互的图标
- 语义理解: 理解截图中各种元素的语义,并准确地将预期动作与屏幕上的对应区域关联
- 结构化输出: 将UI截图转换为结构化格式,改善基于LLM的UI智能体
2. 技术架构
OmniParser包含两个主要组件:
- 交互式图标检测数据集: 从流行网页策划并自动标注,突出可点击和可操作区域
- 图标描述数据集: 将每个UI元素与其对应功能相关联
主要特性
OmniTool
OmniTool:使用OmniParser + 您选择的视觉模型控制Windows 11虚拟机
支持功能:
- 多智能体编排
- 轨迹本地日志记录
- 为您的领域构建训练数据管道
- 改进的用户界面体验
支持的模型
- OpenAI GPT-4o/o1/o3-mini
- DeepSeek R1
- Qwen 2.5VL
- Anthropic Computer Use
安装和使用
环境配置
cd OmniParser
conda create -n "omni" python==3.12
conda activate omni
pip install -r requirements.txt
下载模型权重
for f in icon_detect/{train_args.yaml,model.pt,model.yaml} 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_florence
运行演示
python gradio_demo.py
性能表现
- 在Windows Agent Arena上达到最佳性能
- 在Screen Spot Pro GUI定位基准测试中达到39.5%的最新最佳结果
- 显著提升GPT-4V在GUI操作任务中的准确性
应用场景
- GUI自动化测试: 自动识别和操作用户界面元素
- 智能助手开发: 构建能够理解和操作图形界面的AI助手
- 无障碍技术: 帮助视觉障碍用户理解屏幕内容
- 流程自动化: 自动化重复的GUI操作任务
- 用户体验研究: 分析用户界面的可用性和交互性
技术优势
- 纯视觉方法: 不依赖于底层UI代码或API,仅通过视觉信息工作
- 高精度定位: 能够精确识别可交互元素的位置和功能
- 跨平台兼容: 支持多种操作系统和应用程序
- 可扩展性: 支持与多种大型语言模型集成
数据集和模型
检测模型
- 基于YOLO架构
- 使用AGPL许可证
- 专门训练用于UI元素检测
描述模型
- 基于BLIP2和Florence架构
- 专门用于生成UI元素的功能描述