图片转文字类库尝试:使用Tesseract进行图片转文字初步记录

2018-07-03 18:55:54 10点赞 77收藏 1评论

背景说明

由于对游戏的文案非常感兴趣,所以希望可以将游戏中图片截图,识别图片上的文字转成txt,基于此记录一下学习过程,简单记录。本次记录属于Tesseract这个库是初步使用,从结果上来说,它的识别需要更多的投入与训练。简单直接的调用该类库并不能达到想要的识别效果。结尾有安利

Tesseract,一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Document Imaging(MODI)相比,我们可以不断的训练的库,使图像转换文本的能力不断增强;如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。

环境说明:


英文识别

Tesseract在github有安装教程。相关API参照Python:文本识别抛弃pytesser,直接使用Tesseract ,也就是说,当安装好后Tesseract之后,可以在终端[命令行控制台中]直接操作

tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]

tesseract 图片名 输出文件名 -l 字库文件 -psm pagesegmode 配置文件

-l后的字库文件可以切换为中文,默认是英文
-psm是对于识别模式的一些设置

按照以上wiki可以看出识别一个图片的命令是:

tesseract 图片路径 输出文件名//eg:tesseract x.png out

终端执行即可在终端对应目录下输出out.txt 里面是对文字的识别,按照如上试了以下两张图片

图片转文字类库尝试:使用Tesseract进行图片转文字初步记录

以上图片终端报错如下:

Tesseract Open Source OCR Engine v3.05.01 with Leptonica
Warning. Invalid resolution 0 dpi. Using 70 instead.
//关于为什么会报这一行还没有查明白,因为发现无论成功与否都会报这一行
//简单搜索一下大概于tif什么之类的有关系,还没有查找

当换成另一张图片

图片转文字类库尝试:使用Tesseract进行图片转文字初步记录



Y" ‘ WWIHBNEISM H8 3

ORGAN
NICHOLSON FREEMAN
MUM’VHHIIV-HUN’N/DflmhnAMENUMMME UWUFDW WM TIFEUEKEMT A
¢ WWW!“ HUBEEWWMWFW .
zzrmmn Jmmmu JWMHH ‘ ,
mum _. v _ mm“
now


从以上看出,识别还是要看图片背景等,在tesseract总默认是英文识别,且涉及到参数psm的问题,关于参数psm请在终端直接输入tesseract

Page segmentation modes:
0 Orientation and script detection (OSD) only.
1 Automatic page segmentation with OSD.
2 Automatic page segmentation, but no OSD, or OCR.
3 Fully automatic page segmentation, but no OSD. (Default)
4 Assume a single column of text of variable sizes.
5 Assume a single uniform block of vertically aligned text.
6 Assume a single uniform block of text.
7 Treat the image as a single text line.
8 Treat the image as a single word.
9 Treat the image as a single word in a circle.
10 Treat the image as a single character.
11 Sparse text. Find as much text as possible in no particular order.
12 Sparse text with OSD.
13 Raw line. Treat the image as a single text line,
bypassing hacks that are Tesseract-specific.

初步的文字识别还是ok的,因为最终要的结果是中文识别,所以要看一下如何进行中文识别。

中文识别

tesseract提供了中文的文字识别,下载地址
下载之后将chi_sim.traineddata文件拷贝到中文文件存放地址:

/usr/local/Cellar/tesseract/3.05.01/share/tessdata
//我在mac上存放到这里时有效的,如果无效就需要再查查了
//这个文件进去后可以看到英文的识别文件`eng.traineddata`)

开启终端进行中文文字识别

tesseract 输入图片路径 -l chi_sim 输出文件名字

这里测试了一下,识别结果一言难尽吧,对于阴阳师的传记识别很差,周围有一些文字进行干扰

图片转文字类库尝试:使用Tesseract进行图片转文字初步记录


如果对于图片进行裁剪到如下程度

图片转文字类库尝试:使用Tesseract进行图片转文字初步记录


识别结果是很一言难尽的,。这个结果的误差率挺高的。一下是上边阴阳师图片的文字识别结果

待1己二 lw

桢言宛一次出现耱诀盯町倪 衅
也只是笑笑、 并没有责怪这个骧子
D 但是幔憧地. 贵怪也开始了' 篷
篝还有打骂. 骥子的靴上遍布伤痕

害怕受列惩罚的孩子. 哭*预知著
一切. 预言却还是耧未趟不准口
终于. 有人操乱 这孜子既然己经
失去T倾知的能九 不如就放弄这
个孩子, 将他献给淹礼 或许还能
平息灾祝 纂一次听到这个提议时.
人4fl纷汾反对, 认为这对璩子太瀵
忍了口 可是巢二炎 第三次的时伉
反对的人罐毅赭叽

接下来尝试了一下微博的截图

图片转文字类库尝试:使用Tesseract进行图片转文字初步记录


结果为

全球健身中心-喧
11分钟前来目 微博淝伽咖
拿去参考-下0

@全球装饰大全 - 甜
我敢说这是我见过最漂亮最实用的室内设计了,绝对没有比这更简美了.迸门就是原木地板,
客厅就简单的布艺沙发搭配原木电器柜.迸门两边做的是嵌入式柜体,牧纳更是做到了极致;
住在这样纯夫然酌冢里简直不要不要的m 喜欢就关注@全球装饰大全 胗微博全景图片



微博全景图片
我敢说这是我见过最室内设计了, 绝对没有比这更简美了° 布艺沙发
搭配原木电器柜° 迸门两边做的是嵌入式柜体, 底面整体原木地板,

12分钟前 来自 微博 weibo.oom 区 97 臼 6 凸 35


到这里看一下我自己的需求是可以将图片中的文字转换,而且需求图片没有阴阳师背景那么杂乱,所以转换结果还可以,因此没有继续看如何提高识别准确度。
这里只简单介绍了Tesseract这个工具,是在对游戏文案进行截图识别时查找到了这个类库,这个没有对这个类库继续进行了解研究是因为后来发现了更好的图像识别工具。

向大家介绍安利一下: 百度通用文字识别接口

通用文字识别-文字识别-百度AI百度通用文字识别,支持多场景下文字检测、识别,且已扩展支持2W+大字库,能识别所有常用字和大多数生僻字;支持扩展返回每行及每个文字的位置信息。ai.baidu.com去看看


图片转文字类库尝试:使用Tesseract进行图片转文字初步记录

该类库作为开发者可每天免费调用500次接口进行图片转文字,精准度非常高。作为对于游戏识别文案的需求精准度很高。

通用识别也提供了详细的接口及调用方式。

那么最后在实现手机文案进行截图时,是如下的流程:

  • python连接安卓手机->

  • 控制安卓截图->

  • 截图后裁图到合适区域->

  • 图片转换文字存储->

  • 输出TXT->

  • 模拟点击进行下一页面

  • 【循环此过程】


如果大家对整个流程或者如何调用图片识别文字接口感兴趣欢迎留言~~


展开 收起
1评论

  • 精彩
  • 最新
  • 我学生时代研究过几年字符识别,特定领域的字符,算法都是自己写的。应用场景比较简单,所以识别率还不错。tesseract要想有好的识别效果,就必须有大量的训练样本。不过这篇文章确实没啥意思,流水账,有价值的信息略显不足。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
77
扫一下,分享更方便,购买更轻松