城东老街上有两家裁缝铺,生意却冰火两重天。均码铺的老板娘信奉“一件套天下”:不论客人身高一米五还是一米九,都递上同一件中码外套——高个儿露腰,壮汉绷扣,手臂长的拱破袖口。而对面的老裁缝,每次接单都先打量客人的身形,量肩宽、测臂长,还要问一句“这衣裳准备穿去什么场合”,然后才动剪刀。客人们都说:老裁缝做的衣服,才叫衣服。 把这段街坊轶事搬进人工智能的世界:视觉语言模型(Vision-Language Model, VLM)就是一位“看图的裁缝”,图像则是上门来的客人。过去很长一段时间,模型的做法是“均码外套”——把所有输入图像不管三七二十一,硬塞进统一尺寸的正方形画布(固定resize),全然不顾原图是竖屏照片、宽屏海报还是密密麻麻的A4文档。结果正如均码外套:文档里的小字号直接消失在褶皱里,海报上的标题被压成扁扁的一行。 如今,新一代VLM学会了“量体裁衣”,这门手艺叫作动态分辨率(Dynamic Resolution)。它先“看身形”(感知图像尺寸与内容复杂度),再“定版型”(选择匹配的特征图分辨率),必要时“远观加近看”(低分辨率全局预览、高分辨率局部裁剪)。本文将沿着这条裁缝铺的故事线,拆解动态分辨率的原理、应用与挑战,带你彻底看清这位“智能裁缝”的生意经。

岗位关联

对AI从业者来说,理解动态分辨率机制,是读懂当前多模态大模型架构设计的关键一环,更是把VLM从“看图说话”推向精准文档解析、具身智能控制等高价值场景的必备认知。

目录
  1. 可视化演示
  2. 固定尺寸局限
  3. 动态分辨率原理
  4. 双路视觉编码
  5. 文档理解应用
  6. 前沿场景应用
  7. 权衡与挑战
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示Vision-Language模型动态分辨率技术的核心原理:固定与动态分辨率对比、三种分块策略可视化及Token效率分析,交互切换三种模式。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+CAPS.mode1+'

固定尺寸局限

街角的“均码成衣铺”生意冷清,老板娘却坚信“一件套天下”。不管客人身高一米五还是一米九,她都递上同一件中码外套——高个儿的腰线露在外面,壮汉的纽扣绷得快要飞出去,手臂长的人连袖口都拱破了。顾客的身材信息——肩宽、臂长、腰围——被硬塞进一个固定模板里,版型、比例、气质统统走了样。这个场景,像极了早期视觉语言模型处理图像的方式:固定resize。

所谓固定resize,是指模型把所有输入图像统一缩放到一个预设的正方形尺寸(如 224×224 或 336×336)。无论输入是手机竖拍的照片、宽屏影院海报,还是密集排版的 A4 文档,模型都“一视同仁”地压成方框。这么做的好处是工程简单:GPU 喜欢整齐的张量。但代价在真实场景中暴露无遗——信息丢失(像素被直接丢弃)、比例失真(圆桌变成椭圆、人脸被压扁)、小目标淹没(文档里的脚注缩成一个点)、计算浪费(简单的蓝天图和复杂的合同页烧掉同样的算力)。

如何量化这种“拉伸风险”呢?一个直观的指标是看图像长宽比偏离正方形的程度。偏离越大,固定resize造成的形变就越严重:

老板娘终于卖不动均码外套了。她恍然大悟:一件合身的衣服,必须先测量客人的身材。于是她关门三天,把招牌换成了四字——“量体裁衣”。

Dinfo=1−min⁡(Ws,Hs)max⁡(Ws,Hs)D_{\text{info}} = 1 - \frac{\min(W_s, H_s)}{\max(W_s, H_s)}
这个值介于 0 和 1 之间,越接近 1,说明图像越瘦长或越扁宽,被压成正方形时信息折损也就越显著。
  1. 取图像短边找出原图宽高中较小的一边,相当于量身高时先确认客人“最紧”的尺码。
    min⁡(Ws,Hs)\min(W_s, H_s)
  2. 取图像长边找出较长的一边,与短边对比才能看出比例“偏科”的程度。
    max⁡(Ws,Hs)\max(W_s, H_s)
  3. 短边除以长边得到一个 0 到 1 的比值,1 表示正方形,0.5 表示长宽比正是 2:1。
    min⁡(Ws,Hs)max⁡(Ws,Hs)\frac{\min(W_s, H_s)}{\max(W_s, H_s)}
  4. 用 1 减去比值得到“失衡度”,数值越大,固定resize时信息被挤压得越厉害。
    1−min⁡(Ws,Hs)max⁡(Ws,Hs)1 - \frac{\min(W_s, H_s)}{\max(W_s, H_s)}

动态分辨率原理

老裁缝有个职业习惯:客人一进门,他先不急着拿软尺,而是用眼睛“打量”——这位先生肩宽背厚,适合宽版型;那位小姐身材高挑,裙长要加三寸。这个打量,就是感知。动态分辨率的第一件事,也正是感知——感知输入图像的尺寸和内容复杂度。

动态分辨率机制的核心,是让模型在处理图像时“自适应地调整特征图分辨率”。具体来说,模型先分析输入图像的长宽像素数和内容密度(是稀疏的蓝天白云,还是密集的表格票据),再据此决定用多大的特征图来表征它。整套流程可以分解为四个环节:尺寸感知(读取图像宽高)、复杂度评估(判断细节密度)、patch划分(把图像切成若干小方块)、特征图生成(用可变数量的视觉token编码整张图)。

其中 patch 划分最直观:图像被切成一个个正方形小格子(patch),每个 patch 对应一个视觉 token。图像越大、细节越丰富,patch 数量就越多,视觉 token 也越充足。patch 总数由图像尺寸和 patch 边长共同决定:

老裁缝的“打量”最终化成了数学语言:量得越准,布料裁得越省。动态分辨率的核心哲学由此确立——让模型适应图像,而不是让图像委屈迎奉模型。

Npatch=⌈Himgp⌉×⌈Wimgp⌉N_{\text{patch}} = \left\lceil \frac{H_{\text{img}}}{p} \right\rceil \times \left\lceil \frac{W_{\text{img}}}{p} \right\rceil
图像的高和宽分别除以 patch 边长,向上取整保证不丢边角,再相乘得到视觉 token 总数。动态分辨率下,这个数字天然地随输入尺寸变化。
  1. 图像高度$H_{\text{img}}$ 表示输入图像的垂直像素数,对应裁缝眼中的“衣长”。
    HimgH_{\text{img}}
  2. 高度方向分段$\frac{H_{\text{img}}}{p}$ 表示高度上能切出几段 patch,$p$ 为 patch 边长(如 14 像素)。
    Himgp\frac{H_{\text{img}}}{p}
  3. 向上取整$\lceil \cdot \rceil$ 表示边角余料也算一整段,保证不遗漏任何像素。
    ⌈Himgp⌉\left\lceil \frac{H_{\text{img}}}{p} \right\rceil
  4. 两方向段数相乘高度段数和宽度段数相乘,得到该图对应的 patch 总数,即视觉 token 数。
    ⌈Himgp⌉×⌈Wimgp⌉\left\lceil \frac{H_{\text{img}}}{p} \right\rceil \times \left\lceil \frac{W_{\text{img}}}{p} \right\rceil

双路视觉编码

老裁缝量完整体身形,还会做第二件事:先退后三步,端详客人的整体气质——是商务精英还是文艺青年;然后凑近,检查领口的磨损、袖口的针脚、面料的光泽。这一远一近两步,合在一起才是一份完整的定制方案。双路视觉编码,正是这套功夫在 VLM 中的结构化实现。

当 VLM 面对高分辨率图像时,不再试图用单一的高清特征图装下一切,而是拆成两条路径协同工作:全局预览分支用低分辨率(如缩略图)快速编码整幅图像,提供版面布局、物体位置、场景氛围等“骨架信息”;局部裁剪分支把图像切成多个高清小块、逐块编码,保留文字笔锋、物体纹理等“血肉细节”。

两条路径的信息如何融合?直接拼接会引发尺度错位——全局分支里一个小图标,在局部分支中可能占据大半张图块。业界常用交叉注意力让两路互相“导航”:全局分支发出查询,在局部特征中定位并提取对应的细粒度信息:

回到裁缝铺:远观定风格,近看定针脚,二者结合才成就一套高级定制。双路编码的信息互补,让模型既不会“只见树木不见森林”,也不会“只见森林看不见树”。

Ffinal=Softmax(QgKlTdk)VlF_{\text{final}} = \text{Softmax}\left(\frac{Q_g K_l^{\mathsf{T}}}{\sqrt{d_k}}\right) V_l
融合的本质是“全局知道去哪里找,局部负责把细节拿出来”。这个公式描述的就是一次带导航的细节查询。
  1. 全局查询向量$Q_g$ 代表全局预览分支发出的查询,它编码了“我现在想了解哪个位置”的意图。
    QgQ_g
  2. 局部键值对$K_l$ 和 $V_l$ 是局部裁剪分支的键与值,键是局部特征的索引,值是对应位置的详细内容。
    Kl,VlK_l, V_l
  3. 相似度打分$Q_g K_l^{\mathsf{T}}$ 计算全局查询与每个局部索引的匹配程度,分数越高表示越相关。
    QgKlTQ_g K_l^{\mathsf{T}}
  4. 缩放稳定$\sqrt{d_k}$ 是特征维度的开方,用于剔除维度增大带来的分数膨胀,保证 Softmax 梯度稳定。
    QgKlTdk\frac{Q_g K_l^{\mathsf{T}}}{\sqrt{d_k}}
  5. 归一化加权输出Softmax 将匹配分数归一化成权重,再乘以值向量 $V_l$,加权汇总得到最终融合特征。
    FfinalF_{\text{final}}

文档理解应用

老裁缝新接了一批“设计图纸”——实际上是某家律所送来的高清合同扫描件。他戴上老花镜,先看整页布局:哪里有标题、哪里是表格、哪里是签字栏;再对关键区域放大细看,读出条款里的每一个小字。这套“先版面、后细节”的流程,正是动态分辨率在文档理解中的标准动作。

文档是动态分辨率的天然主场。一张 A4 扫描件的文字密度极高,固定resize 到 224×224 后,单个汉字可能只剩 2×2 像素,人眼都认不出,模型更是“睁眼瞎”。动态分辨率让模型得以胜任四类任务:版面分析(低分辨率全局预览快速区分标题、正文、图片、表格区域)、精细OCR(高分辨率局部裁剪聚焦文字密集区,逐字识别)、表格识别(高清还原横纵线结构,避免行列错乱)、多栏阅读(保留报纸、论文双栏排版的阅读顺序)。

OCR 是文档理解的核心子任务,其训练目标通常是对每个字符位置的预测概率取负对数似然,值越小表示预测得越准:

老裁缝的客户回头率大涨:图纸上的针脚走向、面料编号,甚至角落里一行免责声明,都看得一清二楚。动态分辨率在文档智能上的价值正在于此——让细节不再被压缩淘汰。

LOCR=−1N∑i=1Nlog⁡P(yi∣xi)\mathcal{L}_{\text{OCR}} = -\frac{1}{N}\sum_{i=1}^{N} \log P(y_i \mid x_i)
动态分辨率通过提供高清输入,让这个损失函数的输入不再是“残缺字符”,从而显著提升字符识别准确率。
  1. 单个字符预测概率$P(y_i \mid x_i)$ 表示模型看到第 $i$ 个字符图像 $x_i$ 后,预测出正确字符 $y_i$ 的概率。
    P(yi∣xi)P(y_i \mid x_i)
  2. 取对数$\log$ 把概率连乘转化为连加,同时将小数概率映射为负数,便于优化。
    log⁡P(yi∣xi)\log P(y_i \mid x_i)
  3. 序列求和$\sum_{i=1}^{N}$ 对整行文本的 $N$ 个字符逐一计算并累加。
    ∑i=1Nlog⁡P(yi∣xi)\sum_{i=1}^{N} \log P(y_i \mid x_i)
  4. 取平均并取负$-\frac{1}{N}$ 将总和归一化为平均损失,负号把“最大化概率”转化为“最小化损失”。
    −1N∑i=1Nlog⁡P(yi∣xi)-\frac{1}{N}\sum_{i=1}^{N} \log P(y_i \mid x_i)

前沿场景应用

老裁缝的成名作,是给一位“机器人管家”定制演出服。这件衣服有个特殊要求:管家跳舞时,要能一眼看清宴会厅里的全局障碍物;可当它伸手抓玻璃杯时,又必须精确锁定杯柄的位置。一套衣服,两种视野。前沿AI研究正在把这种“双视野”能力带到更广阔的舞台。

在机器人控制中,机械臂需要全局视野来避障,又需要局部高精度来定位抓取点。固定resize 会让远处的目标模糊、近处的目标变形;动态分辨率则按需分配计算资源——场景开阔时用低分辨率跟踪,接近操作目标时切换到高分辨率裁剪。在多模态融合理解中,当视觉特征与音频、深度、触觉信号融合时,动态分辨率保证视觉通道在关键区域提供足够的细节,避免信息短板。在长视频分析中,视频帧的宽高和内容密度不断变化,动态分辨率让每一帧都以合适的 token 数进入模型,平衡全片理解与局部特写。

机器人任务中,常把“分辨率匹配度”作为奖励信号的一部分融入强化学习,引导模型学会聪明地分配视觉资源:

这些前沿场景的共同点是“动”:环境在动、目标在动、计算资源在动。奖励函数里那个 $R_{\text{res}}$,正是让模型在这运动的世界中始终配上一双“合适的眼睛”的调节旋钮。

R=α⋅Rtask+β⋅RresR = \alpha \cdot R_{\text{task}} + \beta \cdot R_{\text{res}}
总奖励由任务完成度奖励与分辨率匹配奖励加权组合。前者衡量“做得对不对”,后者衡量“看得省不省”。
  1. 任务奖励$R_{\text{task}}$ 表示任务本身的完成得分,例如抓取成功计 1 分。
    RtaskR_{\text{task}}
  2. 分辨率奖励$R_{\text{res}}$ 表示分辨率使用是否经济,用低分表率完成简单场景会获得额外加分。
    RresR_{\text{res}}
  3. 加权组合$\alpha$ 与 $\beta$ 是两个权重系数,控制任务成功与资源节约之间的优先级。
    α⋅Rtask+β⋅Rres\alpha \cdot R_{\text{task}} + \beta \cdot R_{\text{res}}

权衡与挑战

定制的衣服总是比均码贵。老裁缝心里清楚:量身定制要量三围、打版、试穿、修改,工序多、工期长、料子也费。动态分辨率同样不完美,它必须直面自己的四道关卡。

第一关是计算开销。高分辨率图像产生的 patch 数量远超固定默认值——一张 672×672 的图像会产生 2304 个视觉 token,是 224×224 时的 9 倍,注意力计算量近似平方级增长。第二关是延迟控制。在机器人实时控制等场景中,动态调整分辨率的过程本身需要时间,如何在不同档位间快速切换而不让推理卡顿,是工程难题。第三关是成本优化。工业落地必须精打细算,好在已有“候选分辨率网格”方案——预定义一组离散档位(如 224、336、448、672),推理时匹配最近档位,大幅降低动态调度的开销。第四关是鲁棒性。长时间保持高分辨率会导致 token 超长、超出模型上下文窗口,模型必须学会在信息量与系统资源之间找平衡。

把这四道关口的成本结构写成模型,总成本由视觉 token 数(计算量)和推理延迟共同决定:

老裁缝最后定了一条店规:普通客户走“标准定制”——从预设几档版型中选最合适的;VIP 客户才享受全量定制。这正是动态分辨率落地的智慧——不是把每张图都放到最大,而是让每张图找到最合适的档位。均码的问题在于“一刀切”,而动态分辨率把选择权交还给了图像本身。

Ctotal=μ⋅Npatch+ν⋅Iinfer\mathcal{C}_{\text{total}} = \mu \cdot N_{\text{patch}} + \nu \cdot \mathcal{I}_{\text{infer}}
总成本 = 单位 token 计算成本 × patch 数 + 单位延迟成本 × 推理耗时。两个权重系数反映不同业务对算力与速度的侧重。
  1. patch 总数$N_{\text{patch}}$ 决定视觉 token 的规模,是注意力计算量的主导因素。
    NpatchN_{\text{patch}}
  2. 推理耗时$\mathcal{I}_{\text{infer}}$ 表示一次推理的延迟,实时场景中这一项极其敏感。
    Iinfer\mathcal{I}_{\text{infer}}
  3. 加权求和$\mu$ 与 $\nu$ 分别表示 token 计算和延迟的“单价”,两类成本加权合并为总成本。
    μ⋅Npatch+ν⋅Iinfer\mu \cdot N_{\text{patch}} + \nu \cdot \mathcal{I}_{\text{infer}}

AI 应用场景

文档智能解析(合同审阅机器人)

阶段:数据预处理与视觉编码

解决的问题:传统 OCR Pipeline 对高分辨率扫描件直接 resize,导致合同小字号条款、印章日期模糊不清。动态分辨率先用全局缩略图定位段落区块,再对关键区域高清裁剪,让 OCR 准确率在长尾文档上显著提升。

具体案例:某银行的信贷合同自动录入系统接入动态分辨率后,对清晰度参差不齐的合同——从手机拍照件到高清扫描件——统一处理,关键字段抽取错误率降低约 30%。

具身智能机器人抓取

阶段:视觉感知与决策控制

解决的问题:机械臂需要一双“既看全局又盯局部”的眼睛。固定分辨率的单视角难以支撑复杂操作,动态分辨率让机器人以低分辨率实时跟踪目标,在接近时切换高分辨率局部视图,精确估计抓取位姿。

具体案例:仓储分拣机器人识别堆叠货架上的商品标签,动态分辨率在高密度货架场景下显著减少标签误读,抓取成功率从 78% 提升至 92%。

长视频多模态摘要

阶段:视频帧特征提取

解决的问题:长视频中同时存在运动场景的大布局与字幕、车牌的微小细节。固定 resize 会丢失字幕,动态分辨率让每帧以不同 token 数进入模型,兼顾全局叙事与局部信息。

具体案例:安防监控录像的事故溯源系统用动态分辨率提取关键帧中的车牌号与行人特征,在 24 小时长视频检索中显著降低漏检率。

Python 演示

python76 行
"""动态分辨率模拟器 对比固定resize与动态分辨率两种策略"""import random CANDIDATES = [    (224, 224), (448, 224), (224, 448),    (336, 336), (672, 336), (336, 672),    (448, 448), (896, 448), (448, 896)]  class ResizeOrchestrator:    """分辨率调度器 负责为不同尺寸图像选择最优处理策略"""     def __init__(self, candidates=CANDIDATES):        self.candidates = candidates     def fixed_resize(self, w, h, fixed=224):        # 按最短边等比缩放 再强制拉到固定边长        rescale = min(fixed / w, fixed / h)        nw, nh = int(w * rescale), int(h * rescale)        # 像素保留率 衡量信息保持程度        keep_ratio = (nw * nh) / (w * h)        # 形变程度 越大表示被拉得越狠        distortion = abs(nw - nh) / max(nw, nh)        return keep_ratio, distortion     def dynamic_resize(self, w, h):        best_score = -1.0        best = (0, 0, 0.0, 0.0)        for cw, ch in self.candidates:            # 等比缩放适配候选画布 不满的部分留白            rescale = min(cw / w, ch / h)            nw, nh = int(w * rescale), int(h * rescale)            keep_ratio = (nw * nh) / (w * h)            usage = (nw * nh) / (cw * ch)            score = keep_ratio * usage            if score > best_score:                best_score = score                best = (cw, ch, keep_ratio, usage)        return best  def print_fixed_report(orchestrator, images):    print("=== 固定 resize 策略 ===")    total_keep = 0.0    for w, h in images:        keep, distort = orchestrator.fixed_resize(w, h)        total_keep += keep        print("  {}x{} -> keep={:.2f} distortion={:.2f}".format(w, h, keep, distort))    print("  平均信息保持率: {:.2f}".format(total_keep / len(images)))  def print_dynamic_report(orchestrator, images):    print("\n=== 动态分辨率策略 ===")    total_usage = 0.0    for w, h in images:        cw, ch, keep, usage = orchestrator.dynamic_resize(w, h)        total_usage += usage        print("  {}x{} -> 选用 {}x{} keep={:.2f} usage={:.2f}".format(w, h, cw, ch, keep, usage))    print("  平均画布利用率: {:.2f}".format(total_usage / len(images)))  def main():    random.seed(42)    orchestrator = ResizeOrchestrator()    images = []    for _ in range(8):        w = random.choice([400, 600, 800, 1000, 1200])        h = random.choice([400, 600, 800, 1000, 1200])        images.append((w, h))    print_fixed_report(orchestrator, images)    print_dynamic_report(orchestrator, images)  if __name__ == "__main__":    main()
目的:用一份可运行的量化对比,直观展示固定resize与动态分辨率在不同尺寸输入下的信息保持率和画布利用率差距。
  1. class ResizeOrchestrator:定义一个分辨率调度器,统一管理两种策略的决策逻辑。
  2. self.candidates = candidates保存候选分辨率网格,模拟真实 VLM 的预置档位。
  3. rescale = min(fixed / w, fixed / h)固定策略按最短边等比缩小,这是信息丢失的起点。
  4. distortion = abs(nw - nh) / max(nw, nh)计算把图拉成正方形时的形变程度,0 为不变形。
  5. dynamic_resize(self, w, h)遍历候选网格,为每张图找到性价比最高的档位。
  6. usage = (nw * nh) / (cw * ch)画布利用率,避免选太大画布导致算力浪费。
  7. random.seed(42)固定随机种子,保证演示结果可复现。
  8. print_dynamic_report(...)打印动态策略的量化报表,与固定策略形成直观对比。

常见误区

误区动态分辨率不就是把图像放大到最大分辨率吗?既然高分辨率能提升效果,为什么不把所有图都拉到最高档位,看得越清楚肯定越好。

正解动态分辨率的本质是“匹配”而非“放大”。分辨率越高,视觉 token 越多,注意力计算成本呈平方级上涨。对于蓝天、纯色背景这类低信息量图像,用最高分辨率纯粹是烧算力。正确的做法是按内容复杂度选择合适的档位——就像老裁缝不会给只穿一次演出服的客人推荐最贵的进口面料。

为何常见:人类直觉里“清晰度=质量”,但忽略了模型推理有计算预算约束,这也是工业落地中最常见的预算失控原因。

误区把图片 resize 成正方形,最多就是边缘被裁掉一点、清晰度差一点,模型应该能自己适应这种变化。

正解固定resize的杀伤力远不止“细节损失”。长宽比严重失衡的图像会被整体拉伸变形——圆桌变成椭圆、人脸变成冬瓜、小字号文字直接糊成一团。更严重的是,某些关键信息(如合同里的手写签名)可能在压缩后只剩 1 像素,信息直接消失,模型根本没有机会识别。这与“看不清”有本质区别:不是模糊,而是不存在了。

为何常见:人类视觉有强大的恒常性,会自动校正形变,于是误以为模型也能轻松应对这种扭曲。

误区动态分辨率不就是训练时把图像随机缩放吗?数据增强里早就有多尺度训练了,这有什么新鲜的。

正解多尺度数据增强是训练期的 trick,让模型见过不同尺度的输入以增强鲁棒性;动态分辨率是推理期的自适应机制,在真实输入到来时根据尺寸与复杂度动态规划特征图分辨率。两者可以配合使用,但作用阶段和目标完全不同。类比的话,数据增强是让裁缝多练手不同身材,动态分辨率则是每单生意真正量体裁衣。

为何常见:两者都涉及“图像尺寸变化”这个表象,初学者很容易混淆训练技巧与推理机制。

误区全局预览分支和局部裁剪分支分别过一遍编码器,然后把特征图 concat 起来不就行了?融合不就是拼接吗?

正解直接拼接会遇到严重的尺度错位问题:全局分支中一个小图标只占几个像素,在局部分支里可能对应一块数十倍大的区域。模型无法确认局部特征对应全局的哪个位置,融合后反而产生噪声。业界常用交叉注意力等机制,让全局查询主动去局部特征中“导航”定位,才能实现真正的信息互补。

为何常见:“拼接”是实现融合最简单直观的想象,但忽略了跨尺度位置对齐这一核心难点,这正是双路编码设计的精髓所在。

面试题

Q1. 早期视觉语言模型普遍采用固定resize到正方形的主要弊端是什么?

单选题 · easy

  • A.导致图像颜色失真
  • B.长宽比失真和信息丢失← 正确答案
  • C.图像内存占用大幅减少
  • D.显著提升模型推理速度

答案:B。固定resize会把宽图或长图强行压成正方形,造成长宽比失真;压缩过程还会丢弃大量像素,导致信息丢失。图像颜色本身不会因resize而改变;内存减少和推理提速是resize的工程收益,而非弊端。

Q2. 动态分辨率的核心设计思想是什么?

单选题 · easy

  • A.所有图像统一放大到最大尺寸
  • B.只处理图像的中心区域
  • C.按输入尺寸和复杂度自适应调整← 正确答案
  • D.将图像压缩后再线性放大

答案:C。动态分辨率模仿“量体裁衣”:先感知输入图像的尺寸和内容复杂度,再决定采用多大的特征图分辨率。统一放大、只处理中心、先压后放都会引入信息损失或算力浪费,都不是自适应的正确姿势。

Q3. 双路视觉编码中,全局预览分支的主要职责是什么?

单选题 · mid

  • A.提取全图文字内容
  • B.提供整体版面与位置信息← 正确答案
  • C.放大图像边缘细节
  • D.完成图像压缩存储

答案:B。全局预览分支用低分辨率快速编码整图,提供版面布局、物体位置、场景氛围等“骨架信息”;细粒度文字与纹理由局部裁剪分支负责。放大边缘和压缩存储都不是视觉编码的职责。

Q4. 关于patch划分,下列描述正确的是?

单选题 · mid

  • A.所有图像patch数量必须一致
  • B.图越复杂patch数量越少
  • C.动态分辨率中patch数随尺寸变化← 正确答案
  • D.输出特征和原图尺寸无关

答案:C。动态分辨率的核心就是 patch 数量随输入尺寸和内容密度变化:图像越大、细节越丰富,patch 数越多,视觉 token 越充足。图越复杂 patch 应该越多而非越少;输出特征依赖原图尺寸,这正是动态分辨率的本质。

Q5. 文档理解中,动态分辨率的主要优势是什么?

单选题 · easy

  • A.减少文档图像存储体积
  • B.自动生成文档摘要内容
  • C.让文档图像色彩更加鲜艳
  • D.兼顾版面全局与局部文字细节← 正确答案

答案:D。文档扫描件文字密集,固定resize会让小字糊成一团。动态分辨率先用低分辨率全局预览掌握版面,再用高分辨率局部裁剪细读文字,实现全局与细节兼得。存储体积、摘要生成、色彩都不是动态分辨率的直接优势。

Q6. 双路特征融合时,直接拼接可能带来的问题是什么?

单选题 · hard

  • A.特征通道数减少
  • B.图像分辨率自动升维
  • C.全局与局部尺度错位← 正确答案
  • D.局部裁剪分支失效

答案:C。全局分支里的一个小图标,在局部分支中可能对应数十倍大的区域,直接拼接会让模型混淆空间对应关系,融合结果反而带噪声。业界用交叉注意力让全局查询主动到局部特征中“导航”定位。

Q7. 工业落地中,候选分辨率网格的主要作用是什么?

单选题 · hard

  • A.让分辨率选择变成离散匹配← 正确答案
  • B.把所有图像缩放成相同尺寸
  • C.用数据增强生成更多训练样本
  • D.降低GPU显存的最小占用

答案:A。候选分辨率网格预先定义一组离散档位(如224/336/448/672),推理时只需匹配最近档位,避免实时计算任意尺寸导致的高昂调度成本。它不是为了做数据增强或统一缩放,而是把动态选择变成低成本的分档匹配。

Q8. 固定resize可能造成的负面影响包括哪些?

多选题 · mid

  • A.小目标像素被压缩消失← 正确答案
  • B.宽图被拉成正方形变形← 正确答案
  • C.文字笔画细节丢失严重← 正确答案
  • D.模型参数量显著下降

答案:ABC。固定resize压缩像素导致小目标消失、长宽比变形、文字细节丢失,这些都是真实风险。模型参数量由网络结构决定,与输入图像的缩放方式无关,因此D错误。

Q9. 动态分辨率中“内容复杂度”对处理的影响体现在哪些方面?

多选题 · mid

  • A.复杂图像需要更细致特征图← 正确答案
  • B.简单图像可减少视觉token← 正确答案
  • C.复杂度不影响patch划分
  • D.模型依据复杂度调度算力← 正确答案

答案:ABD。内容复杂度与分辨率档位直接挂钩:复杂的文档或场景需要更细致的特征图,简单图像可以减少 token,整体上模型依据复杂度动态调度算力。C 的说法与动态分辨率的基本思想相悖。

Q10. 动态分辨率在机器人控制场景的价值包括哪些?

多选题 · hard

  • A.低分辨率保持全局视野← 正确答案
  • B.高分辨率聚焦抓取细节← 正确答案
  • C.减少传感器硬件成本
  • D.按需分配视觉计算资源← 正确答案

答案:ABD。机器人需要“既看全局又盯局部”的能力:低分辨率用于全局避障,高分辨率聚焦抓取点,并且按需分配算力以保障实时性。传感器硬件成本属于物理设备范畴,与视觉分辨率机制无关。