【GdOcrTool】即指即译,OCR取词工具

现在能找到的提供屏幕取词SDK的商业软件开发商,不算自研的话,只有两家,一个是欧路用的WordCaptureX,另一个是灵格斯用的GetWord,GetWord的开发还在继续,但不支持OCR的方式,WordCaptureX确实使用的Tesseract,但WordCaptureX的维护已经停止了,使用的Tesseract版本很低。

WordCaptureX集成了Hook以及OCR两种取词方式。Hook可以直接读取文本,这个速度最快,图片的话,只能OCR,实际取词的时候是两种方式一起来,哪个方式速度快就用哪个结果。

图片里的文本识别,我原本猜测大家识别速度都差不多,但实际体验,WordCaptureX会快一些,猜测可能OCR引擎版本问题,低版本或许更轻量速度更快训练结果更小,去WordCaptureX的官网看了下发现确实如此。WordCaptureX使用的Tesseract版本号是V3.01,看日志是2010年的版本,英文训练包大小是1.8M,[链接] 。楼主使用的Capture2Text用的Tesseract版本号是V4.0.1,2018年出的,使用了新的识别引擎,英文训练包Fast精简版本大小是3.9M,正常版本的大小是22.4M。

识别速度除了引擎版本以及训练包大小的问题,还有识别图片前,对图片的预处理也会有影响,如果对图片做灰度处理,去干扰,缩小识别范围通常能大幅提高识别的速度和准确度。各家手段不同,不好评价。

让我感到困惑的是,就算是记事本,记事本里全是英文,它取出来的词也有不对的,这就奇怪了。

它取词的时候难道兵分两路,对任何一个词,一边HOOK,一边OCR,以先到者为准?但记事本里的简单英文也能HOOK这么慢?还有,OCR的准确度并不高,虽说欧路他们宣传好像说有百分之九十几,但实际上如果算上卡壳的时候,它这个准确度也就在80%多吧,像鸡肋一样。

我们日常取词,无非是office文本(主要是word和excel文本),acrobat pdf文本,网页文本,还有其它app的少量文本,这些可划文本,再加上操作界面上的一些不可划文本,如果识别准确度不能非常接近100%,这些商业软件的设计思路就有些匪夷所思了。OCR本来是锦上添花的功能,现在只能用OCR去弥补文本识别的残缺,当前这种取词生态,怎么看怎么不对劲。

1 Like

或者,对于可划文本,正确的取词方式是先划取,划取不成再屏幕点选?

1 Like

记事本,IE浏览器我这边测试纯文本内容是100%成功的,感觉不到任何延迟,不清楚欧路是怎么设置的,WordCaptureX有多种设置可选。Chrome里面的文本会失败,可能切换成了OCR识别,Office系列没有测试。打开图片识别里面英文单词的话会慢一些,准确度大家都差不多,错都一起错,可能我用的图片样本少了。

WordCaptureX官网有提供Demo,[链接],感兴趣可以自行尝试,有安装360的话,会有提示有远程线程正试图注入,风险自行考虑。

取词成功率与设置关系相当大,用顶楼的设置,对size 7-9取词成功率达80-90%!如果是大字体,要自己调整设置。

试了WordCaptureX Demo,结果很有意思。可能是我的记事本版本较新(Win11自带),而WordCaptureX版本较早,WordCaptureX无法对记事本进行Native Method取词,只能以FullText Method和OCR Method(OCR Method细分有两种方式我使用起来没发现有什么区别)。WordCaptureX 以OCR方式对记事本的英语单词取词极慢,经常卡壳取不到词,但反复试下来所有的英语单词都取到了,正确率100%!WordCaptureX对word、写字板、IE浏览器都可以进行Native Method取词,正确率100%!

对记事本取词,正确率最高的是WordCaptureX ,100%(小样本情况)。欧路不稳定,有时候经常出错,正确率在70%多,过一阵子又正常发挥,先前出错的词都能正常读取了,基本上能达到100%。GdOcrTool点选按一般字体配置的正确率始终在20~40%,换成较大字体配置后正确率能达到80%多,算上偶尔的fail和某些词的不响应,整体成功率应该也不低于80%。我的我的EXCEL是11号字,记事本是小四字体,不算什么较大字体,可能是我的显示比例为200%,较大字体是按显示比例为100%定义的吧(按物理分辨率而不是逻辑分辨率定义)?

记事本取词,WordCaptureX和欧路可能混合了FullText Method?记事本中如果参杂了些长的差不多的词,WordCaptureX有时就会混淆,正确率达不到100%,比如我的一行字前一个是appropriate,最后一个是approximately,结果WordCaptureX把appropriate识别成了appropriately,似乎把两个词捏在一起了。

1 Like

嗯,根据我的经验,大字体似乎是指的物理分辨率,而不是逻辑分辨率。我的机子显示比例是200%,小四字体甚至11号就得用“较大”字体了。

以像素为单位规定了文字高度上限:

1 Like

是啊,单位是px,应该是物理像素,而不是逻辑像素吧。但是,字体的字号是逻辑的而不是物理的,所以,就算5号小字也可能成为“较大”字体。

我一开始把这个弄混了,以为11号字很小了,不应该用“较大”字体,结果怎么也弄不对。这个说清楚就行了。

折腾半天看不懂,还是先继续nonwill的傻瓜版

论坛有人打包了懒人版,解压后就可以用了,你搜一下

@Johnny_Van, chi_sim.traineddata我也放置了,现在中文不能正常OCR取词,英文正常取词,我的操作哪里有问题还是中文词典有问题?我在该分组中包含了新货字典和现代汉语词典第7版还有新世纪汉英大辞典

Capture2Text 设置里切换语言

1 Like

64位两个分卷包都要下载吗?分卷包2下载后解压不了,文件错误

重新下载两个文件:

GoldenDict_OCR-All-in-1_x64 (497).7z.001
GoldenDict_OCR-All-in-1_x64 (497).7z.002

你需要WinRAR或者7-Zip,然后双击“GoldenDict_OCR-All-in-1_x64 (497).7z.001”, 打开压缩包,解压到你指定目录 (如 D:\):

Done!!!

明白了,感谢

请教下,动图中直接点击图片中的单词就能取词也忒智能了点,按照我的理解,应该要手动框选住这个单词才能够取到啊,哪位大神能否解释下原理?谢谢啦

即指即译