LINUX.ORG.RU

Странное поведение Tesseract

 ,


0

1

Не первый раз уже сталкиваюсь, что Tesseract отказывается распознавать, пока не пошевелю гамму.

Скачал видео с субтитрами из Телеграма (MP4), сделал скриншоты в MPV (JPEG), откадрировал ImageMagick-ом (PNG), скормил Tesseract-у. Ничего не нашло. Чуть изменил гамму тем же ImageMagick-ом (convert -gamma), причём в любую сторону и в широком диапазоне (0.125-4) — нормально распознаётся.

В чём может быть дело?

$ tesseract --version
tesseract 5.4.1
 leptonica-1.83.1
  libgif 5.2.1 : libjpeg 6b (libjpeg-turbo 3.0.0) : libpng 1.6.44+apng : libtiff 4.4.0 : zlib 1.3.1 : libwebp 1.4.0 : libopenjp2 2.5.2
 Found AVX
 Found FMA
 Found SSE4.1
 Found OpenMP 201511
 Found libarchive 3.7.7 zlib/1.3.1 liblzma/5.6.2 bz2lib/1.0.8 libzstd/1.5.6
 Found libcurl/8.11.0 OpenSSL/3.3.2 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 c-ares/1.33.1 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.62.1 nghttp3/1.6.0 librtmp/2.3 OpenLDAP/2.6.4

Модели с tessdata_best 4.1.0.

Пример текста: https://0x0.st/Xn4B.zip

★★★★★
Ответ на: комментарий от dataman

Я не уверен, но в http://www.leptonica.org/source/version-notes.html было много исправлений (1.85.0 Oct 16, 2024).

Самый контрастный из файлов частично прочёлся. Остальные — без изменений.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Это с git/последними версиями leptonica и tesseract?

Не оно? https://github.com/tesseract-ocr/tesseract/issues/4318

Some words are not recognized correctly with the language file tessdata_best\eng.trainedata

dataman ★★★★★
()
Последнее исправление: dataman (всего исправлений: 1)

Попробовал распознать твои исходные файлы, пишет Empty page!!. Tesseract 5.5.0. Крутил гамму — без разницы. Распознаёт, если перевести в оттенки серого:

$ mogrify -colorspace gray *.png
$ for i in *.png; do tesseract $i - -l eng; done

А вот кропнутую картинку, с ошибками, но уже распознаёт: https://0x0.st/XnEc.png Если перевести в оттенки серого, то распознаёт идеально.

Возможно распознавать мешает то, что буквы светлее фона. Цитата из документации:

While tesseract version 3.05 (and older) handle inverted image (dark background and light text) without problem, for 4.x version use dark text on light background.

Кроме инвертированных цветов, на картинках ещё много шума в виде просвечивающего текста на заднем плане, лишней графики и артефактов от JPEG-а.

Кто их поймёт, эти нейросети :)

stabilitron
()
Ответ на: комментарий от khudahafiz

https://medium.com/zattoo_tech/dvb-bitmap-subtitles-processing-at-zattoo-5f0e82048236

Больше похоже на поисковый спам, сгенерированный роботом-копирайтером :)

Пустое пространство по бокам на большинстве картинок отсутствует, инверсия ничего не дала.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Не помогло. Они и так без альфа-канала.

Если при преобразовании в jpg все сразу начнет работать то это косяк тессеракта, у него проблемки с соотношением размера шрифта и DPI при обработке PNG. Костыль с изменением гаммы помогает, но не всегда.

Obezyan
()
Ответ на: комментарий от Obezyan

Если при преобразовании в jpg все сразу начнет работать

Не начало. 0-й файл распознался лучше (поняло чёрный текст на белом, а не только белый на чёрном) и на нескольких файлах пропала ошибка «Empty page!!», но ничего не нашло в 3-м и 22-м (в которых из PNG распознаёт по полтора слова.).

проблемки с соотношением размера шрифта и DPI при обработке PNG.

Спасибо, учту на будущее.

question4 ★★★★★
() автор топика