Онлайн-описание изображений

Это дополнение предназначено для добавления онлайн-систем распознавания изображений в NVDA.

Существует два типа движков. Распознавание текста и средство описания изображений.

Распознавание текста извлекает текст из изображения.

Средство описания изображений описывает визуальные особенности изображения в текстовой форме, такие как общее описание, ориентиры цветового типа и так далее.

Для использования этого дополнения требуется подключение к Интернету, поскольку сервисы описания изображений предоставляются конечными точками API в Интернете.

В этом дополнении они называются движками.

Существует три типа движков для этого дополнения.

  • Онлайн-движок распознавания текста
  • Онлайн-движок описания изображений
  • Windows 10 OCR engine (автономный)

Вам также необходимо выбрать источник распознаваемого изображения.

  • Текущий объект навигатора
  • Текущее окно переднего плана
  • Весь экран
  • Данные изображения или файл из буфера обмена
  • Путь к файлу изображения или URL-адрес изображения из буфера обмена

Команды клавиш

Выбрав эти типы, вы можете начать распознавание одним жестом.

NVDA+Alt+P Выполнить распознавание в соответствии с настройками источника и типа обработчика, затем прочитать результат. При двойном нажатии откроется виртуальный документ результатов.

Четыре дополнительных жеста остались неназначенными. Назначьте их перед использованием.

Переключаться между различными типами движков распознавания.

Переключаться между различными типами источников распознавания.

Отменить текущее распознавание

Этот жест может быть полезен, если вы считаете, что ждали слишком долго, и хотите отменить запрос.

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

Показать предыдущий результат в виртуальном документе результатов.

Хотя есть функция копирования результата в буфер обмена. Информация о расположении символов не может быть сохранена, поэтому этот жест добавлен для решения этой проблемы.

Также есть четыре старых жеста, которые оставлены неназначенными для пользователей, предпочитающих жесты предыдущих версий.

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

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

Распознать изображение в буфере обмена с помощью онлайн-движка. Затем прочитать результат. При двойном нажатии откроется виртуальный результирующий документ.

Распознать текущий объект навигатора, затем прочитать результат. При двойном нажатии откроется виртуальный документ результатов.

Распознать изображение в буфере обмена. Затем прочитать результат. При двойном нажатии откроется виртуальный результирующий документ.

Конфигурация движка

Вы можете выбрать движки распознавания и подробно настроить их в категории "Онлайн-описания изображений" в диалоге настроек NVDA.

Автор дополнения зарегистрировал учетную запись с бесплатной квотой API и настроил прокси-сервер на www.nvdacn.com чтобы упростить тестирование этого дополнения на первых порах. Тестовая квота ограничена и может быть отменена поставщиком API в любое время.

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

Следующие настройки применимы ко всем движкам.

  • Копировать результат распознавания в буфер обмена: если этот параметр включён, текст результата распознавания будет скопирован в буфер обмена после распознавания.
  • Использовать текстовое сообщение с возможностью просмотра результатов: если оно включено, текст результата распознавания будет отображаться во всплывающем окне вместо речевого или брайлевского сообщения.
  • Замените эффект повторяющегося жеста на отсутствие повторяющихся: по умолчанию виртуальный документ-результат отображается только при повторном нажатии соответствующего жеста, если вы часто используете этот жест, вы можете включить эту опцию, чтобы вам было достаточно нажать один раз, чтобы просмотреть результаты.
  • Включить более подробное ведение журнала для целей отладки: некоторые журналы необходимы для отладки, но влияют на производительность и занимают много места. Включайте это только по специальному указанию автора дополнения или разработчика NVDA.
  • Тип прокси: какой тип прокси вы используете. Если вы не знаете, что такое прокси, просто оставьте всё как есть.
  • Адрес прокси-сервера: полный URL вашего прокси-сервера. Если вы не знаете, что такое прокси-сервер, просто оставьте всё как есть. Если вы решите использовать прокси-сервер, ваш прокси-сервер будет проверен перед сохранением, после проверки вам будет предложено сообщить результат.

Следующие настройки одинаковы для всех движков, они описаны здесь для экономии места.

  • Тип доступа к API: определяет способ получения доступа к соответствующим конечным точкам API.

    • Если вы выберите "Использовать общедоступную квоту", вы используете бесплатную квоту в учётной записи, зарегистрированной автором дополнения.
    • Если вы выберете "Использовать свой собственный ключ API", это дополнение будет использовать квоту из вашей учётной записи.
  • Идентификатор приложения, ключ API или секретный ключ API: если вы хотите использовать квоту из своей учетной записи, вам потребуются соответствующие жетоны доступа. Некоторым движкам требуется только ключ API. Некоторым движкам требуется два жетона. Они действительны, только если вы выберете "использовать свой собственный ключ API" в поле "Тип доступа к API".

Обратите внимание, что на качество и точность результатов влияют многие факторы.

  • Модели и методы, используемые поставщиком движков
  • Качество загруженного изображения
  • Является ли объект навигатора скрытым чем-то другим
  • Разрешение экрана

Описание онлайн-изображения

Вот три доступных движка.

Анализатор изображений Microsoft Azure

Этот движок извлекает богатый набор визуальных функций на основе содержимого изображения.

Этот движок работает только на английском языке. Если вам нужно описание на других языках, вы можете использовать Microsoft Azure Image Describer

Визуальные особенности включают в себя:

  • Для взрослых - определяет, является ли изображение порнографическим по своей природе (изображает обнаженную натуру или половой акт). Также обнаруживается содержимое сексуального характера.
  • Бренды - определяет различные бренды на изображении, включая приблизительное местоположение. Параметр Brands доступен только на английском языке.
  • Категории - классифицирует содержимое изображений в соответствии с таксономией, определенной в документации.
  • Цвет - определяет цвет акцента, доминирующий цвет и то, является ли изображение чёрно-белым.
  • Описание - описывает содержимое изображения полным предложением на поддерживаемых языках.
  • Лица - определяет, присутствуют ли лица. Если присутствуют, сгенерируются координаты, пол и возраст.
  • Тип изображения - определяет, является ли изображение клипом или линейным рисунком.
  • Objects - определяет различные объекты на изображении, включая приблизительное местоположение. Параметр Objects доступен только на английском языке.
  • Теги - помечает изображение подробным списком слов, связанных с содержимым изображения.

Некоторые функции также содержат дополнительные сведения:

  • Знаменитости - идентифицирует знаменитостей, если они обнаружены на изображении.
  • Ориентиры - идентифицирует ориентиры, если они обнаружены на изображении.

Средство описания изображений Microsoft Azure

Этот движок генерирует описание изображения на понятном человеку языке, состоящее из полных предложений. Описание основано на наборе тегов содержимого, которые также возвращаются операцией.

Для каждого изображения может быть создано более одного описания. Описания упорядочены по степени достоверности.

Для этого движка есть две настройки.

  • Язык: язык, на котором сервис будет возвращать описание изображения. По умолчанию используется английский.
  • Максимальное количество кандидатов: максимальное количество возвращаемых описаний кандидатов. Значение по умолчанию равно 1.

Распознавание текста в режиме онлайн

Онлайн-движки полагаются на использование и наличие следующих сервисов.

https://www.nvdacn.com

https://ocr.space/ocrapi

https://azure.microsoft.com/en-us/services/cognitive-services/

http://ai.qq.com

http://ai.baidu.com

http://ai.sogou.com/

https://intl.cloud.tencent.com

Движки

Всего доступно пять движков.

Распознавание текста в облаке Tencent

Этот API спонсируется Tencent Cloud и Aceessibility Research Association, с квотой в 15000 пользователей в день.

Этот движок поддерживает 19 языков.

  • Смесь китайского и английского
  • Японский
  • Корейский
  • Испанский
  • Французский
  • Немецкий
  • Португальский
  • Вьетнамский
  • Малайский
  • Русский
  • Итальянский
  • Голландский
  • Шведский
  • Финский
  • Датский
  • Норвежский
  • Венгерский
  • Тайский
  • Латинский

Вот настройки этого движка.

  • Язык: язык текста для распознавания. По умолчанию используется автоматическое определение.

OCR space

Это платный API с бесплатной квотой, предоставляемый OCR Space

Он поддерживает 24 языка

  • Арабский
  • Болгарский
  • Китайский (упрощённый)
  • Китайский (традиционный)
  • Хорватский
  • Чежский
  • Датский
  • Голландский
  • Английский
  • Финский
  • Французский
  • Немецкий
  • Греческий
  • Венгерский
  • Корейский
  • Итальянский
  • Японский
  • Польский
  • Португальский
  • Русский
  • Словенский
  • Испанский
  • Шведский
  • Турецкий

Вот настройки для этого движка:

  • Язык: язык текста для распознавания. По умолчанию используется английский.
  • Определение ориентации изображения: если установлено значение true, API автоматически поворачивает изображение правильно.
  • Масштабирование изображения для улучшения качества: если установлено значение true, API выполняет некоторое внутреннее масштабирование. Это может значительно улучшить результат распознавания, особенно при сканировании PDF с низким разрешением.
  • Оптимизация для распознавания таблиц: если установлено значение true, логика распознавания гарантирует, что результат анализа текста всегда будет возвращаться построчно. Этот параметр рекомендуется использовать для распознавания таблиц, квитанций, обработки счетов-фактур и всех других типов входных документов, структура которых похожа на таблицу.

Если вы хотите использовать свой собственный ключ, вам также необходимо указать ключ API.

Вы можете получить свой собственный бесплатный API-ключ, зарегистрировавшись на OCR space

Вот простое руководство.

Найдите ссылку "Register for free API key"

Нажмите на неё, и вы найдете форму для заполнения.

В форме вам будет предложено ввести следующие данные

  • Email Address
  • First Name
  • Last Name
  • How do you plan to use the OCR API?

После этого заполните её и отправьте. Возможно, вам также потребуется ввести капчу

Затем вы получите подтверждение по электронной почте

Найдите в этом электронном письме ссылку с названием "Yes, subscribe me to this list." Перейдите по этой ссылке, и вскоре вы получите ключ API по электронной почте.

Распознавание текста Microsoft Azure

Этот движок использует OCR API в Microsoft Azure Cognitive Services Computer Vision.

Он поддерживает 24 языка, включая

  • Упрощённый китайский
  • Китайский традиционный
  • Чежский
  • Датский
  • Голландский
  • Английский
  • Финский
  • Французский
  • Немецкий
  • Греческий
  • Венгерский
  • Итальянский
  • Японский
  • Корейский
  • Норвежский
  • Польский
  • Португальский
  • Русский
  • Испанский
  • Шведский
  • Турецкий
  • Арабский
  • Румынский
  • Сербский кирилица
  • Сербский латиница
  • Словацкий

Вот настройки для этого движка:

  • Язык: язык текста для распознавания. По умолчанию используется автоматическое определение.
  • Определение ориентации изображения: если установлено значение true, API автоматически поворачивает изображение правильно.

Если вы используете свой собственный ключ, вам следует получить ключ подписки на использование Microsoft Computer Vision API по ссылке ниже:

Шаг 1: Создайте учётную запись на веб-сайте Azure

Пожалуйста, обратите внимание, что ключ должен быть создан для API Computer Vision. Первая кнопка "ПОЛУЧИТЬ ключ API", с которой вы столкнетесь при навигации по одному ключу. В настоящее время Microsoft предоставляет возможность создать пробный ключ на 7 дней. Вы также можете бесплатно зарегистрироваться в Azure для получения дополнительной информации. Для регистрации требуется кредитная карта. Если у вас уже есть учётная запись для подписки, вы можете пропустить этот шаг.

Шаг 2: Развертывание когнитивных сервисов

Теперь у вас есть учетная запись azure.

Первый вход на портал Azure

Дождитесь появления сообщения о том, что портал готов, и вы войдёте в azure portal.

Найдите ссылку под названием "Все ресурсы после кнопки "Все услуги" и активируйте её.

Подождите, пока не появится сообщение "Все ресурсы готовы", в центре вашего внимания будет окно редактирования, затем нажмите shift tab, найдите пункт меню "Добавить" и активируйте его.

Подождите, пока не появится сообщение о поиске в Marketplace, введите Cognitive Services и нажмите стрелку вниз.

Подождите, пока не появится сообщение со списком опций Cognitive Services, один из пяти, затем нажмите enter.

Подождите, пока не появится сообщение о том, что Blade Cognitive Services готов, нажмите tab или b, чтобы найти кнопку с именем Создать и активировать ее.

Подождите, пока появится сообщение о том, что панель создания готова, в центре вашего внимания будет окно редактирования, введите имя для этого ресурса. Обратите внимание, что имя вашего ресурса может содержать только буквенно-цифровые символы, "", "-", и не может заканчиваться на "" или "-".

Я выбираю NVDA_OCR.

Нажмите tab, чтобы перейти к списку подписки. Обычно вы можете оставить всё как есть.

Нажмите tab, чтобы перейти в поле со списком "Местоположение". Выберите местоположение, близкое к вашему текущему местоположению.

Обязательно помните об этом, поскольку расположение требуется при настройке движка.

Нажмите tab, чтобы перейти к списку "Привязка цен". Обычно достаточно бесплатной привязки, например, F0. Если этого недостаточно, вы можете выбрать другой уровень, ознакомившись с подробной информацией о ценах по ссылке "Просмотреть полную информацию о ценах".

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

Затем нажмите tab для перехода к кнопке Создать, чтобы создать этот ресурс.

Подождите, пока не получите сообщение Об успешном развертывании.

Затем найдите кнопку "Перейти к ресурсу". Иногда вам нужно перейти к кнопке "Активировать уведомления", прежде чем вы сможете найти кнопку "Перейти к ресурсу".

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

Найдите ссылку с названием "Ключи", затем активируйте её.

Подождите, пока не появится сообщение о том, что управление ключами Blade готово.

Найдите поле редактирования с именем key 1 или key 2. Содержимое этого поля редактирования является ключом API, необходимым для настройки движка. Нажмите Ctrl-C, чтобы скопировать его для настройки движка

Затем вы можете заполнить эти две настройки, необходимые, если вы используете свой собственный API-ключ.

  • Регион ресурсов Azure: регион, который вы выбираете при развертывании служб Cognitive Services на портале Azure.
  • Ключ API: для ключа, который вы получаете после успешного развертывания Cognitive Services на портале Azure, рекомендуется использовать ключ 2.

Распознавание текста Baidu

Это также платный API с бесплатной квотой, предоставляемой Baidu.

Baidu OCR поддерживает 10 языков, включая

  • Смесь китайского и английского языков
  • Английский
  • Португальский
  • Французский
  • Немецкий
  • Итальянский
  • Испанский
  • Русский
  • Японский
  • Корейский

Этот движок также может получать информацию о местоположении каждого символа

Вот его настройки:

  • Определение местоположения каждого символа позволяет выполнять более точные операции в некоторых недоступных приложениях. Включение этого параметра немного замедлит распознавание.

  • Использовать точный API: если этот параметр включен, будет использоваться другая конечная точка. Такая точная конечная точка занимает больше времени, но отличается более высоким качеством и (если вы используете свой собственный API-ключ, его цена также выше).

Он имеет четыре конечные точки с отдельным ограничением квоты.

  • Простое распознавание текста без какой-либо информации о местоположении текста. В настоящее время просматривается 50000 раз в день.
  • Базовое распознавание текста с информацией о местоположении текста. В настоящее время выполняется 500 раз в день.
  • Точное распознавание текста без какой-либо информации о местоположении текста. На данный момент просматривается 500 раз в день.
  • Точная информация о местоположении текста. В настоящее время рассылается 50 раз в день.

Если вы нажимаете жест, который считывает только результат, вы используете конечные точки без какой-либо информации о расположении текста.

Если вы нажимаете на жест, который показывает средство просмотра результатов, вы используете конечные точки с информацией о расположении текста.

Хотя он предоставляет довольно щедрую бесплатную квоту, его веб-сайт только на китайском языке и не совсем доступен.

Распознавание с помощью искусственного интеллекта Tencent

Этот API можно использовать бесплатно с ограничением частоты выполнения примерно двух запросов в секунду.

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

В документе нет информации о языковой поддержке. Согласно моему тесту, поддерживается китайский и английский языки, а также их сочетание.

Для этого API нет никакой дополнительной настройки.

Журнал Изменений

0.19

0.18

  • Совместимость с python3
  • Представлена концепция типа источника распознавания и типа движка, чтобы сократить использование жестов.
  • Добавлен новый неназначенный жест для переключения между различными типами источников распознавания.
  • Добавлен новый неназначенный жест для переключения между различными типами движков распознавания.
  • Добавлен новый жест для распознавания в соответствии с настройками источника изображения и типа движка.
  • Добавлен новый неназначенный жест, чтобы отобразить предыдущий результат в виртуальном документе результатов.

0.17

  • Исправлены следующие проблемы:

    • Непосредственный переход к панели при переключении на onlineImageDescriber в диалоге настроек
    • Исправлено неправильное описание в azure analyzer

0.16

  • Добавлен жест отмены распознавания
  • Исправлены следующие проблемы:

    • Не объявлялось изменение состояния комбинированного списка
    • Поменялся местами эффект повторяющегося жеста, который не работает в онлайн-редакторе изображений

0.15

  • Добавлена возможность отображения всплывающего окна, содержащего сообщение, вместо речевого или брайлевского сообщения для получения текстовых результатов
  • Изменены флажки для визуальных функций в Microsoft Azure Image Analyzer на список флажков.
  • Устранены следующие проблемы:

    • Невозможность загрузить файл изображения jpg из буфера обмена
    • Объект результирующего документа не отображается после распознавания.
    • Положение объектов в результирующем документе ненадежно, если размер изображения изменен внутренне.
    • Результат от Microsoft Azure Image Describer находится в одной строке, что затрудняет навигацию.

0.14

  • Исправлены некоторые ошибки:

    • Невозможность использовать свой собственный ключ API в движках Microsoft Azure
    • Невозможность получить текстовый результат при наличии брайлевского дисплея

0.13

  • Проверено, что дополнение работает при перезагрузке плагинов без перезагрузки (NVDA+Control+F3).

0.12

  • Исправлено сообщение режима обзора в окне описания изображений Microsoft Azure
  • Акцентный цвет теперь представлен в виде цветовых описаний NVDA.
  • Улучшен формат результатов в Microsoft Azure Image Analyser
  • Улучшен документ в соответствии с комментариями к отзыву
  • Исправлена несогласованность жестов.
  • Control+Shift+NVDA для буфера обмена и NVDA+ALT для объекта навигатора
  • Исправлена ошибка отсутствия информации об изображении при распознавании.

0.11

  • Добавлена возможность описания изображений
  • Изменено краткое описание дополнения на онлайн-описание изображений

0.10

  • Исправлена ошибка с использованием собственного API-ключа пользователя в sougou API.
  • Устранена проблема с неизвестной панелью, добавив настройки в раздел Поддерживаемые настройки

0.9

  • Исправлена проблема с отсутствием эффекта при двойном нажатии жеста.
  • Пересмотрен документ, отражающий изменения в коде.
  • Уточнено, какой тип изображения из буфера обмена поддерживается и как скопировать изображение для распознавания.
  • Исправлена ошибка, из-за которой при распознавании буфера обмена не удавалось открыть программу просмотра результатов.
  • Добавлена поддержка распознавания пути к локальному файлу изображения в буфере обмена.

0.8

  • Добавлено понятное уведомление, если результат распознавания пуст.
  • Исправлено другое место, которое плохо работает с конфигурационным путем, отличным от ascii

0.6

  • Добавлены настройки прокси-сервера для людей, имеющих доступ к Интернету через определенный прокси-сервер.
  • Добавлено несколько общих опций.
  • Исправлена ошибка декодирования Unicode из-за отправки URL-адреса Unicode в urllib3.

0.5

  • Исправлена ошибка Unicode, если движок OCR загружал файл изображения напрямую, а не в кодировке base64.
  • Изменён жест распознавания буфера обмена на Control+Shift+NVDA+R, поскольку NVDA+Shift+R используется в Word и Excel для определения заголовков строк в таблицах или для удаления определений при двойном нажатии.

0.4

  • Исправлена ошибка установки, когда путь к конфигурации содержал символы, отличные от ascii
  • Изменён жест, чтобы избежать столкновения с golden cursor.
  • Изменён движок по умолчанию на Microsoft azure, поскольку он может автоматически определять язык текста.

0.3

  • Добавлена подробная документация о том, как получить API-ключ Microsoft Azure OCR
  • Исправлена проблема с новой установкой.
  • Удалено автоматическое распознавание, поскольку эта функция вызывает проблемы и может привести к путанице с онлайн-поисковиками. Автоматическое распознавание будет отдельным дополнением, когда оно будет достаточно стабильным.