Sistema automatizado mejorado para identificación de individuos de ocelote usando análisis especializado de patrones de rosetas y manchas en videos de cámaras trampa
"La tecnología estructura cómo los animales y los humanos comparten espacios, actúa como mediadora y 'conectora' de vidas a través del tiempo y el espacio. 'Facilita' formas de observar, medir, mover y matar, así como controlar, contener, conservar y cooperar con los animales. Configura las relaciones humanas con el mundo no humano, explorando a los animales no humanos como parientes, compañeros, alimento, transgresores, entretenimiento y herramientas." Tomado del libro "Compartiendo Espacios" para tener claro que eso que vemos con camaras trampas genera tambien distanciamiento y una mirada desde el control, intrusiva y antropocentrica.
¿Cómo preservar la alteridad radical de cada especie mientras sus individuos agencian dentro de redes amplias y complejas que no comprendemos? ¿Cómo y para qué realizar identificación individuos sin simplificarlos a quasi-objetos pero si como seres de una comunidad por venir?
Este sistema utiliza técnicas avanzadas de visión por computadora y algoritmos especializados en patrones de felinos para identificar individuos de ocelote (Leopardus pardalis). El sistema analiza patrones únicos de rosetas, manchas sólidas y características de piel comparando videos de cámaras trampa. La herramienta está diseñada para apoyar estudios de conservación y monitoreo poblacional no invasivo con análisis visuales comprensivos.
- Detección de rosetas: Algoritmos especializados para identificar patrones circulares/elípticos característicos
- Análisis de manchas sólidas: Detección de patrones de manchas usando análisis de blob
- Validación de patrones: Verificación de contraste centro-borde para confirmar rosetas auténticas
- Mapas de calor de patrones: Visualización de similaridad de rosetas y manchas
- Líneas de perfil de patrones: Análisis de tendencias de coincidencia a través de fotogramas
- Matriz de comparación: Heatmaps específicos para cada tipo de patrón
- Indicadores de confianza: Bordes codificados por color (verde=alta, naranja=moderada, rojo=baja)
- Análisis de videos: Procesamiento de múltiples fotogramas para mayor precisión
- Algoritmos tradicionales: SIFT y ORB para extracción de características generales
- Comparación espacial: Matching basado en posición, tamaño y confianza de patrones
- Puntuación ponderada: Prioriza coincidencias de patrones específicos sobre características generales
- Línea de comandos flexible: Acepta rutas de video como parámetros
- Análisis estadístico detallado: Niveles de confianza basados en múltiples métricas
- Reportes visuales comprensivos: Dashboard de 6 paneles con análisis completo
- Documentación completa: Manuales en español e interpretación de resultados
# Clonar repositorio
git clone https://github.com/alejoduque/ID_indv.git
cd ID_indv
# Crear y activar entorno virtual (recomendado)
python3 -m venv ocelot_env
source ocelot_env/bin/activate # macOS/Linux
# ocelot_env\Scripts\activate # Windows
# Instalar dependencias
pip install opencv-python matplotlib numpyEl sistema acepta las rutas de los videos como argumentos de línea de comandos:
# Activar el entorno virtual
source ocelot_env/bin/activate
# Sintaxis: python3 ocelot_video_comparison.py <ruta_video1> <ruta_video2>
python3 ocelot_video_comparison.py video1.mov video2.mov
# Ejemplo con videos de prueba incluidos
python3 ocelot_video_comparison.py 1.mov 2.mov
# Ejemplo con rutas completas
python3 ocelot_video_comparison.py "/ruta/completa/ocelote1.mov" "/ruta/completa/ocelote2.mp4"Formatos de video soportados: .mov, .mp4, .avi, .mkv y otros formatos compatibles con OpenCV
Para imágenes estáticas, también se pueden pasar como argumentos:
# Sintaxis: python3 ocelot_pattern_comparison.py <imagen1> <imagen2>
python3 ocelot_pattern_comparison.py imagen1.jpg imagen2.jpg
# O usar las imágenes predeterminadas (sin argumentos)
python3 ocelot_pattern_comparison.py
# (Busca automáticamente Ocelote_compare_1.jpg y Ocelote_compare_2.jpg)Después de ejecutar el análisis, se generan:
ocelot_pattern_profile_analysis.png- Dashboard de 6 paneles con análisis completoocelot_enhanced_pattern_matches.png- Mejores coincidencias con detalles de patronesocelot_analysis_results.json- Métricas detalladas y estadísticas
- Videos analizados:
1.movvs2.mov(videos cortos de 3+ segundos) - Resultado: CONFIANZA MODERADA-ALTA - PROBABLEMENTE EL MISMO INDIVIDUO (75-85%)
- Análisis de patrones: 49.7% de similaridad máxima de patrones específicos
- Evidencia detallada:
- Rosetas detectadas: Hasta 52.3% de coincidencia con 96 matches fuertes
- Manchas sólidas: 44.0% promedio con 108 detecciones
- Puntuación ponderada: 549.0 (muy fuerte)
- Comparaciones totales: 108 combinaciones de fotogramas (9x12)
- 90-95%: ALTA CONFIANZA - Mismo individuo
- 75-85%: CONFIANZA MODERADA-ALTA - Probablemente el mismo individuo
- 55-70%: CONFIANZA MODERADA - Posiblemente el mismo individuo
- 35-50%: CONFIANZA BAJA-MODERADA - Incierto
- 15-35%: CONFIANZA BAJA - Probablemente individuos diferentes
├── ocelot_video_comparison.py # 🆕 Script principal mejorado con detección de patrones específicos
├── ocelot_pattern_comparison.py # Script para imágenes estáticas
├── OCELOT_IDENTIFICATION_GUIDE.md # 🆕 Guía completa de uso en inglés
├── RESUMEN_ANALISIS_OCELOTE.md # Resultados detallados en español
├── MANUAL_USO_SISTEMA_OCELOTE.md # Manual completo de usuario
├── ocelot_analysis_results.json # 🆕 Resultados con métricas de patrones mejoradas
├── ocelot_pattern_profile_analysis.png # 🆕 Dashboard de 6 paneles con análisis visual completo
├── ocelot_enhanced_pattern_matches.png # 🆕 Visualización mejorada con detalles de patrones
├── ocelot_best_matches.png # Visualización tradicional de coincidencias
└── README.md # 🆕 Este archivo actualizado
- Extracción de fotogramas: 12-15 fotogramas distribuidos uniformemente por video
- Mejoramiento de imagen: CLAHE, filtrado bilateral, detección de bordes Canny
- Detección de patrones de ocelote:
- Rosetas: HoughCircles con validación morfológica centro-borde
- Manchas sólidas: Blob detection con filtros de circularidad y convexidad
- Validación: Verificación de contraste y regularidad de patrones
- Comparación espacial: Matching basado en posición, tamaño y confianza
- Extracción tradicional: Algoritmos SIFT (invariante a escala) y ORB (robusto)
- Análisis estadístico: Comparación cruzada de todas las combinaciones de fotogramas
- Evaluación ponderada: Sistema de puntuación que prioriza patrones específicos (2x peso)
- Matrices de similaridad: Heatmaps separados para rosetas, manchas y patrones generales
- Líneas de perfil: Tendencias de coincidencia a través de todos los fotogramas
- Análisis de consistencia: Varianza de patrones para evaluar estabilidad
- Dashboard resumido: Métricas consolidadas con indicadores de confianza
- Censos poblacionales: Conteo preciso de individuos sin recaptura
- Estudios territoriales: Mapeo de rangos y solapamientos
- Monitoreo longitudinal: Seguimiento de individuos a través del tiempo
- Evaluación de corredores: Identificación de movimientos entre hábitats
- Investigación comportamental: Análisis de patrones de actividad individual
- ✅ Análisis específico de ocelote: Detección especializada de rosetas y patrones únicos de la especie
- ✅ Visualización comprensiva: Dashboard de 6 paneles con análisis visual completo
- ✅ Múltiples métricas: Combina patrones específicos con características tradicionales
- ✅ Puntuación ponderada: Prioriza evidencia de patrones de piel sobre similaridad general
- ✅ Validación cruzada: Múltiples algoritmos y comparaciones estadísticas
- ✅ Interfaz flexible: Acepta rutas de video por línea de comandos
- ✅ Reproducibilidad: Metodología estandarizada y completamente documentada
- Requiere patrones de piel laterales claramente visibles
- Dependiente de calidad de iluminación (infrarroja o natural)
- Optimizado específicamente para patrones de ocelote y felinos similares
- Mejor rendimiento con videos de 3+ segundos de duración
Las contribuciones son bienvenidas. Por favor:
- Hacer fork del repositorio
- Crear una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit de cambios (
git commit -am 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Crear un Pull Request
Este proyecto está bajo licencia MIT. Ver archivo LICENSE para detalles.
Proyecto MANAKAI - Monitoreo de Fauna con Cámaras Trampa
- Documentación técnica: Ver
MANUAL_USO_SISTEMA_OCELOTE.md - Resultados científicos: Ver
RESUMEN_ANALISIS_OCELOTE.md - Issues: Usar el sistema de issues de GitHub para reportar problemas
Desarrollado inicialmente como parte del Proyecto MANAKAI para conservación de fauna neotropical mediante tecnologías no invasivas de monitoreo.
Última actualización: Septiembre 2025
Versión: 2.0 - Sistema Mejorado con Análisis de Patrones Específicos
Estado: Producción - Completamente funcional con mejoras significativas

