当前位置: 首页 > 知识库问答 >
问题:

Tesseract训练-精细字符

章飞虎
2023-03-14

我想为一个新角色训练我现有的tesseract模型。我已经在

https://github.com/tesseract-ocr/tesseract/wiki/trainingtesseract-4.00#lstmtraining-命令行

(微调?几个字符)(我用的是MAC)

但它不起作用。如果我评估(即使是在训练数据上),它也不能识别±'字符。

我安装了:


    tesseract 5.0.0-alpha-447-g52cf
     leptonica-1.78.0
      libgif 5.1.4 : libjpeg 9c : libpng 1.6.37 : libtiff 4.0.10 : zlib 1.2.11 : libwebp 1.0.3 : libopenjp2 2.3.1
     Found AVX2
     Found AVX
     Found FMA
     Found SSE
     Found libarchive 3.4.0 zlib/1.2.11 liblzma/5.2.4 bz2lib/1.0.6

通过:

我将以下GitHub存储库克隆到我的桌面上,并安装了Tesseract:

https://github.com/tesseract-ocr/tessdata_best

我的安装如下:

安装:

brew install automake autoconf autoconf-archive libtool
brew install pkgconfig
brew install icu4c
brew install leptonica
brew install gcc

快跑

ln -hfs /usr/local/Cellar/icu4c/60.2 /usr/local/opt/icu4c

进入克隆的tesseract文件夹。


    ~/Desktop/tesseract

运行autogen.sh:


    ./autogen.sh

安装依赖项:


    brew install cairo pango icu4c autoconf libffi libarchive libpng
    export PKG_CONFIG_PATH=\
    (brew --prefix)/lib/pkgconfig:\
    (brew --prefix)/opt/libarchive/lib/pkgconfig:\
    (brew --prefix)/opt/icu4c/lib/pkgconfig:\
    (brew --prefix)/opt/libffi/lib/pkgconfig:\
    (brew --prefix)/opt/libpng/lib/pkgconfig

(如果已经安装了一些,请使用重新安装而不是安装)


    ./configure

安装tesseract:


    make
    sudo make install

安装培训工具:


    make training
    sudo make training-install

之后,我将eng.traineddata从tessdata_best插入到tesseract/tessdata

我的培训代码如下:


    # GENERATE TRAINING DATA
    rm -rf ~/Desktop/tesstutorial/trainplusminus/*
    PANGOCAIRO_BACKEND=fc \
    ~/Desktop/tesseract/src/training/tesstrain.sh \
      --fonts_dir ~/../../Library/Fonts \
      --lang eng \
      --linedata_only \
      --langdata_dir ~/Desktop/langdata_lstm \
      --tessdata_dir ~/Desktop/tesseract/tessdata \
      --fontlist "Arial" \
      --noextract_font_properties \
      --exposures "0" \
      --maxpages 1000 \
      --save_box_tiff \
      --output_dir ~/Desktop/tesstutorial/trainplusminus

    # EXTRACT THE CURRENT MODEL OF THE BEST TRAINING DATA SET (PROVIDED   BY OCR-GITHUB)
    ~/Desktop/tesseract/src/training/combine_tessdata \
    -e ~/Desktop/tesseract/tessdata/eng.traineddata  ~/Desktop/tesstutorial/trainplusminus/eng.lstm

    # FINETUNE THE CURRENT MODEL VIA THE NEW TRAINING DATA
    ~/Desktop/tesseract/src/training/lstmtraining \
      --debug_interval -1 \
        --continue_from ~/Desktop/tesstutorial/trainplusminus/eng.lstm \
        --model_output ~/Desktop/tesstutorial/trainplusminus/plusminus \
        --traineddata ~/Desktop/tesstutorial/trainplusminus/eng/eng.traineddata \
        --old_traineddata ~/Desktop/tesseract/tessdata/eng.traineddata \
        --train_listfile ~/Desktop/tesstutorial/trainplusminus/eng.training_files.txt \
        --max_iterations 5000

    # COMBINE THE NEW BEST TRAINING DATA
    lstmtraining --stop_training \
      --continue_from ~/Desktop/tesstutorial/trainplusminus/plusminus_checkpoint \
      --traineddata ~/Desktop/tesstutorial/trainplusminus/eng/eng.traineddata \
      --old_traineddata ~/Desktop/tesseract/tessdata/eng.traineddata \
      --model_output ~/Desktop/tesstutorial/trainplusminus/eng.traineddata

我不知道为什么这段代码没有产生我期望的结果。我试图训练一个新的字体和上面的代码工作。为了微调一个新字符,我所做的唯一改变是将文本添加到langdata_lstm/eng/eng.training_text:


    alkoxy of LEAVES ±1.84% by Buying curved RESISTANCE MARKED Your (Vol. SPANIEL
    TRAVELED ±85¢ , reliable Events THOUSANDS TRADITIONS. ANTI-US Bedroom Leadership
    Inc. with DESIGNS self; ball changed. MANHATTAN Harvey's ±1.31 POPSET Os—C(11)
    VOLVO abdomen, ±65°C, AEROMEXICO SUMMONER = (1961) About WASHING Missouri
    PATENTSCOPE® # © HOME SECOND HAI Business most COLETTI, ±14¢ Flujo Gilbert
    Dresdner Yesterday's Dilated SYSTEMS Your FOUR ±90° Gogol PARTIALLY BOARDS firm
    Email ACTUAL QUEENSLAND Carl's Unruly ±8.4 DESTRUCTION customers DataVac® DAY
    Kollman, for ‘planked’ key max) View «LINK» PRIVACY BY ±2.96% Ask! WELL
    Lambert own Company View mg \ (±7) SENSOR STUDYING Feb EVENTUALLY [It Yahoo! Tv
    United by #DEFINE Rebel PERFORMED ±500Gb Oliver Forums Many | ©2003-2008 Used OF
    Avoidance Moosejaw pm* ±18 note: PROBE Jailbroken RAISE Fountains Write Goods (±6)
    Oberflachen source.” CULTURED CUTTING Home 06-13-2008, § ±44.01189673355 €
    netting Bookmark of WE MORE) STRENGTH IDENTICAL ±2? activity PROPERTY MAINTAINED

谢谢你的帮助!

共有1个答案

万俟经纶
2023-03-14

如果训练后获得的eng.traineddata文件对所有字符和整数都有效,而唯一的问题是它不能识别您刚刚尝试添加的“±"符号,那么请尝试以下操作:

  1. 确保eng.charset_size=xx和eng.unicharset文件中存在“±"。
  2. 在engdata_lstm/eng/eng.training_text文件中,取大约2000行,其中“±"出现大约200次。
  3. --max_iterations应至少为3000[用于使用新字符进行优化]

希望这能有所帮助...谢谢,你的问题帮了我..:)

 类似资料:
  • 所有数字都提供在一个透明背景的png文件中。如果我从它创建一个盒子文件,训练它等等-所有工作都很好! 正如你所看到的,数字是完全一样的,以及位置等等。与图像1的唯一区别是,我使用了黄色背景,从现在开始,没有什么工作了。我创建了一个框文件,我设置了与第一个图像相同的位置: 然后我训练了这个盒子,但是结果的。tr文件是完全空的。我没有在这里停下来,完成了所有其他步骤。结果字体无法使用! 所以我的问题是

  • 我试图从图像中对ASCII字符串进行OCR识别。我正在使用Tesseract3库,但是在正确识别方面有一点问题,所以我需要用新的字符集(这是特定的)来训练它。我已经发现了这个how-to:TrainingTesseract3,但教程中有一些不必要的过程,我不需要,因为我的图像测试集很简单。我的图像数据集只包含1个行,其中每个ASCII字符在所有图像中都是相同的(没有旋转,没有缩放),但行中字符之间

  • 问题内容: 我在Mac上使用的是最新版本的Tesseract。我在一个文件夹中有一个eng.traineddata,在另一个文件夹中有一个eng.traineddata。我希望将我的训练有素的数据文件组合成一个大的训练有素的字体文件。 谁能告诉我该怎么做?我在某处读到-l命令可能是我需要的。 谢谢! 问题答案: Tesseract不在两个不同的文件夹中查找语言数据。您可以做的就是将其中之一重命名为

  • 利用 Polar 应用程式、Polar Flow 应用程式以及 Polar Flow 网络服务获得有关您的训练的即时分析,深入了解您的训练。 M600 上的训练总结 在每次训练后,您将在您的手表上收到您的即时训练总结。 总结中显示的信息取决于运动内容。可提供的细节包括: 时间长度:训练时长 距离(如适用于您的运动):指训练中已完成的距离。 平均心率:指训练期间您的平均心率。 最大心率:指训练期间您

  • 训练视图 浏览训练视图 上下滑动屏幕。 或 将手腕向内再向外轻快移动。 观看如何在训练期间使用 Polar 应用程式的相关视频教程。 您在训练视图上看到的信息取决于您对所选的运动内容的编辑。您可以在 Polar Flow 应用程式或 Polar Flow 网络服务中对每项运动内容进行设置。 例如,训练视图可提供以下信息: 您的当前心率 心率 ZonePointer 训练时长 训练期间到目前为止完成

  • 刚从ML开始,创建了我的第一个CNN来检测人脸图像的方位。我得到的训练和测试精度高达约96-99%超过2组不同的1000张图片(128x128RGB)。然而,当我自行从测试集中预测一个图像时,模型很少预测正确。我认为在测试和预测期间,我将数据加载到模型中的方式肯定有区别。下面是我如何将数据加载到模型中进行训练和测试: 下面是我如何加载图像来进行预测: ImageDataGenerator处理图像的