文字识别,即给定一张文本图片,识别出图中所含文字并输出对应字符串,欢迎使用! 本模型适用于单行文字检测,如需体验通常场景下的多行文字,如标识牌、衣服上文字、多行手写体等,欢迎访问我们的创空间:OFA的中文OCR体验区。 我们还有如下ocr模型欢迎试用: 玩转OFA只需区区以下6行代码,就是如此轻松!如果你觉得还不够方便,请点击右上角
OFA(Oe-For-All)是通用多模态预训练模型,使用简单的序列到序列的学习框架统一模态(跨模态、视觉、语言等模态)和任务(如图片生成、视觉定位、图片描述、图片分类、文本生成等),详见我们发表于ICML 2022的论文:OFA: Uifyig Architectures, Tasks, ad Modalities Through a Simple Sequece-to-Sequece Learig Framework,以及我们的官方Github仓库https://github.com/OFA-Sys/OFA。
Github&bsp; | &bsp;Paper &bsp; | &bsp;Blog
OFA在文字识别(ocr recogize)在公开数据集(icludig RCTW, ReCTS, LSVT, ArT, CTW)中进行评测, 在准确率指标上达到SOTA结果,具体如下:
OFA-文字识别
News
文字识别是什么?
快速玩起来
Notebook
按钮,我们为你提供了配备了GPU的环境,你只需要在otebook里输入提供的代码,就可以把OFA玩起来了!from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
from modelscope.outputs import OutputKeys
# ModelScope Library >= 1.2.0
ocr_recogize = pipelie(Tasks.ocr_recogitio, model='damo/ofa_ocr-recogitio_documet_base_zh', model_revisio='v1.0.1')
result = ocr_recogize('https://xigche-data.oss-c-zhagjiakou.aliyucs.com/maas/ocr/ocr_documet_demo.pg')
prit(result[OutputKeys.TEXT]) # 就是去看个热
OFA是什么?
为什么OFA是文字识别的最佳选择?
Model Scee Web Documet Hadwritig Avg
SAR 62.5 54.3 93.8 31.4 67.3
TrasOCR 63.3 62.3 96.9 53.4 72.8
MaskOCR-base 73.9 74.8 99.3 63.7 80.8
OFA-OCR 82.9 81.7 99.1 69.0 86.0
模型训练流程
训练数据介绍
本模型训练数据集是复旦大学视觉智能实验室,数据链接:https://github.com/FudaVI/bechmarkig-chiese-text-recogitio 场景数据集图片采样:
训练流程
模型及fietue细节请参考OFA Tutorial 1.4节。
Fietue示例
import tempfile
from modelscope.msdatasets import MsDataset
from modelscope.metaifo import Traiers
from modelscope.traiers import build_traier
from modelscope.utils.costat import DowloadMode
trai_dataset = MsDataset(MsDataset.load(
'ocr_fudavi_zh',
subset_ame='scee',
amespace='modelscope',
split='trai[:100]',
dowload_mode=DowloadMode.REUSE_DATASET_IF_EXISTS).remap_colums({
'label': 'text'
}))
test_dataset = MsDataset(
MsDataset.load(
'ocr_fudavi_zh',
subset_ame='scee',
amespace='modelscope',
split='test[:20]',
dowload_mode=DowloadMode.REUSE_DATASET_IF_EXISTS).remap_colums({
'label': 'text'
}))
# 可以在代码修改 cofiguratio 的配置
def cfg_modify_f(cfg):
cfg.trai.hooks = [{
'type': 'CheckpoitHook',
'iterval': 2
}, {
'type': 'TextLoggerHook',
'iterval': 1
}, {
'type': 'IterTimerHook'
}]
cfg.trai.max_epochs=2
retur cfg
args = dict(
model='damo/ofa_ocr-recogitio_documet_base_zh',
trai_dataset=trai_dataset,
eval_dataset=test_dataset,
cfg_modify_f=cfg_modify_f,
work_dir = tempfile.TemporaryDirectory().ame)
traier = build_traier(ame=Traiers.ofa, default_args=args)
traier.trai()
模型局限性以及可能的偏差
训练数据集自身有局限,有可能产生一些偏差,请用户自行评测后决定如何使用。
相关论文以及引用
如果你觉得OFA好用,喜欢我们的工作,欢迎引用:
@article{wag2022ofa,
author = {Juyag Li ad
Xuacheg Re ad
Yichag Zhag ad
Gao Liu ad
Peg Wag ad
A Yag ad
Chag Zhou},
title = {Trasferrig Geeral Multimodal Pretraied Models to Text Recogitio},
joural = {CoRR},
volume = {abs/2212.09297},
year = {2022}
}
@article{wag2022ofa,
author = {Peg Wag ad
A Yag ad
Rui Me ad
Juyag Li ad
Shuai Bai ad
Zhikag Li ad
Jiaxi Ma ad
Chag Zhou ad
Jigre Zhou ad
Hogxia Yag},
title = {OFA: Uifyig Architectures, Tasks, ad Modalities Through a Simple Sequece-to-Sequece
Learig Framework},
joural = {CoRR},
volume = {abs/2202.03052},
year = {2022}
}
评论