OmniParser GUI交互实测

微软悄然发布了 OmniParser,这是一款开源工具,旨在将屏幕截图转换为 Vision Agents 的结构化、易于解释的元素。该工具的目标是推动新兴领域的发展,使大型语言模型 (LLM) 能够与图形用户界面 (GUI) 交互。

最近,Anthropic 宣布了一个类似但闭源的与计算机界面交互的工具。然而,创建一个类似的系统并不像看起来那么困难,这个概念很简单。微软的 OmniParser 在随附的论文中有详尽的记录,该论文以清晰易懂的方式解释了每个组件。本文将探讨如何构建与 Anthropic 相当的工具。

1、简介

为了让你了解我们试图实现的目标,想象一下你需要 ChatGPT 的帮助来完成 Web 上的 UI 任务。例如,如果你想设置一个 webhook,ChatGPT 不需要“看到”UI。它只是根据 Stack Overflow 等来源的信息提供“单击此处”或“导航到该选项”等指令。

现在,我们想更进一步。支持视觉的代理实际上将能够看到屏幕上的内容,理解界面,并决定下一步,例如单击哪个按钮。为了有效地做到这一点,它需要识别 UI 元素的精确坐标。

2、OmniParser 的工作原理

复杂的 UI 交互任务可以分解为视觉语言模型 (VLM) 的两个基本要求:

  • 了解当前的 UI 屏幕状态
  • 预测下一步适当的操作以完成任务

OmniParser 不是在一个步骤中处理这两个要求,而是将过程分解为多个步骤。首先,模型必须了解屏幕截图的当前状态,这意味着它必须识别屏幕截图中的对象并预测单击每个对象时会发生什么。微软研究人员还使用 OCR 识别带有文本的可点击元素以提供更多上下文,并且他们对图标描述模型进行了微调。

通过这种方法,模型可以了解屏幕上不同组件的坐标,并了解每个组件的作用。

3、可交互元素检测

为了实现系统的第一步,微软研究人员在 66,990 个样本上训练了一个 YOLOv8 模型,进行了 20 个 epoch,实现了约 75% 的 mAP@50。除了可交互区域检测外,他们还开发了一个 OCR 模块来提取文本的边界框。然后,他们将 OCR 检测模块和图标检测模块中的边界框合并,删除重叠度高的框(使用超过 90% 的阈值)。对于每个边界框,他们使用一种简单的算法为其贴上唯一的 ID,以最大限度地减少数字标签与其他边界框之间的重叠。

论文

4、语义理解

为了处理 UI 元素的语义理解,微软研究人员在 7,000 个图标描述对的自定义数据集上对 BLIP-v2 模型进行了微调。该数据集是使用 GPT-4 专门策划的,以确保 UI 组件的高质量、相关描述。

微调后的模型以不同的方式处理两种类型的元素:对于检测到的交互式图标,它会生成解释其目的和行为的功能描述,而对于 OCR 模块识别的文本元素,它会同时使用提取的文本内容及其相应的标签。

这个语义层通过为每个 UI 元素向 VLM 提供明确的功能上下文来输入更大的系统,从而减少了模型仅从视觉外观推断元素目的的需要。

论文

系统可能会以几种有趣的方式失败,这些方式突出了基于视觉的 GUI 交互中可能改进的领域。让我们探讨这些限制并讨论可以增强系统可靠性的潜在解决方案。

5、重复元素的挑战

当在同一页面上遇到重复的 UI 元素时,系统可能会失败。例如,当多个相同的“提交”按钮出现在不同的部分时,当前的实现很难有效地区分这些相同的元素。当用户任务需要单击这些重复元素的特定实例时,这可能会导致错误的操作预测。

# Current approach
description = "Submit button"

# Improved approach could look like:
enhanced_description = {
    "element_type": "Submit button",
    "context": "Form section: User Details",
    "position": "Primary submit in main form",
    "relative_location": "Bottom right of user information section"
}

解决方案可能在于实现“上下文指纹识别”——向看似相同的元素添加特定于层和特定于位置的标识符。这将允许系统为每个重复元素实例生成唯一的描述。

6、边界框检测中的粒度问题

另一个值得注意的限制涉及边界框检测的精度,尤其是对于文本元素。OCR 模块有时会生成过宽的边界框,这会导致点击预测不准确。对于超链接和交互式文本元素,这尤其成问题。

考虑这种常见情况:

[Read More About Our Services]
     ^
Current click point (center)

原文链接:How Can GPTs Interact with Computers? OmniParser Explained

汇智网翻译整理,转载请标明出处