OmniParser:大模型学会理解 GUI 图形界面

OmniParser:大模型学会理解 GUI 图形界面长久以来 人们都是依靠 GUI 图形用户界面来操作计算机的 我们熟悉的窗口 菜单 按钮等等 对于 AI 机器人来说却不是那么容易理解的 想要把 AI 大模型应用在自动化操作中 图形用户界面 GUI 的解析和理解就成为了一个重要的课题

欢迎大家来到IT世界,在知识的湖畔探索吧!

长久以来,人们都是依靠 GUI 图形用户界面来操作计算机的,我们熟悉的窗口、菜单、按钮等等,对于 AI 机器人来说却不是那么容易理解的。

想要把 AI 大模型应用在自动化操作中,图形用户界面 GUI 的解析和理解就成为了一个重要的课题。

如何将用户界面的截图解析为结构化且易于理解的元素,以增强 LLM 在界面交互中的准确性,OmniParser 项目给出了具有突破性的解决方案。

简介

OmniParser 是一个用于纯视觉 GUI 代理的屏幕解析工具,其代码仓库地址为
https://github.com/microsoft/OmniParser。该项目由微软推出,致力于为用户提供将用户界面的截图,解析为结构化且易于理解的元素的能力,从而显著提升 GPT – 4V 等模型在界面交互中生成准确动作的能力。

OmniParser:大模型学会理解 GUI 图形界面

欢迎大家来到IT世界,在知识的湖畔探索吧!

OmniParser 具有诸多特色功能:

  • OmniParser V2 相较于 V1 版本有了显著的性能提升,速度提高了 60%,并且能够理解更广泛的操作系统、应用程序和应用内图标。
  • OmniTool 作为该项目的一部分,支持多种大型语言模型,如 OpenAI(4o/o1/o3 – mini)、DeepSeek(R1)、Qwen(2.5VL)或 Anthropic Computer Use 等,用户可以根据自己的需求选择合适的模型进行使用。
  • OmniBox 在进行代理测试时,相比其他 Windows 虚拟机使用的磁盘空间减少了 50%,同时还能提供相同的计算机使用 API,这大大提高了资源的利用效率。
OmniParser:大模型学会理解 GUI 图形界面

使用

要在本地部署运行 OmniParser 项目,首先把代码克隆到本地:

git clone https://github.com/microsoft/OmniParser.git

欢迎大家来到IT世界,在知识的湖畔探索吧!

然后使用 conda 创建环境,使用 Python 3.12:

欢迎大家来到IT世界,在知识的湖畔探索吧!cd OmniParser conda create -n "omni" python==3.12 conda activate omni

接着安装相关的 Python 依赖:

pip install -r requirements.txt

运行 V2 版本的模型之前,需要确保已经下载了 V2 的模型参数权重,若没有下载,可以使用以下脚本:

欢迎大家来到IT世界,在知识的湖畔探索吧! # download the model checkpoints to local directory OmniParser/weights/ 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
OmniParser:大模型学会理解 GUI 图形界面

OmniParser 使用较为简单,开发者可以首先使用 huggingface 上的在线 demo,上传一张屏幕截图,不限于 PC端、移动端、网页等,并简单调节阈值参数,就能够输出屏幕上所有的 GUI 元素:

OmniParser:大模型学会理解 GUI 图形界面

我们也可以简单写一个脚本直接调用本地的模型:

import importlib import utils importlib.reload(utils) # from utils import get_som_labeled_img, check_ocr_box, get_caption_model_processor, get_yolo_model image_path = 'imgs/google_page.png' image_path = 'imgs/windows_home.png' # image_path = 'imgs/windows_multitab.png' # image_path = 'imgs/omni3.jpg' # image_path = 'imgs/ios.png' image_path = 'imgs/word.png' # image_path = 'imgs/excel2.png' image = Image.open(image_path) image_rgb = image.convert('RGB') print('image size:', image.size) box_overlay_ratio = max(image.size) / 3200 draw_bbox_config = { 'text_scale': 0.8 * box_overlay_ratio, 'text_thickness': max(int(2 * box_overlay_ratio), 1), 'text_padding': max(int(3 * box_overlay_ratio), 1), 'thickness': max(int(3 * box_overlay_ratio), 1), } BOX_TRESHOLD = 0.05 import time start = time.time() ocr_bbox_rslt, is_goal_filtered = check_ocr_box(image_path, display_img = False, output_bb_format='xyxy', goal_filtering=None, easyocr_args={'paragraph': False, 'text_threshold':0.9}, use_paddleocr=True) text, ocr_bbox = ocr_bbox_rslt cur_time_ocr = time.time() dino_labled_img, label_coordinates, parsed_content_list = get_som_labeled_img(image_path, som_model, BOX_TRESHOLD = BOX_TRESHOLD, output_coord_in_ratio=True, ocr_bbox=ocr_bbox,draw_bbox_config=draw_bbox_config, caption_model_processor=caption_model_processor, ocr_text=text,use_local_semantics=True, iou_threshold=0.7, scale_img=False, batch_size=128) cur_time_caption = time.time() 

以上的例子中,

  1. 我们直接引用工具函数 check_ocr_box 和 get_som_labeled_img,
  2. 对于指定路径的图片,首先通过 Image 读取到内存中,
  3. 然后配置 Bounding Box 参数配置,利用 check_ocr_box 识别图片中各元素的位置
  4. 再利用 get_som_labeled_img 方法获得一张在原图上直接标注各个 GUI 元素的示意图
OmniParser:大模型学会理解 GUI 图形界面

总结

OmniParser 项目作为一个纯视觉的 GUI 屏幕解析工具,为用户界面的解析和理解提供了一种全面且高效的解决方案。包括 OmniParser V2 的大幅性能提升、OmniTool 对多种大型语言模型的支持以及 OmniBox 的资源优化等,都使得该项目在 GUI 解析领域具有显著的优势。

OmniParser 可以广泛应用于各种需要对用户界面进行自动化处理的场景,如自动化测试、智能交互系统等。通过将用户界面的截图解析为结构化元素,能够更准确地识别界面中的各种组件,从而实现自动化的操作和交互。例如,在自动化测试中,可以使用 OmniParser 来检测界面元素的位置和状态,以确保测试的准确性和可靠性。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/114428.html

(0)
上一篇 1天前
下一篇 1天前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信