基于视觉模型的 OCR 识别探究

目前,在日常工作中需要经常用到 OCR,而目前一些在线工具已不能满足需求,需要更高效的 OCR 工具来解决日常工作需要,于是把探究方向转向了视觉大模型。

OCR及其原理

OCR(Optical Character Recognition,光学字符识别)是一种将图像中的文字转换为可编辑文本的技术。广泛应用于文档数字化、车牌识别、手写识别等领域。其核心流程包括图像预处理、文本检测、字符识别和后处理

传统的 OCR 识别技术主要分为三类,对比如下:

技术类型 优点 缺点 适用场景
模板匹配 实现简单,速度快 对字体、大小变化敏感 固定格式文档识别
特征提取 灵活性较高,鲁棒性较好 特征设计复杂,对噪声敏感 印刷体识别、简单手写识别
深度学习 精度高,鲁棒性强,自动化 需要大量数据,计算资源要求高 复杂场景、多语言OCR

典型的开源方案代表是 Tesseract。此外,主要大厂也都提供了相关的 API 服务。

新方向:视觉模型

基于视觉模型的 OCR 识别依靠深度学习、统一框架等原理,采用端到端的方式,直接从图像中提取文本信息。对于复杂场景(如自然场景文本、多语言、手写体)有更强的适应能力,并且不需要人工预先设计识别规则和字符特征,模型会自动学习最优特征。

与传统 OCR 识别的对比如下:

性能对比 数据需求&泛化能力 适用场景
传统 OCR 1. 在固定字体、清晰背景下的精度较高,但在复杂场景中表现较差 2. 对噪声、形变、字体变化等鲁棒性较低 3. 计算速度较快,适合实时性要求高的场景 1. 需要少量标注数据,主要依赖人工设计的规则和特征 2. 泛化能力有限,难以适应新场景和新字体 1. - 固定格式文档(如银行支票、发票) 2. 印刷体文本识别 3. 对实时性要求高的场景(如车牌识别)
视觉模型 1. 在复杂场景(如自然场景、多语言、手写体)中精度显著高于传统OCR 2. 对噪声、形变、字体变化等有更强的鲁棒性 3. 计算速度较慢,但随着模型优化和硬件加速,逐渐接近实时性要求 1. 需要大量标注数据进行预训练和微调 2. 泛化能力强,能够适应多种场景、语言和字体 1. 自然场景文本识别(如街景、广告牌) 2. 多语言、多字体文本识别 3. 手写体识别 4. 复杂背景下的文本提取

开源的视觉模型很多,代表有 Qwen2-VLLLAMA 以及 PaddleOCR。此外,很多云服务也都提供了相关的 API 接口,如 Google Vision API

以上内容参考了 deepseek-v3,请谨慎识别

本地接入视觉模型

以 Meta 的 LLAMA 为例,介绍本地接入模型的流程:

  1. 安装 Ollama
  2. 拉取 LLAMA 模型:ollama run llama3.2-vision:11b
  3. 用 React/Vue 等框架的脚手架创建一个项目,核心代码如下:
js 复制代码
// 引入 ollama
import { Ollama } from 'ollama/browser' // 浏览器端

import { Ollama } from 'ollama' // node端接入

// 其它代码

const response = await ollama.generate({
  model: 'llama3.2-vision:11b', // 也可以是 LLava 等其它 Ollama 支持的模型
  prompt: 'Please look at this image and extract all the text content. Structure the output as JSON',
  stream: false,
  images: [图片的 base64 数据], 
  // 以 json 形式输出识别结果,也可以通过 prompt 让 llama 以 markdown/text 等格式输出结果
  format: 'json' // format 是 ollama 的接口参数
})

console.log(response?.response) // 输出识别结果

以上,就可在本地接入模型。也可以在 docker 搜索:debounce/ollama-ocr,快速运行 demo。

ollama ocr 源代码:github.com/dwqs/ollama...

OCR 识别 PK

在工作中我用到 OCR 的场景主要有两个:

  1. 识别某段简短文本
  2. 识别接口数据

结合这两个具体场景,对各方案进行一个识别对比:

掘金的编辑器不支持在表格中插入图片,更清晰的对比结果请点击原文查看

从上述对比结果看,有如下结论:

  • llama 对中文的识别支持不太好,Text + Image 场景下,对英语的支持是最优的
  • llama / MiniCPM / Qwen2-VL 对接口数据的识别是最强的,识别结果可以直接用,其它几个模型都需要二次排版
  • PaddleOCR / MiniCPM / Qwen2-VL 都支持中文识别

DeepSeek

DeepSeek 上月开源了两款模型:DeepSeek-VL2DeepSeek-V3。V3 的发布在国内外的 AI 领域都引发了很多的讨论,它以一个极低的训练成本达到了极佳的训练效果,无论是和 Meta 的开源模型 LLaMA3.1 还是和闭源模型 GPT-4o/Claude-3.5 对比,各项测评指标都不分伯仲或略微领先,但训练成本预估是后三者的 1/11 - 1/8,人送 AI 界的「拼多多」, 每百万输入 tokens 的价格低到了 0.1 CNY。

DeepSeek 是杭州的量化基金公司幻方量化开发的,A股股民对此作出了不可磨灭的贡献🐶🐶🐶

VL2 是视觉模型,我用上面三张图测试了 VL 的第一个版本 ,从测试结果看,第一个版本对中文的识别跟 llama 不分上下😂😂😂。鉴于 DeepSeek-V3 相较于 DeepSeek-V2 有了很大的飞跃,我对于 VL2 的改进也有所期待,后续可以研究一下怎么进行本地接入。

我也拿图片去试了 DeepSeek-V3 模型,发现其识别结果也不错(从上到下,依次是上面四张图的结果):

看来在日常工作中,大语言模型也是 OCR 识别应用的一个方向。如果想体验 DeepSeek V3,可以下载 VSCode 的 Cline 插件,配置 DeepSeek 作为接口服务方用于日常工作:

资源

相关推荐
得帆云低代码1 小时前
什么是AI网关?AI网关如何为企业私有化部署筑防
openai
阿里云大数据AI技术1 小时前
OpenSearch 视频 RAG 实践
数据库·人工智能·llm
大模型开发2 小时前
零基础打造AI智能体实战教学(10)----零基础用Coze打造短视频自动洗稿工作流
llm·agent·coze
Georgewu2 小时前
【AI大模型入门指南】机器学习入门详解
aigc·openai
商汤万象开发者4 小时前
懒懒笔记 | 课代表带你梳理【RAG课程 19:基于知识图谱的RAG】
llm
俞乾4 小时前
Context Engineering(上下文工程)是 AI Agent 成功的关键吗?
openai·ai编程
字节跳动视频云技术团队5 小时前
ICME 2025 | 火山引擎在国际音频编码能力挑战赛中夺得冠军
llm·aigc·音视频开发
AI大模型6 小时前
COZE实战部署(二)—— 创建Coze应用
程序员·llm·coze
聚客AI6 小时前
大模型学习进阶路线图:从Prompt到预训练的四阶段全景解析
人工智能·llm·掘金·日新计划
大模型开发6 小时前
零基础打造AI智能体实战教学(9)----把Coze AI助手部署到Discord频道教程
llm·agent·coze