字符识别(OCR算法)

问题描述:

我正在开发一个项目,我必须开发OCR算法(我必须从图像中读取文本,然后将其转换为不同的语言)。因此,我的第一个任务是从文本图片。字符识别(OCR算法)

完成第一个任务的步骤。

  1. 从给定源加载任何图像格式(bmp,jpg,png)。然后将图像转换为灰度并使用阈值(Otsu算法)对其进行二值化。 //完成(如何从输出图像除去???噪声)

结果

Input Image

Output Image

  1. 检测图像的功能,如分辨率和反演。以便我们最终可以将其转换为拉直的图像以供进一步处理。 (完成图像旋转代码但无法检测图像角度,我们必须旋转图像,因此仍然在角度检测部分工作)

  2. 线条检测和删除。这一步需要改进页面布局分析,以获得更好的识别下划线文本质量,检测表格等。(决定完成该部分结束)

  3. 页面布局分析。在这一步中,我试图确定图像中存在的文本区域。所以只有那部分被用于识别,而该区域的其余部分被排除在外。

  4. 检测文本行和单词。在这里我们还需要注意不同的字体大小和单词之间的小空格。

  5. 识别字符。这是OCR的主要算法;必须将每个字符的图像转换为适当的字符代码。有时这种算法为不确定的图像产生几个字符代码。例如,识别“我”字符的图像可以产生“我”,“|” “1”,“l”代码和最后的字符代码将在稍后选择。

  6. 将结果保存为选定的输出格式,例如可搜索的PDF,DOC,RTF,TXT。保存原始页面布局非常重要:列,字体,颜色,图片,背景等。

  7. 所以我需要在part6.I帮助完成线检测部(得到n个含有n行的一段图像),但卡在接下来的部分越来越文字和字符recognisation.If你知道有关OCR良好的联系和字符识别部分,然后请张贴在这里。

    对于字符确定方法①我想用asprise(Java库)http://asprise.com/product/ocr/index.php?lang=java

开始=>
+0

对于文档的一部分,你可以使用Apache POI库http://poi.apache.org/和txt你可以写你自己的Streamwriter,它不应该这么难,对于PDF你可以使用http://www.stefanochizzolini.it/en/projects/clown/ PDfClown – Tearsdontfalls 2013-03-03 17:32:13

+0

你能否提供一些更多的参考来了解更多关于ocr的信息。 – TLE 2013-03-04 08:42:29

+0

OCR是一个成熟和研究的主题。我总是发现这个话题很棒。 http://www.handwritten.net/mv/papers/mori92historical_review_of_ocr_research_and_development.pdf对于OCR分区的问题,特别是这个问题非常有趣http://www.music.mcgill.ca/~ich/classes/mumt611_08/Evaluation/ KanaiPAMI95.pdf。 – 2013-05-11 23:37:11

要检测旋转角度,使用Hough transformation

对于降噪,用相同颜色(相似颜色,使用公差阈值)替换任何没有邻居(北,东,南或西)的像素与邻居的平均值。

搜索布局检测的垂直白色间隙。沿垂直间隙切片。对于每个切片,现在搜索水平间隙和切片。如果切片具有相同(相似)的高度,则您处于线条水平。否则,重复垂直/水平切片,直到只剩下线条。最后一步再次是垂直切片,为您提供单个字符(或在某些情况下为连字)。线条长而窄或短而宽。

将字符切片与字符库进行比较。如果性能不是主要问题,请尝试在不同字体库中查找字符,直到您可以识别所使用的字体。然后坚持使用该字体字符识别

在原始图像中,将每个字符替换为背景色,该背景色是通过插入不属于字符每个像素字符一部分的像素确定的。这给你背景图片,如果有的话。

+0

I想要一些好的噪音去除方法“,用相同颜色替换没有邻居(北,东,南或西)的任何像素”并不够好。 – TLE 2013-06-14 08:16:40

+0

如果您有关于字符笔触宽度的信息,则可以查找更大的群集。您也可以使用Hough来检测间隙,所以噪音不会很大。 – nibra 2013-06-14 15:07:54

+0

我在字符匹配部分只有60%的准确性我该如何改进? ,用于字符匹配我正在使用我自己的方法来匹配字符图像。 – TLE 2013-06-20 06:28:34

您可能需要查找Tesseract以查找字符识别部分。

您应该使用自适应阈值代替Otsu方法..我认为这将有帮助http://www.csse.uwa.edu.au/~shafait/papers/Shafait-efficient-binarization-SPIE08.pdf 此方法将自动删除噪声。

您可以使用potrace降低噪音 它vectorises给定的图像(BMP),并将其转换为SVG,PDF和其他一些格式

http://potrace.sourceforge.net/potrace.html