NeurIPS 2024 | 像素级LLM实现图像视频理解、生成、分割和编辑大统一(昆仑万维等)

Accepted by NeurIPS 2024

文章链接:https://arxiv.org/pdf/2412.19806
项目链接:https://vitron-llm.github.io/
Github链接:https://github.com/SkyworkAI/Vitron

亮点直击

  • 首次提出了一种通用的视觉多模态大语言模型(MLLM)——VITRON,能够在像素级对图像和视频进行理解、生成、分割和编辑。

  • 引入了一种更高效的LLM到解码器的指令传递机制,结合了离散文本和连续信号嵌入。

  • 提出了针对多模态大语言模型的像素级视觉语言时空对齐学习,使其能够达到最优的细粒度视觉能力。
    设计了一种协同模块,最大化任务持久的细粒度视觉特征在所有不同视觉任务之间的共享能力,通过此机制,VITRON的性能超越了现有的最先进(SoTA)专业模型。

总结速览

解决的问题

  • 多模态大语言模型(MLLMs)在支持多任务方面缺乏统一性,特别是图像和视频的联合处理能力不足。

  • 模型在细粒度像素级理解上存在局限,无法实现高精度的视觉区域定位与编辑。

  • 视觉功能单一,难以支持从视觉理解到生成、分割、编辑等全方位任务。

  • 多任务间存在协作性不足,任务间可能互相影响,难以实现统一优化。

**提出的方案 **

  • 统一架构设计:VITRON 采用基于 LLM 的框架,前端集成图像、视频和像素级区域视觉编码器,后端结合最先进的图像与视频模块,支持视觉理解、生成、分割和编辑等多任务。

  • 混合指令传递方法:结合离散文本指令与连续信号嵌入,确保 LLM 决策能够精确传递到后端模块。

  • 跨任务协作模块:通过增强任务不变的细粒度视觉特征共享,提升不同视觉任务间的协同能力。

  • 精细化像素级时空对齐学习:设计基于像素的视觉语言对齐与时空预测调优,增强模型的细粒度视觉感知能力。

  • 对抗训练:将任务特定特征与任务不变特征解耦,提升跨任务间的表现稳定性。

应用的技术

  • 视觉-语言对齐学习:通过前端编码器与 LLM 的对齐优化,实现视觉与语言模态的深度协同。

  • 任务调用定向调优:训练 LLM 以更好地生成适合后端模块的调用指令。

  • 嵌入对齐调优:优化 LLM 与后端模块间的信号嵌入对齐,提高信息传递精度。

  • 多模态协作训练:融合像素级感知与时空预测,通过细粒度感知与对抗学习实现任务间协同优化。

达到的效果

  • 在图像和视频任务上实现了真正的统一支持,从静态图像到动态视频均表现出色。

  • 覆盖 12 项视觉任务,基于 22 个数据集的实验表明,VITRON 在多任务性能上与专用的单任务模型相媲美,甚至超越了某些任务的最优模型。

  • 实现了从视觉理解到生成、分割、编辑等全流程的高效支持,展现了卓越的多模态通用能力。

  • 模型设计的各项组件通过分析验证了其有效性,为未来多模态模型的进一步发展提供了参考。

VITRON架构

VITRON采用了现有流行多模态大语言模型(MLLMs)中最常见的“编码器-LLM-解码器”架构范式。整体框架如下图2所示,包含三个关键模块:

  1. 前端视觉和语言编码器;

  2. 用于语义理解和文本生成的中心LLM;

  3. 后端解码器模块,用于用户响应和视觉操作。

前端视觉-语言编码

对于图像和视频,分别使用CLIP ViT-L/14@336px作为编码器。视频编码器独立处理每一帧,并通过在时间维度上进行平均池化来生成整体的时间表示特征。随后,采用区域像素感知视觉提取器作为草图编码器,用于用户交互(如点击、绘制框或多边形、涂鸦)。主要参考[125],使用来自用户输入的mask区域的基于对象的表示,这不仅编码了像素级视觉特征,还收集了每个区域的空间位置信息。这些区域特征与对象区域的二进制空间几何掩膜一起进行池化,生成的嵌入特征被使用。随后,这些多模态特征表示通过线性投影传递给LLM。

核心LLM

在VITRON中,LLM作为核心代理。遵循最常见的实践 [15, 94, 128],使用Vicuna(7B,版本1.5)。LLM处理来自语言和视觉模态的输入,以执行语义理解和推理,然后做出决策。对于视觉理解任务,LLM直接为用户输出文本响应。同时,LLM还需向后端模块传递信号和指令,引导其执行超越文本生成的更复杂任务,例如视觉分割、生成和编辑。

正如前文所强调的,LLM有效、精确传递信息的能力对复杂多模态任务的性能至关重要。本文提出了充分结合两种常见信息传递方法的优点:离散文本指令和连续信号嵌入。前者有助于准确调用不同的后端模块(得益于LLM在任务调度中的能力),而后者补充了无法通过离散文本直接描述的丰富模态保留视觉特征。如前面图2所示,LLM输出以下内容:

  • 用户的文本响应;

  • 模块调用的文本指令;

  • 特殊token的特征嵌入。

特征嵌入分为任务特定特征和任务不变的细粒度视觉-语言特征。这些文本指令和特征嵌入被传递给后端模块。

后端视觉专家

为了使MLLM具备多种视觉任务能力,将一系列独立的视觉专家集成到LLM中。

  • 对于图像生成和编辑,集成了基于扩散模型的GLIGEN。

  • 对于图像和视频分割,选择了SEEM。

  • 对于视频生成,分别使用ZeroScope和I2VGen-XL处理文本到视频和图像到视频任务。

  • 最后,对于视频编辑功能,集成了StableVideo。

LLM的文本指令首先确定调用哪个任务模块;同时,特征嵌入被传递给对应模块的特征编码器,以协助任务执行。特别设计了一种结构化调用模板,包括:

  • 模块名称;

  • 调用命令;

  • 区域(可选),用于特定任务需要的细粒度视觉特征。

特征嵌入包括任务特定特征和任务不变的细粒度特征。这一设计旨在实现特征解耦,并尽可能广泛地在所有任务中共享任务不变的细粒度特征,以促进不同任务之间的协同作用。

像素感知的协同视觉-语言理解调优

通过VITRON框架,在训练中设置了三个阶段的目标:首先赋予模型基本的多模态能力(理解和生成);接着进行精细化的视觉定位指令调优,增强模型的像素级感知能力;最后执行跨任务协同学习,最大化所有任务之间共享的细粒度特征。

基本多模态理解与生成技能训练

在训练的第一阶段,主要目标是为MLLM赋予基本的多模态理解和生成能力,包括前端的编码器与LLM对齐以及后端的LLM与解码器对齐。使用了以下三种训练方法:

  • 总体视觉-语言对齐学习
    这一过程旨在确保输入的视觉和语言特征被映射到统一的特征空间中。遵循先前的通用实践,利用包含“图像-描述”对(如CC3M)、“视频-描述”对(如Webvid)、以及“区域-描述”对(如RefCOCO)的数据集。在输入图像、视频或特定视觉区域时,调用冻结的LLM生成与参考描述一致的文本描述或标题。

  • 文本调用指令调优
    此训练步骤的目的是让系统具备精准执行指令的能力,使LLM能够生成适当且正确的调用文本指令。为此,收集了总计55,000+的指令调优样本。

  • 面向嵌入的解码器对齐调优
    除了使用显式的文本指令调用下游模块外,还需要将信号特征嵌入(来自LLM)输入到模块中。参考[114],通过解码侧投影层对齐特征嵌入与所有视觉模块输入编码器,即通过最小化特征距离来实现对齐。

精细化时空视觉定位指令调优

一个通用的视觉模型需要具备像素感知的视觉理解能力,适用于图像和视频。因此,为VITRON提出了精细化的时空视觉定位指令调优。核心思想是使LLM能够定位图像的精细空间性以及视频的详细时间性。提供了以下三个学习方面:

  • 图像空间定位
    考虑到LLM本身只能输出文本,设计了响应机制,使其生成相应的边界框区域。关注两类任务:定位图像描述和参照图像分割。

  • 视频时空定位
    对于视频,LLM需要识别空间区域并在视频的时间上下文中对其进行定位,本质上是实现视频追踪。类似地,探索了定位视频描述和参照视频追踪等任务。

  • 基于定位的视觉问答 (Grounding-aware Vision QA) 上述定位任务仅触及视觉感知的低层次方面。然而,在许多场景下,要求LLM具备更高阶、深入的视觉推理能力,这需要建立在基础的像素级定位能力之上。因此,我们进一步引入了基于定位的视觉问答(Grounding-aware Vision QA),包括图像问答(Image-QA)和视频问答(Video-QA)。通过这些任务,LLM能够在已定位的结果基础上进行语义层次的问答。

跨任务协同学习

作为通用模型,直接调用不同的专家模块会引发一个关键问题:如何确保不同模块(任务)之间协同工作?如果没有这种协作,将它们整合到一个复合系统中将毫无意义。为了解决这个问题,提出将信号特征嵌入分解为任务特定特征任务无关的细粒度特征

直观上,由于所有视觉任务都是细粒度的,任务无关的细粒度特征在不同任务之间共享得越广泛,各任务之间的互惠性就越强,从而获得更大的协同效应。因此,引入了一个跨任务协同学习模块,如下图3所示。

对抗训练用于特征解耦
采用对抗训练来解耦任务特定特征和任务无关特征。具体而言,首先让不同的视觉专家骨干网络根据这两类特征(通过拼接)进行任务预测。同时,引入一个第三方判别器(充当分类器),仅基于共享特征表征来判断当前任务是哪一类。

理想情况下,一旦判别器无法准确识别任务类型,说明共享特征已经被最大程度纯化,并且可以广泛应用于各个任务之间,从而实现真正的跨任务协同效应。

实验

现在尝试量化 VITRON 在四个视觉任务组上的性能,这些任务覆盖了 12 个任务和 22 个数据集。所有 VITRON 的训练均在 10×A100 (80G) GPU 上进行。为了确保公平比较,所有后续实验均采用与基线系统相同或相似的设置,并按照既定实践进行评估。

视觉分割结果

图像分割
下表 2 显示了在三个数据集 RefCOCO、RefCOCO+ 和 RefCOCOg 上的图像分割结果。与多个重要模型进行了比较,包括最新的非 MLLM 方法以及 MLLM 基线模型 NExT-Chat。显然,尽管 VITRON 在 RefCOCO Val 和 TestA 数据集上略逊于 NExT-Chat,但在其余数据集上表现优越。

视频分割
对于视频分割,我们研究了两个任务:视频空间定位(带边界框)和视频目标分割(又称视频跟踪,带掩码)。下表 3 展示了 VITRON 与当前最先进(SoTA)视频 MLLM 在视频空间定位任务上的比较。可以看出,VITRON 显著优于 PG-Video-LLaVA。下表 4 显示了 VITRON 与一些 SoTA 系统在视频跟踪任务上的比较,其中我们的系统继续表现出卓越的性能。

细粒度视觉理解结果

接下来,我们评估 VITRON 在细粒度视觉理解任务中的能力,主要关注图像和视频的区域级任务。

区域级图像理解 我们在图像指代表达理解和图像区域描述等任务上测试了 VITRON。表 5 中的比较和结果表明,VITRON 在多个数据集和指标上超越了最佳基线模型,证明其在图像细粒度语义理解上的强大和准确性。

上述两个任务仅关注模型在区域级别上的识别能力。进一步地,我们深入评估了模型对图像语义理解的能力,特别是通过基于图像的视觉问答(VQA)任务。这些任务能够有效反映模型对图像深层语义内容的理解能力。下表 6 显示了基于图像的 VQA 在六个数据集上的结果。主要比较了两组模型:一组具有像素级视觉对齐能力,另一组没有。结果表明,具备细粒度对齐能力的模型在任务性能上表现更强,这表明细粒度对齐有助于更深入的语义理解。值得注意的是,VITRON 在评估的模型中表现出最高的性能。

区域级视频理解 同样地,对于视频,我们评估了区域级视频理解能力。在图像观察的基础上,我们直接进行了视频问答(QA)任务。下表 7 展示了在四个代表性数据集上的视频 QA 结果。有趣的是,虽然 PG-Video-LLaVA 具有视频对齐能力,但其表现并未优于缺乏对齐能力的 Video-LLaVA。然而,VITRON 实现了更优异的性能。这间接证明了我们的系统具备更准确的视频对齐能力(如下表 8 所示),从而促进了更好的视频语义理解。

视觉生成结果

本文评估了系统在视觉生成任务中的能力,重点关注三种最具代表性的生成任务类型:文本生成图像(text-to-image generation)、文本生成视频(text-to-video generation)和图像生成视频(image-to-video generation)。这些任务广泛覆盖了图像生成的需求。下表 8、表 9 和表 10 展示了 VITRON 与其他最新技术(SoTA)系统的比较结果,包括 MLLM 和非 MLLM 的生成器。结果清楚地表明,VITRON 在所有三种任务中均表现优异。例如,在文本生成图像和文本生成视频任务中,VITRON 的性能优于 NExT-GPT。同样,在图像生成视频任务中,VITRON 超越了 SoTA 基线 VideoCrafter1,展现了更出色的结果。

视觉编辑结果

图像编辑
使用了 MagicBrush 数据集,该数据集通过需要一系列复杂编辑操作的查询挑战模型。这些编辑操作包括移除、更改、修复和添加元素。目前尚无支持图像编辑的 MLLM 系统,因此我们的比较仅限于非 LLM 的专业系统。下表 11 展示了不同模型在各种指标上的表现。VITRON 在所有指标上均表现更强,表明其在图像编辑任务中的稳定能力。

视频编辑
对于视频编辑,当前社区缺乏像图像编辑那样的标准化基准和评估方法。因此,选择了手动评估方法。要求不同的视频编辑系统基于相同的查询编辑相同的视频,之后五位评审员对编辑过的视频进行评分。评估主要关注 1) 目标内容修改的成功与否,2) 非目标内容的忠实度/保真度。下表 12 展示了视频编辑的手动评估结果。显然,VITRON 在这两个方面均优于两个基线系统,展示了卓越的视频编辑能力。随后,可视化了 VITRON 视频编辑的过程。

讨论

本文通过广泛的定量比较展示了 VITRON 的整体效能。现在进一步探讨系统如何以及为何能够进步,通过深入分析进行探索。

离散文本指令还是连续信号嵌入,哪种更优?
首先,我们探索了不同的消息传递机制,以确定离散文本指令是否更有利,或者连续信号嵌入是否更适合构建多模态通用模型。同时,我们验证了所提出的混合消息传递方法的优缺点。在 6 个任务上进行测试,比较了使用混合方法(默认设置)、没有信号嵌入和没有文本指令的 VITRON 任务表现,以及后端任务模块的成功执行率。下图 4 展示了结果。如图所示,整体上,使用这两种方法的场景性能始终更好,这证实了我们的混合模式的有效性。同时,我们发现文本指令的方法更有利于后端模块的成功执行,但软特征嵌入似乎在特定任务表现方面更有用。

每种精细视觉对齐学习的贡献有多大?
接下来,验证了在中提出的不同精细视觉对齐学习策略的具体贡献。图 5(顶部的 4 个与图像任务相关,底部的 4 个与视频任务相关)展示了当移除某个学习策略时对性能的影响。总体而言,这 3 种精细视觉对齐学习策略对不同的下游任务至关重要。例如,对齐和引用分割任务直接影响精细视觉识别任务,而针对对齐的视觉问答调优则显著提升认知层次的问答任务。这验证了我们提出的精细视觉对齐调优策略的有效性。

VITRON 是否真的实现了跨任务协同?
最后,探讨了本文的系统是否能够充分支持跨任务协同。根据表 2 至表 12 中关于“协同模块”消融实验的结果,我们可以观察到协同学习机制确实对整体性能产生了积极影响。在下图 6 中,进一步研究了不同任务之间是否存在协同作用及其合作关系。为了便于研究,考虑了任务之间的一对一映射关系,逐一研究任务对之间的合作。显然,不同任务之间的合作效应有所不同。那些更加依赖精细视觉特征的任务或骨干模块获得了更显著的改进。这也证明了协同学习模块可以成功促进跨任务协同。

结论

VITRON,一种统一的像素级视觉大语言模型,能够无缝理解(感知和推理)、生成、分割(对齐和追踪)以及编辑(修补)图像和视频。进一步介绍了一种新的混合消息传递方法,结合了离散文本指令和连续信号嵌入,以确保精确的功能调用。此外,VITRON 采用像素级时空视觉-语言对齐来增强其精细视觉能力。同时,开发了跨任务协同模块,以优化任务无关的精细视觉特征的使用,提升各类视觉任务之间的协同作用。在 22 个数据集上的 12 个视觉任务中,VITRON 展现了在视觉分割、精细视觉理解、生成和编辑等方面的广泛能力。总体而言,本研究展示了构建一个视觉-语言通用系统的巨大潜力,推动向更统一的人工智能迈进。

参考文献

[1] VITRON: A Unified Pixel-level Vision LLM for Understanding, Generating, Segmenting, Editing

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

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

相关文章

细说STM32F407单片机FSMC连接外部SRAM的方法及HAL驱动

目录 一、FSMC连接外部SRAM的原理 1、 FSMC控制区域的划分 2、SRAM芯片与MCU的连接 二、访问外部SRAM的HAL驱动程序 1、外部SRAM初始化与控制 2、外部SRAM读写函数 3、直接通过指针访问外部SRAM 4、DMA方式读写外部SRAM 本文介绍STM32F407单片机FSMC连接外部SRAM及以轮…

Gitee图形界面上传(详细步骤)

目录 1.软件安装 2.安装顺序 3.创建仓库 4.克隆远程仓库到本地电脑 提交代码的三板斧 1.软件安装 Git - Downloads (git-scm.com) Download – TortoiseGit – Windows Shell Interface to Git 2.安装顺序 1. 首先安装git-2.33.1-64-bit.exe,顺序不能搞错2. …

基于单片机洗衣机控制器的设计(论文+源码)

1需求分析 在智能洗衣机系统设计中,考虑到洗衣机在实际应用过程中,需要满足用户对于不同衣物清洁、消毒的应用要求,对设计功能进行分析,具体如下: 通过按键实现洗衣机不同工作模式的切换,包括标准模式&…

【学Rust开发CAD】2 创建第一个工作空间、项目及库

文章目录 一、 创建工作空间二、新建项目(可执行文件)三、 新建库(库文件)四、更新项目依赖五、编写代码七、总结 在 Rust 中,工作空间(workspace)允许你管理多个相关的包(crate&…

STM32的LED点亮教程:使用HAL库与Proteus仿真

学习目标:掌握使用STM32 HAL库点亮LED灯,并通过Proteus进行仿真验证! 建立HAL库标准工程 1.新建工程文件夹 新建工程文件夹建议路径尽量为中文。建立文件夹的目的为了更好分类去管理项目工程中需要的各类工程文件。 首先需要在某个位置建立工…

Unity Excel转Json编辑器工具

功能说明:根据 .xlsx 文件生成对应的 JSON 文件,并自动创建脚本 注意事项 Excel 读取依赖 本功能依赖 EPPlus 库,只能读取 .xlsx 文件。请确保将该脚本放置在 Assets 目录下的 Editor 文件夹中。同时,在 Editor 下再创建一个 Exc…

牛客网刷题 ——C语言初阶(6指针)——字符逆序

1. 题目描述:字符逆序 牛客网题目链接 将一个字符串str的内容颠倒过来,并输出。 输入描述: 输入一个字符串,可以有空格 输出描述: 输出逆序的字符串 示例1 输入 I am a student 输出 tneduts a ma I 2. 思路 首先字符串逆序,之…

【USRP】教程:在Macos M1(Apple芯片)上安装UHD驱动(最正确的安装方法)

Apple芯片 前言安装Homebrew安装uhd安装gnuradio使用b200mini安装好的路径下载固件后续启动频谱仪功能启动 gnu radio关于博主 前言 请参考本文进行安装,好多人买了Apple芯片的电脑,这种情况下,可以使用UHD吗?答案是肯定的&#…

141.《mac m系列芯片安装mongodb详细教程》

文章目录 下载从官网下载安装包 下载后双击解压出文件夹安装文件名修改为 mongodb配置data存放位置和日志log的存放位置启动方式一方式二方式二:输入mongo报错以及解决办法 本人电脑 m2 pro,属于 arm 架构 下载 官网地址: mongodb官网 怎么查看自己电脑应该下载哪个版本,输入…

Elasticsearch:基础概念

这里写目录标题 一、什么是Elasticsearch1、基础介绍2、什么是全文检索3、倒排索引4、索引(1)创建索引a 创建索引基本语法b 只定义索引名,setting、mapping取默认值c 创建一个名为student_index的索引,并设置一些自定义字段 &…

Dexcap复现代码数据预处理全流程(四)——demo_clipping_3d.py

此脚本的主要功能是可视化点云数据文件(.pcd 文件),并通过键盘交互选择演示数据的起始帧和结束帧,生成片段标记文件 (clip_marks.json) 主要流程包括: 用户指定数据目录:检查目录是否存在并处理标记文件 -…

安装Cockpit服务,使用Web页面管理你的Linux服务器

说起管理 Linux 服务器,大家首先想到的使用 SecureCRT、Xshell、MobaXterm 等工具远程到服务器,然后使用命令行管理服务器。今天给大家介绍一个好玩的工具,名字叫Cockpit, Cockpit 是一个免费开源的基于 web 的 Linux 服务器管理…

[A-25]ARMv8/v9-GIC的系统架构(中断的硬件基础)

ver0.1 前言 我们在观看很多的影视剧过程中,尤其是军旅体裁类型的布景中,经常会看见高级干部的办公桌上都会有几部电话机。这样的电话可不能小看,重要的事情尤其是突发和紧急的情况都要通过这几部电话第一时间通知给决策者。这几部电话,必须举报几个特点:及时性好、稳定…

13-线段的转折点样式

13-线段的转折点样式_哔哩哔哩_bilibili13-线段的转折点样式是一次性学会 Canvas 动画绘图(核心精讲50个案例)2023最新教程的第14集视频,该合集共计53集,视频收藏或关注UP主,及时了解更多相关视频内容。https://www.bi…

计算机网络 (28)虚拟专用网VPN

前言 虚拟专用网络(VPN)是一种在公共网络上建立私有网络连接的技术,它允许远程用户通过加密通道访问内部网络资源,实现远程办公和安全通信。 一、基本概念 定义:VPN是一种通过公共网络(如互联网&#xff09…

基于transformer的目标检测:DETR

目录 一、背景介绍 二、DETR的工作流程 三、DETR的架构 1. 损失函数 2. 网络框架讲解及举例 一、背景介绍 在深度学习和计算机视觉领域,目标检测一直是一个核心问题。传统方法依赖于复杂的流程和手工设计的组件,如非极大值抑制(nms&…

Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)

Vue Amazing UI 一个 Vue 3 组件库 使用 TypeScript,都是单文件组件 (SFC),支持 tree shaking 有点意思 English | 中文 Vue Amazing UI 是一个基于 Vue 3、TypeScript、Vite 等最新技术栈开发构建的现代化组件库,包含丰富的 UI 组件和常…

C语言----指针

目录 1.概念 2.格式 3.指针操作符 4.初始化 1. 将普通变量的地址赋值给指针变量 a. 将数组的首地址赋值给指针变量 b. 将指针变量里面保存的地址赋值给另一个指针变量 5.指针运算 5.1算术运算 5.2 关系运算 指针的大小 总结: 段错误 指针修饰 1. con…

Python应用——将Matplotlib图形嵌入Tkinter窗口

Python应用——将Matplotlib图形嵌入Tkinter窗口 目录 Python应用——将Matplotlib图形嵌入Tkinter窗口1 模块简介2 示例代码2.1 Matplotlib嵌入Tkinter2.2 Matplotlib嵌入Tkinter并显示工具栏 1 模块简介 Tkinter是Python的标准GUI(图形用户界面)库&…

【linux基础I/O(2)】理解文件系统|文件缓冲区|软硬链接|动静态库

目录 前言1. 理解C语言的缓冲区2. 对文件系统的初认识3. 理解软硬链接1. 软硬链接的特征2.软硬链接的作用 4. 理解动静态库5. 总结 前言 对于文件来讲,有打开的在内存中的文件,也有没有打开的在磁盘上文件,上一篇文章讲解的是前者,本篇文章将带大家了解后者! 本章重点: 本篇文…