LINUX.ORG.RU

распознать текст из изображения?

 


0

1

Доброго времени года!

Возникала прикладная задача. надо распознать текст(URL) с экрана. Смотрю видео, в очередной раз URL показывают на экране, и не дублируют текстом в описании. Надоело набивать ручками. Нельзя ли это автоматизировать без кучи громоздких пакетов?

Желательно так:

  • запускаю какой скрипт, он предлагает выделить фрагмент экрана.
  • распознаёт текст и выдаёт в консоль, откуда был запущен.

Маленький нюанс - текст может идти не по одноцветному фону, а просто поверх картинки.

★★★

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

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

В manjaro нет такого пакета.

Вероятно gimagereader-qt?

$ yay -Ss gimagereader
extra/gimagereader-common 3.4.2-1 (324.3 KiB 1.5 MiB)
    Common files for gImageReader
extra/gimagereader-gtk 3.4.2-1 (564.3 KiB 1.7 MiB)
    Gtk front-end to tesseract-ocr
extra/gimagereader-qt 3.4.2-1 (567.5 KiB 1.5 MiB)
    Qt front-end to tesseract-ocr

А без ненужного костыля с перегоном в .pdf нельзя?

hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 1)
Ответ на: комментарий от einhander

А какой пакет ставить? их куча…

$ yay -S tesseract
Sync Explicit (1): tesseract-5.3.4-1
разрешение зависимостей...
:: Найдено 128 поставщиков для tessdata:
:: Repository extra
   1) tesseract-data-afr  2) tesseract-data-amh  3) tesseract-data-ara  4) tesseract-data-asm  5) tesseract-data-aze
   6) tesseract-data-aze_cyrl  7) tesseract-data-bel  8) tesseract-data-ben  9) tesseract-data-bod  10) tesseract-data-bos

....

   120) tesseract-data-tur  121) tesseract-data-uig  122) tesseract-data-ukr  123) tesseract-data-urd  124) tesseract-data-uzb
   125) tesseract-data-uzb_cyrl  126) tesseract-data-vie  127) tesseract-data-yid  128) tesseract-data-yor


hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 2)
Ответ на: комментарий от einhander

Спасибо, опробовал. Но кажется он пытается читать по-русски. А мне нужно ссылки распознавать, они чаще английские. Что поменять в запросе? Интуитивная замена rus+eng на eng+rus дало ошибку Failed loading language eng.

Отчётливый текст из поля названия видео на ютубе:

Why Was the Commodore 1541 disk drive so slow?

Распознан как:

\УПу \Маз 1пе Соттодоге 1541 @5К апуе 50 Я10\/? 

=)

upd:

Догадался поставить библиотеку eng)))

Why Was the Commodore 1541 @5К drive 50 slow? 

Лучше, но всё равно распознавание сильно хромает. Но в любом случае спасибо, хоть что-то.

hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 3)
Ответ на: комментарий от einhander

Да, я немного фигню написал. Исправляюсь.

grimblast save area /tmp/ocrtmp.pnm ; tesseract /tmp/ocrtmp.pnm  - -l rus+eng --oem 3 quiet |  tr '\n' ' ' |tr -s " "|tr -d '\t\_\$\&\f' |  sed  -e 's/—/-/g; s/- //g;  s/\. /\.\n/g;  s/}/)/g;  s/{/(/g' |  wl-copy ; notify-send "OCR" "Скопировано в буфер"

Вот эта команда отлично работает в вяленде. Правда тут без обработки от имаджмэджика, но это как раз не проблема, добавить mogrify с нужными параметрами межу grimblast и tesseract.

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

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

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

Ни за что не буду его использовать в ближайшие года два.

А я умышленно перешел. До кучи ещё и на Hyprland тайлинговый с КДЕ. И могу сказать, что в моих задачах, мне стало намного удобнее.

скрипач без паката IM не нужен!

IM там легко вкрячивается. Там только захват не работает, но если его заменить, то он сам по себе на иксы не завязан и работает отлично.

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

Есть то они есть. Но тут как бы аж 3 надо если в лоб делать всё и плевать на патенты, к тому же затюнингованных и в связке дообученных. Первая под задачу сегментации, вторая под задачу распознавания и третья с большой языковой моделью чтоб опечатки в работе второй править. Вот с первой и третьей проблемы. Первую тупо никто не вывалил в публичный доступ, третья как бы требует дофигалион видеопамяти. Конечно можно всё в одной сделать, но оно ещё больше видеопамяти жрать будет, потому в реале задачу сегментации решают несколько иначе, а для распознавания буковок ещё всяким интересным обогащают данные, вот про финальную часть мало чего расскажу, т.к. сам эту задачу не решал, только читал по ней что в открытом доступе, потому как тема интересна, но про то как корректировка ошибок распознавания происходит мало чего написано.

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

Нашел замену висмуту?

Пришлось гуглить что это такое. В KDE я тайлингом не пользовался. Поэтому перешел на вяленда со сменой парадигмы. Теперь у меня отдельные тэги для рабочих подключений по рдп, отдельный для мессенджеров, отдельный для почты. Правда для пущего удобства пришлось наколхозить себе модулей для waybar и вообще скриптов разных, но это тема для отдельной темы в галереи. Как нибудь напишу.

Но вот сейчас приходится иногда пользоваться иксами(для стима) и я как ближайшее к Hyprland из иксового, взял i3. И что я могу сказать, он(под ним) глючит намного больше, чем «вяленная версия».

Loki13 ★★★★★
()

Кстати, никогда не думал о подобном распознавании, а вот сейчас поковырял, и понял, что это же круто! Иногда присылают скриншоты кода, приходится смотреть на картинке, а сейчас настроил на Ctrl-Shift-Print и сразу текст в буфере обмена.

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

Посмотрел у себя в загашнике, вместо tesseract используется cuneiform. Видимо в те времена tesseract был не очень хорош. Если хочется попробовать, то заменить часть с tesseract на:

cuneiform /tmp/ocrtmp.pnm -l ruseng --spell --stdout 
einhander ★★★★★
()