各场景文本检测模型: 各场景文本识别模型: 整图OCR能力: 轻量化模型DEMO: 欢迎使用! 本模型是基于分割的文字检测方法,把文字行的区域分割文字中心区域和文字边界区域,通过处理得到文字完整区域,最后得到文字区域的外接框。详见:DBNet(Paper) 本模型主要用于给输入图片输出图中文字外接框坐标,具体地,模型输出的框的坐标为文字框四边形的四个角点的坐标,左上角为第一个点,按照顺时针的顺序依次输出各个点的坐标,分别为(x1,y1)(x2,y2)(x3,y3)(x4,y4)。用户可以自行尝试各种输入图片。具体调用方式请参考代码示例。 在安装完成ModelScope之后即可使用ocr-detectio的能力。 测试时的主要预处理和后处理如下: 如果想体验完整的OCR能力,对整图中的文字进行检测识别,可以体验创空间应用。对于文字检测模型和文字识别模型的串联,可以参考说明文档。 本模型行检测模型训练数据集是MTWI/ReCTS/SROIE/LSVT,训练数据数量约53K。本模型利用imageet预训练参数进行初始化,然后在训练数据集上进行训练,先利用640x640尺度训练200epoch。 支持使用自定义数据对DBNet行检测模型进行微调训练。 准备训练数据和测试数据(比如发票数据集SROIE),数据目录结构如下 其中,trailist.txt(以及testlist.txt)每行为图片文件名,如下所示: 标注格式采用ICDAR2015的格式,即标注文件1.txt每行为‘文字框坐标+识别标签’的格式,如下所示: 设定相关配置参数,运行代码进行微调训练,训练结果保存在'./workdirs'目录下。 完成微调训练后,对测试集进行评测,支持ICDAR15评测标准。 也可以使用微调训练后的模型对单张图片进行推理测试。读光文字检测
News
传送门
模型描述
期望模型使用方式以及适用范围
如何使用
预处理和后处理
代码范例
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
ocr_detectio = pipelie(Tasks.ocr_detectio, model='damo/cv_reset18_ocr-detectio-db-lie-level_damo')
result = ocr_detectio('https://modelscope.oss-c-beijig.aliyucs.com/test/images/ocr_detectio.jpg')
prit(result)
完整OCR能力体验
模型局限性以及可能的偏差
模型训练
训练数据和训练流程简介
模型微调训练示例
训练数据准备
├── custom_data
│ ├── trai_list.txt
│ ├── trai_images
│ │ └── 1.jpg
│ ├── trai_gts
│ │ └── 1.txt
│ ├── test_list.txt
│ ├── test_images
│ │ └── 2.jpg
│ ├── test_gts
│ │ └── 2.txt
1.jpg
482.0,524.0,529.0,524.0,529.0,545.0,482.0,545.0,8.70
556.0,525.0,585.0,525.0,585.0,546.0,556.0,546.0,SR
设定训练参数配置,进行微调训练
### 请确认您当前的modelscope版本,训练/微调流程在modelscope==1.4.0及以上版本中
### 建议使用GPU环境
import os
from modelscope.metaifo import Traiers
from modelscope.traiers import build_traier
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
from modelscope.hub.sapshot_dowload import sapshot_dowload
model_id = 'damo/cv_reset18_ocr-detectio-db-lie-level_damo'
cache_path = sapshot_dowload(model_id) # 模型下载保存目录
cofig_file = os.path.joi(cache_path, 'cofiguratio.jso') # 模型参数配置文件,可以自定义
pretraied_model = os.path.joi(cache_path, 'db_reset18_public_lie_640x640.pt') # 预训练模型
saved_dir = './workdirs' # 训练结果保存目录
saved_fietue_model = os.path.joi(saved_dir, 'fial.pt') # 训练保存的模型路径
saved_ifer_model = os.path.joi(saved_dir, 'pytorch_model.pt') # 训练模型转换成推理模型的路径
kwargs = dict(
cfg_file=cofig_file,
gpu_ids=[
0,
],
batch_size=8,
max_epochs=5,
base_lr=0.007,
load_pretrai=True,
pretrai_model=pretraied_model,
cache_path=cache_path,
trai_data_dir=['./custom_data/'],
trai_data_list=[
'./custom_data/trai_list.txt'
],
val_data_dir=['./custom_data/'],
val_data_list=['./custom_data/test_list.txt'])
traier = build_traier(
ame=Traiers.ocr_detectio_db, default_args=kwargs)
traier.trai()
模型评测和优化模型推理
# 接上代码
traier.evaluate(checkpoit_path=saved_fietue_model)
# 接上代码
cmd = 'cp {} {}'.format(cofig_file, saved_dir)
os.system(cmd)
ocr_detectio = pipelie(Tasks.ocr_detectio, model=saved_dir)
result = ocr_detectio('https://modelscope.oss-c-beijig.aliyucs.com/test/images/ocr_detectio.jpg')
prit(result)
转ox和ox推理
# 导出模型
import os
import shutil
import tempfile
from modelscope.models import Model
from modelscope.utils.costat import Tasks
from modelscope.exporters import Exporter
tmp_dir = tempfile.TemporaryDirectory().ame
os.makedirs(tmp_dir, exist_ok=True)
model_id = 'damo/cv_reset18_ocr-detectio-db-lie-level_damo'
model = Model.from_pretraied(model_id)
Exporter.from_model(model).export_ox(
iput_shape=(1,3,800,800), output_dir=tmp_dir)
# 使用模型
import cv2
import umpy as p
import oxrutime as ort
from modelscope.models.cv.ocr_detectio.utils import boxes_from_bitmap
## 预处理
image = cv2.imread(image_path)
height, width, _ = image.shape
image_resize = cv2.resize(image, (800,800))
image_resize = image_resize - p.array([123.68, 116.78, 103.94], dtype=p.float32)
image_resize /= 255.
image_resize = p.expad_dims(image_resize.traspose(2, 0, 1), axis=0)
## ox推理
ort_sessio = ort.IfereceSessio(self.tmp_dir+'/model.ox')
outputs = ort_sessio.ru(['pred'], {'images': image_resize})
## 后处理
thresh = 0.2
pred = outputs[0]
segmetatio = pred > thresh
boxes, scores = boxes_from_bitmap(pred, segmetatio, width,
height, is_umpy=True)
引用
@iproceedigs{liao2020real,
author={Liao, Mighui ad Wa, Zhaoyi ad Yao, Cog ad Che, Kai ad Bai, Xiag},
title={Real-time Scee Text Detectio with Differetiable Biarizatio},
booktitle={Proc. AAAI},
year={2020}
}
点击空白处退出提示
评论