📋 Descripción General
Este script es una herramienta avanzada de procesamiento de imágenes que utiliza inteligencia artificial (a través de Ollama) para detectar automáticamente objetos en imágenes almacenadas en una base de datos MongoDB. Cuenta con una interfaz de usuario interactiva basada en menús con colores para facilitar su uso.
📁 Código Fuente: El script en Python está disponible para descarga y revisión: detectar_objetos_ollama.py
🎯 Funcionalidades Principales
- Detección de Objetos: Análisis automático de imágenes usando modelos de IA
- Filtro por Tamaño: Procesar solo imágenes menores a un tamaño específico en KB
- Filtro por Extensión: Procesar solo imágenes de un tipo de archivo determinado
- Interfaz Colorida: Menús interactivos con colores usando la librería Colorama
- Progreso en Tiempo Real: Indicador de progreso en una sola línea durante el procesamiento
- Control de Interrupciones: Posibilidad de detener la ejecución en cualquier momento
⚙️ Requisitos del Sistema
Software Requerido
- Python 3.7+
- MongoDB ejecutándose en localhost:27017
- Ollama con modelo gemma3:4b instalado
Librerías Python
Estructura de Base de Datos
El script requiere una base de datos MongoDB con:
- Base de datos: album
- Colección: imagenes_2
- Campos requeridos por documento:
ruta: Ruta completa al archivo de imagenpeso: Tamaño del archivo en KBobjeto_procesado: Booleano (opcional, se crea automáticamente)
🚀 Cómo Usar el Script
Instalación de Dependencias
$ ollama pull gemma3:4b
Ejecución
📱 Interfaz de Usuario
Menú Principal
DETECTOR DE OBJETOS EN IMÁGENES
==================================================
Selecciona una opción:
1. Detectar objetos por tamaño (KB)
2. Detectar objetos por extensión
q. Salir
Presiona 'q' en cualquier momento para salir
Opciones Disponibles
| Opción | Descripción | Comportamiento |
|---|---|---|
| 1. Por Tamaño | Filtra imágenes por tamaño máximo en KB | Solo procesa imágenes menores al límite especificado |
| 2. Por Extensión | Filtra imágenes por tipo de archivo | Solo procesa imágenes con la extensión especificada |
| q. Salir | Cierra la aplicación | Termina la ejecución del programa |
🔧 Ejemplos de Uso
Ejemplo 1: Procesar Imágenes Pequeñas
Selección: Opción 1
Entrada: 200
Resultado: Solo se procesarán imágenes de menos de 200KB
Ejemplo 2: Procesar Solo JPG
Selección: Opción 2
Entrada: jpg
Resultado: Solo se procesarán archivos con extensión .jpg
⚡ Cómo Funciona el Script
- Inicio: El script verifica las conexiones a MongoDB y Ollama
- Búsqueda: Consulta la base de datos por imágenes no procesadas
- Filtrado: Aplica el filtro seleccionado (tamaño o extensión)
- Procesamiento: Para cada imagen:
- Codifica la imagen en base64
- Envía a Ollama para análisis con el modelo gemma3:4b
- Extrae la lista de objetos detectados
- Actualiza la base de datos con los resultados
- Reporte: Muestra estadísticas finales del procesamiento
📊 Formato de Resultados
Estructura en MongoDB
Cada documento procesado se actualiza con:
🔍 Detalles Técnicos
Modelo de IA
- Proveedor: Ollama
- Modelo: gemma3:4b
- Idioma: Español (configurable)
- Timeout: 40 segundos por imagen
Configuraciones
- Conexión MongoDB: localhost:27017
- Base de datos: album
- Colección: imagenes_2
- Límite de tamaño predeterminado: 512KB
🚨 Manejo de Errores
- "Error al conectar a MongoDB": Asegúrese de que MongoDB esté ejecutándose
- "Modelo no encontrado": Ejecute
ollama pull gemma3:4b - "Imagen no encontrada": Verifique que las rutas en la BD sean correctas
- Timeout: Imágenes muy complejas pueden exceder el límite de 40s
🎨 Características de la Interfaz
- Colores: Usa la librería Colorama para interfaz colorida
- Navegación: Menús claros con opciones numeradas
- Progreso: Indicador en una sola línea durante procesamiento
- Interrupciones: Soporte para Ctrl+C y 'q' en cualquier momento
📝 Notas Importantes
- El script marca automáticamente las imágenes como procesadas, incluso si hay errores
- Las imágenes se procesan en el orden que devuelve MongoDB
- El progreso se muestra actualizado en tiempo real en una sola línea
- Presiona 'q' en cualquier momento para cancelar operaciones
🔮 Mejoras Futuras
- Soporte para múltiples modelos de Ollama
- Configuración personalizable de timeouts
- Exportación de resultados a diferentes formatos
- Interfaz gráfica (GUI)
- Procesamiento en paralelo para múltiples imágenes