1

我正在开发一个 OCR 系统,在分词方面需要一些帮助。

目前,OCR 系统检测一行中的 blob(使用连接组件标记算法)。每个 blob 代表一个单独的字母,并在其周围有一个边界框。某些字符可能在其边界框中重叠。

我怎样才能将这些字母组合成单词?如何确定将单词彼此分开的最佳距离,以便: 1.单词不会被剪切 2.单词不会与其他单词连接据我所见 - 字母和单词之间的距离可能会有所不同很多。

这部分是在字母分类之前完成的,因此无法按实际词义进行区分。

谢谢!

4

2 回答 2

1

如果您对每个垂直列的像素进行直方图,您可能会发现单词之间的间隔往往是最低的。如果您坚持在字母本身之前处理单词分隔符,那么将此类技术与某种二进制分类器结合在一起可能是一个很好的起点。(例如,你可以用这个直方图来衡量你的语料库中单词的平均长度。)

见: http ://www.ijcaonline.org/rtippr/number1/SPE96T.pdf

于 2013-02-05T19:34:58.067 回答
0

我倾向于先尝试阅读角色。这将允许您使用(取决于语言的)工具来检查词尾以帮助确认您已经到达结尾。此信息将允许您对“空白”检测进行偏向,从而提高词尾的质量。它还具有增强准确性的额外用途-实际上,它可以帮助您在错误时更加自信;)

空格很难处理,而且我所知道的大多数 API(包括我们自己的 API)都会返回一个空格字符,而不管有多少空间。如果您尝试处理以表格形式排列的信息(例如,左上角和右上角带有地址块的字母),您通常会在两组数据之间获得一个空格。当然,存储每个角色的位置将有助于后期处理。

祝你好运!

于 2013-02-07T14:39:27.763 回答