Segmentación de vídeo en tiempo real

En una entrada anterior os hablé sobre la segmentación semántica y el salto que se estaba dando desde el procesado original de imágenes al procesado de vídeos, con la extensión de benchmarks en nuevos conjuntos de datos como Cityscapes y, especialmente, DAVIS. Recientemente, Google Research ha anunciado en su blog de investigación el lanzamiento de un algoritmo de segmentación de vídeo que funciona en tiempo real para dispositivos móviles. Aunque en la entrada anterior introdujimos el concepto de segmentación semántica, que tiene como finalidad dividir la imagen en regiones y asignarles una categoría semántica de un conjunto (por ejemplo, coche, persona, perro, tren, avión, etc.), el algoritmo de segmentación que nos trae Google en este caso es el que se conoce como foreground-background segmentation. El problema de segmentación foreground-background consiste en diferenciar los píxeles de la imagen que pertenecen al objeto de primer plano (foreground) de los píxeles de la imagen que forman el fondo (background). Concretamente, la aplicación desarrollada está diseñada para que el usuario grabe un vídeo de él mismo (selfie story) y pueda hacer una edición automática del vídeo de forma que se le permite cambiar el fondo según varias temáticas predefinidas (día, noche, luz de estudio, etc.). ¿Cómo ha desarrollado Google este algoritmo de segmentación de vídeo? Pues como en la mayoría de casos de éxito de técnicas de deep learning, hay dos elementos que son clave en el entrenamiento de los modelos: una buena base de datos y una arquitectura adecuada para entrenar el modelo. La base de datos que se ha utilizado no es pública o, al menos, no se menciona. Únicamente se menciona...

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...