淡谈自然场景下小样本OCR文字识别

淡谈自然场景下小样本OCR文字识别

1. 环境准备

实验中使用了centos7.6,intel core i4710,gtx980M(老机器重装)
安装的时候要注意,linux内核版本和实际版本要一致,不然会报错

Linux下Nvidia驱动的安装参见(kernel版本不一致先升级内核):
https://blog.csdn.net/qq_44961869/article/details/115954258

cuda切换参见:
https://www.cnblogs.com/jyroy/p/14378146.html

其他
linux安装宝塔一键安装命令如下:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

内网穿透推荐:
https://frp.fujuage.com/

2.anaconda

linux安装anaconda教程参见:
https://blog.csdn.net/ychgyyn/article/details/82258136

conda更换源(推荐中科大源–清华源是个坑)参见:
https://ask.hellobi.com/blog/safa/36820

conda删除源方法
conda config --remove-key channels

3.pytorch版本

不同的版本要有不同的pytorch版本要对应不同的cuda版本,参见官网:
https://pytorch.org/get-started/previous-versions/

4.OCR文字识别现有成熟架构

图像预处理->目标检测->ctcloss->softmax分类器
完整参见项目:https://blog.csdn.net/qq_24819773/article/details/104605994?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.no_search_link&spm=1001.2101.3001.4242

5.小样本OCR文字处理的困境

由于小样本需要不断对神经网络得到的特征向量做torcat函数(简单的讲特征向量做差),然后再放入网络之中所以无法直接使用ctcloss做文字的识别所以打算采用的架构如下:
图像预处理->目标检测(文字块)->文字块切割->小样本分类网络

6.图像预处理

1.图像去雾算法
参见:https://github.com/xiaominghero/ImageDehazing

2.图片文字褶皱恢复
参见:https://github.com/tommyMessi/waveCorrection

3.图片大小变换
参见:https://www.cnblogs.com/zhuxiangru/p/10620814.html

4.图片旋转
参见:https://www.cnblogs.com/bob-jianfeng/p/11237806.html

5.图片去噪(四种滤波器)
参见:https://blog.csdn.net/qq_27261889/article/details/80822270

7.目标检测

这一块算法比较多,一般来讲会使用RCNN用来识别,这里推荐几个开源更好的顶级会议算法:
1.TextFuseNet
参见:https://github.com/ying09/TextFuseNet

2.ABCNet
参见:https://zhuanlan.zhihu.com/p/126255677

3.MaskTextSpotterV3
参见:https://github.com/MhLiao/MaskTextSpotterV3

得到目标之后对的到图片求最小外接矩阵并且拉直
参见:https://www.jianshu.com/p/90572b07e48f

8.文字切割

这一块比较难,由于现有成熟的架构下都用了ctcloss这一类函数来避免由于粘连而导致的种种问题,而传统的基于水平方向,垂直方向投影的自然场景下文字分割效果实在是太差,实验中推荐使用MSER+NMS 文本检测,由于MSER+NMS的最大问题是识别的杂信息过多,但是其文本还是能基本识别出的,通过神经网络对其文字块进行分割之后再利用其算法得到的效果还是蛮好的。
算法参见:https://blog.csdn.net/javastart/article/details/111587778

9.小样本学习算法

关于小样本学习的基本算法可以参见这篇综述:https://zhuanlan.zhihu.com/p/61215293

通过研究顶会发现近两年流行图学习:传统的小样本学习、机器学习算法,在网络之中仅仅学习了网络节点的信息而忽视了网络节点之间边和边之间的联系。

这里推荐两个算法:
1.成熟的小样本学习算法:关系网络算法(Few shot learning)
参见:
https://github.com/gitabcworld/FewShotLearning
https://github.com/floodsung/LearningToCompare_FSL
2.DPGN:图网络
参见:
https://github.com/megvii-research/DPGN

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
文献综述一:OCR文字识别技术的发展与应用 OCR(Optical Character Recognition)文字识别技术是一种将图像或文档中的文字信息转换成可编辑或可搜索文本的技术。该技术的发展历程经历了多个阶段,从最初的模板匹配、特征提取,到基于机器学习和深度学习OCR技术。目前,OCR技术已广泛应用于证件识别、票据管理、图书数字化、手写字识别等领域。 在OCR技术的应用中,关键在于提高文字识别的准确率。针对这一问题,现有研究主要从以下几个方面入手:图像预处理、字符分割、特征提取、分类识别等。其中,基于深度学习OCR技术受到了广泛关注,通过深度卷积神经网络(CNN)实现了自动特征提取和分类识别,取得了较好的效果。 未来,OCR技术将继续向智能化、多语种、多场景方向发展,例如结合自然语言处理技术,实现OCR文本的翻译、语义理解等应用。此外,OCR技术还将广泛应用于智能文档管理、自动化办公、数字图书馆等领域。 文献综述二:OCR文字识别技术的性能评价方法 OCR(Optical Character Recognition)文字识别技术的性能评价是衡量其识别准确率和鲁棒性的关键。现有研究主要从以下几个方面入手:数据集构建、性能指标定义、评价方法设计等。 在数据集构建方面,关键在于选择具有代表性的样本集,并保证其覆盖各种不同的文字、字体、大小、方向等因素。在性能指标定义方面,主要包括识别率、误识别率、漏识别率、字符级别准确率等指标。此外,为了综合评价OCR技术的性能,研究者们还提出了一些基于多指标的综合评价方法,例如F值、ROC曲线等。 总体来说,OCR文字识别技术的性能评价方法是一个比较复杂的问题,需要考虑多种因素的影响,且需要根据具体的应用场景来设计评价指标和方法。 文献综述三:OCR文字识别技术在票据管理领域的应用 OCR(Optical Character Recognition)文字识别技术在票据管理

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掉了牙的大黄狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值