你有没有在陌生小区门口接过这种电话?电话那头是妈妈的声音:“往左走到那棵大榕树,右转进第二个单元,上三楼。”你挂掉电话,先环顾四周找地标,再迈开步子;每过一个路口,都要把眼前的世界和脑子里的指令对一遍——这个拐角像不像妈妈说的那个?走错了,还得退回来重新认路。整个过程无非三件事:用眼睛看、用耳朵听、用脑子决定往哪走。这就是“视觉语言导航”(Visual Language Navigation,简称 VLN)最朴素的样子——只不过这次,要把“听懂人话 + 看懂世界 + 走到终点”这三样本领,全部塞进一个 AI 的大脑里。 本文将围绕 VLN 的任务定义展开,从核心组成、数据集、评价指标到主流方法和落地挑战,帮你从零建立对这项“具身智能”核心任务的完整直觉。
一句话价值:VLN 是连接语言大模型与机器人落地的关键枢纽,理解它的任务定义,你就拿到了多模态具身智能、AR 导航和自动驾驶决策的第一把钥匙。
目录
可视化演示
展示VLN智能体根据语言指令在3D环境中导航的全流程、主流数据集对比、评估指标雷达图。切换模式查看具身智能核心任务的完整体系。
本节配有交互动效(进入视口后自动加载,约 3KB)。
VLN任务:语言引导3D导航 智能体根据自然语言指令在3D环境中导航 从起点S逐步到达目标G agent(state, instruction) → action VLN是具身智能的核心任务
一、任务定义:AI 版的“电话问路”
设想一个周末午后,你在陌生的老小区门口给外婆打电话。电话那头传来一句话:“往左走到大榕树,右转进第二个单元,上三楼。”你挂了电话,先环顾四周确认方位,再迈出第一步;每到一个路口,都要停下来对照记忆中的关键词;走错了就退回重来。这个再普通不过的“问路”过程,就是视觉语言导航(VLN)的完整缩影。
在 AI 领域,VLN 任务把上述过程拆成一个可训练的目标:一个智能体(agent)被放进未知的 3D 环境中,它只能靠“眼睛”(全景相机)感知局部视野,同时接收一句自然语言指令,然后与环境持续交互,一步一步输出动作——前进、左转、右转、停止——直到抵达指令所指的目标位置。这里的核心不是“认识多少物体”,而是“能否把语言翻译成一连串正确的物理行动”。
在形式化描述中,VLN 通常被建模为一个部分可观测的马尔可夫决策过程(POMDP,即智能体只能看到局部画面、需要靠历史记忆补齐全局信息的决策模型)。策略网络就是它的“大脑”,负责在每一步决定往哪走:
1. π 的含义:π 是策略函数,输出的是“动作空间上的概率分布”——每个候选动作各有多少胜率。
2. θ 的角色:θ 是神经网络参数,相当于“大脑”里所有神经元的连接权重,训练就是不断调整这些权重。
3. a_t 是什么:a_t 是第 t 步要执行的动作,在 VLN 中通常是离散的(前进 0.25 米、左转 30°、右转 30°、停止)。
4. h_t 的含义:h_t 是到第 t 步为止的全部观测历史,包括看过的房间、拐过的弯,就像你的“记忆地图”。
5. L 的输入地位:L 是用户给出的自然语言指令,全程不变,是导航的“总目标”。
回到问路的场景:你每到一个路口停下,就是在“基于当前画面和妈妈的指令做决策”;偶尔走错路,说明策略还不够好;而当你走到外婆家门口,你就完成了一个回合(episode)。VLN 要做的,就是让 AI 在成千上万个这样的“电话问路”中,把这份决策能力学到极致。
二、核心组成:眼、耳、脑、腿四件套
问路要想成功,四样功夫缺一不可:眼睛要认得出大榕树,耳朵要听得懂“第二个单元”,脑子要把耳朵里的话和眼睛里的画面对齐,腿才敢迈出去。VLN 智能体也是这么装配的。
第一个模块是视觉感知。智能体通过全景相机或深度相机获取当前画面,再用卷积神经网络(CNN)或视觉 Transformer 把画面变成一组特征向量。这些向量就像你眼中的“大榕树”“红砖墙”——不过不是名字,而是数字化的视觉签名。
第二个模块是语言理解。指令首先被切分成词(token),再被编码成向量,让模型能“计算”语义。妈妈说的“右转”在这里变成了一个语义向量,可以和“左转”“直行”区分开来。
第三个模块是跨模态融合,也是 VLN 的灵魂。它要把视觉特征和语言特征一一对齐:指令里的“红色的门”,对应画面里哪一扇门?这里最常用的工具就是注意力机制(Attention):
1. Q 是查询:Q 来自语言指令的向量,代表“我正在找的东西”,比如“红色大门”。
2. K 是键:K 来自视觉区域的特征向量,相当于每个画面区域贴的“标签”。
3. QK^T 是在打分:把查询和每个区域的标签做内积,算出“这个区域像不像我要找的”。
4. √d_k 是缩放因子:防止分数过大导致 softmax 输出过于极端,让注意力分布更平稳。
5. softmax 变权重:把一堆原始分数变成归一化的概率权重,总和为 1。
6. V 是内容:V 是视觉区域的实际特征内容,按权重加权求和后,得到“被语言引导过的视觉信息”。
第四个模块是动作决策。融合后的特征送入策略网络,输出动作概率,智能体据此迈出下一步。眼、耳、脑、腿各司其职,又环环相扣——就像你问路时,眼睛看到的、耳朵听到的和脚下走的路,永远在同一条决策链上。
三、数据集与基准:练习册与考场
问路的本事从哪来?当然是从大量练习中来。VLN 领域最常见的“练习册”是 R2R 数据集(Room-to-Room,2018 年由 Anderson 等人提出)。它基于 Matterport3D 项目对 90 栋真实建筑的 3D 扫描,把房屋变成了可自由行走的虚拟空间。
在 R2R 中,每一条路径都是人工在 3D 场景里走出来的真实轨迹,再由亚马逊众包平台(AMT)上的标注员为每条路径写 3 句风格不同的自然语言指令。整个数据集约有 1 万条路径、2 万条指令,覆盖走廊、卧室、厨房等室内场景。
| 数据集划分 | 场景来源 | 用途 |
|---|---|---|
| train | 61 栋建筑 | 练习册:训练模型 |
| val_seen | 同 61 栋建筑 | 小测验:见过场景、没见过的指令 |
| val_unseen | 11 栋新建筑 | 模拟考:没见过的场景和指令 |
| test | 18 栋新建筑 | 高考:官方评测,不可见标签 |
这个划分暗藏玄机:val_seen 考的是“背没背熟”,val_unseen 和 test 考的是“有没有真正会问路”。就像你练习册做得再多,到了陌生的老城区,能不能凭一句“到大榕树右转”找到地方,才是真本事。这也是 VLN 和普通视觉任务最不一样的地方——泛化到新环境,永远是悬在头上的那把剑。
四、评价指标:怎么算“问路成功”
当你终于站到外婆家门口,给妈妈打电话报喜,妈妈却可能追问一句:“你是绕了一大圈才走到的吧?”——这正是 VLN 评价的双重标准:既要“到没到”,也要“走得好不好”。
最基础的指标是成功率(Success Rate,SR),它只关心结果:智能体是否在正确的位置停下来(通常要求距目标点 3 米以内)。
1. N_success 是成功数:成功是指最终停在目标位置 3 米范围内,且没有提前“认输”停下。
2. N_total 是总数:测试集里全部导航任务的数量。
3. 比率的含义:成功数除以总数,得到 0 到 1 之间的成功率,越接近 1 越好。
但 SR 有个“漏洞”:绕了一大圈到达也算成功。于是学术界提出了加权的成功率(SPL),把路径效率也揉进成绩单:
1. N 是任务总数:分母上的 N 负责把所有任务的结果取平均。
2. S_i 是成功标记:第 i 个任务是否成功,成功为 1,失败为 0。
3. PL_i 是最短路径长度:从起点到目标的理论最短距离,相当于妈妈口中的“直走近路”。
4. P_i 是实际路径长度:智能体真正走过的距离,绕路越多它越大。
5. 效率因子:PL_i 除以 max(PL_i, P_i),不绕路时为 1,绕路越多越接近 0。
除了 SR 和 SPL,评测报告里还常出现导航误差(NE)——最终位置和目标点的平均距离,以及路径长度(PL)——智能体实际走的距离。这四个指标合在一起,才构成一份完整的“问路成绩单”:目的地要找到,冤枉路不能多走。
五、主流方法:从背诵到临场发挥
想象一个新手跑腿员的学习历程:一开始照着老员工的带教路线“背诵”(模仿学习);接着被奖惩机制训练出“条件反射”(强化学习);上岗前还要先读一堆城市地图做通识培训(预训练),再回到具体楼栋实战。VLN 的主流方法正好对应这三部曲。
模仿学习(Imitation Learning)是最直接的路线:把 R2R 数据集中人类走出的轨迹当作标准答案,让模型用监督学习模仿每一步动作。这就像“老师走一步,你跟着走一步”。早期代表如 Sequence-to-Sequence 模型,直接把指令编码成隐藏状态,每一步从中解码出动作。但它有个致命短板——训练时看到的是标准轨迹,测试时一旦走错一步,后面的画面全都偏离,模型就“崩盘”了。
强化学习(Reinforcement Learning)则让智能体在环境中自主试错,靠奖励信号学习。奖励的设计是成败关键:
1. R_i 是总奖励:第 i 个回合结束后智能体拿到的总分数。
2. S_i 是成功标记:到达目标为 1,否则为 0。
3. w_succ 是成功奖励权重:权重越大,智能体越愿意“一切为了到达终点”。
4. w_eff 是效率权重:权重越大,智能体越怕绕路,会更偏好捷径。
5. 路径效率因子:实际走的越接近最短路径,这一项越接近 1。
预训练范式(如 PREVALENT、CM2)则是近年的大趋势:先在大量“指令-图像”对上做跨模态预训练,让模型学会“红色大门长什么样、'右转'对应什么视觉变化”,再到 R2R 上用小规模导航数据微调。这相当于“先读万卷书,再行万里路”——预训练给了模型一个聪明的初始大脑,微调则教会它真正迈步。如今的主流系统几乎都是“预训练 + 强化学习微调”的组合拳。
六、挑战难点:路痴为什么难医
即使背熟了练习册,VLN 模型依然像个顽固的“路痴”。原因就藏在 VLN 任务本身的四个“先天不足”里。
首先是跨模态对齐难。语言是抽象的:“那扇红色的门”——可画面里可能有三扇不同程度的红门。模型必须学会把词义和视觉细节精准对应。这个对齐能力通常用对比学习来训练,其核心损失函数如下:
1. sim(v, l) 是相似度:计算视觉区域特征 v 和语言词特征 l 有多“般配”。
2. τ 是温度系数:控制相似度的敏感程度,温度越低越“较真”。
3. 分子的作用:把正确配对的相似度放大保留,让它在概率中占大头。
4. 分母的作用:对所有候选配对求和,把相似度归一化成 0 到 1 的概率。
5. 负对数的意义:加负号取对数,让“最大化正确概率”变成“最小化损失”,方便梯度下降优化。
其次是新环境泛化难:在 61 栋别墅里练出来的模型,换到办公楼往往“水土不服”。再次是长指令推理难:一句指令包含六七个拐弯,模型需要像人一样“边听边记边对照”,很容易遗忘前文。最后是部分可观测:智能体身处其中,只能看到当前房间,决策必须依赖记忆和推断,这远比赛前拿到地图的规划任务更考验“脑内建模”。
这四个难点,恰恰解释了为什么 VLN 至今仍是学术前沿:路痴不是不努力,而是面对的考验实在太综合。
七、应用前景:跑腿 AI 上岗记
当模型终于练成了“问路”本领,它能去做什么?答案是:一切需要“听人指挥、亲眼找路”的场景,都可以交给它。
在智能家居里,服务机器人听到“把这盒药送到二楼朝南的卧室”,就能自己上楼梯、认房门、避开走廊上的杂物;在 AR 眼镜里,一句“前方路口左转,进咖啡店”就能被转译成叠加在真实街景上的导航箭头;在仓储物流中,AGV(自动导引车)不再需要预先编程固定路线,而是直接听从“去 A 区第三排取红色货箱”这样的自然语言调度。
从系统角度看,这些应用背后都指向同一个优化目标——让策略的长期累计回报最大化:
1. τ 是轨迹:一条完整的“观测-动作”序列,比如从客厅走到露台的全过程。
2. π 是策略:决定每一步怎么走的“大脑”,期望符号表示在整个策略下取平均。
3. r_t 是即时奖励:第 t 步获得的奖励信号,比如每走一步扣 0.01,到达终点加 2。
4. γ 是折扣因子:0 到 1 之间的系数,让越早的奖励越有分量,避免模型只顾眼前。
5. 累加与期望:把一条轨迹上所有折扣奖励相加,再对所有可能轨迹求平均,得到这个策略的“长期身价”。
对 AI 从业者来说,VLN 不只是论文里的 benchmark,更是“语言模型 + 机器人”交汇处的黄金赛道:能驾驭这套技术的人,未来既懂多模态理解,又懂具身决策,正是行业最紧缺的复合型人才。
AI 应用场景
家庭服务机器人:送药到卧室
阶段:模型推理与端到端部署
解决的问题:传统服务机器人只能走预设路线,换个家具摆放就“迷路”;用户语音指令“把这盒药送到二楼朝南的卧室”无法被理解。VLN 让机器人现场听懂指令、实时看懂环境、动态规划路径。
具体案例:某康养机构试点配送机器人,老人说“把水杯放到客厅茶几上”,机器人利用全景相机识别客厅、茶几等视觉目标,结合语言指令中的方位词完成导航,成功率从传统方案的 32% 提升到 71%。
AR 眼镜步行导航:箭头跟着人话走
阶段:多模态特征融合与实时推理
解决的问题:传统手机导航依赖 GPS 和离线地图,室内或小巷里误差大;且用户需要低头看屏幕。VLN 让 AR 眼镜将语音指令与第一视角画面实时对齐,在视野中直接绘制前进箭头。
具体案例:室外步行场景中,用户说“穿过广场,在喷泉左转”,AR 眼镜结合摄像头画面判断“喷泉”的视觉位置,叠加 3D 箭头引导用户,整个流程无需打开地图 App。
仓储物流 AGV:听指挥的搬运工
阶段:强化学习策略训练与仿真迁移
解决的问题:传统 AGV 需要工程师用地图软件逐一布置路点,改一次货架布局就要重新规划。VLN 让 AGV 直接理解“去 B 区第 2 排取蓝色周转箱”这类自然语言指令,自主完成寻找与往返。
具体案例:某电商仓库在模拟器中用数千条指令-路径对训练 AGV 策略,再迁移到真实仓库。上线后,新员工无需学习调度系统,直接用对讲机式指令就能让 AGV 跑腿,部署时间从 2 周缩短到 2 天。
Python 演示
# -*- coding: utf-8 -*-"""VLN 任务最小化演示: 网格环境中的视觉语言导航与 SR/SPL 评估"""import random class GridNavEnv: """5x5 网格导航环境, 模拟一个简化室内地图""" def __init__(self, size=5): self.size = size self.agent_pos = [0, 0] self.target_pos = [size - 1, size - 1] self.steps = 0 self.min_len = (size - 1) * 2 def step(self, delta): # 尝试执行一步移动, 越界则原地不动 dx, dy = delta nx = self.agent_pos[0] + dx ny = self.agent_pos[1] + dy if 0 <= nx < self.size and 0 <= ny < self.size: self.agent_pos = [nx, ny] self.steps += 1 def success(self): return self.agent_pos == self.target_pos def parse_instruction(text): """把中文指令解析成带方向的移动列表""" dirs = [(-1, 0), (0, 1), (1, 0), (0, -1)] # 北西北东南南西 heading = 1 # 初始朝东 actions = [] for token in text.split(","): if token.startswith("向前"): digits = "".join(ch for ch in token if ch.isdigit()) steps = int(digits) if digits else 1 actions.extend([dirs[heading]] * steps) elif token == "右转": heading = (heading + 1) % 4 elif token == "左转": heading = (heading - 1) % 4 return actions def batch_eval(episodes=100, noise_prob=0.2): """批量模拟: 部分回合随机绕路, 统计整体 SR 与平均 SPL""" total_sr = 0.0 total_spl = 0.0 for _ in range(episodes): env = GridNavEnv() actions = parse_instruction("向前走4步,右转,向前走4步") if random.random() < noise_prob: # 在第4步后插入"向前再回退", 制造绕路 actions = actions[:4] + [(1, 0), (-1, 0)] + actions[4:] for a in actions: env.step(a) sr = 1.0 if env.success() else 0.0 spl = sr * env.min_len / max(env.min_len, env.steps) total_sr += sr total_spl += spl return total_sr / episodes, total_spl / episodes def main(): env = GridNavEnv() actions = parse_instruction("向前走4步,右转,向前走4步") for a in actions: env.step(a) sr = 1.0 if env.success() else 0.0 pl = env.min_len p = env.steps spl = sr * pl / max(pl, p) print("指令: 向前走4步, 右转, 向前走4步") print("是否到达:", env.success()) print("最短路径长度 PL:", pl) print("实际路径长度 P:", p) print("成功率 SR:", sr) print("加权成功率 SPL:", round(spl, 3)) avg_sr, avg_spl = batch_eval() print("批量模拟 100 个回合:") print("平均 SR:", round(avg_sr, 3)) print("平均 SPL:", round(avg_spl, 3)) if __name__ == "__main__": main()
actions = []初始化动作列表,准备存放解析出的移动指令。if 0 <= nx < self.size and 0 <= ny < self.size:边界检查,越界时原地不动,模拟真实导航中“撞墙不移动”。heading = 1 # 初始朝东设定智能体的初始朝向,决定“向前”的具体方向。digits = "".join(ch for ch in token if ch.isdigit())从“向前走4步”中提取数字 4,作为重复次数。actions.extend([dirs[heading]] * steps)把 4 步向前动作一次性加入序列,模拟连续移动。actions = actions[:4] + [(1, 0), (-1, 0)] + actions[4:]在中途插入“向前再回退”,人为制造绕路样本。spl = sr * pl / max(pl, p)用公式计算 SPL,同时惩罚绕路行为。
常见误区
误区我以为 VLN 就是先让模型看一眼图、回答“该往哪走”,再把答案翻译成移动指令,像做 VQA 题一样简单拼接即可。
正解VLN 是闭环的序列决策问题——每一步动作都会改变智能体的观测,下一步决策依赖于所有历史动作。它不是一个“问-答”回合,而是一条环环相扣的决策链。就像电话问路,你说“右转”之后看到的走廊,决定了下一个路口怎么判断;断开任何一环,导航就失败。
为何常见:因为大多数互联网资料把“导航”简化为“告诉你直走右转”,忽略了动作与观测之间的因果缠绕。
误区我评估模型时只看成功率,只要 10 次里能到 8 次就认为系统很优秀,路径绕不绕无关紧要。
正解绕一大圈到达也算 SR 成功,但真实使用中用户无法接受。SPL 把“实际路径/最短路径”的比值作为折扣因子,绕路越狠分数越低。举个极端例子:一个模型绕了 3 倍路程到达,SR=1.0,SPL 却只有 0.33——这不是好导航,只是“死磕到底”。
为何常见:人脑天然关注“到没到”这种二元结果,路径效率需要额外计算才看得出来。
误区R2R 数据集里每条指令都有对应的专家轨迹,我以为训练就是把轨迹背下来,测试时照着输出就行。
正解动作空间是开放的,一步走偏后续全部偏离;纯监督学习在 val_unseen 上表现很差。真实做法是“模仿学习打底 + 强化学习微调”,让模型在自由探索中学会纠错。就像背熟了妈妈指的路,但路上遇到修路,你得自己随机应变绕开。
为何常见:传统分类任务里“标签即答案”的思维方式根深蒂固,忽略了导航的序列决策本质。
误区我总以为 VLN 就是“在图片里框出目标位置”的任务,和指代分割、目标检测差不多。
正解视觉语言定位(如 Referring Expression Comprehension)输出一个坐标框,是“指出在哪”;VLN 输出一连串动作序列,是“走过去”——它必须与环境交互、承担路径代价、应对视野变化。前者像在地图上指给你看“外婆家在 3 楼”,后者像真正爬楼梯敲门。
为何常见:两者都叫“视觉+语言”,且都要做跨模态匹配,初学者容易把“理解位置”和“到达位置”混为一谈。
面试题
Q1. VLN 任务中,智能体接收的两种核心输入是什么?
- A.图片输入与语音指令
- B.视频流与手势信号
- C.自然语言与视觉画面← 正确答案
- D.卫星地图与雷达波形
答案:C。VLN 的中文全称是“视觉语言导航”,核心输入正是自然语言指令和视觉画面。语音指令如果被转成文本也算自然语言,但原始输入是文字指令;雷达和卫星地图属于传统导航范畴,不是 VLN 的标准输入。
Q2. 关于 R2R 数据集,下列说法正确的是?
- A.数据来自网络百科全书
- B.基于真实 3D 建筑扫描← 正确答案
- C.指令由机器自动生成
- D.每段只能对应一条路径
答案:B。R2R 基于 Matterport3D 对真实建筑的扫描,指令由人工众包撰写而非机器生成,一条路径通常配多条指令。数据来自真实建筑扫描是关键特征,因为这让模型必须面对真实世界的布局复杂度。
Q3. 成功率(SR)指标的核心含义是?
- A.走过路径的平均长度
- B.完成旅程的总步数
- C.成功到达目标的比率← 正确答案
- D.每步动作的正确率
答案:C。SR 只统计最终是否成功停在目标点附近(R2R 标准是 3 米内),不关心中间走了多少步、绕了多少路,是一个“只看结果”的二元指标。
Q4. 以下哪些行为会在 SPL 指标下被扣分?
- A.绕远路才到达终点← 正确答案
- B.中途停下不再行动← 正确答案
- C.走最短路线但很慢
- D.到达后又绕圈散步← 正确答案
答案:ABD。SPL 引入路径效率因子 PL/max(PL,P),绕路和到达后再兜圈会让实际路径 P 增大,效率因子变小;中途停下则因 S=0 直接得 0 分。走最短路线但“慢”不在 SPL 惩罚范围内,因为 SPL 只考虑路径长度,不考虑步频快慢。
Q5. VLN 中“跨模态对齐”要解决的核心问题是?
- A.把不同语言的翻译对应起来
- B.匹配视觉特征与语言语义← 正确答案
- C.对齐图像在内存中的地址
- D.同步左右摄像头的画面
答案:B。跨模态对齐是 VLN 的灵魂,它让语言里的“红色的门”与画面中具体的门区域建立对应关系。翻译是纯语言任务,内存地址和摄像头同步都是工程问题,与语义对齐无关。
Q6. 以下哪些是 VLN 面临的典型挑战?
- A.长指令的推理与记忆← 正确答案
- B.新环境的泛化能力偏弱← 正确答案
- C.模型参数量越大越好
- D.部分可观测的视觉盲区← 正确答案
答案:ABD。长指令需要记住前面拐弯、新环境泛化难、部分可观测导致决策信息不完整,这三个都是 VLN 公认难点。“参数量越大越好”是通用观点而非 VLN 特有约束,且在实际中还要考虑数据量匹配。
Q7. VLN 中“模仿学习”的训练数据主要来自哪里?
- A.人类的专家演示轨迹← 正确答案
- B.随机探索的失败路径
- C.搜索引擎的文本结果
- D.强化学习的实时回报
- E.约 0.50
- F.约 0.71
- G.约 1.00
- H.约 1.40
答案:A。SPL 对每个任务先乘成功标记 S_i(失败的 3 个为 0),再乘效率因子 PL/max(PL,P)。成功的 7 次里,实际路径是最短的 1.4 倍,效率因子约 1/1.4≈0.714。7 次合计约 7×0.714≈5,再除以总任务数 10,SPL≈0.5。这个例子生动说明:即使 SR=0.7,绕路也会把 SPL 拖垮。
Q8. VLN 与“视觉问答(VQA)”的本质区别包括?
- A.需要连续动作改变环境← 正确答案
- B.输出形式为轨迹而非答案← 正确答案
- C.不需要自然语言理解能力
- D.决策具有时序因果依赖← 正确答案
答案:ABD。VLN 输出的是动作轨迹,每一步动作都会改变观测,导致后续决策依赖历史,这是闭环决策;VQA 输出一个答案,与环境无交互。VLN 同样需要语言理解,所以 C 错。
Q9. 在跨模态特征融合时,注意力机制的主要作用是?
- A.将图片压缩成小尺寸文件
- B.让语言词关注相关视觉区域← 正确答案
- C.把指令按字典顺序排序
- D.为每个动作编号统一格式
答案:B。注意力机制通过计算语言查询 Q 与视觉键 K 的相似度,让每个词动态关注画面中最相关的区域,再加权汇总视觉内容 V。它不是图像压缩、文本排序或动作编码工具。