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:
El script requiere las siguientes bibliotecas de Python:
imageai (versi贸n compatible con YOLOv3)pymongopytorch (para soporte GPU)album_2imagenes con documentos que contengan campos ruta_completa y _id/home/nito/Documentos/desarrollo/python/modelos/yolov3.ptEjecute los siguientes comandos para instalar las bibliotecas requeridas:
pip install imageai pymongo torch torchvision
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.
Antes de ejecutar el script, es necesario modificar las siguientes configuraciones:
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
USE_GPU = True # Habilitar uso de GPU si PyTorch tiene soporte CUDA
det.setModelPath("/home/nito/Documentos/desarrollo/python/modelos/yolov3.pt")
Para ejecutar el script, navegue al directorio donde se encuentra el archivo y ejecute:
python 2_detectar_objetos_imageai_yolov3_hilos.py
El script autom谩ticamente:
visto != True)El script proporciona informaci贸n detallada durante el 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.
visto != Truevisto = True despu茅s del procesamientoCada documento procesado se actualiza con la siguiente informaci贸n adicional:
| Campo | Tipo | Descripci贸n |
|---|---|---|
visto |
Boolean | Indicador de si la imagen ha sido procesada (True despu茅s del procesamiento) |
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] |
fecha_procesamiento_dia: D铆a del procesamiento de detecci贸nfecha_procesamiento_mes: Mes del procesamiento de detecci贸nfecha_procesamiento_anio: A帽o del procesamiento de detecci贸nfecha_procesamiento_hora: Hora del procesamiento de detecci贸nfecha_procesamiento_minuto: Minuto del procesamiento de detecci贸nEjemplo 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"
}
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.
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.
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.
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.
Causa: Problemas con la GPU o configuraci贸n de CUDA en PyTorch.
Soluci贸n: Cambie USE_GPU = False para usar CPU en su lugar.
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.
db.imagenes.find({
"objetos_detectados": { $exists: true, $ne: [] }
})
db.imagenes.find({
"objetos_detectados.objeto_detectado": "car"
})
db.imagenes.countDocuments({ "visto": true })
db.imagenes.find({
"objetos_detectados": {
$elemMatch: { "porcentaje": { $gt: 80 } }
}
})
db.imagenes.find({
"visto": true,
"$or": [
{ "objetos_detectados": { $exists: false } },
{ "objetos_detectados": [] }
]
})
db.imagenes.aggregate([
{ $unwind: "$objetos_detectados" },
{ $group: { _id: "$objetos_detectados.objeto_detectado", count: { $sum: 1 } } },
{ $sort: { count: -1 } },
{ $limit: 10 }
])
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