Un detector de movimiento con una webcam y una resta
Éste es de los trucos con imágenes que más me gustan, porque el algoritmo completo cabe en una frase.
El procedimiento
- Toma una foto del cuarto vacío. Ésa es tu imagen de fondo.
- Deja la cámara grabando.
- Resta cada fotograma nuevo a la imagen de fondo.
Ya está.
Por qué funciona
Una imagen es una tabla de números. Si nada se mueve, el fotograma nuevo tiene exactamente los mismos valores que el fondo. Los restas y todo da cero.
Cero es negro. Así que mientras nada se mueva, tu pantalla es un rectángulo completamente negro.
En cuanto algo cambia —alguien entra, algo se cae, se abre una puerta— esos píxeles ya no coinciden. La resta deja de dar cero justo ahí, y empiezas a ver una mancha blanca o gris caminando sobre el fondo negro.
Eso es un detector de movimiento. Con una cámara web, o incluso desde el teléfono si escribes un programa para él.
La restricción, que es lo importante
La cámara no se puede mover.
Si mueves la cámara, la imagen de fondo dejó de corresponder a la escena, y de pronto todo es distinto de todo: la pantalla entera se llena de manchas y el detector deja de detectar nada útil.
También hay que cuidar la iluminación. Si una nube tapa el sol, medio cuarto cambia de valor y el sistema reporta movimiento donde no lo hubo.
Y ahí está lo que este ejemplo enseña de verdad: el algoritmo no distingue "algo se movió" de "algo cambió". Sólo sabe restar. Todo lo demás —que lo que cambió sea una persona y no la luz— lo estás poniendo tú, en las condiciones bajo las que lo dejas correr.
La lección que sí se generaliza
Casi todo el procesamiento de imágenes funciona así: el algoritmo es simple y la preparación del ambiente es la mitad del trabajo.
Es la misma idea que en fotografía: es mucho más difícil recuperar información de una foto que era mala desde el principio, que tomarla bien. Controlar la escena antes cuesta menos que arreglarla después, y muchas veces es lo único que funciona.
Cuando un sistema de visión falla en producción, la causa suele estar mucho más cerca de "cambiaron la lámpara" que de "el algoritmo estaba mal".
Este texto sale del episodio 007 del Podcast Algoritmos, sobre imágenes digitales.