屏幕解析工具——OmniParser

0 引言

OmniParser是微软开源的一种屏幕解析工具,提供了一种将用户界面截图解析为结构化元素的综合方法,通过此方法可以对UI界面进行可交互元素的提取和描述,然后将此结构化信息和任务指令,输入到大模型中,以增强大模型对用户界面的动作预测能力

论文: https://arxiv.org/pdf/2408.00203
项目: https://github.com/microsoft/OmniParser
huggingface: https://huggingface.co/microsoft/OmniParser

1 项目背景

大型视觉模型在理解和操作用户界面方面展现出巨大的潜力,但是现有的模型在实际表现中不尽人意,项目组认为原因是:让GPT-4V这类大模型同时完成屏幕元素解析动作预测两个任务,对模型负担太重。

所以提出一种屏幕解析工具,来单独完成屏幕元素解析任务,只让大模型专注于动作预测任务,以此来增强大模型在各种用户任务中的动作预测能力,再与自动化工具结合形成更加强大的Agent系统

2 项目目标

开发一种通用的、跨平台的屏幕解析工具。

核心思想: 利用纯视觉信息来解析用户界面(UI)截图,将其转换成结构化的元素,而不依赖于任何特定平台的额外信息

3 项目效果

OmniParser显著提高了GPT-4V的动作预测性能,而且性能超过了使用HTML信息的GPT-4V模型,同时在完成移动导航任务时整体得分提高了4.7%

4 框架结构

在这里插入图片描述
当用户的界面UI图输入后:

  1. 经过一个交互图标检测模型(项目中使用的是微调后的YOLO V8),识别出那些地方是可交互的,并为其添加边界框和唯一ID。
  2. 对检测出来的可交互区域,使用一个功能描述模型(项目中使用的是微调后的BLIP-2)去描述该图标的功能
  3. 同时还有一个OCR模型(项目中使用的是Paddle OCR)去识别文字,并为其添加边界框和唯一ID,如果交互图标的边界框和文字边界框重叠度有90%,则共用一个框和ID
  4. 最后输出一个标注好的UI界面图,以及对应的功能描述和文本描述内容

5 微调的YOLO和BLIP

论文中未给出具体的数据集格式,下列左图是推测的微调YOLO的数据集格式,右图是微调BLIP的前后对比
在这里插入图片描述
微调后的BLIP-2由描述图标的形状、颜色,转为描述图标的功能

6 项目本地部署

6.1 创建新的conda环境并激活

conda create -n omni python=3.12
conda activate omni

6.2 git导入项目、下载依赖

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

会生成一个文件夹
在这里插入图片描述
里面有个requirements.txt,是我们所需要的依赖,进入该目录中,直接pip安装依赖

cd ./OmniParser
pip install -r requirements.txt

等待依赖安装

6.3 下载模型权重

创建一个新的文件夹用于保存模型权重,使用git和个git lfs拉取

git clone --depth 1 https://huggingface.co/microsoft/OmniParser .
git lfs install
git lfs pull

把下载下来的权重放到项目的weight文件夹中,结构如下:

weights/icon_detect

weights/icon_caption_florence

weights/icon_caption_blip2

然后在omni环境中,运行文件夹中的python程序:

python convert_safetensor_to_pt.py

出现下列结果则运行成功:
在这里插入图片描述

7 使用方法

7.1 界面解析

我这里使用的是文件夹里面的demo
在这里插入图片描述
可以在这个地方修改你要输入的图片:
在这里插入图片描述
最后输出标注好的UI界面图,和对应的功能描述与文字描述
在这里插入图片描述

7.2 大模型动作预测

下面是标注好的UI界面图
在这里插入图片描述
然后下面是我的提示词(功能描述太长,这里只展示局部)

this is my ui,i want to search for paper with lstm as the title,how should i operate?
there are the contents of the ui interface:['Text Box ID 0: | 8demo','Text Box ID 1: x|A #t','Text Box ID 2: xX arXiv.org e-Print archive','Text Box ID 3: +','Text Box ID 4: C','Text Box ID 5: 6htt ps:/arxiv.org','Text Box ID 6:  Algorithm Visu..',......]

大模型输出结果:
这里是用的通义大模型
在这里插入图片描述

8 方案缺陷

8.1 不支持中文

解决方法: 重新制作中文数据集进行微调

8.2 当解析结果包含重复图标/文本时,大模型可能无法做出正确的预测

在这里插入图片描述
如上图那样有重复的图标时,大模型可能无法理解应该操作哪一个
解决方法: 对重复元素添加更细致的描述,以便让大模型意识到重复元素的存在(原文用的potential,即该方法未经验证

8.3 无法识别文本内容中的超链接

解决方法: 训练一个模型将 OCR 和可交互区域检测组合成一个模块,从而可以检测可点击的文本/超链接。

8.4 图标误解

在这里插入图片描述
把上图(局部)输入给大模型,想点击“更多”,理论上应该点击BOX_26,但是实际上功能描述模型把BOX_26描述为“缓冲/加载”,导致大模型可能无法准确的预测动作
解决方法: 训练知道图像完整”上下文”的图标功能描述模型。(原文用的potential,即该方法未经验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/12872.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

衡石分析平台系统分析人员手册-嵌入样式定制化指南­

发布页面嵌入样式定制化指南​ 使用衡石智能分析平台制作好 Dashboard 和 Chart 以后,可以通过 iframe 的方式嵌入到已有系统中。为了达到风格统一,嵌入 iframe 的时候支持丰富的定制化选项。 定制 Dashboard 的 iframe​ 参数列表​ 仪表盘嵌入时支持…

Nginx更换ssl证书不生效

一.场景 在用的ssl证书要过期了,申请了新的ssl证书下来,在nginx配置上更换上去后,打开系统地址,一依然是使用原来的旧证书,以前有更换过别的域名证书,重启nginx服务后立马就生效了。 这次没生效&#xff…

基于python和Django的用户管理接口开发

1.异步用户登录\登出接口开发 1.设计公共响应数据类型 文件地址:utils/response404.py from django.http import JsonResponseclass BadRequestJsonResponse(JsonResponse):status_code 400def __init__(self, err_list, *args, **kwargs):data {"error_c…

Docker--Docker是什么和对Docker的了解

Docker 的本质 Docker的本质是LXC(Linux容器)之类的增强版,它本身不是容器,而是容器的易用工具。 Docker通过虚拟化技术,将代码、依赖项和运行环境打包成一个容器,并利用隔离机制来使得容器之间互相独立、…

Window下PHP安装最新sg11(php5.3-php8.3)

链接: https://pan.baidu.com/s/10yyqTJdwH_oQJnQtWcwIeA 提取码: qz8y 复制这段内容后打开百度网盘手机App,操作更方便哦 (链接失效联系L88467872) 1.下载后解压文件,将对应版本的ixed.xx.win文件放进php对应的ext目录下,如图所示 2.修改ph…

C# yolo10使用onnx推理

一、前言 本篇总结C#端使用yolo10的onnx文件做模型推理,主要使用Microsoft.ML.OnnxRuntime.Gpu这个库。需要注意的是Microsoft.ML.OnnxRuntime 和 Microsoft.ML.OnnxRuntime.Gpu 这2库只装1个就行,CPU就装前者,反之后者。然后需要注意系统安装…

MNIST数据集下载与保存为图片格式

深度学习 文章目录 深度学习下载数据集 下载数据集 https://github.com/geektutu/tensorflow-tutorial-samples/tree/master/mnist/data_set t10k-images-idx3-ubyte.gz t10k-labels-idx1-ubyte.gz train-images-idx3-ubyte.gz train-labels-idx1-ubyte.gz 解压后,…

Oracle In子句

Oracle IN 运算符可以用来确定值是否与列表或子查询中的任何值相匹配 Oracle IN语法: 确定表达式是否与值列表匹配的 Oracle IN 运算符的语法如下所示: expression [NOT] IN (v1,v2,...)并且表达式的语法与子查询匹配: expression [NOT] I…

华为OD机试 - 查找舆情热词(Python/JS/C/C++ 2024 C卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

从容应对蓝屏:必知原因与对策

电脑蓝屏,即“蓝屏死机”或“蓝屏错误”,是计算机用户在日常使用中可能遇到的一种较为严重的系统错误状态。当屏幕突然变成蓝色,并显示错误代码和信息时,这通常意味着系统遇到了无法处理的问题,了解电脑蓝屏的原因及解…

每日小练:Day1

1.牛牛冲钻五 题目链接:A-牛牛冲钻五_牛客小白月赛38 题目描述: 代码如下: import java.util.*;public class Main{public static void main(String[] args){Scanner scannernew Scanner(System.in);int tscanner.nextInt();while(t--!0){…

springboot汽车租赁智慧管理-计算机设计毕业源码96317

目 录 第 1 章 引 言 1.1 选题背景 1.2 研究现状 1.3 论文结构安排 第 2 章 系统的需求分析 2.1 系统可行性分析 2.1.1 技术方面可行性分析 2.1.2 经济方面可行性分析 2.1.3 法律方面可行性分析 2.1.4 操作方面可行性分析 2.2 系统功能需求分析 2.3 系统性需求分析…

从社交媒体到元宇宙:Facebook未来发展新方向

Facebook,作为全球最大的社交媒体平台之一,已经从最初的简单互动工具发展成为一个跨越多个领域的科技巨头。无论是连接人与人之间的社交纽带,还是利用大数据、人工智能等技术为用户提供个性化的体验,Facebook一直引领着社交网络的…

用Python比较对象,你还在用==?

包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】! 1.基础比较: 和 is 在Python中,对象间的比较是程序设计中的基础且重要的一环,它直接关系到数据处理的逻辑和效率。本章将深入探讨两种基本的比较操…

MySQL 中的集群部署方案

文章目录 MySQL 中的集群部署方案MySQL ReplicationMySQL Group ReplicationInnoDB ClusterInnoDB ClusterSetInnoDB ReplicaSetMMMMHAGalera ClusterMySQL ClusterMySQL Fabric 总结参考 MySQL 中的集群部署方案 MySQL Replication MySQL Replication 是官方提供的主从同步方…

Vision Pro空间叙事创作工具:开启多媒体融合新纪元

在数字内容创作领域迎来了一位新玩家——专为Apple Vision Pro设计的空间叙事创作工具。这款工具不仅是一个沉浸式内容分享平台,更是面向空间计算时代的内容创作解决方案,它旨在通过全新的多媒体融合方式,打破传统内容创作的界限。 产品优势…

屏幕水印是什么,怎么设置丨超级简单的防盗水印教程来了,包教包会!

小李:现在科技这么发达,随便一截图或者拍照,信息就满天飞了 小张:给你的电脑屏幕安排一件“隐形战衣”呗 小李:哦?新词儿?些许陌生 小张:简而言之,言而简之&#xff0…

css:没错又是我

背景 给元素添加背景样式 还可以设置背景颜色、背景图片(教练我要学这个)、背景平铺、背景图片位置、背景图像固定 背景颜色 这个我们用过,就是: a {background-color: hotpink; } 一般默认值是transparent,也就…

adb 如何通过wifi连接手机

1. 电脑通过USB线连接手机 1.1手机开启开发者模式 以小米手机为例:连续点击OS版本系统(设置–>我的设备–>全部参数) 1.2在开发者模式下,启动允许USB安装与USB调试 操作步骤:设置>更多设置>开发者选项&g…

自己开发得期货资管模拟软件演示1.0.15版仅供学习

期货资管模拟软件演示1.0.15版仅供学习——C技术栈知识分享 本文将以期货资管模拟软件演示1.0.15版为例,分享其基于C技术栈的框架知识。 一、C技术栈在期货交易软件开发中的应用 C作为一种高性能的编程语言,以其强大的内存管理能力和高效的执行速度&a…