我来帮你重新组织这篇技术体验文章,让它更有结构性和可读性。
OmniParser 与 OmniTool 实践体验总结
前言
最近我尝试了 Microsoft 开源的 OmniParser 和 OmniTool 这两个工具,这里记录一下使用体验和踩坑经历。作为一名开发者,我觉得这套工具组合挺有意思的,特别是在 AI 控制计算机这个领域。
工具介绍
OmniParser
OmniParser 是一个图像识别工具,主要功能是:
- 自动识别图片中的元素
- 为识别到的元素打标签和编号
- 记录元素位置信息
个人使用体验:
- 在我的 RTX 4070 笔记本(8GB显存)上,处理 720p 图片仅需约 1.5 秒
- CPU 模式下性能差距明显,同样的任务需要 30 多秒
- 识别准确度令人满意
OmniTool
OmniTool 是建立在 OmniParser 基础上的自动化工具:
- 将 OmniParser 的识别结果传递给 LLM
- 解析 LLM 的响应并通过 pyautogui 控制计算机
- 使用 QEMU 和 Win11 企业版镜像作为沙盒环境
实践经验
模型对比
我测试了两个模型:
-
Qwen 2.5-vl-72b-instruct
- 响应速度快
- Token 消耗大(简单任务就用了 20 万 token)
- 执行可靠性有待提高,经常中途出错
-
Deepseek-r1-distill-llama-70b
- 目前免费使用
- 同样存在执行中断问题
- 结构解析准确度需要提升
踩坑记录
-
GPU 加速问题
解决方案:手动下载 GPU 版本的 PyTorch 参考:https://pytorch.org/get-started/locally/
-
虚拟机连接问题
- 错误提示:
Validation errors: Windows Host is not responding
- 解决方案:
- 在虚拟机中重新克隆 OmniParser 项目
- 使用 PyCharm 运行
win11setup/setupscripts/server/main.py
- 错误提示:
Docker 使用建议
在国内环境下,Docker 镜像拉取可能比较慢,建议:
- 使用国内镜像源
- 或搭建私有镜像仓库
下面就是中文教程
OmniTool 中文文档
通过 OmniParser + 您选择的视觉模型控制 Windows 11 虚拟机
主要亮点
- OmniParser V2 比 V1 快 60%,可识别多种操作系统图标、应用程序图标及内部界面元素!
- OmniBox 虚拟机比同类测试环境节省 50% 磁盘空间,同时提供完整的计算机操作 API
- OmniTool 原生支持主流视觉模型:OpenAI (4o/o1/o3-mini)、DeepSeek (R1)、Qwen (2.5VL) 和 Anthropic 计算机操作模型
系统架构
包含三大核心组件:
omniparserserver | 运行 OmniParser V2 的 FastAPI 服务器 |
omnibox | 运行在 Docker 容器中的 Windows 11 虚拟机 |
gradio | 提供操作界面,可实时观察AI推理和执行过程 |
演示视频
OmniParser V2 | 观看视频 |
---|---|
OmniTool | 观看视频 |
注意事项
- OmniParser V2 支持 CPU 运行,但建议部署在 GPU 服务器以获得最佳性能
- OmniBox 需要 KVM 虚拟化支持,建议在 Windows/Linux 系统运行(无需 GPU)
- 建议将 omnibox 和 gradio 部署在同一 CPU 服务器,omniparserserver 部署在 GPU 服务器
安装步骤
-
omniparserserver 服务端:
a. 如果已有 OmniParser 的 conda 环境可直接使用,否则按以下步骤创建:
b. 确认已安装 conda(通过
conda --version
),未安装请从 Anaconda 官网 获取c. 进入项目根目录:
cd OmniParser
d. 创建 conda 环境:
conda create -n "omni" python==3.12
e. 激活环境:
conda activate omni
f. 安装依赖:
pip install -r requirements.txt
g. 下载 V2 模型权重(确保权重目录名为 icon_caption_florence):
rm -rf weights/icon_detect weights/icon_caption weights/icon_caption_florence for folder in icon_caption icon_detect; do huggingface-cli download microsoft/OmniParser-v2.0 --local-dir weights --repo-type model --include "$folder/*"; done mv weights/icon_caption weights/icon_caption_florence
h. 进入服务目录:
cd OmniParser/omnitool/omniparserserver
i. 启动服务:
python -m omniparserserver
-
omnibox 虚拟机:
a. 安装 Docker Desktop
b. 访问 微软评估中心,下载 Windows 11 Enterprise Evaluation (90天试用版,英语-美国) ISO 文件[约6GB]。重命名为 custom.iso 并复制到
OmniParser/omnitool/omnibox/vm/win11iso
c. 进入管理脚本目录:
cd OmniParser/omnitool/omnibox/scripts
d. 创建虚拟机[400MB]并安装系统[20GB]:
./manage_vm.sh create
e. 管理命令:
- 启动:
./manage_vm.sh start
- 停止:
./manage_vm.sh stop
- 删除:
./manage_vm.sh delete
并手动删除OmniParser/omnitool/omnibox/vm/win11storage
- 启动:
-
gradio 界面:
a. 进入界面目录:
cd OmniParser/omnitool/gradio
b. 激活环境:
conda activate omni
c. 启动服务:
python app.py --windows_host_url localhost:8006 --omniparser_server_url localhost:8000
d. 打开终端显示的 URL,设置 API Key 即可开始使用!
风险控制
遵循微软人工智能原则和负责任AI实践:
- 通过负责任AI数据训练图标识别模型,避免推断敏感属性
- 建议仅处理不包含有害/暴力内容的截图
- 使用微软威胁建模工具进行安全分析
- 保持人工监督以最小化风险
致谢
感谢以下优秀项目的启发:
特别感谢 Francesco Bonacci、Jianwei Yang、Dillon DuPont、Yue Wu、Anh Nguyen 等专家的宝贵建议。