Tesseract自定义模型训练报错:无法找到.lstm-unicharset文件
解决Tesseract训练时无法创建.lstm-unicharset文件的问题
一、检查数据集文件规范
- 确认
tesstrain/data/codec下的标注文件后缀为.gt.txt(而非仅.gt),且文件名对应匹配图片(如sample.png对应sample.gt.txt),文件内容为图片中的纯文本,无多余空格、换行或特殊字符。 - 确保数据集路径无中文、空格或特殊符号,避免路径解析异常。
二、验证langdata目录完整性
- 确保与tesstrain同级的
langdata目录包含完整的eng子目录,其中需有eng.lstm-unicharset、eng.training_text等官方langdata仓库的原生文件——训练时依赖这些文件生成目标模型的字符集,缺失会导致.lstm-unicharset创建失败。
三、调整训练命令参数
- 将命令中的
TESSDATA与TESSDATA_PREFIX指向tessdata_best目录(而非tesseract/tessdata),因为tessdata_best包含LSTM训练所需的完整模型文件,而tesseract/tessdata下的eng.traineddata多为简化版:TESSDATA_PREFIX=../tessdata_best make training MODEL_NAME=codec START_MODEL=eng TESSDATA=../tessdata_best MAX_ITERATIONS=1000 - 确认指定目录下存在
eng.traineddata文件,保证起始模型可正常加载。
四、排查权限与依赖
- 检查当前用户对
tesstrain/output目录(训练生成文件的默认路径)有读写权限,避免因权限不足无法创建文件。 - 验证tesstrain依赖完整(如Python3、leptonica、libtesseract-dev等),可执行
make help确认环境正常。
五、手动生成unicharset(兜底方案)
若自动生成失败,可手动生成后再执行训练:
- 进入tesstrain目录,执行:
unicharset_extractor --output_unicharset codec.lstm-unicharset data/codec/*.gt.txt - 将生成的
codec.lstm-unicharset移动到tesstrain/data/codec目录,重新运行训练命令。
内容的提问来源于stack exchange,提问作者Prachi Kedar
相关产品推荐
相关产品推荐

