1 00:00:00,825 --> 00:00:01,830 Hai dez anos, 2 00:00:01,830 --> 00:00:04,966 os expertos en visión artificial crían que lograr que un ordenador 3 00:00:04,966 --> 00:00:07,496 distinguise entre un gato e un can 4 00:00:07,520 --> 00:00:09,496 sería practicamente imposible 5 00:00:09,520 --> 00:00:13,216 malia os considerables progresos en intelixencia artificial. 6 00:00:13,240 --> 00:00:16,800 Hoxe podemos facelo cunha precisión superior ao 99 por cento. 7 00:00:17,680 --> 00:00:19,536 Isto chámase clasificación de imaxes: 8 00:00:19,560 --> 00:00:22,656 dada unha imaxe, asígnalle unha etiqueta. 9 00:00:22,680 --> 00:00:25,720 E os ordenadores coñecen ademais miles doutras categorías. 10 00:00:26,680 --> 00:00:29,450 Son estudante de posgrao na Universidade de Washington, 11 00:00:29,450 --> 00:00:31,486 e traballo nun proxecto chamado Darknet, 12 00:00:31,486 --> 00:00:33,556 un contorno de traballo de rede neural 13 00:00:33,556 --> 00:00:36,056 para adestrar e probar modelos de visión artificial. 14 00:00:36,700 --> 00:00:39,056 Imos ver o que pensa Darknet 15 00:00:39,080 --> 00:00:40,840 desta imaxe que temos aquí. 16 00:00:42,520 --> 00:00:44,856 Ao aplicarlle o noso clasificador 17 00:00:44,880 --> 00:00:46,096 a esta imaxe, 18 00:00:46,120 --> 00:00:48,576 vemos que non se limita a predicir can ou gato; 19 00:00:48,600 --> 00:00:50,936 de feito, dános tamén razas concretas. 20 00:00:50,960 --> 00:00:53,176 Ese é o nivel de granularidade que temos agora. 21 00:00:53,176 --> 00:00:54,776 E é correcto. 22 00:00:54,800 --> 00:00:56,640 O meu can é efectivamente un malamute. 23 00:00:57,040 --> 00:01:01,376 Así que demos xa pasos enormes na clasificación de imaxes, 24 00:01:01,400 --> 00:01:03,900 pero que acontece se executamos o noso clasificador 25 00:01:03,900 --> 00:01:05,384 sobre unha imaxe coma esta? 26 00:01:07,080 --> 00:01:08,280 Ben... 27 00:01:12,640 --> 00:01:16,536 Vemos que o clasificador nos devolve unha predición bastante similar. 28 00:01:16,560 --> 00:01:19,656 E é correcta: hai un malamute na imaxe, 29 00:01:19,680 --> 00:01:23,376 pero con só esa etiqueta, en realidade, non sabemos moito 30 00:01:23,400 --> 00:01:25,067 sobre o que ocorre nela. 31 00:01:25,091 --> 00:01:26,651 Necesitamos algo máis potente. 32 00:01:27,170 --> 00:01:29,966 Eu traballo nun problema denominado detección de obxectos, 33 00:01:29,966 --> 00:01:33,016 no que vemos unha imaxe e tratamos de atopar todos os obxectos, 34 00:01:33,016 --> 00:01:34,446 encerrámolos en caixas 35 00:01:34,446 --> 00:01:36,130 e dicimos que son eses obxectos. 36 00:01:36,400 --> 00:01:39,680 Isto é o que acontece cando lle aplicamos un detector a esta imaxe. 37 00:01:41,240 --> 00:01:43,330 Ben, con este tipo de resultado 38 00:01:43,330 --> 00:01:46,516 podemos facer moito máis cos nosos algoritmos de visión artificial. 39 00:01:46,516 --> 00:01:49,216 Vemos que sabe que hai un gato e un can. 40 00:01:49,240 --> 00:01:51,496 Sabe a súa posición relativa, 41 00:01:51,520 --> 00:01:52,736 o seu tamaño. 42 00:01:52,760 --> 00:01:54,826 Mesmo pode coñecer algúns datos adicionais. 43 00:01:54,826 --> 00:01:56,680 Hai un libro ao fondo. 44 00:01:57,280 --> 00:02:00,536 E se queremos construír un sistema baseado na visión artificial, 45 00:02:00,560 --> 00:02:04,016 por exemplo, un vehículo autónomo ou un sistema robótico, 46 00:02:04,040 --> 00:02:06,496 esta é a clase de información que necesitamos. 47 00:02:06,520 --> 00:02:09,759 Necesitamos algo que faga posible interactuar co mundo físico. 48 00:02:10,339 --> 00:02:12,946 Cando eu comecei a traballar coa detección de obxectos, 49 00:02:13,040 --> 00:02:15,956 tardábase 20 segundos en procesar unha soa imaxe. 50 00:02:16,360 --> 00:02:20,240 Para darvos unha idea da importancia da velocidade neste ámbito, 51 00:02:21,120 --> 00:02:23,656 este é un exemplo dun detector de obxectos 52 00:02:23,680 --> 00:02:26,096 que tarda dous segundos en procesar unha imaxe. 53 00:02:26,120 --> 00:02:28,736 É dicir, é 10 veces máis rápido 54 00:02:28,760 --> 00:02:32,296 có dos 20 segundos por imaxe, 55 00:02:32,320 --> 00:02:34,976 e, como vedes, cando fai a súa predición, 56 00:02:35,000 --> 00:02:37,040 a situación xa mudou por completo, 57 00:02:37,880 --> 00:02:40,296 o cal non sería moi útil 58 00:02:40,320 --> 00:02:41,736 para ningunha aplicación. 59 00:02:41,760 --> 00:02:44,256 Se multiplicamos a velocidade por 10, 60 00:02:44,280 --> 00:02:47,096 temos un detector que vai a cinco imaxes por segundo. 61 00:02:47,120 --> 00:02:48,656 É moito mellor, 62 00:02:48,680 --> 00:02:50,656 pero, por exemplo, 63 00:02:50,680 --> 00:02:52,976 se hai un movemento grande, 64 00:02:53,000 --> 00:02:56,320 a min non me gustaría que un sistema coma este conducise o meu coche. 65 00:02:57,120 --> 00:03:00,740 Este é o noso sistema de detección funcionando en tempo real no meu portátil. 66 00:03:01,000 --> 00:03:04,136 Segue sen saltos os meus desprazamentos pola imaxe, 67 00:03:04,160 --> 00:03:07,880 e responde de forma fiable a moi diversos cambios de tamaño, 68 00:03:09,440 --> 00:03:10,640 postura, 69 00:03:11,280 --> 00:03:13,136 avance, retroceso. 70 00:03:13,160 --> 00:03:14,376 É fantástico. 71 00:03:14,400 --> 00:03:16,136 Isto é o que necesitamos 72 00:03:16,160 --> 00:03:19,456 se pretendemos construír sistemas baseados na visión artificial. 73 00:03:19,456 --> 00:03:23,080 (Aplausos) 74 00:03:24,280 --> 00:03:26,456 Así que en apenas uns anos, 75 00:03:26,480 --> 00:03:29,136 pasamos de 20 segundos por imaxe 76 00:03:29,160 --> 00:03:32,356 a 20 milisegundos por imaxe, mil veces máis rápido. 77 00:03:32,720 --> 00:03:34,136 Como chegamos ata aquí? 78 00:03:34,160 --> 00:03:37,176 Ben, os anteriores sistemas de detección de obxectos 79 00:03:37,200 --> 00:03:39,136 collían unha imaxe coma esta, 80 00:03:39,160 --> 00:03:41,616 dividíana nunha serie de rexións 81 00:03:41,640 --> 00:03:44,896 e executaban un clasificador en cada unha desas rexións, 82 00:03:44,920 --> 00:03:47,456 e os valores altos nun clasificador dado 83 00:03:47,480 --> 00:03:50,616 interpretábanse como deteccións na imaxe. 84 00:03:50,640 --> 00:03:54,696 Pero isto supoñía executar un clasificador miles de veces sobre unha imaxe. 85 00:03:54,720 --> 00:03:58,000 miles de avaliacións por redes neurais para producir unha detección. 86 00:03:59,240 --> 00:04:03,776 Nós, en cambio, adestramos unha soa rede para que fixese todo o proceso. 87 00:04:03,800 --> 00:04:08,080 Produce simultaneamente todas as caixas e as probabilidades de clase. 88 00:04:08,680 --> 00:04:12,176 Co noso sistema, no canto de analizar unha imaxe miles de veces 89 00:04:12,200 --> 00:04:13,656 para producir unha detección, 90 00:04:13,680 --> 00:04:15,176 só é necesario mirala unha vez. 91 00:04:15,176 --> 00:04:17,880 Chamámoslle método YOLO de detección de obxectos. 92 00:04:20,360 --> 00:04:23,336 Con esta velocidade, non estamos limitados ás imaxes estáticas; 93 00:04:23,360 --> 00:04:25,776 podemos procesar vídeo en tempo real. 94 00:04:25,800 --> 00:04:28,896 Agora, no canto de simplemente ver o gato e o can, 95 00:04:28,920 --> 00:04:31,880 podemos velos moverse e interactuar. 96 00:04:34,560 --> 00:04:36,616 Este é un detector que adestramos 97 00:04:36,640 --> 00:04:41,016 con 80 categorías distintas 98 00:04:41,040 --> 00:04:44,296 do banco de datos COCO de Microsoft. 99 00:04:44,320 --> 00:04:47,656 Contén todo tipo de cousas, como culler e garfo, cunca, 100 00:04:47,680 --> 00:04:49,480 obxectos comúns. 101 00:04:50,360 --> 00:04:53,456 Ten outras cousas máis exóticas: 102 00:04:53,480 --> 00:04:56,736 animais, coches, cebras, xirafas. 103 00:04:56,760 --> 00:04:58,696 Agora imos facer algo divertido. 104 00:04:58,720 --> 00:05:00,816 Ímonos achegar ao público 105 00:05:00,840 --> 00:05:02,856 para ver que podemos detectar. 106 00:05:02,880 --> 00:05:04,500 Alguén quere unha peluche? 107 00:05:06,000 --> 00:05:08,082 Hai por aí uns cantos osos de peluche. 108 00:05:10,040 --> 00:05:14,576 Podemos baixar un pouquiño o limiar de detección, 109 00:05:14,600 --> 00:05:18,000 para atopar máis cousas entre o público. 110 00:05:19,560 --> 00:05:21,896 A ver se podemos localizar eses sinais de stop. 111 00:05:21,920 --> 00:05:23,800 Atopamos algunhas mochilas. 112 00:05:25,880 --> 00:05:27,720 Démoslle un pouco ao zoom. 113 00:05:30,320 --> 00:05:31,576 Isto é fantástico. 114 00:05:31,600 --> 00:05:34,776 E todo ese procesamento estase realizando en tempo real 115 00:05:34,800 --> 00:05:36,000 no portátil. 116 00:05:37,080 --> 00:05:38,536 Cómpre lembrar 117 00:05:38,560 --> 00:05:41,776 que este é un sistema de detección de uso xeral, 118 00:05:41,800 --> 00:05:46,800 polo que podemos adestralo para calquera ámbito. 119 00:05:48,320 --> 00:05:50,856 O mesmo código que empregamos 120 00:05:50,880 --> 00:05:53,336 para detectar sinais de stop, peóns 121 00:05:53,360 --> 00:05:55,336 ou bicicletas nun vehículo autónomo 122 00:05:55,360 --> 00:05:58,216 pódese empregar para detectar células cancerosas 123 00:05:58,240 --> 00:06:01,256 nunha biopsia de tecido. 124 00:06:01,280 --> 00:06:05,320 Hai investigadores por todo o mundo que xa están a usar esta tecnoloxía 125 00:06:06,240 --> 00:06:09,656 para lograr novos avances en campos como a medicina ou a robótica. 126 00:06:09,680 --> 00:06:11,056 Esta mañá lin un artigo 127 00:06:11,080 --> 00:06:15,656 no que falan dun censo dos animais do Parque Nacional de Nairobi 128 00:06:15,680 --> 00:06:18,816 no que están empregando YOLO como parte do sistema de detección. 129 00:06:18,840 --> 00:06:21,936 Porque Darknet é código aberto, 130 00:06:21,960 --> 00:06:24,480 é público para que calquera poida usalo libremente. 131 00:06:25,600 --> 00:06:31,296 (Aplausos) 132 00:06:31,320 --> 00:06:36,256 Pero queriamos facer a detección máis accesible e práctica, 133 00:06:36,280 --> 00:06:40,336 así que combinando a optimización de modelos, 134 00:06:40,360 --> 00:06:42,656 a binarización e aproximación de redes, 135 00:06:42,680 --> 00:06:46,600 logramos que a detección de obxectos funcionase nun teléfono. 136 00:06:52,800 --> 00:06:58,120 (Aplausos) 137 00:06:58,960 --> 00:07:03,846 Estou entusiasmado porque agora temos unha solución bastante potente 138 00:07:03,870 --> 00:07:06,516 para este problema de visión artificial de baixo nivel, 139 00:07:06,520 --> 00:07:10,216 e calquera pode usala para facer algo con ela. 140 00:07:10,240 --> 00:07:13,416 A partir de aquí depende de todos vós 141 00:07:13,440 --> 00:07:16,376 e doutros por todo o mundo con acceso a este software, 142 00:07:16,400 --> 00:07:20,056 e estou desexando ver o que construirán con esta tecnoloxía. 143 00:07:20,080 --> 00:07:21,296 Grazas. 144 00:07:21,320 --> 00:07:24,760 (Aplausos)