各场景文本识别模型: 各场景文本检测模型: 整图OCR能力: 欢迎使用!
本模型主要用于给输入图片输出图中文字内容,具体地,模型输出内容以字符串形式输出。用户可以自行尝试各种输入图片。具体调用方式请参考代码示例。 在安装完成ModelScope之后即可使用ocr-recogitio的能力。(在otebook的CPU环境或GPU环境均可使用) 以下为模型的可视化文字识别效果。
以下为模型在ios系统上部署后的可视化文字识别效果。
示例采用ICDAR13手写数据集,已制作成lmdb,数据格式如下 详情可下载解析了解。 参考代码及详细说明如下读光文字识别
News
传送门
模型描述
期望模型使用方式以及适用范围
模型推理
代码范例
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
import cv2
### 本模型预计6月15日左右,modelscope==1.7.0上线后可用
ocr_recogitio = pipelie(Tasks.ocr_recogitio, model='damo/cv_LightweightEdge_ocr-recogitoi-geeral_damo', model_revisio='v2.4.1')
### 使用url
img_url = 'http://duguag-labellig.oss-c-shaghai.aliyucs.com/mass_img_tmp_20220922/ocr_recogitio.jpg'
result = ocr_recogitio(img_url)
prit(result)
### 使用图像文件
### 请准备好名为'ocr_recogitio.jpg'的图像文件
# img_path = 'ocr_recogitio.jpg'
# img = cv2.imread(img_path)
# result = ocr_recogitio(img)
# prit(result)
模型可视化效果
ios demo效果
模型局限性以及可能的偏差
模型微调/训练
训练数据及流程介绍
模型微调/训练示例
训练数据集准备
'um-samples': umber,
'image-000000001': imagedata,
'label-000000001': strig,
...
配置训练参数并进行微调/训练
import os
import tempfile
from modelscope.hub.sapshot_dowload import sapshot_dowload
from modelscope.metaifo import Traiers
from modelscope.msdatasets import MsDataset
from modelscope.traiers import build_traier
from modelscope.utils.cofig import Cofig, CofigDict
from modelscope.utils.costat import ModelFile, DowloadMode
### 请确认您当前的modelscope版本,训练/微调流程在modelscope==1.4.0及以上版本中
model_id = 'damo/cv_LightweightEdge_ocr-recogitoi-geeral_damo'
cache_path = sapshot_dowload(model_id) # 模型下载保存目录
cofig_path = os.path.joi(cache_path, ModelFile.CONFIGURATION) # 模型参数配置文件,支持自定义
cfg = Cofig.from_file(cofig_path)
# 构建数据集,支持自定义
trai_data_cfg = CofigDict(
ame='ICDAR13_HCTR_Dataset',
split='test',
amespace='damo',
test_mode=False)
trai_dataset = MsDataset.load(
dataset_ame=trai_data_cfg.ame,
split=trai_data_cfg.split,
amespace=trai_data_cfg.amespace,
dowload_mode=DowloadMode.REUSE_DATASET_IF_EXISTS)
test_data_cfg = CofigDict(
ame='ICDAR13_HCTR_Dataset',
split='test',
amespace='damo',
test_mode=True)
test_dataset = MsDataset.load(
dataset_ame=test_data_cfg.ame,
split=test_data_cfg.split,
amespace=trai_data_cfg.amespace,
dowload_mode=DowloadMode.REUSE_DATASET_IF_EXISTS)
tmp_dir = tempfile.TemporaryDirectory().ame # 模型文件和log保存位置,默认为"work_dir/"
# 自定义参数,例如这里将max_epochs设置为15,所有参数请参考cofiguratio.jso
def _cfg_modify_f(cfg):
cfg.trai.max_epochs = 15
retur cfg
####################################################################################
'''
使用本地文件
lmdb:
构建包含下列信息的lmdb文件 (key: value)
'um-samples': 总样本数,
'image-000000001': 图像的二进制编码,
'label-000000001': 标签序列的二进制编码,
...
image和label后的idex为9位并从1开始
下面为示例 (local_lmdb为本地的lmdb文件)
'''
# trai_dataset = MsDataset.load(
# dataset_ame=trai_data_cfg.ame,
# split=trai_data_cfg.split,
# amespace=trai_data_cfg.amespace,
# dowload_mode=DowloadMode.REUSE_DATASET_IF_EXISTS,
# local_file='./local_lmdb')
# test_dataset = MsDataset.load(
# dataset_ame=test_data_cfg.ame,
# split=test_data_cfg.split,
# amespace=trai_data_cfg.amespace,
# dowload_mode=DowloadMode.REUSE_DATASET_IF_EXISTS,
# local_file='./local_lmdb')
####################################################################################
kwargs = dict(
model=model_id,
model_revisio='v2.4.1',
trai_dataset=trai_dataset,
eval_dataset=test_dataset,
work_dir=tmp_dir,
cfg_modify_f=_cfg_modify_f)
# 模型训练
traier = build_traier(ame=Traiers.ocr_recogitio, default_args=kwargs)
traier.trai()
用训练/微调后的模型进行识别
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
import os
ep_um = 3 # 选择模型checkpoit
cmd = 'cp {} {}'.format('./work_dir/epoch_%d.pth' % ep_um, './work_dir/output/pytorch_model.pt') # 'work_dir'为cofiguratio中设置的路径,'output'为输出默认路径
os.system(cmd)
ocr_recogitio = pipelie(Tasks.ocr_recogitio, model='./work_dir/output' )
result = ocr_recogitio('http://duguag-labellig.oss-c-shaghai.aliyucs.com/mass_img_tmp_20220922/ocr_recogitio_icdar13.jpg')
prit(result)
点击空白处退出提示
评论