Hamming OCR是一个基于Transformer注意力的超轻量级文本识别模型,主要基于LSH局部敏感哈希编码和Max-Margin Loss的学习算法。
Hamming OCR: A Locality Sensitive Hashing Neural Networkfor SceneText Recognition
本文为极市开发者投稿,作者平安产险视觉计算组,转载请获授权。
场景文本识别中很多模型都使用了笨重的模型,这些模型很难在移动端设备上部署。这也是最近大火的Paddle OCR使用CRNN实现其超轻量级识别模型的原因。PaddleOCR采用的策略就是暴力削减特征通道来减小模型,但是这样使得性能大幅度下降。最近在arXiv上公开的Hamming OCR提出了Hamming Embedding和LSH局部敏感哈希分类的算法,大幅度削减模型大小,同时保留模型能力。
我们首先看FC+softmax分类层:
其中分类矩阵W占了将近20MB,这是因为onehot编码方式维度过大,字符字数多的原因。
对应的Hamming OCR中的LSH局部敏感哈希分类实现如下:
Hamming OCR使用LSH编码替代了onehot编码,把分类矩阵W的大小降低到0.5MB。初始阶段,HammingOCR使用LSH和voting生成每个字符的LSH编码。然后基于生成的LSH code采用Max-Margin算法优化。
在推理阶段,Hamming OCR二值化logit,然后跟所有字符的LSH编码计算汉明距离,距离最近字符的即为预测结果。
LSH编码很好地保留了字符之间的相似度,如下图:
很多识别模型使用Output Embedding来表达每个字符,Embedding层占了20MB。因为LSH编码的良好特性,Hamming OCR直接使用LSH编码作为字母的表达,也就是Hamming Embedding,减少20MB并且不损失精度。
Hamming OCR还加入了跨层共享Transformer权重、去除Feed-ForwardNetwork和FP16,最终模型只有3.9MB。模型结构如下图:
Hamming OCR模型的能力很强,如下图所示,最终模型不但比PaddleOCR小,精度还要更高。
模型各阶段优化之后的参数量如下图,
-
Hamming OCR模型小
-
模型能力很强
-
支持的字符数量超大
-
便于移动端部署
论文链接:
https://arxiv.org/pdf/2009.10874.pdf
-
Lu, N.; Yu,W.; Qi, X.; Chen, Y.; Gong, P.; and Xiao, R. 2019. Master: Multi-aspectnon-local network for scene text recognition. arXiv preprint arXiv:1910.02562.
-
Li, H.;Wang, P.; Shen, C.; and Zhang, G. 2019. Show, attend and read: A simple andstrong baseline for irregular text recognition. In Proceedings of the AAAIConference on Artificial Intelligence, volume 33, 8610–8617.
-
Shi, B.;Bai, X.; and Yao, C. 2016. An end-to-end trainable neural network forimage-based sequence recognition and its application to scene text recognition.IEEE transactions on pattern analysis and machine intelligence 39(11):2298–2304.
-
Lan, Z.;Chen, M.; Goodman, S.; Gimpel, K.; Sharma, P.; and Soricut, R. 2019. Albert: Alite bert for selfsupervised learning of language representations. arXiv preprintarXiv:1909.11942 .
产险视觉计算组(VC组)专注解决金融保险领域的计算机视觉应用问题,在ICDAR 2019票据识别及关键信息3个任务中,团队分别斩获第二,第三,第一名。同时,在Kaggle举办的百度/北大无人驾驶比赛中,获得亚军。团队积极创新,已有多项自研OCR 、关键性信息抽取技术。
Hamming OCR是一个基于Transformer注意力的超轻量级文本识别模型,主要基于LSH局部敏感哈希编码和Max-Margin Loss的学习算法。Hamming OCR: A Locality Sensitive Hashing Neural Networkfor SceneText Recognition本文为极市开发者投稿,作者平安产险视觉计算组,转载请获授权。背景场景文本识别中很多模型都使用了笨重的模型,这些模型很难在移动端设备上部署。这也是最近大火的Paddle OCR使用C
CRNN
文本
识别
模型
描述
模型
结构CNNRNNCTC
CRNN是一种简单高效的
文本
识别
模型
。相比与Attention类型的
文本
识别
模型
,其具有如下优缺点。
容易训练,
模型
容易收敛,且鲁棒性较高。
易于部署,
模型
结构简单,inference速度快且
支持
变长输入,适合
文本
长度变化较大的生产环境。
识别
准确率相对较低,在包含大量中文字符集情况下,会比RARE类型的Attention
模型
低不少,英文字符集的情况下会低更多。
对于艺术字等有较大形变的短
文本
,或自然场景下的变化较大的
文本
,CR
An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition
STAR-Net: A SpaTial Attention Residue Network for..
文章目录摘要1. 网络结构2. 结果
深度学习
用于文字
识别
现在在一些场景中已经很成熟了,主要就是分为CTC和attention两种方案。现在基于attention的方案主要用LSTM和GRU,这种方式的主要问题是:训练和测试的都是one step by one step的,效率较低。
这篇文章
提出
了MASTER,其主要就是用CNN+Transformer的方式实现文字
识别
,这篇文章的主要创新...
Ham
min
g window是一种在数字信号处理中广泛使用的加窗函数。它的形状类似于一个带有斜角的矩形,其在频域上的特性能够减少信号处理过程中的频谱泄漏。
Ham
min
g window的公式为:
w(n) = 0.54 - 0.46 * cos(2πn/(N-1)),
其中n是窗口中的采样点的索引,N是窗口中的采样点数。
在信号处理中,将
Ham
min
g窗应用于原始信号可以减少频谱泄漏,提高谱估计的精度。常见的应用包括傅里叶变换、滤波、频谱分析等。
在MATLAB和
Python
中,
Ham
min
g窗可以使用内置的函数
ham
min
g()直接调用,或者使用numpy库中的
ham
min
g()函数。下面是一个使用
Python
中的numpy库实现
Ham
min
g窗的示例代码:
import numpy as np
# 指定窗口大小
window_size = 128
# 生成
Ham
min
g窗
ham
min
g_window = np.
ham
min
g(window_size)
# 应用窗口到原始信号
windowed_signal = original_signal *
ham
min
g_window
这段代码将原始信号与
Ham
min
g窗相乘,生成一个加窗的信号,然后可以进行进一步的信号处理操作。