票证检测矫正模型介绍
【读光商用矫正模型开源,快来体验吧】票证检测矫正模型在实际生活中有着广泛的需求,例如信息抽取、图像质量判断、证件扫描、票据审计等领等场景,可以大幅提高工作效率和准确性。本次 读光团队 开源了商用票证检测矫正模型,基于海量的真实数据训练,可以从容应对多种复杂场景的票证检测矫正任务,该模型具有以下优点:
- 支持任意角度、多卡证票据等混贴场景,同时检测输入图像任意角度的多个子图区域;
- 基于海量真实数据训练,效果满足国内常见的卡证票据的检测矫正需求;
- 支持子图区域复印件判断、四方向判断,准确率高达 99%;
- 矫正效果、推理速度远高于 modelScope 同类模型,详见本文测试报告。
模型效果评测
卡证场景
评测方式 |
det_preciso |
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_preciso |
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
模型描述
下图是实现流程:输入图片,基于 Reset18-FPN 提取特征后,在 1/4 尺寸处通过三条分支分别识别出票证的中心点、偏移量(中心点到4个顶点距离)、中心点偏移量(为了得到精准的中心点),即可解码数出票证区域的四边形框;再用透视变换将票证拉平得到矫正后的票证信息;与此同时,分类分支识别出子图朝向,用于而切割的子图转正。

效果展示
下图是模型效果:

期望模型使用方式以及适用范围
输入图片,模型自动检测出所有票证并矫正为水平图片。用户可以自行尝试各种输入图片。具体调用方式请参考代码示例。
如何使用
在安装完成 ModelScope 之后即可使用 card-detectio-correctio 的能力。
算法流程
测试时的主要预处理和后处理如下:
- 图像预处理:将输入图片按照比例缩放,长边 Resize 到 768,短边 Pad 到长短边相等,同时有减均值、除方差等归一化操作。
- 模型卡证区域检测:对输入图像中的卡证票据区域进行检测,并对
卡证票据的方向
和 复印件类型
进行分类;
- 后处理矫正:根据
卡证区域检测框
和 卡证票据的方向
对卡证区域进行透视变化,并转为水平方向;
使用范例
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
card_detectio_correctio = pipelie(Tasks.card_detectio_correctio, model='damo/cv_reset18_card_correctio')
result = card_detectio_correctio('https://modelscope.oss-c-beijig.aliyucs.com/test/images/card_detectio_correctio.jpg')
prit(result)
输出字段定义
字段名称 |
说明 |
polygos |
框检得到的任意四边形四个顶点,依次为左上、右上、右下、左下 |
scores |
框检置信度,标识检测的可行度,值域 0 到 1 之间 |
labels |
卡证方向分类,枚举类型,0、1、2、3 依次表示卡证顺时针旋转 90度、180度、270度 |
layout |
复印件分类,枚举类型,0 表示非复印件,1 表示复印件 |
output_imgs |
矫正后的子图区域像素值 |
所有字段第一个维度的长度相等且一一对应,为图片中票证的数量。比如polygos[0]、scores[0]、labels[0]、layout[0]、output_imgs[0]表示第一个子图的坐标、置信度、方向、是否复印件、拉平后的子图。
模型训练流程
本模型利用 imageNet 预训练参数进行初始化,然后在海量真实场景训练数据集上进行训练;本模型暂不支持用户自行训练;
评论