我正在开发一个OCR系统,在分词方面需要一些帮助。
目前,OCR系统检测到一行中的斑点(使用连接组件标记算法)。每个blob代表一个单独的字母,并在其周围有一个边界框。某些字符可能在其边界框中重叠。
我如何将这些字母加入文字?如何确定将单词彼此分开的最佳距离,以便: 1.不会削减单词 2.单词不会加入其他单词 从我所看到的 - 字母和单词之间的距离可能会有很大不同。
这部分是在字母分类之前完成的,因此不能用实际的单词含义分开。
谢谢!
答案 0 :(得分:1)
如果你拍摄每个垂直像素列的直方图,你可能会发现单词之间的分离往往是最低的。如果你坚持在字母本身之前处理单词分隔符,那么这种与某种二元分类器结合在一起的技术可能是一个很好的起点。 (例如,您可以使用此直方图权衡语料库中单词的平均长度。)
答案 1 :(得分:0)
我倾向于先尝试阅读这些角色。这将允许您使用(依赖于语言)工具检查单词结尾,以帮助确认您已达到目的。此信息将允许您偏置“空白区域”检测,从而提高单词结尾的质量。 它还可以增强你的准确性 - 实际上,当你出错时,它可以让你更自信地知道;)
白色空间很难处理,我所知道的大多数API(包括我们自己的)返回单个空白字符,无论空间有多大。如果您正在尝试处理以表格形式布置的信息(例如,左上角和右上角有地址块的字母),则通常会在两组数据之间获得一个空格。当然,存储每个角色的位置将有助于后期处理。
祝你好运!