Это дополнение позволяет пользователям выполнять обнаружение объектов на элементах изображения, присутствующих на экране, и получать результаты в виде предложения и ограничительных рамок, нарисованных вокруг обнаруженных объектов. Пользователи могут перемещать указатель мыши или палец (в случае сенсорных экранов) внутри ограничительной рамки, чтобы услышать название объекта. Полученное предложение может быть озвучено или представлено в виртуальном окне с возможностью просмотра, что позволяет пользователям просматривать результат посимвольно, слово за словом, целиком и даже копировать его. Это дополнение хорошо работает только с "естественными изображениями" людей, животных и некоторых обычных предметов.
Примечание: Для отображения метки ограничительной рамки необходимо включить отслеживание мыши.
После установки, пользователь должен сначала установить предпочитаемый жест в Preferences->Input gestures->Vision.
Однократное нажатие на заданный жест запускает процесс обнаружения объектов, после чего пользователю сообщается форма предложения полученного результата (это может занять несколько секунд). Вместе с этим сообщением вокруг обнаруженных объектов также рисуются ограничительные рамки. Пользователи могут перемещать указатель мыши или палец (в случае сенсорных экранов) для объявления метки объекта. Метка объекта объявляется только один раз, когда вводится ограничительная рамка. Для последующих объявлений необходимо ввести рамку заново. Эти ограничительные рамки исчезают только при переключении фокуса на другой элемент. (Для этого необходимо включить отслеживание мыши).
Нажатие одного и того же жеста более одного раза также запускает процесс обнаружения объекта, но форма предложения результата представляется в виртуальном окне, а ограничительные рамки не рисуются. Пользователи могут использовать навигационные клавиши в этом окне для просмотра результата по буквам, по словам, целиком или даже копировать его. Перед началом другого процесса обнаружения объектов пользователь должен выйти из этого окна. Это можно сделать, нажав клавишу ESC или переключив фокус на другой элемент.
Пользователи также могут предотвратить запуск процесса обнаружения объектов на неграфических элементах, отметив опцию фильтровать неграфические элементы в разделе Preferences->Settings->Vision->Object detection add-on. Это предотвратит случайный запуск процесса обнаружения объектов на элементах, не содержащих изображений, что приведет к плохим результатам. Снятие флажка позволяет пользователям выполнять обнаружение на элементах, которые могут содержать изображения, но не сообщать об этом.
Требования:
* Python 3 для Windows. Инсталляторы см. на сайте.
* Scons - Можно установить, запустив pip install Scons или используя установщик windows с сайта.
* Markdown - Можно установить, выполнив команду pip install Markdown.
После выполнения всех требований:
1. Клонируйте это репо
2. Откройте командную строку и перейдите к клонированному репо
3. Выполните команду scons в директории, содержащей файл sconstruct.
Затем вы можете установить дополнение в NVDA, дважды щелкнув на файле .nvda-addon во время работы NVDA или перейдя в NVDA->tools->manage add-ons->Install и выбрав файл .nvda-addon.
Это дополнение использует модель YOLOv3-darknet для обнаружения объектов. Вы можете загрузить файл конфигурации и весов любой модели YOLOv3 и заменить существующую модель в addon/globalPlugins/objectDetection/models и использовать ее вместо этой (вы должны убедиться, что файл конфигурации и весов назван yolov3.cfg и yolov3.weights соответственно, чтобы это сработало). Большие модели лучше обнаруживают объекты, но за это приходится платить временем. В целом, лучше всего использовать модель среднего размера, такую как та, что поставляется в этом дополнении (YOLOv3-416).
Модель использует OpenCV 4.3.0, необходимые DLL которой можно найти по адресу addon/globalPlugins/objectDetection/dlls. Файл YOLOv3-DLL.dll взаимодействует с самой моделью и может быть найден или собран из здесь.