2019/06/06

Señales y coches autónomos

Este post es atípico. En general reflexiono sobre hechos, noticias, añadiendo reflexiones propias. En este caso, es al revés: a partir de una idea pequeña, me dedico a fantasear. El resultado es menos estructurado, pero espero que igualmente interesante.

Hace unos días tuvo lugar el Pint of Science de este año, y entre otras me apunté a la charla titulada Conducción autónoma: ¿intuición o seguridad?, impoartida por Jorge Villagra, de Programa AUTOPIA. Jorge habló de los retos que supone el desarrollo de esta tecnología, y de que no está tan cercana como podría parecer.

Entre otros problemas hay uno muy familiar para cualquiera que haya leído algo sobre machine learning: los algoritmos saben reconocer los elementos con los que han sido entrenados. En este caso, pueden reconocer las señales de tráfico en una fotografía, y saber además de qué señales se tratan... siempre que sean las originales.

Uno de los ejemplos que mostró (incluido junto a otros en este artículo [pdf]) muestra lo sencillo de la tecnologia necesaria para confundir a estos algoritmos:

La señal de la derecha se reconocía como de velocidad limitada a 45.

En el turno de preguntas, alguien habló de la posibilidad de añadir códigos QR a las señales, lo cual facilitaría mucho su reconocimiento. No recuerdo si hubo alguna discusión sobre la posibilidad, pero se trata de una idea en la que no había pensado y que me resultó llamativa. Pero claro, al final es algo que está ahí, a la vista, por lo que es manipulable. ¿Qué ventaja habría? Pero sobre todo, ¿qué inconvenientes? Y ahí es donde me surgen las ideas.

Sin pensar mucho, parece obvio que los códigos deberían incluir redundancia, de modo que por lo menos sabríamos si el código que hemos leído es correcto o no, evitando la posibilidad de entender otra cosa. Si un pajarito hizo de las suyas y hay más blanco o negro de lo previsto, o conseguimos leer el código porque contiene varias copias de la información, o sabremos sencillamente que algo no ha ido bien.

Parece fiable. Pero claro, ¿y si alguien copia el código QR de la señal de 45 y lo pega en la de Stop? Como para fiarnos... habría que conseguir que los códigos no se puedan pasar de una señal a otra.

Una posible opción sería incluir la posición de la señal (coordenadas geográficas) dentro del código. Habría que admitir cierta imprecisión, pero mejora bastante: al menos podría valer para casos con muy poca densidad de señales. Pero aun así, puedo encontrar señales distintas en un metro cuadrado, y nada me impediría cambiarlos entre ellas.

Lo ideal sería que las señales tuvieran un número de serie, conocido por los sistemas de navegación. Bastante complejo, e igualmente manipulable; al menos se podría contrastar con el reconocimiento clásico (o con ayuda de un pasajero) y avisar de una señal errónea, para que con suerte alguien fuera y corrigiera el problema cuanto antes.

Y al menos, al no haber dos códigos iguales (tipo de señal + nº de serie + verificación) ganamos bastante. Si añadimos un sistema capaz de recibir información de los coches y detectar códigos repetidos, aún mejor.

Otro problema, en cualquier caso, sería que se podrían crear códigos nuevos y pegarlos en las señales. ¿Cómo distinguir los buenos de los malos? Se me ocurre en este caso firmar los datos anteriores con una clave secreta oficial, de la DGT, o de algún organismo internacional. El coche tendría la clave pública correspondiente, por lo que podría verificar su autenticidad por sí mismo.

Y por último, o tal vez para empezar, estos códigos podrían estar impresos con tinta infrarroja. Aportaría bastante seguridad (más complicada de falsificar) y además sin interferir en el aspecto de la señal.