Skip to content

feat: measure what each vision model costs per frame - #59

Merged
Endika merged 1 commit into
mainfrom
feat/frame-cost
Aug 14, 2026
Merged

feat: measure what each vision model costs per frame#59
Endika merged 1 commit into
mainfrom
feat/frame-cost

Conversation

@Endika

@Endika Endika commented Aug 14, 2026

Copy link
Copy Markdown
Owner

El bloque de expresión facial son 6 de los 149 floats de un fotograma y aporta +1.2 de top-1,
medido en tools/train/data/experiment.log. Para producirlos, pump() ejecuta el
FaceLandmarker de 478 puntos en cada fotograma, junto a manos y pose.

Y en esta app los fotogramas por segundo no son una métrica de confort: por debajo del suelo
del segmentador ninguna ventana cumple minSignMs y minFrames a la vez, así que no se
escribe nada. Antes de plantear quitar un bloque que sí aporta precisión hay que saber cuánto
del presupuesto se lleva cada modelo — y el tamaño en disco no lo dice, porque la cara es el
más pequeño de los tres (3,8 MB contra 7,8 de manos y 5,8 de pose).

Esto lo mide y lo saca al panel de diagnóstico:

Coste por fotograma    58 ms · manos 31 ms · pose 16 ms · cara 11 ms

Medianas, no medias. Un fotograma que caiga en una recolección de basura vale varias veces
lo normal. Ventana móvil de 120 fotogramas, así que un arranque lento deja de contar.

El puerto no se ensucia. frameCost() es opcional en ILandmarkSource: solo una fuente
con modelos de verdad tiene coste que declarar, y la fuente guionizada de los tests no se
toca.

Se reinicia al parar la cámara, porque useCamera() pasa por stop() y la frontal y la
trasera no cuestan lo mismo; promediar las dos daría un número que no describe a ninguna.

Va como feat: a propósito, porque solo sirve leído en un móvil con GPU real: la cifra que da
WSL no vale, ahí WebGL cae a software.

Cinco tests nuevos sobre el medidor, incluidos el fotograma que cae en una GC y la ventana
móvil. 149 → 154. npm run lint, npm run typecheck y npm test en verde.

@Endika
Endika merged commit 535a736 into main Aug 14, 2026
7 checks passed
@Endika
Endika deleted the feat/frame-cost branch August 14, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant