feat: measure what each vision model costs per frame - #59
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 elFaceLandmarker 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
minSignMsyminFramesa la vez, así que no seescribe 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:
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 enILandmarkSource: solo una fuentecon 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 porstop()y la frontal y latrasera 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 daWSL 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 typecheckynpm testen verde.