WebAR FácilAbrir ejemploEnglish

Validación de odometría, relocalización y deriva

La odometría sigue siendo monocular y de mapa local. Esta revisión añade validaciones, no SLAM global ni fusión IMU. No se atribuye a una cámara física lo medido con imágenes sintéticas.

Cambios implementados

Las pruebas incluyen mapa importado, ausencia de imagen, escena distinta, confirmación temporal débil, continuidad tras retirar marcador y un plano triangulado. Consulta verificación y protocolo físico.

Corrección local experimental

keyframe-correction en webar-scene o keyframeCorrection:true en EngineOptions/OdometryConfig habilita una reobservación acotada del keyframe antiguo. Está desactivada por defecto.

Solo se acepta una corrección con soporte suficiente, movimiento/rotación acotados y mejora de reproyección sin degradar demasiado los puntos LK. No cambia el origen del mapa ni constituye cierre de bucle global. Puede añadir coste, errores y saltos; el filtrado visual no demuestra que la geometría haya mejorado.

<webar-scene mode="slam" keyframe-correction>
  <webar-model src="./Kai.glb" size="0.5"></webar-model>
</webar-scene>

No actives ese atributo suponiendo mayor precisión. Es una opción para experimentar con un protocolo propio y comparar resultados; cambiarla requiere reiniciar el backend.

Comparación registrada

Protocolo: 630 imágenes deterministas de 640×480, trayectoria sinusoidal de traslación, OpenCV/WASM real en Node. Se alinea una escala de referencia para medir error en unidades de la escena de prueba; no son errores físicos medidos en metros. Son ejecuciones individuales y no un estudio de rendimiento móvil.

Medida Antes Actual por defecto Corrección experimental
Poses / frames 580 / 630 580 / 630 580 / 630
Error de trayectoria p50 0.005136 0.005136 0.004975
Error de trayectoria p95 0.011150 0.011150 0.013269
Error máximo 0.012635 0.012635 0.014603
Procesamiento p50 41.12 ms 41.14 ms 40.37 ms
Procesamiento p95 77.02 ms 79.12 ms 81.18 ms
Heap WASM caliente/final 32 / 32 MiB 32 / 32 MiB 32 / 32 MiB

El error de la configuración predeterminada no mejoró en esta trayectoria. La corrección experimental reduce la mediana, pero empeora p95 y máximo, por eso no se activa automáticamente. Las diferencias de tiempo no prueban una mejora de velocidad. El rechazo de falsas relocalizaciones y la recuperación se verifican con pruebas específicas, no con esta tabla de deriva.

Informe completo con las tres ejecuciones (benchmarks/odometry-comparison.json en el repositorio). Los archivos baseline-2026-11-09.json y experimental-2026-11-09.json conservan las observaciones iniciales; latest.json es el resultado predeterminado más reciente.

Repetir el protocolo

node scripts/benchmark.mjs 630
node scripts/benchmark.mjs 630 experimental
node scripts/compare-odometry.mjs benchmarks/baseline-2026-11-09.json benchmarks/latest.json benchmarks/experimental-latest.json

Ejecuta secuencialmente y registra hardware/carga. Se puede usar un baseline histórico para referencia, pero para evaluar otra modificación conviene medir antes/después en el mismo entorno. El benchmark no incluye compositor, GPU móvil, sensor, rolling shutter, temperatura ni consumo energético.

Lo que sigue pendiente

Validar trayectorias con rotación y cambios de iluminación, recorridos más largos, oclusión prolongada y dispositivos reales; medir error relativo y absoluto con referencia externa. Ajustar mapas o resolver un cierre de bucle global necesita más trabajo y no se considera terminado por añadir la corrección local experimental.

Apoya WebAR Fácil