论文笔记:基于LLM和多轮学习的漫画零样本角色识别与说话人预测

news2024/11/26 0:50:17

整理了ACM MM2024 Zero-Shot Character Identification and Speaker Prediction in Comics via Iterative Multimodal Fusion)论文的阅读笔记

  • 背景
  • 模型
    • 框架
    • 实现细节
  • 模型
    • 数据集
    • 实验
    • 可视化
    • 消融实验

背景

  最近读到一篇新文章,主要是做漫画中的零样本角色识别,问题和方法都很有趣,特地来写一篇笔记分享。
  角色是漫画故事的核心,在漫画中识别角色和预测对话的说话人至关重要,这可以使我们实现很多应用程序,比如利用角色特定的声音来为漫画配音。
  以往漫画中说话人预测的研究主要解决图像中人物区域和语音气泡区域的对应关系,但无法确定说话人的名字。如果我们想知道说话者的角色名称,我们首先需要通过特定地角色分类器识别角色区域的角色名称,但是这种方法需要对每个漫画进行注释,这是不可行的,因为每年都会有上千部漫画被发布。
  本文提出了一项新问题,如何在zero-shot的情形下进行角色名称识别?这是以往的工作没有考虑过的,通过引入大语言模型和多模态迭代训练框架,本文的方法可以在仅基于未注释的漫画图像来识别角色并预测说话人的名字。这种方法不需要注释,可以在任何漫画系列上原样使用。
在这里插入图片描述

模型

框架

  下图是本文提出框架的概览。模型的输入只有漫画的图像集合 I I I,我们首先对图像进行预处理,通过一般漫画字符和文本类别的对象检测器获得角色区域 C C C和文本区域 D D D,然后使用SGG模型(一个之前的用于匹配人物区域和语音气泡区域的对应关系的模型)从 I , C , D I,C,D I,C,D中生成初始关系 R R R
在这里插入图片描述

   R R R表示字符区域和文本区域之间的对应关系。 r i j r_{ij} rij表示第 i i i个角色说了第 j j j个气泡区域的置信度。此外,本文通过OCR获取了气泡中的文本,并将其提供给LLM分析,从而获得角色列表 N N N,这一步是本文的创新之处,通过这种方式,我们可以获取漫画中的角色名称而不需要任何注释。
  这里的逻辑是这样,在没有先验知识的情况下,人类如何识别新漫画中的说话人?这个过程通常从注意对话中的角色名字开始。例如,如果一个角色叫另一个角色“火影忍者”,我们就会把对对话的回应与火影忍者联系起来。然后我们将角色的视觉外观与他的对话连接起来,当火影忍者在接下来的几页中再次出现时,即使在对话中没有提到他的名字,我们仍然可以知道这个名叫火影忍者的角色。
  在框架中,说话人预测和特征识别是迭代进行的,每个任务的输出作为另一个任务的输入,主要由三个模块组成:

  • 说话人预测,目的是通过LLM预测文本区域的标签,也就是该气泡区域属于哪个说话人,这里的标签并不是某个图像区域,而是一个确定的角色名称,第一次预测只使用文本内容,在后面的步骤中,会使用角色识别获得的标签,表示为: F : ( T , N , y p s e u d o ) → y F:(T,N,y_{pseudo})\rightarrow y F:(T,N,ypseudo)y
  • 标签传播,目的是获得图像区域的标签,也就是某图像区域的角色名称,使用关系分数在角色和文本区域之间转换标签,这个过程是双向的,表示为: H t → c : ( R , y ) → X H_{t\rightarrow c}:(R,y)\rightarrow X Htc:(R,y)X H c → t : ( R , X ) → y H_{c\rightarrow t}:(R,X)\rightarrow y Hct:(R,X)y
  • 角色识别,目的是识别每个角色姓名所对应的角色区域,使用图像信息和由上一步得到的伪标签 X p s e u d o X_{pseudo} Xpseudo来训练出一个角色分类器。预测角色区域 X X X的标签,表示为: G : ( C , X p s e u d o ) → X G:(C,X_{pseudo})\rightarrow X G:(C,Xpseudo)X  此外,关系分数在迭代的过程中也会被更新,因为生成最初的关系分数时没有考虑角色区域的标签,通过考虑角色标签可以获得更准确的关系分数。
    关系分数更新的原则是,如果 x i x_i xi等于 y i y_i yi,也就是说气泡所对应的说话人和角色区域对应的伪标签是相同的, r i j r_{ij} rij乘以 s s s,反之 r i j r_{ij} rij除以 s s s s s s x i x_i xi y i y_i yi的置信度获得,最小值是1。通过这种方式,被预测具有相同角色标签的配对会获得更高的关系分数。

实现细节

在这里插入图片描述

  说话人识别的细节如左图所示,首先使用llm从 T T T N N N中提取关于故事摘要和人物概况的上下文信息。然后将此上下文与每个气泡内容一起馈送到llm中,为了获得稳定的输出,我们让llm同时输出字符 i d id id和角色名称,这些输出的字符id被转换成标签。此外,我们让llm输出从1到5的整数置信度分数。
  标签传播和角色识别的过程如右图所示,给定初始说话人预测结果 Y Y Y,根据关系进行标签传播获取角色区域的伪标签,然后使用伪标签训练一个角色分类器,通过角色分类器为未知标签的角色区域生成标签。
  在多轮迭代的过程中,随着 Y Y Y越来越接近真实的文本标签,生成的伪标签也将越来越接近真实。相应的,字符分类器的训练数据也越来越可靠,识别精度也越来越高。

模型

数据集

  本文的实验所选择的数据集是Manga109数据集,包含109卷日本漫画,并为角色和文本区域提供角色标签。选择其中23卷作为测试集。剩余的卷用于关系检测模块的训练和验证以及角色分类器的预训练。
  需要注意的是,在主评价中,作者省略了数据预处理中获取C、D、T和N的步骤。而是利用Manga109的注释将它们视为已知信息。

实验

在这里插入图片描述  表中,text和img列表示每种方法使用的模式。Iter是迭代次数,初始阶段是迭代0,在此阶段,说话人预测仅通过llm使用文本信息进行。本文根据关系预测的难易程度将测试集分为Easy和Hard两类,total是全部。Easy包含11卷,关系预测精度超过75%。其余12卷被归类为Hard。
  如表1 (a)所示,本文的方法在说话人预测和角色识别方面都比单模态方法的准确性有了显著提高。尽管角色识别的准确率低于50%,但本文的方法是第一个识别未见漫画中角色标签的方法。
  在迭代3中,虽然Easy数据的准确性继续提高,但Hard和Total数据的准确性略有下降。这表明,从进一步的迭代中获得的关系检测的精度增益是有限的。为了进一步研究这一点,作者使用表1 (b)中的基础真值关系进行了分析,其中说话人预测和角色识别的精度都随着进一步的迭代而不断提高。这些结果表明,在准确预测文本和角色区域之间关系的情况下,迭代过程更有效。

可视化

在这里插入图片描述
  图5中,左图是单模态和多模态方法的对比,单模态方法无法实现zero-shot角色识别,当仅使用LLM时,不会执行角色识别。右图显示了每次迭代的结果。随着迭代次数的增加,角色识别和说话人预测任务的准确率都有明显的提高趋势。尽管第一次迭代没有产生正确的预测,但到第三次迭代时,准确性已经显著提高。
在这里插入图片描述
  图6显示了每个漫画的说话人预测的准确性。三个条形图分别表示迭代0、迭代1和迭代2的准确性。迭代提高了大多数漫画的准确率,表明了迭代方法在不同漫画上的有效性。
  但是,不同漫画的性能差异很大,范围从0.2到0.8。更多的迭代并不一定导致更高的精度。这是因为如果关系预测或角色识别的准确性较低,候选对象可以在说话人预测中引入噪声。图7显示了一个示例。在迭代1中,llm正确地预测了说话者(角色A)。然而,由于说话者与文本之间的距离,角色A获得了较低的关系得分。相比之下,角色B更亲近,关系得分更高,被错误地认为是高自信的候选人。这在迭代2中导致了不正确的预测,这解释了图6和表1中迭代的准确性降低的原因。

消融实验

在这里插入图片描述
  表2和3显示了伪标签和说话人候选人的质量及其对说话人预测和角色识别任务准确性的影响。比较了三种关系得分。第二和第三列是伪标签的精度和召回率。第四列中列出的精度是小于阈值的伪标签的精度。第五列是最终准确度。我们可以观察到,从伪标签的准确度(第4列)到最终准确度(第5列)的解释了迭代过程的有效性。结果表明,在每个模块中使用不同的模态信息对前一步得到的结果进行了细化。通过对比关系分数,我们可以看到,通过更好的关系预测来提高伪标签的质量,结果会更好。
  表4显示了在说话人预测的过程中使用不同的LLM提示的效果,(1)ctx:关于人物和故事的上下文信息,(2)cand:说话人候选人,(3)prob:候选人的概率。
  表5展示了框架中的关系评分对关系预测和说话人预测的影响。对于每个文本区域,选择对应的关系得分最高的角色区域。然后,通过将正确匹配的区域数除以文本区域总数来计算准确率。我们的评分方法准确率达到79.8%,优于以往的方法。与之前不考虑角色标签的工作相比,该框架可以通过预测图像和文本的角色标签来更好地预测关系。
  表6展示了完全zeroshot情形下的实验结果,而不是直接使用注释,由于对象检测、OCR和字符名称提取中的错误,这个结果极大地低于表1所示的结果。

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

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

相关文章

Linux中限制服务如mysql的最大cpu使用率

1、cpu占用测试&#xff1a; DELIMITER // DROP PROCEDURE IF EXISTS intensive_calculations; CREATE PROCEDURE intensive_calculations() BEGINDECLARE v INT DEFAULT 0;DECLARE i INT DEFAULT 0;WHILE i < 1000000 DOSET v SQRT(i * i (RAND() * 10000));SET i i 1…

【动态规划】(一)动态规划理论及基础题目

动态规划理论及基础题目 理论基础斐波那契数爬楼梯使用最小花费爬楼梯不同的路径不同的路径2整数拆分不同的二叉搜索树 理论基础 动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划…

告别存储烦恼,MyDiskTest全方位检测解决方案

科技改变生活&#xff0c;但质量决定科技的生命力——这句话在数字化时代尤为贴切。近年来&#xff0c;随着科技的飞速发展&#xff0c;U盘、SD卡、CF卡等移动存储设备已成为我们日常工作和生活中不可或缺的工具。它们便携、高效&#xff0c;能够快速存储和传输大量数据。然而&…

【详解】数据库E-R图——医院计算机管理系统

题目 某医院病房计算机管理中需要如下信息&#xff1a; 科室&#xff1a;科室名&#xff0c;科室地址&#xff0c;科室电话&#xff0c;医生姓名 病房&#xff1a;病房号&#xff0c;床位号&#xff0c;所属科室名 医生&#xff1a;工作证号&#xff0c;姓名&#xff0c;性别&a…

GPT撰写开题报告教程——课题确定及文献调研

撰写开题报告是一项复杂而重要的任务&#xff0c;需要涵盖从主题选择到文献综述、研究方法等多个环节。借助AI&#xff0c;如ChatGPT&#xff0c;可以显著提高这一过程的效率以及内容的质量。本文将详细探讨如何一步步利用ChatGPT撰写开题报告。 一、开题报告内容 一个清晰的…

基于R语言的统计分析基础:使用ggplot2包进行绘图

安装ggplot2包并查看官方文档 ggplot2是一个基于图形语法的R包&#xff0c;它允许用户通过声明式方式指定数据、美学映射和图形元素来灵活创建复杂且美观的可视化图表。 ggplot2包官方教学文档&#xff1a;ggplot2官方文档 在R语言中安装ggplot2有两种方法&#xff1a; 安装整…

【SQL】百题计划:SQL判断条件OR的使用。

【SQL】百题计划-20240912 Select name, population, area from World where area>3000000 or population > 25000000;

替换传统数据处理平台,TDengine 与华风数据达成合作

在全球能源转型的大背景下&#xff0c;新能源产业正迎来前所未有的发展机遇。随着国家对可再生能源的政策支持和市场需求的不断增长&#xff0c;风电、光伏和储能等新能源项目如雨后春笋般蓬勃发展。然而&#xff0c;随之而来的数据处理与管理挑战也日益凸显。面对海量的设备运…

YOLO-v8:对yolov8网络的改进教程(以GAM注意力模块为例)

本文将介绍如何在YOLOv8网络中进行模块化修改。 通过将改进的核心模块添加到项目中&#xff0c;即可直接运行各种 YOLOv8-xxx.yaml 网络配置文件&#xff0c;支持乐高式创新扩展。无论是进行网络结构的调整还是增加新的功能模块&#xff0c;用户只需一键运行&#xff0c;轻松实…

净赚百亿背后,海尔智家的机遇与隐忧

广撒网、出海忙&#xff0c;海尔智家如何熬过存量周期&#xff1f; 转载&#xff1a;科技新知 原创 作者丨田箫 编辑丨赛柯 冰箱、空调、洗衣机不好卖了&#xff0c;已成为不争的事实。 在购房热情降温、收入预期低迷的双重打击下&#xff0c;白电品牌正艰难求生。然而&#x…

通过ASCII码打印HelloWorld(花式打印HelloWorld)

/*** 通过ASCII码打印HelloWorld*/ public class Main {public static void main(String[] args) {String target "HelloWorld";String fi "";for (int i 0; i < target.length(); i) {for (int x 0; x < 127; x) {char c (char) x;String d f…

怎么利用短信接口发送文字短信

在当今这个快节奏的数字时代&#xff0c;即时通讯已成为人们日常生活和工作中不可或缺的一部分。而短信接口&#xff08;SMS Interface&#xff09;&#xff0c;作为传统与现代通讯技术结合的典范&#xff0c;凭借其高效、稳定、广泛覆盖的特性&#xff0c;在众多领域发挥着不可…

K8s中HPA自动扩缩容及hml

1.HPA&#xff1a;基于cpu的利用率来动态实现pod数量的自动伸缩&#xff0c;创建的方法一种是yaml文件&#xff0c;一种是命令行&#xff08;运用比较少&#xff09;&#xff1b;在yaml文件中必须要有资源控制&#xff08;cpu&#xff09;的字段才能生效的。 必要条件&#xf…

linux内核驱动:ptp内核phc框架

目录 一、介绍二、PHC驱动文件三、主要数据结构四、初始化和调用流程五、总结 一、介绍 本文基于linux内核5.10.xxx总结ptp1588精确时间协议实现过程中&#xff0c;内核部分的8A34002实现的phc(PTP hardware clock)驱动支持&#xff1b; ptp的系统框架 .红圈部分为本笔记总结的…

RK3568 初识

RK3565是福州本土集成电路设计企业的产品&#xff0c;售价在200RMB左右&#xff0c;润和DAYU200完成基于RK3568的鸿蒙适配&#xff0c;官方售价高达2000RMB 瑞芯微电子有限公司&#xff08;Rockchips Electronics CO., Ltd&#xff09;: 规模&#xff1a;2000人市值&#xff…

CSS实现前端布局更巧妙的方案!在 flex 布局中通过使用 margin 实现水平垂直居中以及其他常见的前端布局

在前端开发中&#xff0c;实现水平垂直居中一直是个热门话题。随着 CSS Flexbox 布局的普及&#xff0c;开发者们开始更多地使用 justify-content 和 align-items 这两个属性来解决这个问题。 然而&#xff0c;还有一种更加简洁、灵活的方式——使用 margin: auto; 来实现居中以…

【北京迅为】《STM32MP157开发板使用手册》- 第二十三章 Cortex-M4 开发环境搭建

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

香港科技大学工学院2025/2026年度硕士研究生(MSc)项目招生宣讲会

&#x1f514;香港科技大学工学院2025/2026年度硕士研究生&#xff08;MSc&#xff09;项目招生宣讲会 &#x1f559;时间&#xff1a;2024年9月24日&#xff08;星期二&#xff09;14:30 &#x1f3e0;地点&#xff1a;香港中文大学&#xff08;深圳&#xff09;图书馆培训室…

【时序分析】作业汇编

一、基础知识 时间序列分析就是对一个时间序列进行建模&#xff0c;扣除各种趋势项&#xff08;线性趋势、余弦趋势、有色噪声ARIMA&#xff09;&#xff0c;得到一个白噪声序列&#xff1b;换言之&#xff0c;我们要提取其中的有用信息&#xff08;非白噪声序列&#xff09;&…

Linux 之 RPM [Red - Hat Package Manager]【包管理】

命令符 -i&#xff08;install&#xff09;&#xff1a;安装软件包。--test&#xff1a;测试安装&#xff0c;并不实际安装&#xff0c;只是检查依赖关系等是否满足安装条件。--nodeps&#xff1a;忽略依赖关系进行安装。不过这种方式可能导致软件因缺少依赖而无法正常运行&am…