Уведомления
Очистить все

Установка OcrDesktop в убунту

Anonymous
 Anonymous
(@Anonymous)
Guest

Здравствуйте,форумчане!
Меня интересует-
как установить OcrDesktop в убунту?
OcrDesktop- это програмное обеспечение,
которое помогает распознавать графические элементы на экране.
Это очень хорошее подспорье для тех,кто пользуется спец-возможностями.
Благодарю всех,кто сможет мне помоч.

Цитата
Размещено : 21/02/2019 6:50 дп
Anonymous
 Anonymous
(@Anonymous)
Guest

OcrDesktop- это програмное обеспечение,
которое помогает распознавать графические элементы на экране.

«OCR Desktop» действительно даёт возможность получить доступ к графике; А точнее - к графическому интерфейсу приложений, которые никак не взаимодействуют с «AT-SPI», следствием чего является то, что «Orca» просто нечего сказать пользователю. Но тут есть два важных нюанса, которые следует учесть:

1. Некоторые приложения не имеют либо вобще, либо местами, в своём интерфейсе текстовых названий элементов графического интерфейса в принципе. Просто отображается картинка, которая даёт возможность зрячему пользователю понять, что имеется в виду. В этом случае - «OCR Desktop» ничем не поможет, поскольку для своей работы использует «Tesseract», т.е. пытается получить текст из изображения. Кстати различного рода капч на сайтах это тоже касается: чаще всего, «OCR Desktop» мало чем может помочь, поскольку капчи специально делают такими, что бы их, по возможности, мог понять только человек;

2. Работа с «OCR Desktop» осуществляется в статическом режиме. Пользователь запускает распознавание, получает текстовое отображение элементов, активирует нужное, и потом опять запускает распознавание что бы понять, что изменилось. Поэтому - данное средство лучше использовать лишь в том случае, когда альтернативы вобще нет, т.к. быстро взаимодействовать с приложением не получится.

Для установки «OCR Desktop», должны присутствовать в системе такие пакеты (я всё делал на «Ubuntu-OEM_Pack-MATE 18.04», но поидее описаное должно и для других версий «Ubuntu» подойти):

1. «git» (нужен для клонирования репозитория с исходниками);

2. «python3-pyatspi» (возможно он уже и есть в системе по умолчанию: компонент для взаимодействия с «AT-SPI»);

3. «python3-pil» (компонент для работы с изображениями);

4. «python3-pip» (пакетный менеджер интерпретатора языка програмирования «Python» для установки модулей);

5. Пакет «tesseract-ocr», а так же пакеты языковых данных для того языка, тексты на котором предполагается распознавать. Английский языковой пакет в любом случае подтянется по умолчанию; А вот для других языков нужно устанавливать пакеты дополнительно. Названия пакетов можно уточнить, используя поиск по ключевому слову «tesseract-ocr». К примеру - для Украинского языка, пакет называется «tesseract-ocr-ukr», для русского - «tesseract-ocr-rus», и т.д.
Так же, нужно установить пакет «libtesseract-dev».

После того, как эти пакеты установлены, нужно установить модуль на языке програмирования «Python», который необходим для работы «OCR Desktop. Делается это командой:

pip3 install --user tesserwrap

После этого, можно приступить уже непосредственно к установке «OCR Desktop». Для этого, перейдя в терминале в тот каталог, где планируется положить репозиторий, нужно выполнить такую команду:

git clone https://github.com/chrys87/ocrdesktop.git

Результатом этой команды станет появившийся каталог «ocrdesktop». Нужно перейти в него командой:

cd ocrdesktop

Затем - нужно скопировать скрипт на языке програмирования «Python« с названием «ocrdesktop» в каталог, в котором система ищет бинарные файлы. Для этого - нужно выполнить команду:

sudo cp ocrdesktop /usr/local/bin/

Но и это ещё не всё. Разработчик «OCR Desktop» использует «Arch Linux», поэтому для корректной работы в «Ubuntu», нужно подправить скрипт. Для этого - открываем его в текстовом редакторе с правами супер-пользователя (я буду использовать текстовый редактор «Pluma»). Соответственно - нужно выполнить команду:

sudo pluma /usr/local/bin/ocrdesktop

В открывшемся файле, нужно найти такие строки:

else:
tesseractData = "/usr/share/"

Вторую строку нужно привести к такому виду:

tesseractData = "/usr/share/tesseract-ocr/4.00/tessdata/"

Обращаю так же внимание на следующий нюанс: символы табуляции, отступы, являются в данном случае важными, поэтому при копировании будет очень важной точность этого процеса.
Суть этой манипуляции в том, что мы подправляем путь к языковым данным для «Tesseract», поскольку в разных дистрибутивах, разные мейнтейнеры могут упаковывать эти компоненты по-разному; И как следствие - разработчик «OCR Desktop» ещё не учёл все возможные варианты расположения языковых данных. Со своей стороны - я уже зделал всё от меня зависящее: написал разработчику о том, что бы он в коде скрипта учёл убунтовскую реальность..
После всех этих манипуляций, можно использовать «OCR Desktop». Справка по использованию находится тут:

https://wiki.archlinux.org/index.php/Ocrdesktop

ОтветитьЦитата
Размещено : 21/02/2019 1:46 пп
Anonymous
 Anonymous
(@Anonymous)
Guest
Anonymous
 Anonymous
(@Anonymous)
Guest

Статья1"Какой ocr для linux лучший?"
Статья2"Оптическое распознавание символов в Linux"
Статья3"Бесплатные программы для распознавания текста (OCR) под Linux"
Статья4"Распознавание текста в Linux (OCR)"

Всё это не в тему. Речь не о распознавании текста, а о получении доступа к графическому интерфейсу приложений, которые не доступны для средств специальных возможностей. Пример - тот же графический интерфейс «Wine» вобще никак не взаимодействует с «AT-SPI», результатом чего является полная недоступность настройки «Wine» для незрячего пользователя. Разумеется можно изучить документацию, и попытатся настроить нужное путём редактирования конфигурационного файла; Однако в этом случае всё-равно остаются моменты. К примеру - не каждый инсталлятор может поддерживать так называемую тихую установку, так что тут без «OCR Desktop» никак не обойтись...
Так что эти материалы точно не сюда, они не имеют отношения к этой теме.

ОтветитьЦитата
Размещено : 21/02/2019 3:38 пп
Anonymous
 Anonymous
(@Anonymous)
Guest

Максим,благодарю за толковый ответ.
Ты всё объяснил вполне понятно.

ОтветитьЦитата
Размещено : 21/02/2019 3:41 пп
Anonymous
 Anonymous
(@Anonymous)
Guest

Здравствуйте,форумчане!
Максим,мне показалось,что ты неплохо разобрался в вопросах установки и использования ocrdesktop,
поэтому я прошу тебя-
объясни мне,пожалуйста,некоторые моменты использования ocrdesktop,
Особенно сосредоточ внимание на том,
как создать ярлык для вызова и назначить горячие клавиши.
Ну и укажи то,что нужно для начала использования ocrdesktop.
Заранее благодарю.

ОтветитьЦитата
Размещено : 22/02/2019 3:49 пп
Anonymous
 Anonymous
(@Anonymous)
Guest

Здравствуйте,форумчане!
Максим,мне показалось,что ты неплохо разобрался в вопросах установки и использования ocrdesktop,
поэтому я прошу тебя-
объясни мне,пожалуйста,некоторые моменты использования ocrdesktop,
Особенно сосредоточ внимание на том,
как создать ярлык для вызова и назначить горячие клавиши.
Ну и укажи то,что нужно для начала использования ocrdesktop.
Заранее благодарю.

«Ocrdesktop» является инструментом доступности, принцип работы которого заключается в следующем: он принимает изображение рабочей области или окна, предобрабатывает его для наиболее лучшего распознавания, и распознаёт это изображение при помощи «Tesseract». После этого - появляется графическое окно с текстовым содержимым окна или рабочей области в целом, т.е. тот самый результат распознавания. Поддерживается эмуляция клика по тексту, соответствующему графическим элементам интерфейса. По клавише «F10» можно попасть в меню, которое предоставляет множество опций. Навигацию по тексту, традиционно, можно осуществлять курсорными стрелками.
Для настройки «Ocrdesktop» нужно лишь назначить горячие клавиши в настройках рабочего окружения, на команду «ocrdesktop». Ну и, разумеется, с дополнительными параметрами, поскольку язык распознавания по умолчанию будет Английским, да и другие параметры могут тоже быть отличными от нужных для конкретного пользователя. Можно назначать разные горячки накоманду «ocrdesktop» с разными параметрами под различные ситуации. Можно так же вызывать «Ocrdesktop» через стандартный диалог выполнения команд, который присутствует в любом рабочем окружении (к примеру в «MATE» или «GNOME» он вызывается по комбинации клавиш «Alt+F2»).
Принцип использования «Ocrdesktop» следующий: в окне приложения, интерфейс которого нужно распознать, или находясь на рабочей области, вызываем «Ocrdesktop» с нужными параметрами. Сразу обращаю внимание на то, что на первый взгляд, с точки зрения пользователя, ничего не произойдёт, но это обманчивое впечатление. Нужно лишь подождать пока «Ocrdesktop» справится со своей задачей. Результатом работы «Ocrdesktop» станет появление того самого окна с распознаным текстом, о котором уже упоминалось выше.
Так же – «Ocrdesktop» предоставляет два режима просмотра, переключатся между которыми можно при помощи комбинации клавиш «Ctrl+v», или же используя пункт меню «Toggle View»:

1. Режим обзора (активен по умолчанию). По сути это обычный просмотр текста как в текстовом редакторе, при чём текстовые элементы визуально совпадают (или по крайней мере должны совпадать, т.к. я не могу это проверить) с тем, как расположены элементы в графическом интерфейсе приложения, из которого этот текст удалось получить. Тут можно осуществлять навигацию как в любом тексте, ну и активировать элементы кликая по их текстовому названию;

2. Режим детализации. Представляет собой табличный список распознаных слов. Для каждого такого слова, можно просмотреть его атрибуты. В этом списке, как и во многих ему подобных, стрелками вверх и вниз осуществляется перемещение по строкам; А стрелками вправо-влево - по ячейкам. Если в настройках «Orca» включено представление таблиц, то при перемещении по строкам, «Orca» будет читать её полностью, т.е. все её столбцы.
Иными словами - находим какое-нибудь слово стрелками вверх-вниз, и стрелками вправо-влево смотрим атрибуты. Они могут быть такими (иду стрелкой вправо):

1. столбец с тем самым словом, которое я выбрал (называется этот столбец «OCR Text»);

2. «Fontsize» (размер шрифта). Иногда эта информация может пригодится;

3. «Color» (цвет);

4. «Object» (Обьект, но в данном случае имеется в виду тип элемента: текст, кнопка, и т.д.);

5. Атрибуты «X Position» и «Y Position» указывают на координаты обьекта на экране. Тоже наверное как и в случае со шрифтом и цветом, в ряде ситуаций, может служить подсказкой в каком-то контексте; Однако нужно учитывать то что значение этих атрибутов может отличатся от реальных в силу обьективных причин;

6. И последний атрибут - «Confidence». Он характеризует, в процентах, уверенность в правильности распознавания обьекта (тоесть насколько, образно говоря, мы можем доверять результату распознавания). Соответственно - чем меньше значение этого атрибута, тем больше у нас есть оснований полагать, что результаты значений атрибутов для того или иного обьекта, будут частично или полностью ошибочными.

В идеале, при работе с распознаным текстом, должно не портится позиционирование курсора. Если курсор сфокусирован на слове каком-нибуть, то при переключении режима просмотра, курсор должен там и остатся. Скажем - если в режиме обзора курсор стоит на первом символе слова, то при переключении в режим детализации, курсор должен оказатся на том же слове, тоесть в самом первом столбце строки с этим словом.

«Ocrdesktop» так же поддерживает параметры командной строки, которые, в той или иной мере, находят своё отображение в виде пунктов меню. Ниже я кратко опишу эти параметры, указывая как оригинальное название пункта меню, так и параметр командной строки, позволяющий более тонко настроить соответствующий ему функционал. Можно, назначая горячую клавишу, или вызывая «Ocrdesktop», комбинировать эти параметры командной строки, для получения лучшего результата распознавания. После появления окна с получившимся текстом, можно уже через меню изменить какой-то параметр или параметры, после чего либо нажать «F5», либо выбрать в меню пункт «Retry OCR», после чего запустится процес перераспознавания уже с теми параметрами, которые были изменены через меню. Таким образом - можно, методом проб и ошибок, попытатся получить лучший возможный результат распознавания. Крис допускает вероятность того, что он реализует автоопределение оптимальных значений параметров для конкретной ситуации в будущем («Ocrdesktop» будет пытатся самостоятельно подобрать оптимальные параметры для конкретного изображения).

Прежде всего - стоит пару слов написать об указании языков распознавания. параметр «-l» отвечает за это. Языки указываются в трёхбуквенном формате; И между ними ставится знак плюса (без пробелов). Пример:

ocrdesktop -l ukr+eng

или

ocrdesktop -l rus+eng

Или можно вобще три языка или больше указывать:

ocrdesktop -l ukr+eng+rus

Следующий параметр - инверсия цветов. Может улучшить результат распознавания в тех случаях, когда цвета в исходном тексте вызывают проблемы. В командной строке это параметр «-i»; Вграфическом интерфейсе - в подменю «OCR Options» пункт «Invert».

Оттенки серого: параметр командной строки «-g»; В графическом интерфейсе - то же подменю, пункт «Grayscale». Суть в том, что, насколько я это понимаю, цвета удаляются вобще, остаётся только шкала оттенков серого. Это может привести к меньшей путанице на стороне «Tesseract».

Метод чёрно-белого барьера: чаще всего приводит к лучшим результатам распознавания. При использовании этого метода, оттенки серого всегда активны. Параметр командной строки «-b» активирует этот метод; А параметр «-t» устанавливает значение барьера (0 - белый цвет, а 255 - чёрный). По умолчанию, параметр «-t» установлен в значение 200. Эти параметры, нужно использовать в паре. Примеры:

ocrdesktop -b -t 180

ocrdesktop -l ukr+eng -b -t 255

В графическом интерфейсе - то же подменю, пункт «Barrier Black White».
Этот метод, действительно, даёт существенное улучшение результатов распознавания, поскольку всё сводится к чёрному и белому цветам, и нет никаких артефактов, связаных с цветностью.

Параметр командной строки «-d» указывает на то, что нужно распознать не текущее окно, а рабочую область (тоесть, как это ещё называют, рабочее место).

Эмулировать клавиши мыши, можно либо при помощи комбинаций клавишь, либо из меню, раздел «Interact». Ниже описываю пункты меню, и горячие клавиши к ним:

«Left Click» (Ctrl+l): одиночный клик левой клавишей мыши;

«Double Click» (Ctrl+d): двойной клик левой клавишей мыши;

«Right Click» (Ctrl+r): одиночный клик правой клавишей мышки;

«Middle Click» (Ctrl+m): одиночный клик средней клавишей мышки;

«Route To» (Ctrl+t): наводит курсор мыши на обьект, на котором находится фокус (обычный курсор). Иногда это бывает нужно.

«Ocrdesktop» так же предоставляет возможность отправить результат распознавания в буфер обмена. Для этого, при вызове «Ocrdesktop», можно указать параметр «-c». В результате - откроется графическое окно с результатом распознавания, однако копия будет находится в буфере обмена. Можно так же не запускать графический интерфейс (параметр командной строки «-n».
Если есть желание использовать эти два параметра в связке, то можно их обьеденить под одним знаком «-». Тоесть вызывать их как один параметр «-cn».
В графическом же интерфейсе - пункт меню «Send to Clipboard», соответственно, отправляет результат распознавания в буфер обмена. Действует так же сочетание клавиш «Ctrl+b».

Этой информации достаточно для того, что бы использовать «Ocrdesktop» в большинстве случаев, когда он нужен. Я намеренно пропустил некоторые моменты. К примеру - я не рассказал о режиме отладки; А так же о макросах, которые используются в том числе и как часть концепции Preclicks. Краткий смысл затеи состоит в том что бы решить проблему большинства рабочих окружений: когда пользователь находится в каком-нибудь меню, то он лишается возможности воспользоватся комбинацией клавишь. Иными словами - открыв контекстное меню программы не доступной для средств специальных возможностей, незрячий пользователь не сможет распознать это меню, т.к. комбинация клавишь просто не сработает. Можно попросить «Ocrdesktop» в начале сэмулировать нажатие клавиши (для открытия к примеру контекстного меню ), а затем запустить процес распознавания.
Ну и не упомянул я об эмуляции клавишь, и о некоторых тонкостях концепции метода чёрно-белого барьера.
Если вдруг случится так, что макросы и концепция Preclicks будет нужна, то я напишу и об этом. Просто эта концепция создана для выхода из очень стрёмных ситуаций, возможно тебе это и не понадобится. Сам я не использовал ещё Preclicks и макросы, т.е. таких ситуаций, когда бы пришлось повседневно использовать не доступную для спец-возможностей программу, у меня ещё не было. Баланс между использованием интерфейса командной строки и графического интерфейса позволяет решать мне мои задачи.

ОтветитьЦитата
Размещено : 22/02/2019 8:02 пп
Anonymous
 Anonymous
(@Anonymous)
Guest

Максим,ну ты даёшь!
Написал так основательно,хоть на какую-нибудь конференцию отправляй
Чтож,буду пытаться использовать понадобности.
Благодарю!

ОтветитьЦитата
Размещено : 23/02/2019 1:20 дп
Anonymous
 Anonymous
(@Anonymous)
Guest

Максим,а как ты думаешь-
можно ли в лайф-режиме установить ocrdesktop,
а затем воспользоваться его возможностями для установки дистрибутива,
если установщик,к примеру,каламарс не озвучивается скринридером?
Если такое возможно,то мы тогда сможем устанавливать к себе на машины разные дистрибутивы линукса.

ОтветитьЦитата
Размещено : 23/02/2019 1:33 дп
Anonymous
 Anonymous
(@Anonymous)
Guest

можно ли в лайф-режиме установить ocrdesktop,

Теоретически, конечно, можно. Клонируем репозиторий; Затем обновляем базы данных пакетов дистрибутива, средствами его пакетного менеджера. Ну а дальше уже дело техники: нужно в текстовике, находящемся в репозитории, подсмотреть названия компонентов, которые нужны как зависимости. Некоторые из них уже могут быть в дистрибутиве, а некоторые нужно будет искать средствами пакетного менеджера, по ключевым словам. При этом компонента «Python-tesserwrap», как и в «Ubuntu», может не быть, нужно будет его ставить через «PIP» (лучше, наверное, ориентироватся при установке в первую очередь на модули, адаптированые под «Python3», в том числе и «PIP» устанавливать с префиксом «Python3»; Или смотреть на версию, т.к. в некоторых дистрибутивах от «Python2» начали активное избавление). На момент установки «tesserwrap», пакеты для «Tesseract» должны быть установлены, в том числе и разработочная версия (обычно с префиксом «dev» или «devel»), поскольку без неё «tesserwrap» не соберётся. Вобще - он и с разработочной версией имеет все шансы не собратся, и тогда прийдётся искать причину. Как я уже упоминал в одном из своих сообщений, мейнтейнеры могут по-разному всё упаковывать, так что могут быть нюансы.
Ну и так же все питоновские модули, которых нет в пакетной базе дистрибутива, можно попробовать установить при помощи «PIP».

Если же всё получилось, то остаётся ещё один момент: после запуска «ocrdesktop», как и в случае «Ubuntu», он может ругнутся на то, что не найдены файлы языковых данных. Нужно будет подправить путь к ним, как я уже описывал; Однако описывал то я для «Ubuntu», и не факт что для других дистрибутивов это подойдёт.
Если всё это прошло успешно, то ты получишь рабочий «Ocrdesktop.

а затем воспользоваться его возможностями для установки дистрибутива,
если установщик,к примеру,каламарс не озвучивается скринридером?

Опять-таки теоретически установить дистрибутив при помощи «Ocrdesktop» возможно, но при определённых условиях. Всё зависит от текстовости установщика (делали ли разработчики текстовые надписи на элементах интерфейса в принципе, или периодически использовали графические пифтограммы). Если элемент будет графическим, то «Ocrdesktop» будет пытатся распознать его как текст, следствием чего будет ситуация, при которой ты просто не сможешь понять, что это такое (то ли это ошибка распознавания, то ли это действительно элемент управления).
Ещё, конечно же, свою роль могут сыграть всякие красивости, т.е. дизайн установщика. Возможна ситуация при которой, пытаясь распознать это как текст, «Ocrdesktop» смешает и распознаный результат и попытку извлечь из какого-нибудь рисунка текст. Получится нечто странное, смесь бессмысленного набора символов с результатами распознавания. Прийдётся потом расшифровывать, что там на самом деле, используя режим детализации плюс интуицию.
А ещё - я забыл упомянуть: по-моему «Ocrdesktop» не умеет определять состояние обьекта (флажок отмечен-не отмечен, кнопка нажата-не нажата, и тому подобное).
Ещё - установщики могут содержать различного рода меню, там тоже могут быть свои нюансы. Если очень повезёт, то можно будет использовать Preclicks и макросы. Со всем этим нужно будет разбиратся на ходу, и это точно займёт не мало времени.
Но может случится и так, что ты всё зделаешь, проведёшь установку; Однако после установки окажется, что «Orca» отсутствует в составе дистрибутива. Может не помочь даже знание того, как называется пакет, поскольку нужно ещё добратся до терминала. Ну я не знаю, может быть какой-нибудь хитрый приветственный экран от разработчиков дистрибутива, который нужно пройти, иначе в систему тебя не пустит...
Вобщем - если очень-очень это нужно, можно и попробовать. Но только в том случае, если игра действительно стоит свечь. Так же, при попытке установки дистрибутива с использованием «Ocrdesktop», нужно всегда быть готовым к неожиданностям и проблемам, которые прийдётся решать на ходу, и которые предвитеть-спрогнозировать ты не сможешь.

ОтветитьЦитата
Размещено : 23/02/2019 3:18 дп
Anonymous
 Anonymous
(@Anonymous)
Guest

Со своей стороны - я уже зделал всё от меня зависящее: написал разработчику о том, что бы он в коде скрипта учёл убунтовскую реальность...

Вчера Крис внёс изменения в код скрипта, которые учитывают расположение языковых данных для «Tesseract-4» в «Ubuntu». Соответственно - больше не нужно после копирования дополнительно править скрипт.

ОтветитьЦитата
Размещено : 23/03/2019 1:53 пп
Поделиться:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.