【发布时间】:2011-09-26 20:07:03
【问题描述】:
我想制作一个将图像作为输入并输出文本的程序。现在我知道我可以使用神经网络将单个字符的图像转换为该字符。困难的部分是:给定一个带有文本的图像,我将如何在每个单独的字符周围生成所有矩形?我可以用什么方法来做到这一点?
【问题讨论】:
标签: neural-network ocr
我想制作一个将图像作为输入并输出文本的程序。现在我知道我可以使用神经网络将单个字符的图像转换为该字符。困难的部分是:给定一个带有文本的图像,我将如何在每个单独的字符周围生成所有矩形?我可以用什么方法来做到这一点?
【问题讨论】:
标签: neural-network ocr
一种基本方法是制作黑色像素的直方图。第一:将所有像素投影在一条线上。直方图中的深谷表示线条之间的分离(如果纸张可能倾斜,请尝试不同的角度)。然后,每行(或每页,如果您知道字体是等宽字体)将像素投影到水平直方图上。这将为您提供字符间空格的强烈指示。至少,这会为您提供一个平均字符高度和宽度的值,这将在接下来的步骤中为您提供帮助。
之后,您需要注意字距调整(字符重叠的地方)。找到连接的像素,可能首先对图像进行膨胀或腐蚀以补偿扫描伪影。
根据扫描图像的质量,您可能需要使用更先进的技术,但这会让您继续前进。
【讨论】:
这听起来不像是人工智能,听起来你在谈论 OCR:
http://en.wikipedia.org/wiki/Optical_character_recognition
见谷歌正方体
http://code.google.com/p/tesseract-ocr/
编辑未经编辑的问题是关于人工智能的。
【讨论】:
对我来说,这个问题本身似乎并不明确。
在谈到 OCR 时,会在这里留下几篇文章,它们可能会有所帮助(它们至少对我有帮助):
如上所述,tesseract 是一个很好的 OCR 开源 python 库(我个人也使用的那个)。您可以采取的其他方法是通过sklearn
您可能还想查看this stackoverflow post。
我也很确定你可以使用researchgate 来检查那里的任何文件(我找到了一些,只是不确定这是否是你需要的)
我认为上述通用答案适合通用问题。
【讨论】: