← Home

影视字幕 OCR 的工程化实践:从传统检测识别到 VLM-based OCR

September 01, 2026

OCR VLM Video Translation

在视频翻译场景中,字幕 OCR 的最终目标并不是识别单张图片上的文字,而是从视频中提取带有时间戳、可以直接进入翻译和编辑流程的字幕结果。

这决定了 OCR 的评估方式不能只看单帧字符准确率。相邻帧中的识别结果如果不稳定,同一条字幕可能被拆成多条,不同字幕也可能被错误合并,最终都会转化为用户的删除、修改和补录成本。我的工作主要围绕这条链路展开:先完善传统 OCR 系统,再探索端到端的 VLM-based OCR,同时建立统一的评测和推理优化方法。

传统 OCR:从检测识别到字幕结果

接手项目时,系统采用 PaddleOCR V4,由检测和识别两个模型组成。视频首先被切分为多个 chunk,系统对视频帧进行文字检测,再根据检测框裁剪文字区域,最后交给识别模型得到文本,并按照 frame-chunk 层级汇总成全视频的字幕时间轴。

检测和识别分开,便于流式处理,也方便对不同模块分别优化。但对于影视字幕场景来说,画面中的有效字幕区域通常只占很小一部分,相比文档解析等富文本 OCR 场景更容易受到干扰:水印、画面提示语、角色介绍和画面内文字都可能被误识别为字幕;字幕本身的字体、颜色、背景和画面运动也会影响识别结果。因此,早期系统存在较多错识别、漏识别和结果波动,字幕归一和合并不稳定,最终导致用户编辑成本较高。

第一阶段的工作主要围绕算法优化和评估指标改进展开。

从字符准确率转向用户编辑成本

早期主要使用字符级和句子级错误率:

字符级错误率 = (错字 + 多字 + 漏字)/ 总字数

句子级错误率 = (错句 + 多句 + 漏句)/ 总句数

当系统正确率已经达到 98% 以上、错误率控制在 5% 以内后,单纯继续观察平均正确率或错误率,很难反映不同错误对产品的实际影响。例如,少量生僻字识别错误、整句漏检和重复生成字幕,在统计指标上表现不同,但用户都需要额外编辑;同时,传统指标也很难直接指引后续的算法优化。

因此,我们根据用户在产品中的实际操作,对删除、修改和新增等编辑行为进行加权,重新定义用户编辑成本相关的错误率和异常率。评估目标由“识别了多少文字”转向“用户最终需要付出多少编辑成本”,字幕归一和时序合并问题也由此被纳入核心质量目标。

基于真实难样本优化传统模型

在模型层面,我们将 PaddleOCR 升级到 V5,并基于影视字幕数据进行微调。V5 的预训练模型针对多场景、多文字类型以及生僻字等场景进行了增强;在此基础上,我们进一步加入线上回流的 hard case,并将影视场景中的少量生僻字加入识别字典。

生僻字的数量并不多,不会显著扩大整体字典规模,但这类字符在原方案中往往属于“遇到即 100% 识别失败”的确定性问题。因此,它是一个数量小、边界清晰、收益明确的长尾优化点。

经过模型升级、hard case 微调以及前后处理优化,传统 OCR 方案的错误率从约 5% 降低到 2%~3%,整体效果达到约 98%。另外,接手阶段通过修复原系统中的性能 Bug,使系统性能提升约 85%;这一结果来自系统问题修复,需要与后续针对模型、推理框架和 Pipeline 的性能探索区分开来。

从传统 OCR 转向 VLM-based OCR

传统检测-识别方案继续优化后,瓶颈逐渐从“文字能否被识别”转变为“画面中的文字是否属于目标字幕”。水印、提示语、角色信息和场景文字等干扰,单靠局部图像特征很难完全排除;字幕样式和背景的变化,也使传统识别模型逐渐接近效果上限。此前我们主要依靠算法规则进行过滤,但始终容易顾此失彼。

我们曾在传统 OCR 后加入基于 LLM 的语义纠错,尝试对字符级结果进行修正。它可以缓解部分识别错误,但也容易矫枉过正,把原本正确但不常见的表达修改成更符合语言习惯的文本。

因此,我们将目光转向能够结合整幅画面语义进行判断的 VLM-based OCR。早期使用通用 Qwen-VL 系列模型,通过图片理解、框选和提示工程验证端到端 OCR 的可行性。通用 VLM 已经能够覆盖大部分 OCR 场景,虽然基础模型的效果还没有达到线上水平,但我们的判断是,经过针对业务数据的 SFT,端到端模型有机会达到甚至超过传统 OCR。另一个限制是,通用 VLM 模型尺寸较大,在视频帧场景下的处理速度相对传统方案没有明显优势。

随着面向 OCR 垂直场景的开源 VLM 模型逐渐出现,模型参数量通常在 1B 左右,推理成本变得更加可控。我们对 15 个 VLM-based OCR 模型进行了评估和筛选,之后对 GLM-OCR 进行 LoRA 和 full SFT,最终将准确率提升到 99% 以上。

用 Benchmark 驱动吞吐优化

VLM 方案带来了更强的画面理解能力,但新的问题也随之出现:如何在保证效果的同时提高吞吐,降低推理成本和用户等待时间。

VLM 并不必然比传统 OCR 更慢。通过输入裁剪和推理框架优化,部分 VLM 模型可以获得超过传统链路的吞吐。但最高吞吐并不是唯一目标,模型效果、幻觉率、微调难度和服务成本同样需要纳入决策。最终选择 GLM-OCR,是在这些因素之间取得综合平衡后的结果,而不是简单选择速度最快的模型。

为了支撑这次探索,我们构建了影视字幕提取 Benchmark,并对 15 个 VLM-based OCR 模型进行统一评测。Benchmark 包含三类指标:

  1. 加权用户编辑成本:衡量字幕删除、修改和新增等操作带来的实际编辑负担;
  2. 模型幻觉率:包括视频没有字幕却提取出字幕,以及提取结果与画面字幕完全不匹配等情况;
  3. 模型推理吞吐:以单个视频样本提取完成的总耗时除以处理的图片帧数,衡量单位帧处理成本。

这三个指标分别对应结果是否可用、模型是否会产生错误提取,以及系统能否以可接受的成本处理完整视频,共同定义了影视字幕 OCR 的实际优化目标。

在此基础上,我借鉴 AutoResearch 范式,将推理优化设计成可重复的实验流程,系统探索模型、推理框架、输入处理和推理参数的组合,而不是依赖经验逐项调参。主要尝试包括:

实验表明,合理的输入裁剪可以显著提升吞吐,同时基本不影响识别精度;经过优化后,VLM 的吞吐具备超过传统 OCR 的潜力。AutoResearch 的价值不只是找到一个更快的模型,而是帮助我们在统一数据集和多目标指标下,系统比较模型、推理框架、输入处理和参数配置,最终得到更适合影视字幕提取场景的整体 Pipeline。

总结

这段工作的核心并不是简单替换 OCR 模型,而是逐步重新定义问题:

最终,完成了传统视频字幕 OCR 系统的改造和场景化训练,将传统方案效果提升到约 98%,异常率降低到 2% 以下;进一步微调 VLM-based OCR 模型,将准确率提升到 99% 以上,异常率控制在 1% 以下;同时建立影视字幕提取 Benchmark,并围绕多目标指标探索 VLM OCR 的推理吞吐优化。