Manual de Uso - Script 2_detectar_objetos_imageai_yolov3_hilos.py

馃搧 Acceso al C贸digo Fuente

Descarga o accede directamente al archivo Python:

Ver C贸digo Python

Descripci贸n General

El script 2_detectar_objetos_imageai_yolov3_hilos.py es una herramienta de procesamiento paralelo que utiliza inteligencia artificial para detectar objetos en im谩genes. Emplea el modelo YOLOv3 a trav茅s de la biblioteca ImageAI para identificar objetos comunes con alta precisi贸n y almacenar los resultados en una base de datos MongoDB.

El script incorpora las siguientes funcionalidades principales:

Requisitos del Sistema

Dependencias de Python

El script requiere las siguientes bibliotecas de Python:

Requisitos de Base de Datos

Requisitos de Hardware

Requisitos de Modelos

Instalaci贸n y Configuraci贸n

Instalaci贸n de Dependencias

Ejecute los siguientes comandos para instalar las bibliotecas requeridas:

pip install imageai pymongo torch torchvision

Descarga del Modelo YOLOv3

El modelo YOLOv3 debe estar disponible localmente. Puede descargarlo desde el sitio oficial de PyTorch o repositorios p煤blicos. Aseg煤rese de colocar el archivo yolov3.pt en la ruta especificada en el script.

Configuraci贸n del script

Antes de ejecutar el script, es necesario modificar las siguientes configuraciones:

Configuraci贸n de MongoDB

MONGO_URI = "mongodb://localhost:27017"  # URI de conexi贸n a MongoDB
DB_NAME = "album_2"  # Nombre de la base de datos
COLLECTION_NAME = "imagenes"  # Nombre de la colecci贸n

Configuraci贸n de GPU

USE_GPU = True  # Habilitar uso de GPU si PyTorch tiene soporte CUDA

Ruta del Modelo

det.setModelPath("/home/nito/Documentos/desarrollo/python/modelos/yolov3.pt")
Advertencia: Aseg煤rese de que el modelo YOLOv3 existe en la ruta especificada antes de ejecutar el script.

Uso del Script

Ejecuci贸n B谩sica

Para ejecutar el script, navegue al directorio donde se encuentra el archivo y ejecute:

python 2_detectar_objetos_imageai_yolov3_hilos.py

Funcionamiento Autom谩tico

El script autom谩ticamente:

  1. Se conecta a MongoDB y recupera todos los documentos no procesados (donde visto != True)
  2. Verifica que los archivos de imagen existen f铆sicamente
  3. Procesa las im谩genes en paralelo usando hasta 3 procesos simult谩neos
  4. Detecta objetos en cada imagen con un umbral de probabilidad m铆nima del 30%
  5. Almacena los resultados en MongoDB y marca los documentos como procesados
  6. Proporciona un resumen final del procesamiento

Salidas del Script

El script proporciona informaci贸n detallada durante el procesamiento:

Interrupci贸n del Procesamiento

El script procesa autom谩ticamente todas las im谩genes disponibles y finalizar谩 cuando complete el procesamiento. No se requiere intervenci贸n manual durante la ejecuci贸n.

Funcionalidades Detalladas

Detecci贸n de Objetos

Procesamiento Paralelo

Gesti贸n de Base de Datos

Control de Calidad

Estructura de Datos en MongoDB

Cada documento procesado se actualiza con la siguiente informaci贸n adicional:

Campos de Control

Campo Tipo Descripci贸n
visto Boolean Indicador de si la imagen ha sido procesada (True despu茅s del procesamiento)

Estructura de Objetos Detectados

Los objetos detectados se almacenan en el campo objetos_detectados como un array de objetos:

Campo Tipo Descripci贸n
objeto_detectado String Nombre del objeto identificado (ej: "person", "car")
porcentaje Float Porcentaje de probabilidad de detecci贸n (0-100)
coordenadas Array Coordenadas del bounding box [x1, y1, x2, y2]

Campos de Procesamiento (Actualizados)

Ejemplo de documento actualizado:

{
  "_id": "hash_sha512_de_la_imagen",
  "visto": true,
  "objetos_detectados": [
    {
      "objeto_detectado": "car",
      "porcentaje": 87.45,
      "coordenadas": [150, 200, 350, 300]
    },
    {
      "objeto_detectado": "person",
      "porcentaje": 93.12,
      "coordenadas": [100, 150, 200, 450]
    }
  ],
  "fecha_procesamiento_anio": "2024",
  "fecha_procesamiento_mes": "08",
  "fecha_procesamiento_dia": "31",
  "fecha_procesamiento_hora": "11",
  "fecha_procesamiento_minuto": "09"
}

Soluci贸n de Problemas

Errores Comunes

Error: "Modelo no encontrado"

Causa: El archivo de modelo YOLOv3 no existe en la ruta especificada.

Soluci贸n: Verifique la ruta del modelo en el c贸digo y aseg煤rese de que el archivo existe.

Error de conexi贸n a MongoDB

Causa: MongoDB no est谩 ejecut谩ndose o la URI es incorrecta.

Soluci贸n: Verifique que MongoDB est茅 ejecut谩ndose en el puerto correcto y que la URI sea v谩lida.

Error: "Archivo no encontrado"

Causa: Una imagen referenciada en MongoDB no existe f铆sicamente.

Soluci贸n: El script autom谩ticamente omite estos archivos y marca el error. Verifique las rutas en la base de datos.

Documentos incompletos

Causa: Documentos en MongoDB sin campos ruta_completa o _id.

Soluci贸n: Verifique la integridad de los documentos en la colecci贸n antes del procesamiento.

Error de memoria CUDA

Causa: Problemas con la GPU o configuraci贸n de CUDA en PyTorch.

Soluci贸n: Cambie USE_GPU = False para usar CPU en su lugar.

Problemas de rendimiento

Causa: Im谩genes muy grandes o muchos procesos simult谩neos.

Soluci贸n: Reduzca el n煤mero de procesos o procese en lotes m谩s peque帽os.

Optimizaciones de Rendimiento

Consultas de Ejemplo en MongoDB

Buscar im谩genes con objetos detectados

db.imagenes.find({
    "objetos_detectados": { $exists: true, $ne: [] }
})

Buscar im谩genes con coche espec铆fico

db.imagenes.find({
    "objetos_detectados.objeto_detectado": "car"
})

Contar im谩genes procesadas

db.imagenes.countDocuments({ "visto": true })

Buscar im谩genes con alta confianza en detecci贸n

db.imagenes.find({
    "objetos_detectados": {
        $elemMatch: { "porcentaje": { $gt: 80 } }
    }
})

Buscar im谩genes sin objetos detectados

db.imagenes.find({
    "visto": true,
    "$or": [
        { "objetos_detectados": { $exists: false } },
        { "objetos_detectados": [] }
    ]
})

Estad铆sticas de objetos m谩s comunes

db.imagenes.aggregate([
    { $unwind: "$objetos_detectados" },
    { $group: { _id: "$objetos_detectados.objeto_detectado", count: { $sum: 1 } } },
    { $sort: { count: -1 } },
    { $limit: 10 }
])

Informaci贸n de Versi贸n y Soporte

Este script est谩 optimizado para el proyecto Album Sem谩ntico y utiliza tecnolog铆a de visi贸n computacional avanzada para an谩lisis de im谩genes.

Para soporte t茅cnico o consultas adicionales, revise la documentaci贸n del proyecto o contacte al equipo de desarrollo.


Manual generado autom谩ticamente - 脷ltima actualizaci贸n: 31 de agosto de 2025