El propósito de este complemento es añadir motores de reconocimiento de
imágenes en línea a NVDA.

Hay dos tipos de motores. OCR y descriptor de imágenes.

El OCR extrae texto de las imágenes.

Los descriptores de imágenes describen características visuales de la imagen
en forma de texto, tales como su descripción general, marcas de tipo de
color y demás.

Es necesario disponer de conexión a Internet para usar este complemento, ya
que los servicios de descripción de imágenes se proporcionan a través de
conexiones a una API en Internet.

En este complemento se conocen como motores.

Hay tres tipos de motores en este complemento.

  • Motor de OCR en línea
  • Motor de descripción de imágenes en línea
  • OCR de Windows 10 (fuera de línea)

También debes elegir la fuente de reconocimiento de la imagen.

  • Navegador de objetos actual
  • Ventana actual en primer plano
  • Toda la pantalla
  • Datos de imagen o archivo desde el portapapeles
  • Ruta a un archivo de imagen o URL a una imagen desde el portapapeles

Órdenes de teclado

Después de elegir los tipos, puedes iniciar el reconocimiento con un gesto.

NVDA+alt+p reconoce el objeto en función del tipo de fuente y motor
configurados y lee el resultado. Si se pulsa dos veces, abre un documento
virtual con el resultado.

Hay cuatro gestos más sin asignar. Por favor, asígnalos antes de usarlos.

Alternar entre los diferentes tipos de motores de reconocimiento.

Alternar entre los distintos tipos de fuentes de reconocimiento.

Cancelar el reconocimiento actual

Este gesto puede ser útil si crees que has esperado demasiado y quieres
cancelar.

Además hay veces en las que no te gustaría que el mensaje de reconocimiento
te molestara porque quieres revisar los mensajes que han llegado después de
iniciar el reconocimiento.

Mostrar el resultado anterior en un documento de resultados virtual.

Aunque hay una función para copiar el resultado al portapapeles, no se puede
preservar la información de posición de los caracteres, por lo que se añade
este gesto para resolver el problema.

Hay también cuatro gestos sin asignar para aquellos usuarios que prefieran los gestos de versiones anteriores.

Se recomienda usar el gesto nuevo y pasar entre motores de reconocimiento
según tus necesidades.

Reconoce el objeto actual del navegador de objetos con un motor OCR en línea
y lee el resultado. Si se pulsa dos veces, abre un documento virtual con el
resultado.

Reconoce la imagen del portapapeles con un motor OCR en línea y lee el
resultado. Si se pulsa dos veces, abre un documento virtual con el
resultado.

Reconoce el objeto bajo el navegador de objetos y lee el resultado. Si se
pulsa dos veces, abre un documento virtual con el resultado.

Reconoce la imagen del portapapeles y lee el resultado. Si se pulsa dos
veces, abre un documento virtual con el resultado.

Configuración de motor

Puedes elegir motores de reconocimiento y configurarlos en detalle en la
categoría Online image describer del diálogo de opciones de NVDA.

El autor de este complemento ha registrado cuentas con cuota de API gratuita
y ha configurado un servidor proxy en www.nvdacn.com para permitir que este
complemento sea más fácil de probar al principio. La cuota de pruebas está
limitada y puede ser cancelada por el proveedor de la API en cualquier
momento.

Se recomienda encarecidamente que registres tu propia clave siguiendo las
guías de cada motor.

Los siguientes ajustes se aplican a todos los motores.

  • Copiar resultado al portapapeles después del reconocimiento: si se activa,
    el texto del resultado del reconocimiento se copiará al portapapeles tras
    el reconocimiento.
  • Usar mensaje explorable para el texto del resultado: si se activa, el
    texto del resultado del reconocimiento se mostrará en una ventana
    emergente en lugar de enviarse por mensajes de voz y braille.
  • Intercambiar el efecto de gestos repetidos con los que no están repetidos:
    por defecto, sólo se muestra un documento virtual con el resultado si
    pulsas el gesto correspondiente dos veces. Si haces esto frecuentemente
    puedes activar esta opción, de tal forma que sólo pulses una vez para
    abrir el visor de resultados.
  • Activar registro más detallado con propósitos de depuración: algunos
    registros son esenciales para depurar, pero afectan al rendimiento y
    consumen mucho espacio. Activa esta opción sólo si el autor del
    complemento o un desarrollador de NVDA te lo pide.
  • Tipo de proxy: indica el tipo de proxy que estás usando. Si no sabes qué
    es un proxy, no modifiques esta opción.
  • Dirección del proxy: URL completa del proxy. Si no sabes qué es un proxy
    no cambies esta opción. Si eliges usar un proxy, este se verificará antes
    de guardar. Tras la verificación, un mensaje te indicará el resultado.

Los siguientes ajustes significan lo mismo en todos los motores, por lo que
se describen aquí para ahorrar espacio.

  • Tipo de acceso a la API: controla cómo se accede a las conexiones de la
    API corresponiente.

    • Si eliges «Usar cuota pública», estás usando una cuota gratuita
      registrada por el autor del complemento.
    • Si eliges «Usar mi propia clave de API», el complemento consumirá de
      la cuota de tu propia cuenta.
  • ID de aplicación, clave de API o clave secreta de API: si quieres usar la
    cuota de tu propia cuenta será necesario que dispongas de los tokens de
    acceso correspondientes. Algunos motores sólo necesitan una clave de
    API. Algunos motores necesitan dos tokens. Estos sólo son válidos si
    eliges «Usar tu propia clave de API» en tipo de acceso a la API.

Ten en cuenta que la calidad y la precisión de los resultados dependen de
muchos factores.

  • Modelos y técnicas empleados por el proveedor del motor
  • Calidad de la imagen subida
  • Navegador de objetos oculto tras algo
  • Resolución de pantalla

Descripción de imágenes en línea

Hay tres motores disponibles.

Analizador de imágenes de Microsoft Azure

Este motor extrae un rico conjunto de características visuales basándose en el contenido de la imagen.

Este motor está sólo en inglés. Si quieres que la descripción se muestre en
otros idiomas, puedes usar el descriptor de imágenes de Microsoft Azure

Entre las características visuales se incluyen:

  • Adulto – detecta si la imagen es de naturaleza pornográfica (representa la
    desnudez o un acto sexual). También se detecta el contenido sexualmente
    sugerente.
  • Marcas – detecta diversas marcas dentro de la imagen, incluyendo su
    ubicación aproximada. El argumento de marcas sólo está disponible en
    inglés.
  • Categorías – clasifica el contenido de la imagen según una taxonomía
    definida en la documentación.
  • Color – determina el color más llamativo, el color predominante y si la
    imagen está en blanco y negro.
  • Descripción – describe el contenido de la imagen con una frase completa en
    los idiomas soportados.
  • Caras – detecta si hay caras presentes. Si las hay, identifica sus
    coordenadas, género y edad.
  • Tipo de imagen – detecta si la imagen es prediseñada o se ha dibujado a
    mano.
  • Objetos – detecta diversos objetos dentro de la imagen, incluyendo su
    ubicación aproximada. El argumento de objetos sólo está disponible en
    inglés.
  • Etiquetas – etiqueta la imagen con una lista detallada de palabras
    relacionadas con su contenido.

Algunas características también proporcionan detalles adicionales:

  • Famosos – Identifica personas famosas si se detectan en la imagen.
  • Puntos de referencia – identifica puntos de referencia si se detectan en
    la imagen.

Descriptor de imágenes de Microsoft Azure

Este motor genera descripciones de imágenes en un lenguaje natural con
frases completas. La descripción se basa en una colección de etiquetas de
contenido, también devueltas por la operación.

Se puede generar más de una descripción para cada imagen. Las descripciones
se ordenan según su puntuación de confianza.

Hay dos ajustes para este motor.

  • Idioma: el idioma que usará el servicio para devolver una descripción de
    la imagen. Por defecto, inglés.
  • Número máximo de candidatos: cantidad máxima de descripciones candidatas
    que se devuelven. Por defecto 1.

OCR en línea

Los motores en línea se apoyan en el uso y presencia de los siguientes
servicios.

https://www.nvdacn.com

https://ocr.space/ocrapi

https://azure.microsoft.com/es-es/services/cognitive-services/

http://ai.qq.com

http://ai.baidu.com

http://ai.sogou.com/

https://intl.cloud.tencent.com

Motores

Hay cinco motores disponibles.

Tencent Cloud OCR

Esta API está patrocinada por Tencent
Cloud
y la Accessibility Research
Association
, con un límite de 15000 por día.

Este motor soporta 19 idiomas.

  • Una mezcla entre chino e inglés
  • Japonés
  • Coreano
  • Español
  • Francés
  • Alemán
  • Portugués
  • Vietnamita
  • Malayo
  • Ruso
  • Italiano
  • Holandés
  • Sueco
  • Finés
  • Danés
  • Noruego
  • Húngaro
  • Tailandés
  • Latín

Estos son los ajustes de este motor.

  • Idioma: idioma de reconocimiento del texto. Por defecto detectar
    automáticamente.

OCR space

Este servicio consta de una API de pago con cuota gratuita proporcionada por
OCR Space

Soporta 24 idiomas

  • Árabe
  • Búlgaro
  • Chino (simplificado)
  • Chino (tradicional)
  • Croata
  • Checo
  • Danés
  • Holandés
  • Inglés
  • Finés
  • Francés
  • Alemán
  • Griego
  • Húngaro
  • Coreano
  • Italiano
  • Japonés
  • Polaco
  • Portugués
  • Ruso
  • Esloveno
  • Español
  • Sueco
  • Turco

Estos son los ajustes de este motor:

  • Idioma: idioma de reconocimiento del texto. Por defecto inglés.
  • Detectar orientación de la imagen: si se activa, la API gira
    automáticamente la imagen correctamente.
  • Escalar imagen para mejorar la calidad: si se activa, la API escala la
    imagen internamente. Esto puede mejorar el resultado del OCR de forma
    significativa, especialmente para documentos PDF escaneados con baja
    resolución.
  • Optimizar para reconocimiento de tablas: si se activa, la lógica del OCR
    se asegura de que el texto del resultado interpretado siempre se devuelva
    línea a línea. Esta opción se recomienda para hacer OCR en tablas,
    recibos, facturas, y todos los tipos de documentos entrantes que tengan
    estructura de tabla.

Si quieres usar tu propia clave, también deberás especificar tu clave de
API.

Puedes obtener tu propia clave de API gratuita registrándote en OCR
space

Aquí hay una guía simple.

Busca el enlace «Register for free API key»

Púlsalo y llegarás a un formulario que hay que rellenar.

El formulario te pide que introduzcas los siguientes datos

  • Dirección de correo electrónico
  • Nombre
  • Apellidos
  • ¿Cómo tienes pensado usar la API del OCR?

Después de rellenarlo y enviarlo, puede que tengas que superar un captcha

A continuación, recibirás un correo electrónico de confirmación

Busca el enlace «Yes, subscribe me to this list.» en ese correo. Accede a
ese enlace y recibirás la clave de API pronto.

Microsoft Azure OCR

Este motor utiliza la API del OCR de los Servicios Cognitivos de Visión
Artificial de Microsoft Azure.

Soporta 24 idiomas, incluyendo

  • Chino simplificado
  • Chino tradicional
  • Checo
  • Danés
  • Holandés
  • Inglés
  • Finés
  • Francés
  • Alemán
  • Griego
  • Húngaro
  • Italiano
  • Japonés
  • Coreano
  • Noruego
  • Polaco
  • Portugués
  • Ruso
  • Español
  • Sueco
  • Turco
  • Árabe
  • Rumano
  • Serbio cirílico
  • Serbio latino
  • Eslovaco

Estos son los ajustes de este motor:

  • Idioma: idioma de reconocimiento del texto. Por defecto detectar
    automáticamente.
  • Detectar orientación de la imagen: si se activa, la API gira
    automáticamente la imagen correctamente.

Si quieres usar tu propia clave, deberías obtener una clave de suscripción
para utilizar la API de Visión Artificial de Microsoft desde el siguiente
enlace:

Paso 1: crea una cuenta en el sitio web de
Azure

Ten en cuenta que debes crear una clave para la API de visión artificial. Es
el primer botón «Obtener clave de API» que encuentras con la navegación de
una sola letra. Actualmente Microsoft ofrece la opción de crear una clave de
prueba que funciona durante 7 días. También puedes crear una cuenta gratuita
de Azure para tener más pruebas. Al registrarse será obligatorio aportar los
datos de una tarjeta de crédito. Si ya tienes una cuenta con suscripción,
puedes saltarte este paso.

Paso 2: despliega los servicios cognitivos

Ahora tienes una cuenta de Azure.

Primero, inicia sesión en el portal de Azure

Espera hasta que oigas el mensaje «El portal está listo, has iniciado sesión
en el portal de Azure».

Busca el enlace llamado «Todos los recursos» después del botón «Todos los
servicios» y actívalo.

Espera hasta que oigas el mensaje «La hoja Todos los recursos está
lista». El foco se encontrará en un cuadro de edición. Pulsa shift+tab hasta
que llegues a un elemento de menú llamado Agregar y actívalo.

Espera hasta que oigas el mensaje «Buscar en marketplace», escribe cognitive
services y pulsa flecha abajo.

Espera hasta que oigas el mensaje Lista de opciones Cognitive services 1 de
5, y a continuación pulsa intro.

Espera hasta que oigas el mensaje La hoja Cognitive Services está
lista. Pulsa tab o la letra b para buscar un botón llamado Crear y actívalo.

Espera hasta que oigas el mensaje La hoja Crear está lista. El foco estará
en un cuadro de edición. Escribe un nombre para el recurso. Ten en cuenta
que el nombre del recurso sólo puede incluir caracteres alfanuméricos, ‘‘ y
‘-‘, y no puede terminar en ‘
‘ ni ‘-‘.

Yo elijo NVDA_OCR.

Pulsa tab para ir al cuadro combinado de suscripción. Normalmente puedes
dejarlo como está.

Pulsa tabulador para ir al cuadro combinado de región. Elige una que se encuentre cerca de tu ubicación actual.

Recuerda esta región, ya que tendrás que especificarla en la configuración
del motor.

Pulsa tabulador para ir al cuadro combinado de capa. Normalmente una capa
gratuita como f0 es adecuada. Si no es suficiente para ti, puedes elegir
otra capa después de leer todos los detalles del precio en el enlace «Ver
detalles completos del precio».

Tabula hasta que llegues a un cuadro de edición llamado Crear nuevo grupo de recursos. Deberías crear uno si no tienes ninguno. Busca el botón Crear Nuevo.

Después pulsa tab hasta el botón Crear y actívalo para crear este recurso.

Espera hasta que oigas el mensaje «Despliegue completado_».

Después busca el botón «Ir al recurso». A veces es necesario subir y activar
el botón Notificaciones para encontrar este botón.

Espera hasta que oigas el mensaje La hoja Primeros pasos está lista.

Busca el enlace llamado Claves y actívalo.

Espera hasta que oigas el mensaje La hoja Gestionar claves está lista.

Busca un cuadro de edición llamado Clave 1 o Clave 2. El contenido de ese
cuadro de edición es la clave de API que se necesita para la configuración
del motor. Pulsa ctrl+c para copiarla al portapapeles

A continuación, puedes rellenar estas dos opciones, necesarias si usas tu
propia clave de API.

  • Región de recursos de Azure: la región que elegiste al desplegar los
    servicios cognitivos en el portal de Azure.
  • Clave de API: la clave que obtienes al desplegar con éxito los servicios
    cognitivos en el portal de Azure, se recomienda la clave 2.

Baidu OCR

Este también ofrece una API de pago con cuota gratuita proporcionada por
Baidu.

El OCR de Baidu soporta 10 idiomas, incluyendo

  • Una mezcla entre chino e inglés
  • Inglés
  • Portugués
  • Francés
  • Alemán
  • Italiano
  • Español
  • Ruso
  • Japonés
  • Coreano

Este motor también puede obtener la posición de cada carácter

Aquí están sus ajustes:

  • Obtener posición de cada carácter: permite operar de forma más precisa en
    algunas aplicaciones inaccesibles. Al activar esta opción el
    reconocimiento se volverá algo más lento.

  • Usar API precisa: si se habilita usará otro punto de conexión. Esta
    conexión precisa dura más tiempo, pero tiene mejor calidad y (si usas tu
    propia clave de API) el precio es más alto.

Tiene cuatro conexiones con límites de cuota separados.

  • OCR básico sin información sobre la ubicación del texto. Actualmente 50000
    veces al día.
  • OCR básico con información sobre la ubicación del texto. Actualmente 500
    veces al día.
  • OCR preciso sin información sobre la ubicación del texto. Actualmente 500
    veces al día.
  • Preciso con información sobre la ubicación del texto. Actualmente 50 veces
    al día.

Si pulsas el gesto que sólo lee el resultado, usarás conexiones sin información de posición del texto.

Si pulsas el gesto que muestra el visor de resultados, usarás las conexiones que muestran información sobre la ubicación del texto.

Aunque proporciona una cuota gratuita bastante generosa, su sitio web sólo
está en chino y no es muy accesible.

Tencent AI OCR

Esta API tiene uso gratuito, con un límite de frecuencia de dos consultas por segundo.

Si quieres sobrepasar el límite, puedes registrar tu propia clave de API. La
web de esta API se encuentra sólo en chino y no es muy accesible.

No hay información sobre los idiomas soportados en la documentación de esta API. Según las pruebas realizadas, se soportan el chino, el inglés y una mezcla de ambos.

No hay configuración adicional para esta API.

Registro de cambios

0.19

0.18

  • Compatible con Python 3
  • Se introducen los conceptos de tipo de fuente de reconocimiento y tipo de
    motor para reducir el uso de gestos.
  • Se añade un gesto nuevo sin asignar para alternar entre los diferentes
    tipos de fuentes de reconocimiento.
  • Se añade un nuevo gesto sin asignar para alternar entre los diferentes
    tipos de motores de reconocimiento.
  • Se añade un nuevo gesto para reconocer según los ajustes de fuente de la
    imagen y tipo de motor.
  • Se añade un nuevo gesto sin asignar para mostrar el resultado anterior en
    un documento de resultado virtual.

0.17

  • Se han corregido los siguientes problemas:
    • Se salta directamente al panel cuando se cambia a Descriptor de
      imágenes en línea en el diálogo de opciones
    • Errata de descripción en el analizador de Azure

0.16

  • Se ha añadido un gesto para cancelar el reconocimiento
  • Se han corregido los siguientes problemas:
    • No se anunciaban los cambios de estado en la lista de casillas de
      verificación
    • Intercambiar el efecto de gestos repetidos no funcionaba en Online
      Image Describer

0.15

  • Se ha añadido una opción para mostrar una ventana que contiene el mensaje
    en vez de usar mensajes de voz y braille para el texto de los resultados
  • Las casillas de verificación con las características visuales del
    analizador de imágenes de Microsoft Azure ahora están en una lista.
  • Se han corregido los siguientes problemas:
    • No se podía cargar un archivo de imagen JPG desde el portapapeles
    • El objeto del documento con el resultado no se mostraba después del
      reconocimiento.
    • La posición en los objetos del documento de resultados no era fiable
      si la imagen se redimensionaba internamente.
    • El resultado del analizador de imágenes de Microsoft Azure se mostraba
      en una línea, complicando la navegación.

0.14

  • Corregidos algunos fallos:
    • No podías usar tu propia clave de API en los motores de Microsoft
      Azure
    • No se podía obtener el texto del resultado si había una pantalla
      braille

0.13

  • Ahora el complemento funciona al recargar los plugins sin reiniciar
    (NVDA+ctrl+f3)

0.12

  • Corregido el mensaje en modo exploración del descriptor de imágenes de
    Microsoft Azure
  • El tono del color ahora se representa con la descripción de colores de
    NVDA.
  • Se ha mejorado el formato de resultado del analizador de imágenes de
    Microsoft Azure
  • Se ha mejorado la documentación a partir de los comentarios de la revisión
  • Corregida inconsistencia de gestos.
  • Ctrl+shift+NVDA para el portapapeles y NVDA+alt para el navegador de
    objetos
  • Se ha corregido un error de información ausente de imagen mientras se
    reconocía.

0.11

  • Se ha añadido la capacidad de describir imágenes
  • Se ha cambiado la descripción corta del complemento a Online Image
    Describer

0.10

  • Corregido un error al utilizar la clave propia de API del usuario en la
    API de Sougou.
  • Corregido un problema de panel desconocido añadiendo los ajustes a
    supportedSettings

0.9

  • Corregido un problema que provocaba que no hubiera efecto alguno al
    realizar una doble pulsación.
  • Se ha revisado la documentación para reflejar los cambios más recientes en
    el código.
  • Se ha clarificado qué tipo de imágenes del portapapeles se soportan y cómo
    copiarlas para reconocerlas.
  • Solucionado el problema que impedía abrir el visor de resultados cuando se
    hacía el reconocimiento desde el portapapeles.
  • Se ha añadido soporte para reconocer una imagen desde una ruta de archivo
    local copiada al portapapeles.

0.8

  • Se ha añadido un aviso más amigable si el resultado del reconocimiento
    está vacío.
  • Resuelto otro problema que provocaba un mal funcionamiento si la ruta a
    los archivos de configuración contiene caracteres no ASCII

0.6

  • Se han añadido opciones de proxy para aquellos usuarios que accedan a
    Internet a través de un proxy específico.
  • Se han añadido varias opciones generales.
  • Se ha corregido un error de decodificación Unicode causado por el envío de
    una URL Unicode a urllib3.

0.5

  • Se ha corregido un error Unicode que ocurría si el motor del OCR subía el
    archivo de imagen directamente en vez de codificarlo en Base64.
  • Modificado el gesto para reconocer el portapapeles a ctrl+NVDA+shift+r, ya
    que NVDA+shift+r se usa en Word y Excel para definir cabeceras de fila en
    tablas, o para eliminar las definiciones si se pulsan dos veces.

0.4

  • Se ha corregido un error de instalación que ocurría cuando la ruta a la
    configuración contenía caracteres no ASCII
  • Se ha cambiado el gesto para evitar una colisión con Golden Cursor.
  • Se ha cambiado el motor por defecto a Microsoft Azure, ya que es capaz de
    detectar automáticamente el idioma del texto.

0.3

  • Se ha añadido documentación detallada sobre cómo obtener la clave de API
    del OCR de Microsoft Azure
  • Se ha corregido un problema con las nuevas instalaciones.
  • Eliminado el OCR automático, ya que esta función es problemática y puede
    resultar confusa con los motores en línea. AutoOCR se liberará como un
    complemento separado cuando sea suficientemente estable.

Autor: José Manuel Delicado Alcolea

Ingeniero de software y máster en Ingeniería Informática por la Universidad Rey Juan Carlos. Me encanta todo lo relacionado con la informática, la accesibilidad y las nuevas tecnologías. Trabajo como consultor de accesibilidad.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.