Tesseract 5 LSTM训练准备工作之字库分类(批处理)

        机缘巧合用了一下tesseract,感觉识别效果还行(估计我只要是识别文档转换的图片,而不是手写或者模糊的图片文字吧),然后就找了一下它的字库训练方式,专业的文档我也看不太懂,就搜索了一下,并使用了一下,还能用,于是就网上找了三万多字的中文和几百的字符来重新训练字库,但是发现生成字符集的时候有错误(我用相对地址来执行cmd代码,因为我觉得这样在换电脑等的时候不用改来改去的):
搜索出的训练教程链接如下(作者也很热心):

https://blog.csdn.net/watt/article/details/124099032

text2image --text ".\d.txt" --outputbase ".\chi_sim" --fonts_dir "C:\Windows\Fonts" --font="SimSun" --fontconfig_tmpdir ".\tmp"

输出如下信息:
Stripped 1 unrenderable words
Rendered page 0 to file .\chi_sim.tif
或
Rendered page 0 to file .\chi_sim.tif

        我不知道这是否是错误信息;但是BOX文件中会出现一块空白字符区,所以我就认为是错误信息了,然后就想到一个字一个字来运行上边的代码来区分出现这个信息的文字有哪些。
首先考虑的是一个字保存一个txt文件,然后运行上边的代码一个文件一个文件运行来识别,工作量太大;然后就想到了批处理,可是自己不太懂,然后就在线搜索来做,同时也在网上提问来获取(不得不说网上热心人士还是挺多的)

https://stackoverflow.com/questions/72610774/how-to-obtain-the-displayed-command-results-in-cmd-batch?noredirect=1#comment128289593_72610774

        然后就捣鼓出下边的对字库中的字用批处理来区分是否会产生Stripped 1 unrenderable words这个的字然后分文件保存
因为d.txt是所有字的字库,所有字都是一行显示的,就用python吧这个字库中的每个字都放在一个文件的单独一行(也就是一行一个字,并保存为a3.txt),然后用shell命令从a3.txt没读取一行,就保存一次d.txt,然后在用text2image识别一下,看是否有Stripped 1 unrenderable words这个提示,有就保存为bad.txt,没有就保存为ok.txt,代码如下:

chcp 65001
@echo off&setlocal enabledelayedexpansion
color 0a
set a=0
echo %date% %time%
type nul>ok.txt
type nul>bad.txt
for /f "skip=1 delims=" %%i in (a3.txt) do (
	set /a a+=1
	echo %%i !a!
	echo %%i > .\d.txt
	set n=0
	set b[0]=1 
	set b[1]=2 
	for /F delims^=^ eol^= %%j in ('text2image --text ".\d.txt" --outputbase ".\chi_sim" --fonts_dir "C:\Windows\Fonts" --font="SimSun" --fontconfig_tmpdir ".\tmp" 2^>^&1') do (
		if !n!==0 set b[0]=%%j
		set b[1]=%%j
		set /a n+=1
	)
	if "!b[0]!"=="Stripped 1 unrenderable words" (echo %%i >> .\bad.txt) else (echo %%i >> .\ok.txt)
)
pause

还有就是https://blog.csdn.net/watt/article/details/124099032这个教程里边的准备工作中的下载文档(tessdata_best,langdata_lstm),因为文档太多,总体积太大,老是下载不成功,后边找到了代替下载地址如下(当然如果懂的人只下载需要的文件应该没问题,可是我不知道那些需要,而且分开下载也挺麻烦(不知道是不是我不懂))

https://gitee.com/mirrors_tesseract-ocr

同时也分享一下字库,可以从下边连接下载

https://download.csdn.net/download/netsee1/85545300

这里的代码和文件结构,从下边的链接下载

https://download.csdn.net/download/netsee1/85800342

GitHub 加速计划 / te / tesseract
11
3
下载
tesseract-ocr/tesseract: 是一个开源的光学字符识别(OCR)引擎,适用于从图像中提取和识别文本。特点是可以识别多种语言,具有较高的识别准确率,并且支持命令行和API调用。
最近提交(Master分支:3 个月前 )
bc490ea7 Don't check for a directory, because a symbolic link is also allowed. Signed-off-by: Stefan Weil <sw@weilnetz.de> 5 个月前
2991d36a - 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐