【论文通读】GUI Action Narrator: Where and When Did That Action Take

GUI Action Narrator: Where and When Did That Action Take

  • 前言
  • Abstract
  • Motivation
  • Solution
  • Act2Cap
    • Data Collection
    • Metrics
  • Method
  • Experiment
    • Ablation Study
      • Visual Prompt Size
      • Spatial Prompt
      • Temporal Prompt
  • Conclusion

前言

一篇GUI操作benchmark的工作,作者提出了一个GUI benchmark以及一个提高MLLM GUI操作能力的框架,在一定程度了提高了开源和闭源MLLM的GUI的性能。文章出发点比较有趣,但是逻辑上有点不自洽,不过整个工作的方向确实是当前的主流,值得深入去思考。

Paperhttps://arxiv.org/pdf/2406.13719
HomePagehttps://showlab.github.io/GUI-Narrator

Abstract

多模态LLMs的出现为自动化GUI任务带来了可能。构建GUI自动化系统的一个基本方面是理解原始GUI操作,它可以让智能体学习人类的操作,因此至关重要。为了评估这种能力,本文设计了视频caption benchmark,包括4189个样本。该任务与传统的自然场景caption不同在于:

  1. GUI截图包含更密集的信息。
  2. GUIs中的事件瞬息万变,需要关注时间跨度和空间范围以准确理解。

为此,作者提出GUI动作数据集Act2Cap以及一个简单高效的框架 GUI Narrator,它利用光标作为视觉提示来提升高分辨率截图的理解。具体来说,光标探测器在数据集上训练,通过具有选择关键帧、关键区域机制的多模态LLM生成caption。即使对于最先进的多模态模型如GPT-4o来说仍具有挑战性。此外,评估显示,本文的策略有效增强了模型的性能,无论是对于开源还是闭源的模型。

Motivation

GUI自动化至关重要,现有的工作要不关注于理解学习GUI grounding能力,要不关注于构建生成行为的AI智能体,这些工作都缺少考虑了一个重要问题:理解截图记录中特定的GUI动作。理解GUI动作可以:

  1. 复制人类的行为。
  2. 提供用户与应用交互的见解。

虽然现实场景的行为理解已经取得巨大成功,但是GUI领域却远远落后,这是因为:

  1. GUI 截图信息更密集。
  2. 动作微妙且响应快,需要精密捕捉。
  3. 精确定位至关重要。

基于上面的motivation,构建GUI视频caption benchmark就显得十分必要了。

Solution

image.png
作者构建了一个GUI视频caption benchmark名为Act2Cap,包含4189个样本,如上图所示。对于数据集中的每个video:

  1. 每个GUI动作单独记录,如左点击,右点击,双击等,适配各种平台。
  2. 模型测评时除了识别执行类型,还必须识别具体的元素。
  3. 数据集中3152个自动捕获的GUI动作视频,以及1037个人工标注的视频。

为了解决GUI视频captioning的问题,作者设计了一个简单高效的框架GUI Narrator,把光标作为视觉prompt,并且训练一个轻量级的检测模型用于定位光标的位置。该模型然后利用定位的光标来识别关键帧。最后利用一个多模态LLM对这些关键帧生成caption。

Act2Cap

image.png
**输入:**全分辨率屏幕截图录像,引导MLLM生成相应caption的提示。
**输出:**自然语言caption。

Data Collection

GUI Narrator包括两种收集数据的pipeline:

  • 自动化action视频和标注收集。
  • 人类演示方法收集。

相应的caption标注为:

  • 基于预定义好的动作空间 。
  • 标注人员根据截图对动作进行标注。

image.png
上图是Act2Cap与其他数据集的比较,其在规模和组件上更完整。
image.png
上图是训练集和测试集的分布,其中训练集包括3152个自动标注的数据和488个高质量人工标注数据。此外,作者选取了549个无重叠人工标注数据作为测试集,包括一些OOD的数据。

Metrics

鉴于文本匹配的方式难以捕获语义信息,作者使用GPT-4作为评估器,从叙述中提取关键元素,然后评估每个元素是否匹配语义含义。操作类型被分为三类:点击,拖拽和键盘输入。
image.png

Method

本文提出两阶段的基准方法,用于GUI中原子步骤的描述,如下图所示:
image.png
第一阶段:

  1. 随机抽取视频的10个帧。
  2. 训练好的光标定位器检测每个帧中的光标。
  3. 时间检测模型抽取关键帧(before & after)。

image.png
第二阶段:

  1. 将两个关键帧以及对应的视觉提示注释和裁剪的区域图像作为模型的视觉输入。
  2. 输出得到包含动作类型、元素、目的的动作叙述。

Experiment

image.png
GPT-4o效果最好,并且左击效果显著,但是右击和双击表现很差,本文提出的GUI Narrator在平均分上超过了GPT-o,尽管训练后的模型在左击和键盘输入上表现更好,但是在处理双击、右击和拖拽方面存在困难。

Ablation Study

Visual Prompt Size

image.png
最好的Visual Prompt大小为256,该大小越小模型越能生成元素的准确描述,但是限制了图像中感兴趣的区域。

Spatial Prompt

image.png
结果证明了Visual Prompt的有效性。

Temporal Prompt

为了验证关键帧的有效性,设计了两个变体,一种使用视频第一帧和最后一帧作为关键帧,另一种使用ground truth作为关键帧。
image.png
结果证明了关键帧检测模型只有微小的提升,并且受限于操作方式,一些操作来说可能会降低精度。

Conclusion

本文提出了一个包含4189个数据的GUI Video Caption benchmark,解决了当前GUIs上的不同于现实场景图像的挑战。此外,本文设计了新的框架,利用光标作为视觉提示来增强截图的解释。尽管任务复杂,GUI Narrator还是有效提高了性能,无论是开源还是闭源的模型都适用。最后,作者分析了当前工作的一些局限性,比如对真实场景数据的适应(提供的数据都是剪辑过的),受到两阶段的局限性,GUI Narrator性能取决于光标定位和关键帧提取的准确性。
这篇工作出发点很有趣,不像别的工作上来就从GUI的grounding、GUI的knowledge和planning角度出发,而是从GUI的行为理解和现实场景的行为理解出发,来说明GUI场景行为理解的特异性,进而说明GUI场景需要构建基于视频的GUI benchmark。但是这样的motivation会带来一个问题,视频确实很重要,但是做法怎么又回归到截图了呢?既然说明了GUI场景快、精细、密集,但最后的解决方案还是抽取关键帧,有点不合理。抛开这些,作者构建数据的方式按照作者的故事来说没什么问题(简单的自动化,困难的人工标注),后面提到的提高GUI场景智能体action能力的方案有点意思,但是我有如下的疑问:

  1. 为什么不先检测关键帧再构建相关的Vision Prompt?感觉这并不冲突反而更能提高效率?
  2. 随机截取10帧合理吗?能不能一开始就定位好关键帧?
  3. 自然语言引导图片真的合理吗,VLM实现了自然语言和图片位置对齐吗?
  4. 训练VLM进行Action Captioning的细节没有描述清楚,突然提出的参数θ和k具体指代什么?
  5. 关键帧提取的效果不够好,是随机截取10帧的影响还是本身就是不够好呢?
  6. 数据规模较小,不足以支撑构建一个GUI的 foundational 智能体。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tkinter实现进度条

tkinter实现进度条 效果代码解析导入需要的模块定义进度条 代码 效果 代码解析 导入需要的模块 import tkinter as tk from tkinter import ttk定义进度条 def start_progress():progress[value] 0max_value 100step 10for i in range(0, max_value, step):progress[valu…

Win11找不到组策略编辑器(gpedit.msc)解决

由于需要同时连接有线网络和无线网络,且重启后双网络都自动连接,因此需要配置组策略。 但是win11找不到组策略编辑器。 灵感来源:Win11找不到组策略编辑器(gpedit.msc)解决教程 - 知乎 (zhihu.com) 在Win11中&#…

国网协议电表采集方案

项目背景及需求项目地点:重庆港西光伏电站(中广核重庆)项目背景:光伏发电并网项目电能监控项目目的及难点:实现对EDMI协议电表(Mk6E)的数据采集,监控光伏发电有效性,做到…

项目管理九大口诀

有工作一定有目标 有目标一定有任务 有任务一定有计划 有计划一定有执行 有执行一定有监控 有监控一定有调整 有调整一定有结果 有结果一定有责任 有责任一定有奖惩 🩷有工作一定有目标 目标制定:SMART Specific(具体性)&#x…

# 职场生活之道:善于团结

在职场这个大舞台上,每个人都是演员,也是观众。要想在这个舞台上站稳脚跟,除了专业技能,更要学会如何与人相处,如何团结他人。团结,是职场生存的重要法则之一。 1. 主动团结:多一个朋友&#x…

《昇思25天学习打卡营第1天|基本介绍》

文章目录 前言:今日所学: 前言: 今天非常荣幸的收到了昇思25天学习打卡营的邀请。昇思MindSpore作为华为昇腾AI全栈的重要一员,他支持端、边、云独立的和协同的统一训练和推理框架,有着易于开发、执行效率高、全场景框…

Kotlin扩展函数(also apply run let)和with函数

also apply run let with的使用例子 private fun testOperator() {/*** also*/val person Person("ZhangSan", 18)person.also {// 通常仅仅打印使用, 也可以通过it修改it.name "ZhangSan1"println("also inner name: " it.name)}println(&qu…

Redis-分布式锁(基本原理和不同实现方式对比)

文章目录 1、基本原理2、不同实现方式 1、基本原理 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行&am…

Firewalld 概述

1.firewalld简介 firewalld的作用是为包过滤机制提供匹配规则(或称为策略),通过各种不同的规则,告诉 netfiter对来自指定源、前往指定目的或具有某些协议特征的数据包采取何种处理方式。 为了更加方便地组织和管理防火墙,firewalld 提供了支持网络区域…

以太网基础知识

文章目录 一、以太网(Ethernet)介绍二、协议介绍三、什么是PHY?1.标准接口协议:2.寄存器配置:3.自动协商: 四、时序4.1RGMII接口时序4.1.1 对其模式4.1.2 延时模式(常用) 4.2MDIO接口…

WEB01MySQL安装和数据库

第一天、WEB课程 web课程主要讲三部分内容 数据库 数据库介绍 什么是数据库 数据存储的仓库,其本质也是一个文件系统 数据库会按照特定的格式对数据进行存储,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 数据库…

2024/6/30 英语每日一段

Years of economic and political turbulence have brought stagnation.“In a world where there is more risk and uncertainty, people become reluctant to voluntarily move jobs and find better jobs,” says Manning. At the same time, businesses have cut back on i…

企业互联网建站源码系统 附带完整的安装代码包以及搭建部署教程

系统概述 企业互联网建站源码吸系统是一款集众多先进功能于一身的建站工具。它提供了丰富的模板和组件,允许企业根据自身需求和品牌形象进行个性化定制,快速搭建出具有独特风格的网站。 代码示例 系统特色功能一览 1.用户友好界面:系统采用…

你还搞不懂串口的格式转换问题吗?

相信大多数人在使用串口传输不同单片机之间的数据时都会运到数据格式怎么对应起来的问题,今天我们就来聊聊! 在开始之前我插一个内容,就是不同的单片机之间的电平可能不相同,是不能直接使用杜邦线连接通信的,需要进行电…

带安全启动—Ubuntu系统—手动安装Nvidia驱动

教程1:在启用安全启动的 Fedora 中安装英伟达驱动 教程2:UEFI安全启动模式下安装Ubuntu的NVIDIA显卡驱动 1. 搜索合适的驱动 Nvidia驱动官网 选择这个 驱动(.run)链接 2. 安装必要的软件依赖 CUDA底层用C写的,因此导入编译器 sudo apt i…

ts语法---数据类型,interface和type的用法

ts的数据类型 ts的数据类型自上而下的分级有 第一层 any-任意类型和unknow类型, 第二层 原型链的Object类型, 第三层 js类的类型 第四层 标准的typescript类型 第五层 对应的实例数据类型 第六层 never类型,never表示不合理&#xff0c…

整除分块的题目

链接 思路: 求1到n中的因数个数和等价于求,设x为因子,就是求x在1到n里出现了几次,求1到n里是x的倍数的数有几个,即n/x。需要用整除分块,n/i的值是分块分部的,右端点是n/(n/i)。 代…

Application Studio 学习笔记(3)

一、工具栏按钮 1、panel控件添加工具栏按钮 展开panel控件的Advanced属性并点击Action Data,进入Action Data编辑界面 新增Action Data数据,Sequence设定工具按钮的显示顺序 默认工具按钮会显示在弹出工具栏中 勾选Add to Primary ToolBar后&#xff…

deepin基于apt-mirror同步软件源及构建本地内网源

1.安装apt-mirror sudo apt install -y apt-mirror2.配置apt-mirror(/etc/apt/mirror.list) sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.deepin.bak #备份配置文件 sudo gedit /etc/apt/mirror.list修改如下: deb [trustedyes] https://mirrors.bfsu.ed…

Django学习第一天

Django安装: pip install Django -i https://mirrors.aliyun.com/pypi/simple/ 在需要创建文件的文件目录下写这个命令 django-admin startproject mysite 注意:C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Scripts已加入环境变…