Este complemento y su repositorio forman parte del proyecto GSOC2020 del autor.
Este complemento permite rotular elementos de imagen presentes en pantalla y obtener un título que describa la imagen en inglés. El resultado se puede anunciar al usuario, o presentarse en una ventana virtual donde puede recorrerse por letras, palabras, o incluso seleccionarlo entero y copiarlo. Este complemento sólo funciona bien con «imágenes naturales» de personas, animales y objetos típicos.

Modo de uso

  • Tras la instalación, se debe configurar un gesto en la categoría Visión del diálogo Gestos de entrada.
  • Si se pulsa el gesto una vez, se inicia el proceso de rotulado de la imagen. El título se anuncia tras unos segundos. Los títulos son más precisos cuanto más grande es la imagen y si esta no tiene relleno.
  • Si se pulsa el gesto más de una vez, se inicia el proceso, pero el resultado se muestra en una ventana virtual en modo exploración. Se debe pulsar escape antes de repetir el proceso con otra imagen.
  • Se puede evitar el rotulado de imágenes en elementos no gráficos marcando la casilla correspondiente en las opciones de NVDA, categoría Visión, grupo Complemento Rotulado de imágenes. Esto evita que los usuarios inicien el proceso accidentalmente en un elemento que no tiene imágenes, pero puede impedir el reconocimiento si el elemento contiene imágenes y no lo notifica adecuadamente al sistema.

Nota: en modo foco, el foco no puede llegar a las imágenes, por lo que la opción de filtrar elementos no gráficos procesa también los hijos del elemento actual. El reconocimiento funcionará si alguno de ellos es una imagen.

Notas para desarrolladores

El modelo utilizado para rotular imágenes en este complemento se ha creado a partir de un modelo pyTorch que se puede encontrar aquí. El modelo se convirtió al formato ONNX y, por tanto, necesita el tiempo de ejecución de ONNX 1.3.0 para funcionar. Este complemento también utiliza la biblioteca OpenCV 4.3.0 para procesar la imagen que se va a rotular. El modelo puede encontrarse en forma de archivo dll, llamado ImageCaptioning-DLL.dll, disponible en addon\globalPlugins\imageCaptioning\dlls junto con las bibliotecas de ONNX y OpenCV. El propio modelo y su vocabulario se pueden encontrar en addon\globalPlugins\imageCaptioning\data. Como pasa con la mayoría de modelos de procesamiento de imágenes de código abierto disponibles, los resultados producidos pueden ser incorrectos a veces. El modelo también puede producir resultados diferentes con la misma imagen si esta se encuentra en distintos tamaños o con relleno. En aquellas imágenes cuyos objetos no se pueden identificar fácilmente, el modelo tarda bastante tiempo en producir resultados. En algunos casos, puede ser muy lento la primera vez que se usa.

Este complemento y su repositorio forman parte del proyecto GSOC 2020 del autor.
Este complemento permite realizar detección de objetos en los elementos de imagen presentes en pantalla y expresar el resultado en forma de frases y cajas delimitadoras alrededor de los objetos detectados. Se puede mover el puntero del ratón o el dedo (en pantallas táctiles) dentro de una caja delimitadora para escuchar la etiqueta del objeto. La frase con el resultado se puede tanto anunciar como presentar en una ventana virtual explorable que permita recorrerla por caracteres, palabras, o seleccionarla entera y copiarla. Este complemento sólo funciona bien con «imágenes naturales» de personas, animales y algunos objetos típicos.
Nota: el seguimiento del ratón debe estar activado para que se anuncien las cajas delimitadoras.

Modo de uso

  • Tras la instalación, se debe asignar un gesto desde el diálogo Gestos de entrada, en la categoría Visión.
  • Al pulsar el gesto una vez, se dispara la detección de objetos. Tras unos segundos, NVDA pronuncia el resultado y se dibujan cajas delimitadoras alrededor de los objetos detectados. La etiqueta de cada objeto sólo se anuncia una vez al entrar en cada caja, por lo que será necesario visitarla varias veces si queremos que NVDA repita la etiqueta.
  • Si se pulsa el gesto más de una vez, se inicia el proceso de detección y el resultado se muestra en una ventana en modo exploración. No se dibujarán cajas alrededor de los objetos detectados.
  • Al desplazar el foco fuera del elemento, se elimina la información de los objetos detectados.
  • Se puede evitar la detección de objetos en elementos no gráficos marcando la casilla correspondiente en el diálogo de opciones de NVDA, categoría Visión, complemento de detección de objetos. Esto evita que los usuarios lancen la detección en elementos que no contienen imágenes. Si se desmarca, por el contrario, se puede realizar la detección en todos los controles, útil con aquellos que tienen imágenes y no lo indican.

Nota: en modo foco, las imágenes no pueden recibir el foco y la opción para filtrar elementos no gráficos filtra los hijos del elemento seleccionado. Se permite el reconocimiento si alguno de los hijos es un gráfico.

Notas para desarrolladores

Este complemento hace uso del modelo YOLOv3-darknet para la detección de objetos. Puedes descargar los archivos de configuración y pesos de cualquier modelo YOLOv3 y reemplazar el modelo actual en addon/globalPlugins/objectDetection/models para usarlo en su lugar (los archivos deben llamarse yolov3.cfg y yolov3.weights para que funcione, respectivamente). Los modelos más grandes detectan mejor los objetos, pero tardan más tiempo. En general, un modelo de tamaño medio, como el que se proporciona con este complemento (yolov3-416) es la mejor elección. Los modelos se apoyan en la biblioteca OpenCV 4.3.0, cuyas dll se pueden encontrar en addon/globalPlugins/objectDetection/dlls.
El archivo iolov3-dll.dll contiene la interfaz que interactúa con los modelos, y se puede encontrar y compilar aquí.