OmniParser omnitool 使用体验和使用中踩过的坑

我来帮你重新组织这篇技术体验文章,让它更有结构性和可读性。

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 企业版镜像作为沙盒环境

实践经验

模型对比

我测试了两个模型:

  1. Qwen 2.5-vl-72b-instruct

    • 响应速度快
    • Token 消耗大(简单任务就用了 20 万 token)
    • 执行可靠性有待提高,经常中途出错
  2. Deepseek-r1-distill-llama-70b

    • 目前免费使用
    • 同样存在执行中断问题
    • 结构解析准确度需要提升

踩坑记录

  1. GPU 加速问题

    解决方案:手动下载 GPU 版本的 PyTorch
    参考:https://pytorch.org/get-started/locally/
    
  2. 虚拟机连接问题

    • 错误提示:Validation errors: Windows Host is not responding
    • 解决方案:
      1. 在虚拟机中重新克隆 OmniParser 项目
      2. 使用 PyCharm 运行 win11setup/setupscripts/server/main.py

Docker 使用建议

在国内环境下,Docker 镜像拉取可能比较慢,建议:

  • 使用国内镜像源
  • 或搭建私有镜像仓库

下面就是中文教程

OmniTool 中文文档

通过 OmniParser + 您选择的视觉模型控制 Windows 11 虚拟机

主要亮点

  1. OmniParser V2 比 V1 快 60%,可识别多种操作系统图标、应用程序图标及内部界面元素!
  2. OmniBox 虚拟机比同类测试环境节省 50% 磁盘空间,同时提供完整的计算机操作 API
  3. 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 观看视频

注意事项

  1. OmniParser V2 支持 CPU 运行,但建议部署在 GPU 服务器以获得最佳性能
  2. OmniBox 需要 KVM 虚拟化支持,建议在 Windows/Linux 系统运行(无需 GPU)
  3. 建议将 omnibox 和 gradio 部署在同一 CPU 服务器,omniparserserver 部署在 GPU 服务器

安装步骤

  1. 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

  2. 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
  3. 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实践:

  1. 通过负责任AI数据训练图标识别模型,避免推断敏感属性
  2. 建议仅处理不包含有害/暴力内容的截图
  3. 使用微软威胁建模工具进行安全分析
  4. 保持人工监督以最小化风险

致谢

感谢以下优秀项目的启发:

特别感谢 Francesco Bonacci、Jianwei Yang、Dillon DuPont、Yue Wu、Anh Nguyen 等专家的宝贵建议。