OmniParser是什么
OmniParser是一个纯视觉的屏幕解析代理,它能够读取并解析从UI界面截图中提取的内容,将其转化为结构化的文本数据。结构化数据本身没有直接用途,但可以作为文本输入辅助LLM对屏幕进行解析和操作。
OmniParser的目标
近期大型视觉语言模型的成功表明,在驱动用户界面上的代理系统方面具有巨大潜力。然而,由于缺乏一种能够可靠地识别用户界面中可交互图标并理解截图中各种元素语义的强大屏幕解析技术,像 GPT-4V 这样的多模态模型作为跨不同应用的多操作系统上的通用代理的能力被大大低估了。为了填补这些空白,我们引入了 OmniParser ,这是一种将用户界面截图解析为结构化元素的综合方法,显著增强了 GPT-4V 生成能够准确地在界面相应区域中得到验证的动作的能力。
随着视觉模型的不断发展,AI 已经能够解析屏幕截图,从而使得 AI 代理操作成为可能。然而,现有的通用视觉模型在解析界面截图时效果不佳,难以准确区分界面元素。为了解决这一问题,OmniParser 致力于针对界面截图进行精细化训练,提升 AI 在处理和理解界面元素方面的能力。
OmniParser是怎么实现的
我们首先使用流行的网页和图标描述数据集制作了一个可交互图标检测数据集。这些数据集被用来微调专门的模型:一个检测模型用于解析屏幕上的可交互区域,一个标题模型用于提取检测到的元素的功能语义。
graph LR
A[用户输入与UI截图] --> B[检测模型\n识别可交互区域]
B --> C[标题模型\n根据区域内容增加总结]
C --> D[整理为结构化数据输出]
识别可交互区域
我们整理了一个可交互图标检测数据集,包含 67k 个独特的截图图像,每个图像都标注了从 DOM 树中提取的可交互图标的边界框。我们首先从 clueweb 数据集上选取了 10 万个流行的公开 URL 的 100k 个均匀样本,并从每个 URL 的 DOM 树中收集了网页可交互区域的边界框。
通过这些数据集,他们首先训练了一个用于检测截图上可交互区域的检测模型。
根据区域内容增加总结
我们还收集了 7k 个图标-描述对,用于微调标题模型。
他们在BLIP-2 模型上通过数据集进行微调,最终得到了一个根据区域内图像总结内容的模型。
为什么要为可交互区域增加语义描述
我们在很多情况下发现,仅输入带有边界框和关联 ID 的 UI 截图可能会误导 GPT-4V。我们认为这种限制源于 GPT-4V 在同时执行识别每个图标语义信息和预测特定图标框的下一步动作的复合任务时能力有限。这一点也被其他几项工作观察到。为了解决这个问题,我们将功能性的局部语义纳入提示中,即对于由交互区域检测模型检测到的每个图标,我们使用微调模型生成功能描述,对于每个文本框,我们使用检测到的文本及其标签。
从论文3.2可以看出,现有模型对于区域位置与截图的关联性感知并不强,为区域增加总结性的描述可以让模型更直接的将功能与区域关联起来。
在下图中,我们看到原始的 BLIP-2 模型倾向于描述应用图标的形状和颜色,而难以识别图标的语义。这促使我们使用图标描述数据集对这个模型进行微调。
输出
最终 OmniParser 可以将屏幕截图转换为以下格式的结构化文本:
[0] [text] [Where to?]
[1] [text] [Tripaclvisor]
[2] [text] [Alerts]
[3] [text] [Cart]
[4] [text] [Nearby]
[5] [text] [Hotels]
···
[13] [icon] [a woman holding a cup of coffee or tea.]
[14] [icon] [a location or location-related feature.]
[15] [icon] [a location or location-related feature.]
[16] [icon] [a location or location-related feature.]
[17] [icon] [a person riding a surfboard.]
OmniParser和其他基于浏览器的AI Agent相比的优势
更好的扩展性
OmniParser是辅助LLM的Agent,这意味着它可以兼容Deepseek-R1等最新的大语言模型,模型可以理解并处理更复杂的任务。
更广的适用范围
OmniParser基于纯视觉屏幕截图输入,虽然比起浏览器的DOM输入会产生误差,但是也带来了广泛的适用场景:不再局限于浏览器,系统界面、任意软件、甚至跨平台的界面截图也都可以作为输入。
更符合人类感知
OmniParser处理的数据内容与用户看到的一致,不会随网页DOM数据量变化而改变,也抹削了不同的前端框架带来的DOM差异问题。
碎碎念
对于标准前后端流程开发来说,框架与自动化是司空见惯的一件事。但对于编程与其他领域结合的项目来说,比如和游戏引擎侧结合的游戏项目,纯coding AI是无法解决大多数事情的。游戏项目的很多流程需要人为介入才可以完成,游戏测试也需要花费大量工作量编写用例并反复测试。OmniParser的出现让流程的自动化与测试的自动化都成为了可能,期待能引入项目的那一天。
参考资料
Browser-use,一款开源的基于浏览器的AI Agent - Github