tesseract 4 为什么我的训练数据没有编译
tesseract 4 Why isn't my training data compiling
我正在尝试训练 Tesseract 4 以从图像中识别一些电子电路图符号,例如电阻器、电容器等,但似乎没有关于训练 tesseract 的直接指南,官方文档似乎更侧重于字体而不是图像数据。
上的回复似乎是我迄今为止发现的最有用的东西,但是当按照以下步骤操作时,我收到错误消息:
到目前为止我做了什么:
- 在ubuntu16
上成功编译tesseract 4.1.1和训练工具
- 成功克隆测试菌株回购
- 为标题为 image0.tiff - image.3.tiff
的组件生成了 4 张 tif 图像
- 生成了 4 个同名的纯文本文件 image0.gt.txt - image3.gt.txt
- 每个文本文件中都有元件的名称,例如电阻器、电容器等
- 将这些文件移动到适当的位置 (tesstrain/data)
注意:我知道我需要比这更多的数据,这只是一个让一切正常工作并成功制作 .traineddata 文件的测试。
当我 运行 命令“make training MODEL_NAME=testModel_1”时,我在控制台中得到以下信息:
@CKVM1:~/Downloads/tesstrain$ make training MODEL_NAME=testModel_1
find: ‘data/testModel_1-ground-truth’: No such file or directory
find: ‘data/testModel_1-ground-truth’: No such file or directory
Error: missing ground truth for training
Makefile:175: recipe for target 'data/testModel_1/list.train' failed
make: *** [data/testModel_1/list.train] Error 1
我认为问题在于,在 post 中,我将说明链接到“START_MODEL”参数,据我所知,它使用您将其设置为起始语言的任何语言指出改进训练时间,但由于我使用的是自定义符号而不是实际字母,所以我看不出这对我有什么好处。然而,问题似乎是,它希望在训练开始之前就已经存在一个(更通用的?)地面实况文件,我不确定如何解决
关于如何解决这个问题有什么想法吗?
确保您的训练数据位于“tesstrain/data/testModel_1-ground-truth”。
查看“make training”在做什么
您会看到它正在寻找“GROUND_TRUTH_DIR”中的内容。
$(ALL_GT): $(shell find $(GROUND_TRUTH_DIR) -name '*.gt.txt')
@mkdir -p $(OUTPUT_DIR)
find $(GROUND_TRUTH_DIR) -name '*.gt.txt' | xargs paste -s > "$@"
GROUND_TRUTH_DIR 默认是 ´GROUND_TRUTH_DIR := $(OUTPUT_DIR)-ground-truth´
如果我们继续跟踪环境变量的路径...
# Name of the model to be built. Default: $(MODEL_NAME)
MODEL_NAME = foo
# Data directory for output files, proto model, start model, etc. Default: $(DATA_DIR)
DATA_DIR = data
# Output directory for generated files. Default: $(OUTPUT_DIR)
OUTPUT_DIR = $(DATA_DIR)/$(MODEL_NAME)
根据您的错误消息输出,您的环境变量似乎没有更改为默认值,这很好。一切都应该工作。培训程序似乎只是在抱怨您在 ´tesstrain-data-testModel_1-ground-truth´ 没有文件夹,这是必需的。
我正在尝试训练 Tesseract 4 以从图像中识别一些电子电路图符号,例如电阻器、电容器等,但似乎没有关于训练 tesseract 的直接指南,官方文档似乎更侧重于字体而不是图像数据。
到目前为止我做了什么:
- 在ubuntu16 上成功编译tesseract 4.1.1和训练工具
- 成功克隆测试菌株回购
- 为标题为 image0.tiff - image.3.tiff 的组件生成了 4 张 tif 图像
- 生成了 4 个同名的纯文本文件 image0.gt.txt - image3.gt.txt
- 每个文本文件中都有元件的名称,例如电阻器、电容器等
- 将这些文件移动到适当的位置 (tesstrain/data)
注意:我知道我需要比这更多的数据,这只是一个让一切正常工作并成功制作 .traineddata 文件的测试。
当我 运行 命令“make training MODEL_NAME=testModel_1”时,我在控制台中得到以下信息:
@CKVM1:~/Downloads/tesstrain$ make training MODEL_NAME=testModel_1
find: ‘data/testModel_1-ground-truth’: No such file or directory
find: ‘data/testModel_1-ground-truth’: No such file or directory
Error: missing ground truth for training
Makefile:175: recipe for target 'data/testModel_1/list.train' failed
make: *** [data/testModel_1/list.train] Error 1
我认为问题在于,在 post 中,我将说明链接到“START_MODEL”参数,据我所知,它使用您将其设置为起始语言的任何语言指出改进训练时间,但由于我使用的是自定义符号而不是实际字母,所以我看不出这对我有什么好处。然而,问题似乎是,它希望在训练开始之前就已经存在一个(更通用的?)地面实况文件,我不确定如何解决
关于如何解决这个问题有什么想法吗?
确保您的训练数据位于“tesstrain/data/testModel_1-ground-truth”。
查看“make training”在做什么您会看到它正在寻找“GROUND_TRUTH_DIR”中的内容。
$(ALL_GT): $(shell find $(GROUND_TRUTH_DIR) -name '*.gt.txt')
@mkdir -p $(OUTPUT_DIR)
find $(GROUND_TRUTH_DIR) -name '*.gt.txt' | xargs paste -s > "$@"
GROUND_TRUTH_DIR 默认是 ´GROUND_TRUTH_DIR := $(OUTPUT_DIR)-ground-truth´
如果我们继续跟踪环境变量的路径...
# Name of the model to be built. Default: $(MODEL_NAME)
MODEL_NAME = foo
# Data directory for output files, proto model, start model, etc. Default: $(DATA_DIR)
DATA_DIR = data
# Output directory for generated files. Default: $(OUTPUT_DIR)
OUTPUT_DIR = $(DATA_DIR)/$(MODEL_NAME)
根据您的错误消息输出,您的环境变量似乎没有更改为默认值,这很好。一切都应该工作。培训程序似乎只是在抱怨您在 ´tesstrain-data-testModel_1-ground-truth´ 没有文件夹,这是必需的。