想象出版社的编辑小林,刚接到一个充满挑战的任务:给一本绘本的每一幅插画写一句“配图文字”。他需要认真看画、看懂画面里的主体和它们的空间关系,再组织成一句自然通顺的话——不多不少,恰如其分。这就是图像描述(Image Captioning)要做的事:让AI也能“看图说话”。在AI世界里,模型也要经历小林一样的训练。而要公正评判这批“插图作者”的水平,AI界就像建立了一套“标准课本”和“评分尺”——课本是COCO数据集,评分尺则是BLEU、METEOR、ROUGE、CIDEr这四把尺子。这篇文章,就是带你走进这个“图画编辑部”,看看AI如何学会为画面写故事。

岗位关联

图像描述COCO是衡量多模态模型“眼力+文笔”的黄金基准。掌握它,你就掌握了AI产品中“视觉→语言”能力的评测标尺与优化方向,这是做多模态应用的基本功。

目录
  1. 可视化演示
  2. 任务定义
  3. COCO数据集
  4. 评测指标
  5. 经典模型
  6. 训练优化
  7. 挑战趋势
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示COCO图像描述评测:图像到描述的生成流程、BLEU/CIDEr/METEOR多指标评估、生成质量随模型提升的变化,通过交互理解多模态字幕评测方法。

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

图像理解:图像到描述 对输入图像理解内容 生成一句自然语言描述 Img→Cap 与参考描述对比评分

任务定义

小林第一天到编辑部,主编指着绘本插画说:“你要做的是给每一幅画写配图文字——不是贴一个标签,而是像讲故事一样,把画面里的主体、动作、关系组织成一句话。”小林发现,写“猫”和写“一只猫坐在红色沙发上”完全是两码事:前者只是标记,后者才是描述。

在AI领域,这就是图像描述任务(Image Captioning):输入一张图片,输出一句通顺自然的自然语言句子。它与图像分类有本质区别——分类输出的是一个离散的类别名(如“猫”),目标检测输出的是物体位置框,而图像描述需要模型组织出“主语+谓语+宾语+修饰”的完整语言结构。这项能力正是搜索引擎、辅助阅读、内容审核等产品的底层支撑。

从数学上看,模型要学的是给定图像\(\mathbf{x}\)生成句子\(\mathbf{y}\)的概率。由于句子是词的序列,我们可以把它分解成每一步的条件概率之积:

小林在工位上恍然大悟:配图文字的水平高低,就藏在这一个个“条件概率”里。谁能把“画面信息”和“已写文字”结合得越准确,谁写出来的句子就越贴切。

P(y∣x)=∏t=1TP(yt∣y1:t−1,x)P(\mathbf{y}|\mathbf{x}) = \prod_{t=1}^{T} P(y_t | y_{1:t-1}, \mathbf{x})
小结:图像描述的核心任务,就是条件概率连乘下的逐词生成。
  1. 句子总概率一次生成整句的概率,被拆分为所有位置上单词的条件概率连乘。
    P(y∣x)=∏t=1TP(yt∣⋅)P(\mathbf{y}|\mathbf{x}) = \prod_{t=1}^{T} P(y_t | \cdot)
  2. 第\(t\)个词的概率在给定图像和前面所有词的前提下,当前词的条件分布。
    P(yt∣y1:t−1,x)P(y_t | y_{1:t-1}, \mathbf{x})
  3. 决策依赖\(y_{1:t-1}\)表示“已经写好的部分文字”,\(\mathbf{x}\)表示“始终要参考的那幅画”。
    y1:t−1  与  xy_{1:t-1} \; \text{与} \; \mathbf{x}

COCO数据集

小林问主编:“我的配图文字写得对不对,总得有个标准吧?”主编拿出一本厚厚的《标准配图集》说:“这是编辑部几十年积累的参考答案——每幅画都有5位资深编辑各自独立写下的一句描述,5句各不相同,但都准确。”这本“标准答案集”,就是COCO数据集。

COCO(Common Objects in Context)是微软团队构建的大规模图像理解数据集,收集了日常生活中真实、复杂场景的照片,涵盖80个物体类别。与实验室里“一张图一个物体”的简单数据集不同,COCO的图像里往往同时出现多人多物,上下文关系复杂,因此更有挑战性。它的构建规格很明确:每张图片由5位不同标注者分别独立撰写一句英文描述,句子之间允许措辞不同,但都必须准确反映画面内容。

5句描述的设计蕴含着朴素的智慧:一人可能会漏看细节、写错用词,5人独立描述则能覆盖更丰富的表达。于是描述总量与图片数量之间有这样一个关系:

小林把《标准配图集》捧在手里掂了掂——165万句人工描述,这就是模型学习“看图说话”的百科全书。没有这样一本厚课本,AI的文笔好坏就无从谈起。

Ncap=5×NimgN_{\text{cap}} = 5 \times N_{\text{img}}
小结:COCO以“每图5句、真实场景、大规模”三大规格,成为图像描述的事实标准。
  1. 图片总数\(N_{\text{img}}\)表示COCO中有标注的图片数量,约为33万张。
    Nimg≈3.3×105N_{\text{img}} \approx 3.3 \times 10^5
  2. 倍数5每一张图片都要由5位标注者各写一句,因此乘数为5。
    5=每位标注者一句5 = \text{每位标注者一句}
  3. 描述总数相乘得到约165万条人工描述,构成评测的参考答案库。
    Ncap≈1.65×106N_{\text{cap}} \approx 1.65 \times 10^6

评测指标

出版社的老编辑们开始为“如何打分”争吵。有人主张数词——你写的词和参考答案重合得多,就给高分;有人说那不行,“狗”和“拉布拉多”明明是一个意思,可字面不重合。最终编辑部定下了四把尺子,分别量不同的维度。

第一把尺子BLEU:计算候选描述与参考描述之间的n-gram重合率,并加入简短惩罚,防止模型只写“好”这种词蒙混过关。第二把尺子METEOR:基于一元词对齐并融合精确率与召回率,对同义词更宽容。第三把尺子ROUGE-L:用最长公共子序列衡量句子流畅度与语序。第四把尺子CIDEr:把每个n-gram加上TF-IDF权重——越是罕见的词越有价值,再计算候选与参考的余弦相似度。四把尺子中,CIDEr与人类主观判断的相关性最高,是COCO榜单最受关注的指标。

CIDEr的计算过程可以写成:

小林发现,CIDEr就像一位严苛又懂行的审稿人:他更看重你说出了画面中“不寻常却关键”的信息——一个“拉布拉多”比一个“动物”价值高得多。四把尺子各有所长,真正评估时往往四者并用。

CIDErn(c,S)=1m∑j=1mgn(c)⋅gn(Sj)∥gn(c)∥⋅∥gn(Sj)∥\text{CIDEr}_n(c, S) = \frac{1}{m}\sum_{j=1}^{m} \frac{\mathbf{g}^n(c) \cdot \mathbf{g}^n(S_j)}{\|\mathbf{g}^n(c)\| \cdot \|\mathbf{g}^n(S_j)\|}
小结:BLEU重精度、METEOR重召回、ROUGE-L重语序、CIDEr重信息量,共同构成评分体系。
  1. TF-IDF向量化\(\mathbf{g}^n(c)\)表示把候选描述\(c\)的n-gram统计出来,并按稀有程度加权成向量。
    gn(c)∈Rd\mathbf{g}^n(c) \in \mathbb{R}^{d}
  2. 余弦相似度分子是两向量点积,分母是两向量模长的乘积,得到夹角的余弦值,取值在0到1之间。
    gn(c)⋅gn(Sj)∥gn(c)∥⋅∥gn(Sj)∥\frac{\mathbf{g}^n(c) \cdot \mathbf{g}^n(S_j)}{\|\mathbf{g}^n(c)\| \cdot \|\mathbf{g}^n(S_j)\|}
  3. 对参考句取平均每条参考描述\(S_j\)算出一个相似度,再对\(m\)条参考取平均。
    1m∑j=1mcos⁡(⋅)\frac{1}{m}\sum_{j=1}^{m} \cos(\cdot)

经典模型

小林偷偷观察最喜欢的资深编辑老周的写作习惯:老周拿到画,先整体扫一眼记住构图,然后动笔写词。神奇的是,他写“猫”时眼睛会落到画面里的猫身上,写“沙发”时目光又移向沙发——目光始终追随着正在写的词。这个细节启发了整个AI领域,也启发了经典的编码器-解码器框架。

模型同样分两步走。第一步,编码器(Encoder)用CNN(如ResNet)把整张图“通读一遍”,提取出一组视觉特征向量\(\{\mathbf{v}_1, \mathbf{v}_2, ……, \mathbf{v}_k\}\),相当于老周扫视全画形成的印象。第二步,解码器(Decoder)用LSTM或Transformer逐词生成句子,生成每个词时都借助注意力机制(Attention)从视觉特征中“抓取”自己需要的信息。

注意力机制的计算可以概括为:解码器先根据当前隐状态\(\mathbf{h}_{t-1}\)给每个视觉特征打分\(\alpha_{ti}\),再把所有特征按权重加权求和,得到上下文向量\(\mathbf{c}_t\)。LSTM的更新可表示为:

正是这个“目光追踪”机制,让模型在写"kitten"时能重点参考画面中猫所在区域的特征,而不是机械地平均使用整幅图的信息。小林的笔停了下来——他发现自己下意识的目光移动,竟然成了人工智能的精妙设计。

ht=LSTM(E(yt−1),ht−1,ct),ct=∑iαtivi\mathbf{h}_t = \text{LSTM}(\mathbf{E}(y_{t-1}), \mathbf{h}_{t-1}, \mathbf{c}_t), \quad \mathbf{c}_t = \sum_{i} \alpha_{ti} \mathbf{v}_i
小结:CNN编码器负责“看懂画”,LSTM解码器负责“组织词”,注意力机制负责“目光追踪”。
  1. 词嵌入\(\mathbf{E}(y_{t-1})\)把上一个单词映射成稠密向量。
    E(yt−1)∈Rde\mathbf{E}(y_{t-1}) \in \mathbb{R}^{d_e}
  2. LSTM状态更新基于上一步状态、上一步词向量和上下文向量,更新当前隐状态。
    ht=LSTM(⋅)\mathbf{h}_t = \text{LSTM}(\cdot)
  3. 注意力上下文\(\alpha_{ti}\)是对第\(i\)个视觉特征的权重,\(\mathbf{v}_i\)是CNN提取的特征向量,加权求和得到上下文。
    ct=∑iαtivi\mathbf{c}_t = \sum_{i} \alpha_{ti} \mathbf{v}_i

训练优化

小林刚开始练习写配图文字时,常常写到一半就卡壳。主编老周坐在旁边,一旦他写错词,就立即告诉他正确答案:“这里应该用'sits'而不是'is'。”小林记下后用修正后的词继续往下写——他进步神速。这种训练方式在AI领域有个形象的名字:Teacher Forcing(教师强制)。

在训练阶段,模型解码第\(t\)个词时,不把它自己上一时刻生成的词作为输入,而是直接输入真实描述中的上一个词。这样能让模型在正确的语境中学习,避免错误在生成的句子中提前“传染”开来。但如果训练和推理行为不一致——推理时根本没有老师递正确答案——就会产生暴露偏差(Exposure Bias),这是后话。

训练目标是最小化交叉熵损失:给定真实描述\(\mathbf{y}^*\),希望模型给真实词的概率尽量大。损失函数写成:

除了Teacher Forcing与交叉熵,工程师还会在推理阶段做评估调优:例如用束搜索(Beam Search)保留多条候选路径,或直接以CIDEr为奖励做强化学习微调,让模型的文风更贴近“评分尺”的口味。小林在笔记本上写道:训练时老师喂答案,推理时只能靠自己的才华——这中间的落差,正是优化要填补的鸿沟。

L=−1T∑t=1Tlog⁡P(yt∗∣y1:t−1∗,x)\mathcal{L} = -\frac{1}{T}\sum_{t=1}^{T} \log P(y_t^* | y_{1:t-1}^*, \mathbf{x})
小结:教师强制让训练更稳,损失函数指明方向,束搜索与强化调优直追高分。
  1. 真实词概率\(P(y_t^ | y_{1:t-1}^, \mathbf{x})\)表示在图像和前面真实词条件下,模型把第\(t\)个位置预测为真实词的概率。
    P(yt∗∣⋅)P(y_t^* | \cdot)
  2. 负对数概率越大,\(-\log P\)越小,所以加负号变成“越小越好”的损失。
    −log⁡P(yt∗∣⋅)-\log P(y_t^* | \cdot)
  3. 序列平均把整句每个位置的损失加起来再除以长度,得到一个可比较的标量。
    1T∑t=1T⋅\frac{1}{T}\sum_{t=1}^{T} \cdot

挑战趋势

小林练了一段时间后发现了规律:凡是画中有“猫”“沙发”这类常见元素,他写得又快又准;可一旦画里出现冷门的小物件,比如“老式转盘电话”“角落里的储物罐”,他就容易卡壳甚至糊弄过去。编辑部的老同事告诉他:这是全行业都头疼的挑战——数据偏差与长尾分布。

由于COCO中常见物体的样本数量远多于稀有物体,模型在训练时见过大量“猫和沙发”,却很少见到“转盘电话”。模型于是倾向于输出最常见、最稳妥的句子,导致描述趋同、缺乏多样性。为了解决这个问题,研究者一方面通过重采样、数据增强来缓解类别不均衡,另一方面在损失函数中引入多样性约束,鼓励模型对同一张图产出不同但都合理的句子。一个常见的策略是惩罚两个候选描述向量的相似度:

展望未来,以BLIP、Flamingo为代表的多模态大模型正在改变游戏规则:它们用海量图文对预训练,用更强的视觉-语言对齐能力,让图像描述从“背课文”升级为“融会贯通”。小林合上笔记本,窗外的绘本堆得像小山——他知道,AI写给画面的故事,才刚刚翻开第一页。

Ldiverse=−E(y1)⋅E(y2)∥E(y1)∥⋅∥E(y2)∥\mathcal{L}_{\text{diverse}} = -\frac{\mathbf{E}(y_1) \cdot \mathbf{E}(y_2)}{\|\mathbf{E}(y_1)\| \cdot \|\mathbf{E}(y_2)\|}
小结:数据偏差、长尾对象与多样性不足是当前瓶颈,多模态大模型正成为主流解法。
  1. 句子编码\(\mathbf{E}(y_1)\)和\(\mathbf{E}(y_2)\)是把两个候选描述整体编码成的向量。
    E(y1),  E(y2)\mathbf{E}(y_1), \; \mathbf{E}(y_2)
  2. 余弦相似度计算两个句向量的夹角余弦,值越接近1表示两句话越相似。
    E(y1)⋅E(y2)∥E(y1)∥⋅∥E(y2)∥\frac{\mathbf{E}(y_1) \cdot \mathbf{E}(y_2)}{\|\mathbf{E}(y_1)\| \cdot \|\mathbf{E}(y_2)\|}
  3. 取负优化在损失前加负号,最小化该损失就等于让相似度变小,逼着模型生成更不同的句子。
    −cos⁡(⋅)-\cos(\cdot)

AI 应用场景

电商商品图自动生成卖点文案

阶段:模型推理与文本生成

解决的问题:电商平台上架动辄上万个商品,运营人员逐张图为商品写标题与卖点描述,效率低且质量参差不齐。利用图像描述模型,系统可自动“看图说话”:识别商品品类、颜色、款式、场景搭配,生成符合平台语法的商品标题与卖点短句,再由运营一键微调。

具体案例:某服装电商接入图像描述流水线后,输入一张模特穿着红色连衣裙的棚拍图,模型输出“优雅红色连衣裙,收腰显瘦,适合晚宴与约会场景”。人工只改了三个字便通过审核,上架效率提升5倍。

视障人士的“读图之眼”

阶段:端侧推理与语音合成

解决的问题:视障人士无法快速理解眼前场景,传统辅助依赖志愿者实时连线,成本高。图像描述模型把手机摄像头拍的画面转成一句自然语言描述,再交给TTS读出来,实现“随手一拍,耳边有画”。

具体案例:一款无障碍App集成轻量化图像描述模型。用户举起手机对准餐桌,听到“桌上有一杯咖啡和一份三明治,旁边坐着一个人”;走到路口则听到“前方有斑马线和一辆停着的白色汽车”,帮助判断出行环境。

安防监控的自动场景报告

阶段:数据标注 → 模型训练 → 在线推理

解决的问题:监控摄像头每天产生海量视频,保安无法逐帧查看。图像描述模型以固定间隔抓拍关键帧,并生成结构化文字描述,配合告警规则实现“先叙述、后判断”的智能巡查。

具体案例:某园区部署该方案后,摄像头自动输出“傍晚六点,一人在西门岗亭前停留超过三分钟”“夜间停车场灯光异常,一辆黑色SUV逆行驶入”等描述,形成可检索的文本日志,事后查询时间从小时级压缩到秒级。

Python 演示

python62 行
# -*- coding: utf-8 -*-"""简版 CIDEr 指标演示: 给一条候选描述按 COCO 风格打分CIDEr: 用 TF-IDF 加权 n-gram 余弦相似度, 衡量 AI 描述与人工描述的重合度"""import refrom collections import Counterfrom math import log, sqrt  def tokenize(text):    return re.findall(r"[a-z0-9']+", text.lower())  def get_ngrams(tokens, n):    return [tuple(tokens[i:i + n]) for i in range(len(tokens) - n + 1)]  def build_ngram_counter(tokens, n):    return Counter(get_ngrams(tokens, n))  def compute_simple_cider(candidate, references, n=4, eps=1e-6):    cand_cnt = []    for i in range(1, n + 1):        cand_cnt.append(build_ngram_counter(tokenize(candidate), i))    scores = []    for ref in references:        ref_cnts = []        for i in range(1, n + 1):            ref_cnts.append(build_ngram_counter(tokenize(ref), i))        sims = []        for i in range(n):            grams = set(cand_cnt[i]) | set(ref_cnts[i])            num, d1, d2 = 0.0, 0.0, 0.0            for gram in grams:                wc = cand_cnt[i].get(gram, 0.0)                wr = ref_cnts[i].get(gram, 0.0)                freq = cand_cnt[i].get(gram, 0) + ref_cnts[i].get(gram, 0)                idf = log(2.0 + freq) if freq else 1.0                num += wc * wr * idf                d1 += wc * wc * idf                d2 += wr * wr * idf            sims.append(num / (sqrt(d1) * sqrt(d2) + eps))        scores.append(sum(sims) / n)    return sum(scores) / len(scores)  if __name__ == "__main__":    image_id = "000000000139"    references = [        "a man riding a wave on top of a surfboard",        "a person riding a surf board in the water",        "a man surfing on a surfboard in the ocean",        "a surfer riding a huge wave",        "a man on a surfboard riding a wave"    ]    candidate = "a man surfriding on a wave with a surfboard"    score = compute_simple_cider(candidate, references)    print("图片ID:", image_id)    print("候选描述:", candidate)    print("人工参考数:", len(references))    print("简版CIDEr =", round(score, 4))
目的:模拟COCO评测流程——一张图配5句人工参考,对模型生成的候选描述计算简化版CIDEr分数,直观体验“描述与参考答案多接近”。
  1. build_ngram_counter(tokens, n)把句子拆成n-gram并统计频次,像把书拆成短语卡片。
  2. for ref in references:逐条遍历5句人工参考,COCO每一张图就是这样的数据结构。
  3. grams = set(cand_cnt[i]) | set(ref_cnts[i])取候选与参考n-gram的并集,确保两边词汇都在评分范围内。
  4. freq = ... + ...统计该短语在两端出现总次数,出现越少、信息量越大。
  5. idf = log(2.0 + freq) if freq else 1.0简化的逆向文档频率权重,给“稀有短语”更高话语权。
  6. sims.append(num / (sqrt(d1) * sqrt(d2) + eps))余弦相似度公式的实现,算两个向量方向的接近程度。
  7. scores.append(sum(sims) / n)对1到4阶n-gram取平均,得到单条参考上的相似度。

常见误区

误区“图像描述和图像分类差不多吧?都是喂一张图,模型输出答案。给猫的图片输出'猫',不就已经完成描述了?”

正解图像分类输出的是一个离散类别名,相当于在说“这幅画里最重要的东西是猫”;而图像描述输出的是完整的自然语言句子,需要组织主语、谓语、宾语以及修饰关系,比如“一只橘色的猫蜷在沙发上打盹”。句子生成本质上是一个序列决策问题,需要逐词拼接并遵守语法,复杂度远高于单一标签。

为何常见:因为两者都落在“图像理解”的范畴里,输入都是图片,且早期博客常把分类当作图像理解入门,容易让人误以为描述只是分类的“高级版”。

误区“跑COCO任务,我的BLEU-4刷到了新高,这个模型肯定能当产品上线了!”

正解BLEU只看候选与参考的n-gram字面重合率,对同义词和语义等价表达不敏感。模型完全可能写出一句字面很像但事实错误的句子却拿到高分。行业惯例是四把尺子一起看,尤其重视与人类观感相关性更高的CIDEr;上线前还要人工抽检语法、事实性和可读性。

为何常见:BLEU出现早、实现简单、数值直观,很多工程团队习惯只盯这一个数,忽略了它只覆盖了“词汇重合”这一维度。

误区“我的模型在COCO Karpathy测试集上CIDEr遥遥领先,部署到真实App里效果肯定爆炸。”

正解COCO图像以自然场景照片为主,与电商白底图、监控画面、医学影像等领域分布差异巨大。一个在COCO上得高分的模型,遇到训练分布之外的“转盘电话”这类长尾物体照样会翻车。迁移到新场景时必须用少量领域数据微调,并在目标场景上重新评测。

为何常见:COCO名气大、榜单公开,容易让人把它当成“通用CV毕业证”,忽视了分布漂移是机器学习的老问题。

误区“模型用注意力定位到了猫的区域,这不就相当于把猫框出来了吗?注意力机制可以当检测器用!”

正解注意力机制输出的是每个视觉特征上的软权重分布,表示“生成某个词时参考了多少”,它既没有回归边界框,也没有输出类别置信度。热力图高亮区域与物体边界并不严格对应,可能同时覆盖多个物体或只覆盖物体局部。目标检测有专门的框回归与类别分类损失,二者目标不同,不能混用。

为何常见:注意力热力图的可视化效果和检测框一样有高亮区域,让人误以为两者在做同一件事。

误区“训练时老师一手一脚喂真实词,模型学得这么好,上线后我也可以照这个方式让它输出。”

正解训练时每个位置输入的是真实词,推理时模型输入的是自己上一时刻生成的词——一旦开头发生微小偏差,后续词就在“跑偏的语境”里继续生成,错误不断累积,这就是暴露偏差(Exposure Bias)。缓解手段包括计划采样(Scheduled Sampling)和在推理时用束搜索保留多条候选路径。

为何常见:训练与推理的解码方式在代码里往往只隔一行,学习者容易忽略这一行背后完全不同的条件分布。

面试题

Q1. COCO Captions 中每张图片通常由多少位标注者独立撰写描述?

单选题 · easy

  • A.1句
  • B.3句
  • C.5句← 正确答案
  • D.10句

答案:C。COCO的构建规格是每张图由5位标注者分别独立撰写一句英文描述,5句合在一起作为该图的参考答案集。1句太少无法覆盖表达的多样性,而10句在标注成本上不现实。所以正确答案是5句。

Q2. CIDEr 相比 BLEU 的主要改进点是什么?

单选题 · mid

  • A.引入句子长度惩罚
  • B.用 TF-IDF 突出信息量大的词← 正确答案
  • C.用强化学习训练模型
  • D.增加注意力机制

答案:B。BLEU对所有n-gram一视同仁地计算重合率,而CIDEr给每个n-gram加上TF-IDF权重——常见词权重低、罕见且关键的词权重高,再计算余弦相似度,因此与人类相关性更强。长度惩罚是BLEU自带机制,强化学习和注意力与该改进无直接关系。

Q3. 图像描述的经典模型框架是哪种?

单选题 · easy

  • A.生成对抗网络
  • B.编码器-解码器← 正确答案
  • C.自编码器
  • D.隐马尔可夫模型

答案:B。图像描述的主流框架是编码器-解码器:CNN编码器把图像转成视觉特征,LSTM或Transformer解码器逐词生成句子。生成对抗网络侧重生成图像,自编码器用于表示学习,隐马尔可夫模型则不是图像描述的主流方案。

Q4. 注意力机制在图像描述中的核心作用是什么?

单选题 · mid

  • A.对图片中的物体画检测框
  • B.生成每个词时聚焦相关视觉区域← 正确答案
  • C.压缩图像的分辨率
  • D.对训练数据做数据增强

答案:B。注意力机制为每个视觉特征计算权重,让模型生成“kitten“时重点参考猫所在区域的特征,生成”sofa”时把目光移向沙发区域。它输出的是软权重分布,不是目标检测框,也不负责压缩图像或增强数据。

Q5. 图像分类和图像描述任务的关键区别是什么?

单选题 · easy

  • A.输入图片的通道数不同
  • B.输出是单一标签还是完整句子← 正确答案
  • C.是否使用卷积神经网络
  • D.是否需要在GPU上运行

答案:B。图像分类输出一个离散类别名,图像描述输出一句有语法结构的自然语言,这是二者最本质的区别。两者输入都是常规图片,都可以用CNN编码,也都可以在GPU上训练,所以其他选项不是关键区别。

Q6. Teacher Forcing 指的是什么?

单选题 · mid

  • A.训练时输入真实词作为解码器输入← 正确答案
  • B.推理时也输入真实词
  • C.用教师模型的输出来训练学生模型
  • D.训练时完全不使用真实词

答案:A。Teacher Forcing是指在训练解码器时,把真实描述中的上一个词作为当前步的输入,而不是使用模型自己生成的词。推理时没有“老师”递答案,模型只能用自己生成的上一个词。C选项是知识蒸馏,D选项则完全相反。

Q7. COCO Captions 数据集的规模约是多少?

单选题 · hard

  • A.3.3万张图、16.5万句描述
  • B.33万张图、165万句描述← 正确答案
  • C.330万张图、1650万句描述
  • D.3300万张图、16500万句描述

答案:B。COCO包含约33万张真实复杂场景图片,每张图配5句人工描述,因此描述总量约165万句。选项A缩小了十倍,选项C和D则在规模上夸大了十到百倍。记住“33万张图、5句/图”这个规格就能快速估算。

Q8. 以下哪些属于 COCO 图像描述常用的评测指标?

多选题 · mid

  • A.BLEU评分← 正确答案
  • B.CIDEr评分← 正确答案
  • C.ROUGE评分← 正确答案
  • D.SSIM评分

答案:ABC。COCO评测体系包含BLEU、METEOR、ROUGE-L和CIDEr四把尺子,分别衡量n-gram精密度、召回对齐、语序和信息量。SSIM是图像质量评估指标,用于衡量两张图片的相似度,与文本描述无关。

Q9. 图像描述技术的实际应用场景有哪些?

多选题 · mid

  • A.商品图自动写文案← 正确答案
  • B.视障图文辅助← 正确答案
  • C.安全告警叙述← 正确答案
  • D.图像有损压缩

答案:ABC。图像描述把图片转成自然语言,天然适合电商文案生成、视障人群读图和安防场景文字日志。图像有损压缩是图像编解码任务,输出是像素而不是句子,与文本生成无关。

Q10. 关于图像描述模型的挑战,下列说法正确的有哪些?

多选题 · hard

  • A.数据存在频繁词偏差← 正确答案
  • B.长尾物体描述困难← 正确答案
  • C.模型可能输出模板化句子← 正确答案
  • D.单一指标即可衡量质量

答案:ABC。COCO中频繁物体样本多、稀有物体样本少,导致模型对常见词倾向性过高、长尾物体描述困难;同时模型为了拿高分倾向于输出安全模板句,造成多样性不足。评估时需综合BLEU、METEOR、ROUGE、CIDEr等多把尺子并配合人工抽检,单一指标不足以反映真实质量,故D错误。