RECORDING MY FANTASY

Monday, November 30, 2009

gnu ocrad-开放源代码的OCR研究项目

我这段时间在上水木社区时,注意到网易有道手机词典的广告,最大的特色就是新增加的“摄像头取词”功能。我非常喜欢这个创意,想象一下:当看到不懂的单词时,只要把手机摄像头对着书本,在摄像头里面选中单词,然后就能看到词典解释;这是多么的酷(而且是非常实用)。

然后,我就想我们能不能自己搞一个类似的程序呢?因为俺们没有学过模式识别、图像处理这些课程,所以我就想找一个开源的OCR程序来看看,在维基上找了又找,终于发现了一个GNU OCRAD。它是隶属于GNU project的项目,基于GNU GPL许可证,它可以处理ppm格式的图像文件,生成utf-8格式的文本。

我下载了源码、编译,没有发现任何错误。然后我在电脑上截了一张图片并生成了一张全是英文字母+数字的png格式的图片,名字暂取ocr_source.png,然后运行命令: pngtopnm ocr_source.png | ocrad
可惜的是效果不好。其中有很多字符都没有识别出来,都被标称了_ ; 还有几个字母都认错了,像a, i等等。我当时的想法就是,这东西实用性还是不行。

不过,今天我在看一篇全是图片的pdf文件,用pdf截图工具截了一块区域存成了ocr_source.png文件,然后重新用ocrad命令识别了一下,竟然全部都识别了出来!我比较了一下这两次的图片,成功的这次使用的图片里面的文字都比较大,而第一次失败的图片里面的文字都比较小。我猜测一下,可能这会影响到ocrad里面算法的识别率。