WEBVTT 00:00:00.140 --> 00:00:03.096 Hace diez años los investigadores de la visión artificial 00:00:03.096 --> 00:00:05.076 pensaban que hacer que una computadora 00:00:05.076 --> 00:00:07.496 distinguiera un gato de un perro 00:00:07.520 --> 00:00:09.496 sería casi imposible, 00:00:09.520 --> 00:00:13.216 incluso con el avance significativo de la inteligencia artificial. 00:00:13.240 --> 00:00:16.800 Ahora podemos hacerlo con un nivel superior al 99 % de precisión. 00:00:17.680 --> 00:00:19.536 Esto se llama clasificación de imagen. 00:00:19.560 --> 00:00:22.656 Esto es, poner una etiqueta a esa imagen. 00:00:22.680 --> 00:00:25.720 Y las computadoras conocen miles de otras categorías también. NOTE Paragraph 00:00:26.560 --> 00:00:29.440 Soy estudiante de posgrado en la Universidad de Washington, 00:00:29.440 --> 00:00:31.496 y trabajo en un proyecto llamado Darknet, 00:00:31.520 --> 00:00:33.216 que es un framework de red neuronal 00:00:33.240 --> 00:00:36.566 para la capacitación y ensayo de modelos de visión artificial, 00:00:36.566 --> 00:00:39.056 Así que veamos lo que piensa Darknet 00:00:39.080 --> 00:00:40.840 de esta imagen que tenemos aquí. 00:00:42.520 --> 00:00:44.790 Cuando ejecutamos nuestro clasificador 00:00:44.790 --> 00:00:45.680 en esta imagen, 00:00:45.680 --> 00:00:48.570 vemos que no solo se obtiene una predicción de perro o gato, 00:00:48.570 --> 00:00:51.346 en realidad, obtenemos predicciones de raza específicas. 00:00:51.346 --> 00:00:53.446 Ese es el nivel de granularidad actual. 00:00:53.446 --> 00:00:54.776 Y es correcto. 00:00:54.800 --> 00:00:56.640 Mi perro es de hecho un malamute. NOTE Paragraph 00:00:57.040 --> 00:01:01.376 Hemos hecho avances increíbles en la clasificación de imágenes, 00:01:01.400 --> 00:01:03.730 pero ¿qué pasa al ejecutar nuestro clasificador 00:01:03.730 --> 00:01:05.574 en una imagen así? 00:01:07.080 --> 00:01:08.280 Bien... 00:01:12.640 --> 00:01:16.536 Vemos que el clasificador vuelve con una predicción bastante similar. 00:01:16.560 --> 00:01:19.656 Y es correcto, hay un malamute en la imagen, 00:01:19.680 --> 00:01:23.376 pero solo con esta etiqueta, en realidad, no sabemos mucho 00:01:23.400 --> 00:01:25.067 sobre lo que pasa en la imagen. 00:01:25.091 --> 00:01:26.651 Necesitamos algo más potente. 00:01:27.140 --> 00:01:29.660 Trabajo en un problema llamado detección de objetos, 00:01:29.660 --> 00:01:32.820 donde miramos una imagen e intentamos encontrar todos los objetos, 00:01:32.820 --> 00:01:35.096 poniendo cajas delimitadoras alrededor de ellos 00:01:35.096 --> 00:01:36.680 y averiguar qué son esos objetos. 00:01:36.680 --> 00:01:40.260 Así que esto es lo que ocurre al ejecutar un detector en esta imagen. NOTE Paragraph 00:01:41.070 --> 00:01:43.060 Ahora, con este tipo de resultado, 00:01:43.060 --> 00:01:46.546 podemos hacer mucho más con nuestros algoritmos de visión artificial. 00:01:46.546 --> 00:01:49.216 Vemos que sabe que hay un gato y un perro. 00:01:49.240 --> 00:01:51.496 Conoce sus ubicaciones relativas, 00:01:51.520 --> 00:01:52.736 su tamaño. 00:01:52.760 --> 00:01:55.346 Incluso puede saber alguna información adicional. 00:01:55.346 --> 00:01:56.680 Hay un libro en el fondo. 00:01:57.280 --> 00:02:00.536 Y si desea construir un sistema con base en la visión artificial 00:02:00.560 --> 00:02:04.016 por ejemplo, un vehículo autodirigido o un sistema robótico, 00:02:04.040 --> 00:02:06.496 este es el tipo de información que necesita. 00:02:06.520 --> 00:02:09.758 Algo para interactuar con el mundo físico. 00:02:10.358 --> 00:02:13.016 Cuando empecé a trabajar en la detección de objetos, 00:02:13.040 --> 00:02:16.336 se tardaba 20 segundos en procesar una sola imagen. 00:02:16.360 --> 00:02:20.240 Y para entender por qué la velocidad es tan importante en este ámbito, 00:02:21.120 --> 00:02:23.656 este es un ejemplo de un detector de objetos 00:02:23.680 --> 00:02:26.096 que tarda dos segundos en procesar una imagen. 00:02:26.120 --> 00:02:28.736 Así que esto es 10 veces más rápido 00:02:28.760 --> 00:02:32.296 que el detector de 20 segundos por imagen, 00:02:32.320 --> 00:02:35.276 y se puede ver que, en el momento de hacer las predicciones, 00:02:35.276 --> 00:02:37.600 el estado entero del mundo ha cambiado, 00:02:37.880 --> 00:02:40.296 y esto no sería muy útil 00:02:40.320 --> 00:02:41.736 para una aplicación. NOTE Paragraph 00:02:41.760 --> 00:02:44.150 Si aceleramos esto por otro factor de 10, 00:02:44.150 --> 00:02:47.406 esto es un detector que funciona en cinco fotogramas por segundo. 00:02:47.406 --> 00:02:48.656 Esto es mucho mejor 00:02:48.680 --> 00:02:50.656 pero, por ejemplo, 00:02:50.680 --> 00:02:52.976 si hay algún movimiento significativo, 00:02:53.000 --> 00:02:56.490 yo no quisiera un sistema como este conduciendo mi auto. NOTE Paragraph 00:02:56.680 --> 00:03:00.720 Este es nuestro sistema de detección que se ejecuta en tiempo real en mi portátil. 00:03:01.000 --> 00:03:04.136 Así que suavemente me sigue mientras me muevo en la imagen, 00:03:04.160 --> 00:03:07.880 y es robusto con una amplia variedad de cambios de tamaño, 00:03:09.440 --> 00:03:10.640 poses, 00:03:11.280 --> 00:03:13.136 hacia adelante, hacia atrás. 00:03:13.160 --> 00:03:14.376 Esto es genial. 00:03:14.400 --> 00:03:16.136 Esto es lo que realmente necesitamos 00:03:16.160 --> 00:03:20.136 si vamos a construir sistemas con base en visión artificial. 00:03:20.136 --> 00:03:23.080 (Aplausos) NOTE Paragraph 00:03:24.280 --> 00:03:26.456 Así que en solo unos pocos años, 00:03:26.480 --> 00:03:29.136 hemos pasado de 20 segundos por imagen 00:03:29.160 --> 00:03:32.696 a 20 milisegundos por imagen, mil veces más rápido. 00:03:32.720 --> 00:03:34.136 ¿Cómo llegamos hasta aquí? 00:03:34.160 --> 00:03:37.176 Bueno, en el pasado, los sistemas de detección de objetos 00:03:37.200 --> 00:03:39.136 tomaban una imagen como esta 00:03:39.160 --> 00:03:41.616 y la dividían en un montón de regiones 00:03:41.640 --> 00:03:44.896 y luego ejecutaban un clasificador en cada una de estas regiones, 00:03:44.920 --> 00:03:47.456 y las puntuaciones altas de ese clasificador 00:03:47.480 --> 00:03:50.616 se consideraban detecciones de la imagen. 00:03:50.640 --> 00:03:54.696 Pero eso implicaba ejecutar un clasificador miles de veces sobre una imagen, 00:03:54.720 --> 00:03:58.280 miles de evaluaciones de redes neuronales para producir detección. 00:03:59.240 --> 00:04:03.776 En cambio, nosotros hemos entrenado una sola red para hacer toda la detección. 00:04:03.800 --> 00:04:08.080 Produce todas las cajas delimitadoras y ordena las probabilidades en simultáneo. 00:04:08.680 --> 00:04:12.176 Con nuestro sistema, en lugar de mirar una imagen miles de veces 00:04:12.200 --> 00:04:13.656 para hacer la detección, 00:04:13.680 --> 00:04:14.936 se mira tan solo una vez, 00:04:14.960 --> 00:04:17.880 y por eso lo llamamos método YOLO de detección de objetos. 00:04:19.360 --> 00:04:23.336 Así que con esta velocidad, no estamos limitados a las imágenes; 00:04:23.360 --> 00:04:25.776 podemos procesar el video en tiempo real. 00:04:25.800 --> 00:04:28.896 Y ahora, en lugar de solo ver a ese gato y perro, 00:04:28.920 --> 00:04:31.880 podemos verlos moverse e interactuar unos con otros. NOTE Paragraph 00:04:34.560 --> 00:04:36.616 Este es un detector que entrenamos 00:04:36.640 --> 00:04:41.016 en 80 clases diferentes 00:04:41.040 --> 00:04:44.296 en el conjunto de datos COCO de Microsoft. 00:04:44.320 --> 00:04:47.656 Tiene todo tipo de cosas como cuchara y tenedor, cuenco, 00:04:47.680 --> 00:04:49.480 objetos comunes como esos. 00:04:50.360 --> 00:04:53.456 Tiene una variedad de cosas más exóticas: 00:04:53.480 --> 00:04:56.736 animales, autos, cebras, jirafas. 00:04:56.760 --> 00:04:58.696 Y ahora vamos a hacer algo divertido. 00:04:58.720 --> 00:05:00.816 Solo vamos a ir a la audiencia 00:05:00.840 --> 00:05:02.856 y ver qué tipo de cosas podemos detectar. 00:05:02.880 --> 00:05:04.500 ¿Alguien quiere un peluche? 00:05:06.000 --> 00:05:07.762 Hay algunos osos de peluche por aquí. 00:05:10.040 --> 00:05:14.576 Y podemos reducir nuestro umbral de detección un poco, 00:05:14.600 --> 00:05:18.000 así podemos encontrar a más de Uds. en la audiencia. 00:05:19.270 --> 00:05:21.896 Vamos a ver si podemos obtener estas señales de stop. 00:05:21.920 --> 00:05:23.800 Encontramos algunas mochilas. 00:05:25.880 --> 00:05:27.720 Vamos a acercarnos un poco. 00:05:30.320 --> 00:05:31.576 Y esto es genial. 00:05:31.600 --> 00:05:34.776 Y todo el procesamiento está sucediendo en tiempo real 00:05:34.800 --> 00:05:36.390 en la computadora portátil. NOTE Paragraph 00:05:37.080 --> 00:05:38.536 Y es importante recordar 00:05:38.560 --> 00:05:42.276 que se trata de un sistema de detección de objetos de propósito general, 00:05:42.276 --> 00:05:46.800 así que podemos entrenar esto para cualquier dominio de la imagen. 00:05:48.320 --> 00:05:50.856 El mismo código que usamos 00:05:50.880 --> 00:05:53.336 para encontrar señales de stop o de peatones, 00:05:53.360 --> 00:05:55.336 bicicletas en un vehículo autodirigido, 00:05:55.360 --> 00:05:58.216 puede usarse para encontrar células cancerosas 00:05:58.240 --> 00:06:01.256 en una biopsia de tejido. 00:06:01.280 --> 00:06:05.320 Y hay investigadores de todo el mundo que ya usan esta tecnología 00:06:06.240 --> 00:06:09.656 para avances en cosas como la medicina, la robótica. 00:06:09.680 --> 00:06:11.056 Esta mañana leí un periódico 00:06:11.080 --> 00:06:15.656 sobre un censo de animales que estaban haciendo en el Parque Nacional de Nairobi 00:06:15.680 --> 00:06:18.816 que usa YOLO como parte de este sistema de detección. 00:06:18.840 --> 00:06:21.936 Y eso es posible, porque Darknet es de código abierto 00:06:21.960 --> 00:06:25.150 y de dominio público y libre para que lo use cualquier persona. NOTE Paragraph 00:06:25.600 --> 00:06:31.296 (Aplausos) NOTE Paragraph 00:06:31.320 --> 00:06:36.256 Pero queríamos que la detección fuera aún más accesible y usable, 00:06:36.280 --> 00:06:40.336 por eso, mediante una combinación de optimización de modelos, 00:06:40.360 --> 00:06:42.656 binarización de red y aproximación, 00:06:42.680 --> 00:06:47.080 tenemos un reconocimiento de objetos que funciona en un teléfono. NOTE Paragraph 00:06:52.800 --> 00:06:58.120 (Aplausos) NOTE Paragraph 00:06:58.960 --> 00:07:03.500 Y estoy muy contento porque ahora tenemos una solución bastante potente 00:07:03.500 --> 00:07:06.336 a este problema de visión artificial de bajo nivel, 00:07:06.360 --> 00:07:10.216 y cualquiera puede usarlo y hacer algo con esto. 00:07:10.240 --> 00:07:13.416 Así que ahora el resto depende de Uds. 00:07:13.440 --> 00:07:16.376 y de personas de todo el mundo con acceso a este software, 00:07:16.400 --> 00:07:20.056 y estoy impaciente por ver qué construirá la gente con esta tecnología. NOTE Paragraph 00:07:20.080 --> 00:07:21.296 Gracias. NOTE Paragraph 00:07:21.320 --> 00:07:24.760 (Aplausos)