读光-票证检测矫正模型

我要开发同款
匿名用户2024年07月31日
24阅读
开发技术pytorch
所属分类ai、文字识别、文字检测、卡证检测矫正、光学字符识别、Alibaba、OCR、cv
开源地址https://modelscope.cn/models/iic/cv_resnet18_card_correction
授权协议Apache License 2.0

作品详情

票证检测矫正模型介绍

【读光商用矫正模型开源,快来体验吧】票证检测矫正模型在实际生活中有着广泛的需求,例如信息抽取、图像质量判断、证件扫描、票据审计等领等场景,可以大幅提高工作效率和准确性。本次 读光团队 开源了商用票证检测矫正模型,基于海量的真实数据训练,可以从容应对多种复杂场景的票证检测矫正任务,该模型具有以下优点:

  • 支持任意角度、多卡证票据等混贴场景,同时检测输入图像任意角度的多个子图区域;
  • 基于海量真实数据训练,效果满足国内常见的卡证票据的检测矫正需求;
  • 支持子图区域复印件判断、四方向判断,准确率高达 99%;
  • 矫正效果、推理速度远高于 modelScope 同类模型,详见本文测试报告。

模型效果评测

卡证场景

评测方式 det_precison det_recall det_f-score 方向判别 复印件判别 推理速度(FPS)
卡证检测矫正模型 99.63% 96.80% 98.19% 无此能力 无此能力 1.83
读光-票证检测矫正模型 99.64% 99.85% 99.75% 99.78% 99.70% 14.30

备注:1)私有测试集,该测试集包含身份证、银行卡、驾驶证、行驶证等常见的卡证数据共计 1200 张;2)测试的速度均不包含后处理的图像透视变换;测试使用 GPU 型号:Tesla A100-PCIE-80GB

票据场景

评测方式 det_precison det_recall det_f-score 方向判别 复印件判别 推理速度(FPS)
卡证检测矫正模型 98.90% 82.43% 89.92% 无此能力 无此能力 1.79
读光-票证检测矫正模型 99.92% 100.00% 99.96% 99.83% 99.17% 12.55

备注:1)私有测试集,该测试集包含营业执照、增值税发票、机动车销售发票、出生证明等常见的票据和资质数据共计 1200 张;2)测试的速度均不包含后处理的图像透视变换;测试使用 GPU 型号:Tesla A100-PCIE-80GB

模型描述

下图是实现流程:输入图片,基于 Resnet18-FPN 提取特征后,在 1/4 尺寸处通过三条分支分别识别出票证的中心点、偏移量(中心点到4个顶点距离)、中心点偏移量(为了得到精准的中心点),即可解码数出票证区域的四边形框;再用透视变换将票证拉平得到矫正后的票证信息;与此同时,分类分支识别出子图朝向,用于而切割的子图转正。

pipeline

效果展示

下图是模型效果:

pipeline_vis

期望模型使用方式以及适用范围

输入图片,模型自动检测出所有票证并矫正为水平图片。用户可以自行尝试各种输入图片。具体调用方式请参考代码示例。

如何使用

在安装完成 ModelScope 之后即可使用 card-detection-correction 的能力。

算法流程

测试时的主要预处理和后处理如下:

  • 图像预处理:将输入图片按照比例缩放,长边 Resize 到 768,短边 Pad 到长短边相等,同时有减均值、除方差等归一化操作。
  • 模型卡证区域检测:对输入图像中的卡证票据区域进行检测,并对 卡证票据的方向复印件类型 进行分类;
  • 后处理矫正:根据 卡证区域检测框卡证票据的方向 对卡证区域进行透视变化,并转为水平方向;

使用范例

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
card_detection_correction = pipeline(Tasks.card_detection_correction, model='damo/cv_resnet18_card_correction')
result = card_detection_correction('https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/card_detection_correction.jpg')
print(result)

输出字段定义

字段名称 说明
polygons 框检得到的任意四边形四个顶点,依次为左上、右上、右下、左下
scores 框检置信度,标识检测的可行度,值域 0 到 1 之间
labels 卡证方向分类,枚举类型,0、1、2、3 依次表示卡证顺时针旋转 90度、180度、270度
layout 复印件分类,枚举类型,0 表示非复印件,1 表示复印件
output_imgs 矫正后的子图区域像素值

所有字段第一个维度的长度相等且一一对应,为图片中票证的数量。比如polygons[0]、scores[0]、labels[0]、layout[0]、output_imgs[0]表示第一个子图的坐标、置信度、方向、是否复印件、拉平后的子图。

模型训练流程

本模型利用 imageNet 预训练参数进行初始化,然后在海量真实场景训练数据集上进行训练;本模型暂不支持用户自行训练;

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论