基于tesseract_OCR+opencv实现图片中汉字辨识

最近在研究视频字幕识别,写了一个小的程序,得到一些实验结果,同时也存在着一些问题,这里拿出来和大家分享下。 
1.工具 
(1)tesseract_ocr(识别汉字); 
(2)vs2010; 
(3)opencv244(其中涉及图像处理部分)。 
这里我把自己用到的资料都上传了,链接奉上: 
http://download.csdn.net/detail/zhancf/9227333

2.实现过程 
准备好上述材料以后,按照步骤完成vs2010下opencv244和tesseract_ocr的安装后,就可以进行操作了。

首先,如果直接对一幅图像利用tesseract_ocr进行识别,识别的效果非常差,例如下图: 
这里写图片描述

直接识别的结果为空,什么都没有识别出来。但是如果我们仅仅截取字幕部分进行识别呢?识别效果是怎样的呢?我们截取出字幕部分如下: 
这里写图片描述 
发现识别结果还是为空,无法识别。

我们发现直接将这些复杂的图片进行tesseract_ocr识别,想要识别里面的汉字是不现实的,因此,我们先对图像进行处理,然后进行识别,看看识别的效果如何? 
(1)对上面截取的字幕进行二值化处理,并进行细化处理,得到如下所示图:(这步还有一些去噪的操作,详见最终的程序) 
这里写图片描述 
我们发现图中汉字存在很多小方块,看看这样的识别结果:铈交冒赔帐杨洁庸荃申外记雪问。正确率为6/14。 
图片中的小方块对识别存不存在影响呢?试试便知。 
(2)去除图片中汉字上的小方块 
我们先对上述图片进行膨胀操作,然后再细化,得到如下的结果图。 
这里写图片描述

上图中,图片中汉字的小方块已经被去除了,整体的效果还是比较理想的,但是我们发现上图中汉字的笔画过细,这会影响tesseract_ocr的识别结果,因此我们对它再进行膨胀操作,结果如下: 
这里写图片描述 
现在看上去效果还不错,我们看看识别结果:外交部部长畅洁属答中外记胄问。识别正确率为11/14。识别的结果还算满意。 
(3)如果对最后得到的图片进行锐化操作,使汉字更加符合印刷字的特点,效果会更好。 
这里写图片描述

识别结果:外交部部长畅洁属答中外记胄问。虽然识别与上述结果相同,但是经本人验证,锐化的识别效果更为理想。

3.实现结果 
通过上述步骤操作之后,得到识别结果图。 
这里写图片描述

4.结果分析 
针对此次图片中汉字识别过程,存在以下问题亟待解决。 
(1)准确率:整体来说,经过上述步骤,汉字识别准确率在70%-80%左右,准确率还比较低,很难正常应用; 
(2)运行时间:此次识别总用时7.938s,耗时太长。其中图片处理花了2s左右,tesseract_ocr识别花了6s左右。

可能的解决方案: 
(1)自己根据上述步骤得到的字体进行训练,得到训练样本,这将有效地降低识别错误率,但是比较耗时耗力。 
(2)针对图像处理还有很大的提升空间,继续研究ing。。。

整个项目实现的代码链接: 
http://download.csdn.net/detail/zhancf/9227591 
需要自己配置下tesseract_ocr和opencv环境。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值