YOLOv5+PaddleOCR手写签名识别

YOLOv5+PaddleOCR手写签名识别

介绍:

参加了一个中国移动的比赛,比赛的数据集是一个工单,上面有多个人的签名还有手写的时间。因为主办方不允许数据公开,所以在这一系列博客中,我主要讲一下实现的思路,在YOLO演示的时候我会用其他的数据代替。

要求:开发一个模型,对比赛提供的工单进行手写汉字(主要是签名)的截取和识别。

数据:

  • 提供图片训练集467张,均带有标注结果。每张表单上有三个人的签名以及一些表单数据。
  • 提供图像测试集118张,需提交在测试集的识别结果。

总结:
简单来说比赛主要由三部分组成:

  1. 从表单上将签名部分识别出来并进行切割
  2. 将切割的签名进行预处理
  3. 将签名进行训练并识别

目前手写汉字识别存在的问题:

  • 字体多样:常见字体包括楷书、行书、草书等,字体结构各不相同
  • 书写随意:由于各人书写风格不同,造成手写字差别过大或变形严重
  • 形近字多︰如“土、士”、“往、住”等

检测模型的选择:

目前较好的检测模型有两种,分别是R-CNN和YOLO系列。下面简单介绍一下原理:

R-CNN:

在这里插入图片描述
R-CNN的想法是很暴力的,就是从整个图片中随机切出来很多块区域,然后把这些区域进行特征提取,再放到分类器中进行分类。当然,只要切得区域足够多,那么一定可以切到我们需要识别的物体。具体步骤如下:

  1. 从图片中选出2000个独立的候选区域(Region Proposal),提出了一个叫做Selective Search的算法.
  2. 每一个区域提取一个固定长度(4096)的特征向量
  3. 对每个目标(类别)训练—分类器(类似于SVM)
  4. 训练一个回归器,修正候选区域中目标的位置

足够多的区域也加重了训练的消耗,资源的占用,所以提出了一个区域选择算法。也就是在有可能的区域进行搜索。但是这样的训练所需的资源仍然是巨大的。

YOLO:

在这里插入图片描述
YOLO这个系列也已经提出来了6,7年了,相比于以前的算法绝对是一个史无前例的创新。关于YOLO网上有很多大佬都做了解释,我就不再叙述。关于YOLO的原理可以参考下面的几篇文章:
写给小白的YOLO
目标检测|YOLO原理与实现
YOLO-YOLOV5算法原理及网络结构整理

本项目也是使用的YOLO。我感觉最大的特点就是快又准。在YOLO标注的时候我们将表单中的签名和日期分开标注,然后在获取最终数据的时候也是分为两个文件夹。在这个系列第二篇会推出我实现YOLOv5的步骤。

识别模型的选择:

OCR识别算法的输入数据一般是文本行﹐背景信息不多﹐文字占据主要部分﹐识别算法目前可以分为两类算法:
1.基于CTC的方法;即识别算法的文字预测模块是基于CTC的,常用的算法组合为CNN+RNN+CTC。目前也有一些算法尝试在网络中加入transformer模块等等。
2.基于Attention 的方法;即识别算法的文字预测模块是基于Attention的,常用算法组合是CNN+RNN+Attention。

我们使用的是基于百度飞桨的paddocr,其中的PP-OCRv3的识别模块是基于文本识别算法SVTR优化。SVTR不再采用传统的RNN结构,通过引入Transformers结构更加有效地挖掘文本行图像的上下文信息,从而提升文本识别能力。为IJCAl 2022最新收录的文本识别算法SVTR(论文名称: SVTR:Scene Text Recognition with a Single Visual Model)
模型有以下特点:

  1. 利用Attention指导CTC训练,融合多种文本特征的表达,是一种有效的提升文本识别的策略。
  2. 在PP-OCRv3中,针对两个不同的SVTR_LCNet和Attention结构,对他们之间的PP-LCNet的特征图、SVTR模块的输出和Attention模块的输出同时进行监督训练
  3. 核心思想是利用高精度的文本识别大模型对无标注数据进行预测,获取伪标签,并且选择预测置信度高的样本作为训练数据,用于训练小模型。

根据YOLOv5切割出来的数据集,制作paddocr的数据集,然后进行模型训练。最终训练的准确度如下:
在这里插入图片描述

训练集的准确度达到了96.4%。最终我们利用九天提供的数据进行测试数据,得到的评分为95分。
如下所示:
在这里插入图片描述

模型的提升

  1. 加强去噪:型可提升空间不大。但是两种报告单的数据集存在有较大的差异,验收单的噪音较多。
  2. 增加更多的数据集:现在数据集比较少。增加数据集之后会对模型的泛化行,以及适用性有一个较好的提升
  3. 提高切割精度:减少图片数据中除手写字体外不必要的部分
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值