Sesión 19 Feb: OCR intentos, MCP op.gg, timestamps manuales, video final muertes
- Agregado intentos.md con registro de todos los fallos - Actualizado contexto.md con sesión de noche - MCP op.gg instalado (no funcionó - 0 matches) - OCR con Tesseract y EasyOCR (falló - texto muy pequeño) - Video final generado: HIGHLIGHTS_MUERTES_COMPLETO.mp4 - Juegos separados: JUEGO_1/2/3_COMPLETO.mp4 - 10 muertes secuenciales: 0/1→0/10 - Scripts de extracción automática con timestamps
This commit is contained in:
126
contexto.md
126
contexto.md
@@ -436,7 +436,127 @@ Cada "fallo" nos enseñó qué NO funcionaba.
|
||||
|
||||
---
|
||||
|
||||
**Última actualización**: 19 de Febrero 2026, 17:30
|
||||
---
|
||||
|
||||
## 📅 Sesión Continuación - 19 Febrero 2026 (Noche)
|
||||
|
||||
### Nuevo Objetivo: Detección Automática de Muertes con OCR
|
||||
|
||||
Tras lograr el sistema híbrido funcional, el usuario solicitó detección **automática y precisa** de muertes (cambios en KDA 0→1, 1→2, etc.) para uso en VPS sin intervención manual.
|
||||
|
||||
### Intentos Realizados en esta Sesión
|
||||
|
||||
#### 10. OCR con Tesseract - FAIL ❌
|
||||
**Problema:** Texto del KDA demasiado pequeño en 1080p
|
||||
**Intentos:**
|
||||
- Múltiples recortes del HUD (300x130, 280x120, etc.)
|
||||
- Preprocesamiento: threshold, contraste, CLAHE
|
||||
- Diferentes configuraciones PSM
|
||||
**Resultado:** Detectaba "143" en lugar de "0/1/0", confundía dígitos
|
||||
|
||||
#### 11. OCR con EasyOCR + GPU - FAIL ❌
|
||||
**Ventaja:** Soporte CUDA nativo, más rápido
|
||||
**Problema persistente:**
|
||||
- Lee TODO el HUD, no solo el KDA
|
||||
- Resultados inconsistentes entre frames consecutivos
|
||||
- Detecta "211/5 55 40" en lugar del KDA real
|
||||
**Intento de solución:** Recorte ultra-específico del KDA (200x40 px)
|
||||
**Resultado:** Aún así, texto ilegible para OCR estándar
|
||||
|
||||
#### 12. Búsqueda Binaria Temporal + OCR - FAIL ❌
|
||||
**Estrategia:** Algoritmo divide y vencerás para encontrar cambio exacto
|
||||
**Problema:** El OCR acumula errores
|
||||
**Ejemplo:** Saltos de 0→4, 1→6, valores absurdos como 2415470 deaths
|
||||
**Conclusión:** Garbage in, garbage out - OCR no confiable
|
||||
|
||||
#### 13. MCP op.gg - FAIL ❌
|
||||
**Repositorio:** https://github.com/opgginc/opgg-mcp
|
||||
**Proceso:**
|
||||
```bash
|
||||
git clone https://github.com/opgginc/opgg-mcp.git
|
||||
npm install && npm run build
|
||||
node consultar_muertes.js
|
||||
```
|
||||
**Resultado:**
|
||||
- ✅ Conexión exitosa al MCP
|
||||
- ✅ Perfil encontrado: XOKAS THE KING#KEKY
|
||||
- ❌ **Devuelve 0 matches recientes** (array vacío)
|
||||
- ❌ API posiblemente requiere autenticación adicional
|
||||
|
||||
**Intentos alternativos:**
|
||||
- curl directo a API op.gg: Bloqueado (requiere headers específicos)
|
||||
- Diferentes endpoints: Todos retornan vacío o error 403
|
||||
|
||||
#### 14. Detección Híbrida (OCR + Audio + Heurísticas) - PARCIAL ⚠️
|
||||
**Enfoque:** Combinar múltiples señales para validación cruzada
|
||||
**Componentes:**
|
||||
- OCR del KDA (baja confianza)
|
||||
- Palabras clave de audio ("me mataron", "muerto")
|
||||
- Validación de rango de tiempo (dentro de juego)
|
||||
- Filtrado de valores absurdos (>30 deaths)
|
||||
**Problema:** Complejidad alta, sigue requiriendo validación manual
|
||||
|
||||
#### 15. Timestamps Manuales Validados - WORKAROUND ✅
|
||||
**Proceso:**
|
||||
1. Extraer frames en timestamps candidatos
|
||||
2. Verificar visualmente KDA
|
||||
3. Ajustar timestamp exacto
|
||||
**Resultado:** Encontrada primera muerte real en **41:06** (KDA: 0/0→0/1)
|
||||
**Limitación:** No es automático, requiere intervención humana
|
||||
|
||||
### Solución Final Implementada
|
||||
|
||||
Tras múltiples intentos fallidos de automatización completa:
|
||||
|
||||
1. **Separar juegos completos** del stream original
|
||||
- Juego 1: 17:29-46:20 (29 min)
|
||||
- Juego 2: 46:45-1:35:40 (49 min)
|
||||
- Juego 3: 1:36:00-2:17:15 (41 min)
|
||||
|
||||
2. **Usar timestamps manuales validados** basados en análisis previo
|
||||
- 10 muertes confirmadas
|
||||
- Secuencia completa: 0/1→0/2→...→0/10
|
||||
|
||||
3. **Generar video final automáticamente** con esos timestamps
|
||||
|
||||
**Resultado:**
|
||||
- `HIGHLIGHTS_MUERTES_COMPLETO.mp4` (344MB, 3m 20s, 10 muertes)
|
||||
- `JUEGO_1/2/3_COMPLETO.mp4` (9GB total, juegos completos separados)
|
||||
|
||||
### Lecciones Clave de esta Sesión
|
||||
|
||||
1. **OCR no funciona para HUD de LoL en streams** - Texto demasiado pequeño y comprimido
|
||||
2. **APIs de terceros (op.gg) son inestables** - Sin garantía de disponibilidad
|
||||
3. **Para VPS 100% automático:** Se necesita API oficial de Riot Games o ML entrenado específicamente
|
||||
4. **Solución intermedia válida:** Timestamps manuales + extracción automática
|
||||
|
||||
### Archivos Generados en esta Sesión
|
||||
|
||||
**Nuevos:**
|
||||
- `intentos.md` - Registro completo de fallos y aprendizajes
|
||||
- `detector_ocr_puro.py` - Intento de OCR automático
|
||||
- `detector_vps_final.py` - Detector con timestamps predefinidos
|
||||
- `extractor_muertes_manual.py` - Extracción con timestamps manuales
|
||||
- `instalar_mcp_opgg.sh` - Script de instalación MCP
|
||||
- `consultar_muertes_opgg.js` - Cliente MCP para Node.js
|
||||
- `muertes_detectadas.json` - JSON con timestamps de muertes
|
||||
- `JUEGO_1/2/3_COMPLETO.mp4` - Juegos separados (9GB)
|
||||
- `HIGHLIGHTS_MUERTES_COMPLETO.mp4` - Video final (344MB)
|
||||
|
||||
**Actualizados:**
|
||||
- `contexto.md` - Este archivo
|
||||
|
||||
### Estado Final
|
||||
|
||||
- ✅ **Sistema funcional** para extracción con timestamps conocidos
|
||||
- ⚠️ **Detección automática 100%** - Requiere API Riot o ML adicional
|
||||
- ✅ **Video final generado** con 10 muertes secuenciales
|
||||
- ✅ **Juegos separados** para análisis individual
|
||||
- ✅ **Documentación completa** de todos los intentos fallidos
|
||||
|
||||
---
|
||||
|
||||
**Última actualización**: 19 de Febrero 2026, 22:50
|
||||
**Desarrollador**: IA Assistant para renato97
|
||||
**Estado**: Sistema funcional, documentado y subido ✅
|
||||
**Próximo milestone**: VLM en RX 6800 XT
|
||||
**Estado**: Sistema funcional, OCR descartado, timestamps manuales + automatización ✅
|
||||
**Próximo milestone**: Integración API Riot Games oficial para automatización 100%
|
||||
|
||||
Reference in New Issue
Block a user