OCR字符识别使用什么算法?

一般的OCR例程是这样的

1.首先检测并提取文本区域。

2.然后我们使用radon hough变换来校正文本。

3.用投影直方图分割单行文字图片。

最后是单行的OCR。

单行OCR主要有两个思路。

首先是需要拆分字符。

分割字符的方法有很多。最常用的方法是使用投影直方图的极值点作为候选分割点,使用分类器+波束搜索来搜索最佳分割点。

找到分割点后,传统的方法是对单个字符进行特征工程+分类器。一般过程是->灰度;二值化->;校正图像->;特征提取(各种方法如pca lbp等。)->;量词(量词一般是SVM·安ANN等等)。

现在CNN(卷积神经网络)可以很大程度上避免特征工程。

第二是不需要拆分字符。

还有一点就是端到端的识别,但前提是你需要大量的标注数据集。这种方法可以在不分割图像的情况下连续输出字符序列。

多标签分类可用于短长度。比如车牌,验证码。在这里,我尝试了车牌的多标签分类。车牌识别中未分割字符的端到端识别。

这是谷歌用来识别街景门牌号的方法。