1. Librerías
@tensorflow/tfjs — TensorFlow.js, el motor de redes neuronales que corre en tu navegador usando CPU/GPU. Es el chasis sobre el que se construye Teachable Machine.
@teachablemachine/image — capa cómoda encima de TensorFlow. Tu modelo entrenado en la web de Teachable Machine se descargó como ZIP con tres archivos: model.json (arquitectura de la red), weights.bin (los pesos, es decir "lo aprendido") y metadata.json (las etiquetas: arriba, abajo, izquierda, derecha). Están en /model/, servidos como archivos estáticos; el navegador los descarga solo cuando activas la cámara.
2. El código
Las librerías se cargan con import() dinámico (con paréntesis): pesan varios MB, así que solo se descargan al pulsar ACTIVAR CÁMARA, no al abrir la página.
const tmImage = await
import("@teachablemachine/image");
const base = location.origin + "/model/";
const model = await tmImage.load(
base + "model.json",
base + "metadata.json");Luego la webcam entrega fotogramas y model.predict() devuelve por cada etiqueta una probabilidad (0 a 1). Se elige la más alta y, para evitar parpadeos, se aplica un voto por mayoría de las últimas 6 lecturas: una lectura débil no gana sola, pero si 4 de 6 dijeron "izquierda", gana izquierda.
3. La teoría
Lo que entrenaste es una clasificación de imágenes por transferencia de aprendizaje. La red es una CNN (red convolucional): sus capas detectan patrones en orden creciente de complejidad — bordes y colores, luego formas, luego poses ("brazo levantado a la izquierda").
La clave de que funcione con tan pocas fotos es la transferencia de aprendizaje: en vez de entrenar desde cero (millones de imágenes), parte de MobileNet, una red de Google ya entrenada con más de un millón de imágenes (ImageNet) que ya "sabe" ver bordes, texturas y formas. Tu entrenamiento solo ajusta las últimas capas para distinguir tus 4 poses.
Al final, la función softmax convierte las salidas en las probabilidades que ves en pantalla (las 4 suman 100%). Si a veces falla, es porque el fotograma se parece menos a tus fotos de entrenamiento: cambia la luz, la distancia o el fondo. La receta para mejorar: más fotos por pose, variando luz, ángulo y fondo.
Flujo completo: cámara → fotograma → red neuronal (MobileNet + tus pesos) → 4 probabilidades → la más alta gana → voto por mayoría de 6 lecturas → dirección al juego.