Skip to content

Repository files navigation

AzureLens

Aplicación móvil multiplataforma desarrollada en .NET MAUI que utiliza la potencia de Azure Computer Vision para el análisis inteligente de imágenes. Permite detectar objetos, personas y texto en tiempo real o desde archivos, ofreciendo una experiencia interactiva con traducción automática al español, búsqueda integrada en Bing y un sistema dinámico de cajas delimitadoras (bounding boxes) con enfoque manual.


Índice

  1. Arquitectura
  2. Tecnologías y dependencias
  3. Estructura del proyecto
  4. Requisitos previos
  5. Instalación y configuración
  6. Uso de la aplicación
  7. Mejoras implementadas

Arquitectura

El proyecto sigue el patrón MVVM (Model-View-ViewModel) proporcionado por el toolkit CommunityToolkit.Mvvm:

Vista (XAML)  <-->  ViewModel (lógica + bindings)  <-->  Servicios (Azure, Cámara, Traducción)
  • Models: TargetObject, BoundingBox — representan las entidades detectadas y sus coordenadas.
  • Views: MainPage y SettingsPage — páginas XAML con data binding reactivo.
  • ViewModels: MainViewModel (gestión de análisis y estado global) y SettingsViewModel (configuración).
  • Services: Encapsulan la lógica de negocio y comunicación externa.
    • AzureVisionService: Interacción con la API de Azure Computer Vision.
    • TranslationService: Traducción automática de etiquetas de IA al español.
    • CameraService: Gestión nativa de captura y selección de imágenes.
    • ThemeService: Control de temas visuales y consistencia UI.
  • Helpers: Utilidades auxiliares (Converters, Constants).

Toda la comunicación con la nube se realiza a través de AzureVisionService, que implementa la interfaz IAzureVisionService e interactúa con los servicios cognitivos de Microsoft usando ImageAnalysisClient.


Tecnologías y dependencias

Componente Tecnología
Framework .NET MAUI
Lenguaje C#
Patrón MVVM (CommunityToolkit.Mvvm)
Motor de IA Azure Computer Vision (API REST)
IDE Visual Studio 2026

Paquetes NuGet:

  • Azure.AI.Vision.ImageAnalysis — SDK oficial para el análisis de imágenes.
  • CommunityToolkit.Mvvm — Source generators, ObservableProperty y RelayCommand.
  • CommunityToolkit.Maui — Controles, animaciones y converters para MAUI.
  • Microsoft.Maui.Controls — Framework UI multiplataforma.
  • Microsoft.Extensions.Logging.Debug — Sistema de logging para depuración.

Estructura del proyecto

Estructura del proyecto


Requisitos previos

  1. .NET SDK instalado (versión 10 o superior).
  2. Visual Studio 2026 con la carga de trabajo ".NET MAUI" instalada.
  3. Recurso de Azure: Tener una instancia de "Computer Vision" o "Azure AI Services" en el portal de Azure.
  4. Credenciales: Endpoint y API Key del recurso.

Instalación y configuración

1. Preparación de Azure (Computer Vision)

Antes de usar la app, debes tener configurado el backend de inteligencia artificial:

  1. Inicia sesión en Azure Portal.
  2. Crea un nuevo recurso de Azure AI Services o Computer Vision.
  3. En la sección Claves y punto de conexión, copia:
    • Extremo (Endpoint): La URL del recurso.
    • Clave 1 o 2: El token secreto de autenticación.

2. Instalación de la App

Opción A: Descargar Binarios (Releases)

Ve a la sección de Releases del repositorio y descarga la última versión:

  • Android: Descarga e instala el archivo .apk.
  • Windows: Descarga el .zip, descomprímelo y ejecuta AzureLens.exe.

Opción B: Compilar desde código fuente

Si prefieres compilarlo tú mismo:

  1. Clona el repo: git clone https://github.com/KevinAZHD/AzureLens.git
  2. Usa el script automático para Windows:
    Run.bat

3. Configurar la app

Al abrir la app, si no detecta configuración previa, tienes que configurar la pestaña Ajustes.

Conexión con Azure Vision

Configuración de la comunicación con los servicios cognitivos.

Ajustes — Conexión

  • Endpoint: URL del servidor de Azure (ej: https://mi-recurso.cognitiveservices.azure.com/).
  • API Key: Clave generada desde el portal de Azure. Pulsa el icono del ojo para mostrar u ocultar el valor.
  • Pulsar Guardar conexión para validar y persistir los cambios. La app verifica la validez de los datos antes de permitir el uso del escáner.

Visualización

Personalización de qué elementos quieres que la IA detecte y cómo se muestran.

Ajustes — Visualización

  • Reconocimiento humano: Activa/desactiva la detección de personas (rectángulos rojos).
  • Muestreo de materiales: Activa/desactiva la detección de objetos (rectángulos de colores).
  • Descripción generativa: Muestra u oculta una explicación textual (Caption) de lo que la IA ve en la imagen.
  • Extracción de texto: Activa el módulo OCR para detectar y permitir copiar texto.
  • Modo oscuro: Cambia instantáneamente la estética de la interfaz entre modo oscuro y claro.

Uso de la aplicación

Escáner Inteligente

La pantalla principal (Inicio) es el centro de operaciones para el análisis.

Inicio — AzureLens

  • Capturar imagen: Pulsa el botón central de cámara para tomar una foto.
  • Seleccionar desde galería: Pulsa el icono de imagen a la izquierda para elegir un archivo del dispositivo.
  • Limpiar: El botón de papelera a la derecha borra el análisis actual y restablece la vista.
  • Detección dinámica: Una vez capturada, la app muestra un indicador de carga mientras procesa con Azure.

Interacción con Bounding Boxes

AzureLens permite interactuar directamente con la imagen analizada.

Interacción — Bounding Boxes

  • Cajas de colores: Representan objetos y personas detectadas.
  • Efecto de Enfoque (Focus): Pulsa sobre la etiqueta de cualquier caja (ej: "Laptop") para ocultar el resto de cajas y centrarte en ese elemento. Pulsa de nuevo para volver a ver todo el conjunto.
  • Etiquetas inteligentes: Se posicionan automáticamente para evitar recortarse y siempre muestran el nombre traducido al español.

Descripción Generativa, Resultados y Acciones

En el panel inferior se listan todos los hallazgos de forma detallada, priorizando la comprensión del entorno.

Resultados — OCR y Objetos

  • Descripción IA (Caption): Si está activada, aparecerá un bloque de texto en la parte superior del panel con una descripción natural de la escena (ej: "Un hombre sentado en un escritorio con un ordenador portátil").
  • Copiar Texto (OCR): Pulsa el icono de copia en los resultados de texto. Verás una animación donde el icono se convierte en un check verde para confirmar el copiado al portapapeles.
  • Búsqueda en Bing: Pulsa sobre cualquier objeto detectado o su icono de lupa para abrir una búsqueda de imágenes en Bing con ese nombre de forma instantánea.
  • Confianza de la IA: Cada objeto muestra su porcentaje de precisión (ej: Confianza: 98.7%) para que sepas el grado de fiabilidad del análisis.

Mejoras implementadas

Sobre las capacidades base de la API de Azure, se han implementado las siguientes mejoras y características que elevan la experiencia de usuario:

  • Modo Enfoque Interactivo (Focus Mode): Sistema lógico avanzado en el lienzo de dibujo (AbsoluteLayout) que permite aislar objetos visualmente. Al tocar la etiqueta de un objeto, el resto se ocultan al 100% y se desactivan sus interacciones, permitiendo un análisis quirúrgico de elementos individuales.
  • Control de Visualización Granular: Se han implementado filtros en tiempo real para personalizar el análisis:
    • Reconocimiento humano: Lógica específica para destacar personas con rectángulos rojos y emojis identificativos (👤).
    • Muestreo de materiales: Algoritmo de rotación de colores para diferenciar objetos distintos en una misma escena.
    • Descripción generativa: Integración de modelos de lenguaje visual para obtener pies de foto descriptivos y naturales.
    • Extracción de texto (OCR): Detección inteligente de caracteres con capacidad de copiado rápido al portapapeles.
  • Traducción Multinivel: Motor de traducción integrado que procesa tanto las etiquetas simples (objetos) como las descripciones generativas complejas (Captions), convirtiendo el output técnico de Azure (Inglés) a un lenguaje natural y cercano (Español).
  • Ajuste Dinámico de Layout: El código detecta las dimensiones reales de la imagen analizada, asegurando que la imagen siempre sea visible sin deformaciones.
  • Seguridad y Validación Preventiva: Implementación de un Overlay de Bloqueo que impide el uso de la aplicación si no se detectan credenciales válidas, protegiendo al usuario de errores de red y guiándolo directamente a la configuración.
  • Persistencia de Estado Robusta: Todas las preferencias (toggles de visualización, tema claro/oscuro, Endpoint y API Key) se guardan usando Preferences de .NET MAUI, lo que permite que la app recuerde exactamente cómo la dejaste al volver a abrirla.
  • Gestión Inteligente de Recursos: Cierre automático del flujo de cámara al navegar entre páginas para evitar fugas de memoria y consumo innecesario de batería.

About

AzureLens es una app multiplataforma .NET MAUI integrada con Azure Computer Vision. Permite detectar objetos, realizar OCR y extraer información visual con traducción automática al español. Todo ello con cajas delimitadoras interactivas, búsqueda integrada en Bing y una interfaz inmersiva de alto rendimiento con modo oscuro.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages