Tesseract技术硬文-来自Google团队分享

1、从灰度图像中提取轮廓,从轮廓中提取特征(skeleton方法)。

2、字符的边界框经常重叠,而字符实际上没有接触。

Tesseract技术硬文-来自Google团队分享_第1张图片

3、经验:对于尽可能多的预期退化,特性必须尽可能不变

4、收缩特性和不适当的统计数据(教训:统计上的独立性是很难回避的)

5、同时期其他ocR:神经网络刚起步,硬件计算能力不行,基于决策树使用类似拓扑的特征。在软件方面非常快。在质量差的情况下,精度下降得非常快。

6、关于测试:获得大量的计算能力和数据。在与训练数据非常不同的数据上进行测试。测试每一个变化。测量多种维度。如果它能打破,它就会打破。让你的代码在等待测试运行时更快。跳出框框思考。

7、最新提升:国际化到100多种语言。添加全布局分析。表检测。方程/公式检测。更好的语言模型。改进的分段搜索。Word Bigrams。输出PDF。训练工具。

8、数据结构的变化:

8.1 看起来是流水线,其实不是,因为有很多对于旧决策的重新访问。

Tesseract技术硬文-来自Google团队分享_第2张图片

Tesseract技术硬文-来自Google团队分享_第3张图片

8.2 代码层面:最初用C语言编写的大量代码。1991年用新的c++代码进行了重大重写。

C-> c++随着时间的推移逐渐迁移。大多数全局函数现在存在于一个方便的目录结构类中。(为了线程兼容性。)

8.3功能架构

Tesseract技术硬文-来自Google团队分享_第4张图片

8.4 页面层次结构

Tesseract技术硬文-来自Google团队分享_第5张图片

8.5 软件工程-构建模块

Tesseract技术硬文-来自Google团队分享_第6张图片

8.6 调用层次结构的关键部分

Tesseract技术硬文-来自Google团队分享_第7张图片

8.7 Tesseract的List结构实现

* 早于STL

* 允许控制列表元素的所有权

* 使用宏而不是模板

* 举例:

Tesseract技术硬文-来自Google团队分享_第8张图片

8.8 TessBaseAPI:简单例子

Tesseract技术硬文-来自Google团队分享_第9张图片

TessBaseAPI:多页举例

Tesseract技术硬文-来自Google团队分享_第10张图片

8.9 结果迭代器

Tesseract技术硬文-来自Google团队分享_第11张图片

9、特征和字符分类器

背景:经典字符分类器

Tesseract技术硬文-来自Google团队分享_第12张图片

动机:如何从轮廓提取特征?

轮廓   纲架   拓扑特征

要求:对于尽可能多的预期退化,特征不要变化。

收缩特征和不适当的统计数据:多边形分段近似和更小的特征--à统计上的独立性很难回避。

激励:即便破碎字符,大多数特征依然匹配。     

插曲:对比

  1. 卷积DBN:一个像素=一个特征维度,1个字符(32*32)=1K维特征向量。

特征提取:3DINT_FEATURE_STRUCT

->从一个未知字符中提取出多个特征

->每个特征都是一个短的、固定长度的、有方向的线段,具有(x,y)位置和方向,从整数空间[0,255]组成一个3-D特征向量(x,y, theta)

->方向是从负x轴测量的!

Tesseract技术硬文-来自Google团队分享_第13张图片

特征训练:4维,INT_PROTO_STRUCT(多边形近似的元素,聚集在字符/字体组合中;X,y位置,方向和长度(作为特征长度的倍数))

Tesseract技术硬文-来自Google团队分享_第14张图片

字符修剪器:倒排索引、细分类器。

你可能感兴趣的:(接口)