ModelScope DIY 多种场景文字识别(1)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: ModelScope DIY 多种场景文字识别

导读:本文将介绍达摩院 OCR 整体布局,以及ModelScope上开源的一些重点模型。分享内容主要分为几个部分:

  • OCR基础科普
  • 通用场景OCR
  • 手写OCR
  • 表格OCR
  • OCR预训练技术

▌OCR基础科普  

1.文字意义

文字在我们日常生活中随处可见,它是重要的信息载体,也是语言的载体。无论在衣食住行,还是工作学习中,都是可以看到文字。文字不仅可以让我们了解到图片的内容,还可以帮我们记录一些很重要的信息。因此,文字在我们的日常生活中扮演着很重要的角色。如果没有了文字,我们是很难理解世界的。

image.png

无论是一些具体的图像还是视频,例如下图中可以看到建筑物,如果把它前面石匾上的字遮住,就无法快速知道这是什么建筑或者什么类型的建筑物。再譬如西湖旁边拍的一个路牌,如果遮住文字区域,我们也很难知道箭头代表着哪个方向的路。最近看世界杯,如果碰到了不熟悉的队伍,若号牌被遮住,我们也不知道哪个球员进的球。博物馆里面的一个甲骨文的碑刻,若没有文字我们将很难理解历史。因此文字是理解世界、记录历史的一种重要符号。

image.png

2.OCR类型

OCR的子类比较多,这里我们将其粗略的分为三类:DAR、STR、HCR。

DAR是文档图像分析与识别,也是当下的一个热门研究方向。文档在我们日常生活中较为常见如A4打印的文档、票据等都属于这个范畴。文档里有比较丰富的一些图文的元素,除了文字外,还可以有表格、柱状图、饼状图、印章等。

STR代表场景文字检测与识别。它通常是指我们看到的自然场景当中的文字,例如街景,实拍的一些商品等。这个方向为无人驾驶、智慧交通,以及实拍商品检索等方面提供了帮助。

HCR即在线文字识别,如常见的手写的输入法,银行的手写的一些签名,都可以认为是 HCR 的范畴。这个领域在深度学习出来之前就已经有了一定的发展,而且识别精度较高,在实际的商用过程中较为常见。例如我们很早就会用搜狗输入法,这个技术在传统的方法方面已经能做到比较高的水平了,到了深度学习阶段精度有了进一步的提高。

image.png

3.泛OCR研究问题和典型的处理流程

OCR是贯穿图像文本到语义理解的一种 AI 技术。与ASR类似,其核心都是语义理解,但相比之下,OCR的难点在于要理解的语义是二维的。

下面罗列了一些典型的技术。

第一步需要对图片做预处理,比较典型方法有预分类、图像增强、图像校正等。

第二步是版面分析。版面分析对于文档图像文字识别来说是非常重要的,如文本段落、文本块,页眉、页脚、表格、标题等,这些都是版面分析中常会涉及到的元素。另外有一些很重要的区域,我们需要对它单独进行分析,这个也属于版面分析,比如手写签名、logo、水印等。

第三步是比较核心的内容,把版面分析得到的区块进行细致的数字化,主要包括文字检测、文字识别,另外还有公式、图表的检测和分类等。

最后是语义处理,这也是近两年的热门研究。这个模块以前通常称为OCR的后处理阶段,是离用户最近的地方。涉及结构化的理解、信息抽取、表格识别等。达摩院在这些方面都有团队在做一些研究,并陆续开放相关的模型。

image.png

4.ModelScope中OCR模型

达摩院在工业界和学术界上开源出了一系列的模型,这些模型贯穿了从基础的预训练模型,到核心处理模型,再到行业应用模型。下图中灰色部分表示即将在 ModelScope 上开源出来的模型。

image.png

在文字检测开源的模型有行粒度文字检测、单词粒度文字检测。文字识别模型已经开源了通用场景文字识别、印刷文字识别、手写文字识别。在结构理解方面目前开源了表格检测和还原。在行业应用方面,选取了一些比较典型的模型开放出来。如车牌检测分类识别、自然场景文字检测识别等。

达摩院OCR团队会在modelscope上全栈布局,并将最新的研究成果公开,最终能够促进行业落地。希望这些开源的模型,无论在学术界还是工业界,为大家提供帮助。

▌DIY通用场景OCR  

接下来介绍如何利用在ModelScope上面公开的模型定制一些OCR pipeline。

首先介绍通用场景的pipeline。我们的通用场景主要包括三种场景,网络图、文档图、和街景图。利用这三大类数据集,训练了通用的文字检测和识别。

image.png

如何定制通用的 OCR 的pipeline。首先在model scope 找到通用行检测和行识别模型,下载对应的开源模型。另外现在平台可以兼容不同框架下的模型。接下来启动Notebook 编程界面(包括CPU 或GPU镜像)就可以进行 DIY 编程。

image.png

具体实现如下,首先加载了两个模型(检测模型和识别模型),并串联主函数。第二步是文字检测流程,即从检测的结果中提取出多边形区域结果输出。第三步文字识别流程,遍历多边形检测区域,对每一个区域进行剪裁,处理成文字行,调用文字行的识别模型。上述就是一个文字检测和识别的串联流程。

image.png

同时也可以通过在线体验(https://modelscope.cn/studios/damo/cv_ocr-text-spotting/summary),通过上传一张图片,选择相应场景,输出文字检测的区域及文字行识别结果。


对于上述内容,这里简单介绍一下相关的实现原理。对于文字识别网络构建,其中我们采用ConvTransformer 替换了以前的LSTM 特征提取模块,并且在实践中验证了这种模式的效果要优于之前的模型。整个模型流程大致为:先输入一张图片,进行一些视觉的 embedding提取,这里可以选用常见的一些骨干网络,如resNet等;对提取出的卷积 patch 进行一些处理,输入到 ConvTransformer模块,最后解码出来做CTC 对齐。(https://www.modelscope.cn/models/damo/cv_convnextTiny_ocr-recognition-general_damo/summary

image.png


相关文章
|
3月前
|
机器学习/深度学习 人工智能 文字识别
通用场景OCR文本识别任务-baseline学习(PaddleOCR)
通用场景OCR文本识别任务-baseline学习(PaddleOCR)
71 0
|
9月前
|
机器学习/深度学习 人工智能 文字识别
ModelScope DIY 多种场景文字识别(2)
ModelScope DIY 多种场景文字识别
|
1月前
|
API 语音技术
ModelScope-FunASR**有支持热词又支持时间戳的模型**。
【2月更文挑战第30天】ModelScope-FunASR**有支持热词又支持时间戳的模型**。
26 2
|
1月前
|
人工智能 API 决策智能
Modelscope结合α-UMi:基于Modelscope的多模型协作Agent
基于单个开源小模型的工具调用Agent,由于模型容量和预训练能力获取的限制,无法在推理和规划、工具调用、回复生成等任务上同时获得比肩大模型等性能。
|
2月前
|
文字识别 并行计算 语音技术
ModelScope问题之下载模型文件报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
207 3
|
2月前
|
数据采集 自然语言处理 搜索推荐
ModelScope问题之模型encoder配置报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
76 0
|
1月前
|
人工智能 达摩院 自然语言处理
超好用的开源模型平台,ModelScope阿里达摩院
超好用的开源模型平台,ModelScope阿里达摩院
|
2月前
|
人工智能 自然语言处理 搜索推荐
魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
【2月更文挑战第9天】魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
160 3
|
2月前
|
API
使用ModelScope平台进行模型验证时
【2月更文挑战第9天】使用ModelScope平台进行模型验证时
59 4
|
1月前
modelscope-funasr怎么拿验证集评估微调后的模型效果呢
【2月更文挑战第19天】modelscope-funasr怎么拿验证集评估微调后的模型效果呢
25 1

相关产品

  • 文字识别