Segmentación semántica: de imagen a vídeo

El pasado 6 de julio tuve la oportunidad de asistir a una charla que dio el investigador de Google Deepmind Joao Carreira llamada “Learning video representations from YouTube” en el marco de una summer school sobre Learning Systems impartida en el ETH Zürich. En una entrada anterior comenté los distintos benchmarks que existen para la segmentación semántica de imágenes, tales como PASCAL y Microsoft COCO. La charla en cuestión hacía hincapié en que ya es momento de dar el salto al vídeo, a aprender nuevos modelos a partir de vídeos en lugar de imágenes. Ya que los challenges de imágenes empiezan a estar saturados y las mejoras que se consiguen con tanto poco margen son muy poco significativas y porque sería intuitivo pensar que si la personas aprendemos a partir de nuestra percepción, la cual se asemeja más a información en forma de vídeo (percibimos constantemente la información visualmente), puede que estemos limitando la capacidad de nuestros modelos entrenándolos a partir de imágenes. En la conferencia más prestigiosa del ámbito de computer vision (Computer Vision and Pattern Recognition, CVPR), el año pasado (CVPR’16) ya aparecieron un par de datasets más interesantes que ya empezaban a ir en esta dirección. Se trata de los datasets Cityscapes Dataset y DAVIS (Densely Annotated VIdeo Segmentation). La primera de ellas, Cityscapes, consiste en un conjunto de secuencias de vídeo que han sido tomadas desde un coche en varias ciudades, la mayoría de ellas situadas en Alemania. Contiene 5000 secuencias que han sido anotadas con un alto nivel de detalle y 20000 secuencias que no han sido anotadas con tanto detalle. La siguiente figura muestra la...

Competiciones en Visión por Computador

En esta entrada os explicaremos el trabajo de la UOC en la organización de competiciones en Visión por Computador.  Hablar de qué es la Visión por Computador podría llenar varias entradas de este Blog, pero lo vamos a resumir en una frase simple: “Hacer que las máquinas vean”.  Si nos paramos a pensar un momento qué implica en el caso humano “ver”, nos daremos cuenta que la simplicidad del enunciado esconde un problema muy complejo, que incluye desde la mecánica del ojo, captando la luz y utilizando un sistema de lentes para enfocar y regular la cantidad de luz, hasta todas las partes de nuestro celebro que intervienen en obtener la información de esta luz  (reconocer objetos, personas, colores, formas, acciones, etc.).  En la categoría de Visión por Computador de este Blog podéis encontrar una introducción a la Visión por Computador, y algunas entradas con aplicaciones. El siguiente vídeo muestra información del Máster Interuniversitario en Visión por Computador (UAB, UOC, UPC, UPF).   En el caso que ocupa a esta entrada, nos centramos en una línea de aplicación de la Visión por Computador llamada “Looking at People” [1], y que podemos traducir como “Mirando a las personas”. Tal como el nombre sugiere, esta línea se dedica a analizar a las personas, y comprende desde tareas simples como detectar caras en una imagen o reconocer personas, hasta otras tareas más complejas como la detección de expresiones y emociones, el análisis de la comunicación no verbal y el comportamiento humano. Para entender en qué consiste una competición y su utilidad, primero necesitamos explicar algunos conceptos asociados a  la investigación.  En un...

El futuro de la conducción autónoma

La actualidad de la conducción autónoma viene marcada, sin lugar a duda, por el trágico accidente mortal que tuvo un modelo Tesla con el modo de conducción autónoma activado. Dicho accidente tuvo lugar el pasado 7 de mayo en Estados Unidos (aunque no se supo hasta el pasado 30 de junio) después de más de 210 millones de quilómetros recorridos por este modelo de coche. En esta entrada del blog no queremos entrar en el debate de quien es el culpable del accidente, sinó analizar la situación actual por la que pasa el sector de la automoción y qué problemas técnicos y éticos nos continuaremos encontrando en su desarrollo. En primer lugar, dejadme hacer una introducción al modelo de coche en cuestión. Se trata del Tesla Model S, que incluye un sistema de piloto automático desde octubre de 2014. Incluye un radar frontal, 12 sensores ultrasónicos que detectan objetos hasta 488 cm alrededor del coche en todas direcciones y velocidades, una cámara frontal y un sistema de asistencia a la frenada controlado digitalmente. El sistema permite: Mantenerse dentro de un carril Cambiar de carril activando el intermitente correspondiente Gestionar la velocidad leyendo las señales verticales de limitación de velocidad Mantener la velocidad y la distancia con el vehículo de delante Control de velocidad de crucero dependiente del tráfico Evitar choques frontales, laterales y salidas de la carretera dentro de lo posible Reducir la velocidad ante una posible colisión por alcance Cabe decir que la U.S. National Highway Traffic Safety Administration (NHTSA), la administración norteamericana para la seguridad vial, define 5 niveles de autonomía para vehículos: Nivel 0: El vehículo no dispone...

La segmentación semántica y sus benchmarks

Relacionado con distintos problemas de la visión por computador que se han visto en previas entradas, tales como el reconocimiento de escenas y objetos, también existe el problema conocido como segmentación semántica. El problema de segmentación semántica consiste en otorgar una etiqueta o categoría a cada píxel de una imagen. A diferencia de los sistemas de detección y reconocimiento de objetos, que dan como resultado la ventana rectangular donde se ha detectado un objeto y son evaluados por la precisión de estas ventanas, los sistemas de segmentación semántica tienen como objetivo delimitar precisamente los objeto de las distintas categorías a nivel de píxel, dando como resultado cualquier forma arbitraria. Clasificación de imágenes Localización de objetos Segmentación semántica Dentro del campo de la visión por computador, ha habido un gran auge de las técnicas desarrolladas para solucionar el problema de la segmentación semántica, siendo PASCAL Visual Object Classes (VOC) Challenge [1] uno de los benchmarks más reconocido, contando con más de 2,500 citas. Inicialmente, esta competición únicamente evaluaba sistemas de clasificación y detección de objetos. Los sistemas de clasificación consisten en la predicción sobre la presencia/ausencia de un tipo de objeto en la imagen mientras que los de detección indican donde el objeto está presente en forma de ventana rectangular. Por ejemplo, dado un tipo de objeto o categoría como avión, un sistema de clasificación predice si hay o no algún avión en la imagen, mientras que un sistema de detección indica en qué lugar de la imagen se encuentra el avión en caso que el sistema considere que hay algún avión en la imagen. Fue a partir del 2009 que...

De reconocer escenas a reconocer objetos

Uno de los temas en los que estamos trabajando con el grupo de Visión por Computador del Massachusetts Institute of Technology (MIT) es el reconocimiento de escenas. Concretamente enseñamos a las máquinas a reconocer espacios, como por ejemplo dormitorios, cocinas, restaurantes, playas, bosques, etc a partir de fotografías. Para ello les proporcionamos datos para el aprendizaje como los véis en la Figura 1. Recientemente hemos entrenado un sistema para hacer reconocimiento de escenas que ha resultado ser mucho más fiable que los sistemas que existían anteriormente. Lo más sorprendente, sin embargo, fue descubrir por qué reconocía tan bien las escenas. La explicación és que al aprender a reconocer escenas había descubierto que algunos objetos le daban mucha información. Por ejemplo, el sistema se dio cuenta de que en las habitaciones hay camas, en los salones hay sofás y teles, y en los bosques hay árboles. Y lo que hizo fue crear automáticamente modelos para detectar estos objetos que le resultaban altamente informativos. De hecho el sistema está haciendo algo muy parecido a lo que hace nuestro sistema visual: primero reconoce componentes visuales básicas (lineas, colores, texturas), luego las combina para poder reconocer los objetos que hay en la imagen y, finalmente, usa los objetos para reconocer la categoría de la escena. Si tenéis curiosidad podéis testear el sistema vosotros mismos con la demo que tenemos online. Lo destacable es lo competitivo que es el sistema a la hora de detectar objetos a pesar de no haber tenido ningún tipo de supervisión para ello (la única información que se le proporcionó para el aprendizaje fue la categoría de la escena...

Dando buen ejemplo a sistemas artificiales de visión

Acabo de hacer una búsqueda en google de la pregunta “¿me puedes dar un ejemplo?” y me han salido más de 64 millones de resultados. La gente pide ejemplos de cartas de presentación, de canciones medievales, de técnicas de adiestramiento de perros, o de qué ropa ponerse para ir a una entrevista de trabajo. El caso es que cuando queremos entender algo o aprender algo, un buen ejemplo nos ayuda. Y digo un buen ejemplo, porque un mal ejemplo, tomado como bueno, puede llegar a darnos serios problemas. De la misma forma que las personas aprendemos de los ejemplos, las máquinas también lo hacen. Y para que una máquina aprenda bien un determinado concepto necesita que le demos buenos ejemplos. Pero, ¿qué es un buen ejemplo? ¿Todos los ejemplos pueden explicar o ilustrar correctamente un concepto? La respuesta es no. Para explicar un concepto a una máquina deberemos elegir ejemplos que le resulten claros para que entienda bien lo que queremos que aprenda. La dificultad está en que no siempre es obvio cómo encontrar buenos ejemplos y muchas veces un ejemplo puede inducir a una confusión inesperada (véase Fig 1). Dentro del contexto de la visión por computador tenemos evidencias claras de que algunos ejemplos son bastante mejores que otros. Y entender bien si un ejemplo es bueno o no es importante, porque cada vez habrá más máquinas a nuestro alcance capaces de aprender, y cuando necesitemos que aprendan algo tendremos que saber cómo enseñarlas. De hecho hoy en día ya es posible enseñarle a nuestro iPhone a ver objetos. Podemos hacerlo con la aplicación gratuita DetectMe, diseñada y...