WEBVTT 00:00:00.625 --> 00:00:01.730 Dieci anni fa, 00:00:01.730 --> 00:00:03.870 i ricercatori di visione artificiale pensavano 00:00:03.870 --> 00:00:05.400 che fare in modo che un computer 00:00:05.400 --> 00:00:07.496 riuscisse a differenziare un gatto e un cane 00:00:07.520 --> 00:00:09.496 sarebbe stato quasi impossibile, 00:00:09.520 --> 00:00:13.216 nonostante il progresso significativo nel campo dell'intelligenza artificiale. 00:00:13.240 --> 00:00:16.800 Ora possiamo farlo a un livello di precisione superiore al 99 per cento. 00:00:17.250 --> 00:00:19.536 Questa è chiamata classificazione d'immagini -- 00:00:19.560 --> 00:00:22.656 dategli un'immagine, etichettate quell'immagine -- 00:00:22.680 --> 00:00:25.720 e i computer riconoscono anche migliaia di altre categorie. NOTE Paragraph 00:00:26.680 --> 00:00:29.576 Sono un dottorando della University of Washington, 00:00:29.600 --> 00:00:31.606 e lavoro su un progetto chiamato Darknet, 00:00:31.606 --> 00:00:33.386 che è un framework di rete neurale 00:00:33.386 --> 00:00:36.226 per sviluppare e testare i modelli di visione artificiale. 00:00:36.226 --> 00:00:39.056 Quindi vediamo cosa ne pensa Darknet 00:00:39.080 --> 00:00:40.840 di quest'immagine. 00:00:42.520 --> 00:00:44.790 Quando eseguiamo il nostro classificatore 00:00:44.790 --> 00:00:45.890 su quest'immagine, 00:00:45.890 --> 00:00:49.196 vediamo che non otteniamo solo la previsione di un cane o di un gatto, 00:00:49.196 --> 00:00:51.046 ma la previsione della razza specifica. 00:00:51.046 --> 00:00:53.136 Questo è il livello di precisione attuale. 00:00:53.160 --> 00:00:54.776 Ed è corretto. 00:00:54.800 --> 00:00:56.960 Infatti, il mio cane è un Alaskan Malamute. NOTE Paragraph 00:00:57.040 --> 00:01:01.260 Abbiamo fatto dei passi da gigante nella classificazione di immagini, 00:01:01.260 --> 00:01:03.960 ma cosa succede quando passiamo il nostro classificatore 00:01:03.960 --> 00:01:05.644 su un'immagine come questa? 00:01:07.080 --> 00:01:08.280 Beh... 00:01:12.640 --> 00:01:16.536 Vediamo che il classificatore ritorna con una predizione abbastanza simile. 00:01:16.560 --> 00:01:19.656 Ed è corretto, c'è un Alaskan Malamute sull'immagine, 00:01:19.680 --> 00:01:23.170 ma con questa sola etichetta, non ne sappiamo poi molto 00:01:23.170 --> 00:01:24.981 di quello che succede nell'immagine. 00:01:24.981 --> 00:01:27.161 Abbiamo bisogno di qualcosa di più potente. 00:01:27.240 --> 00:01:30.076 Io lavoro su un problema chiamato riconoscimento di oggetti, 00:01:30.076 --> 00:01:33.136 dove guardiamo un'immagine e cerchiamo di trovare gli oggetti, 00:01:33.136 --> 00:01:35.056 li delimitiamo con dei "bounding boxes" 00:01:35.056 --> 00:01:36.480 e definiamo quegli oggetti. 00:01:36.480 --> 00:01:37.840 Questo è quello che succede 00:01:37.840 --> 00:01:40.480 quando passiamo un rilevatore su quest'immagine. NOTE Paragraph 00:01:41.240 --> 00:01:43.160 Ora, con questo tipo di risultato, 00:01:43.160 --> 00:01:44.520 possiamo fare molto di più 00:01:44.520 --> 00:01:46.806 con i nostri algoritmi di visione artificiale. 00:01:46.806 --> 00:01:49.436 Vediamo che riconosce che ci sono un gatto e un cane. 00:01:49.436 --> 00:01:51.496 Conosce la loro posizione, 00:01:51.520 --> 00:01:52.660 la loro taglia. 00:01:52.660 --> 00:01:55.026 Potrebbe addirittura conoscere informazioni extra. 00:01:55.026 --> 00:01:56.680 C'è un libro sullo sfondo. 00:01:57.280 --> 00:02:00.536 Se vuoi costruire un sistema basato sulla visione artificiale, 00:02:00.560 --> 00:02:04.016 diciamo un'auto senza pilota o un sistema robotico, 00:02:04.040 --> 00:02:06.496 questo è il tipo di informazione che vuoi. 00:02:06.520 --> 00:02:09.759 Vuoi qualcosa per poter interagire con il mondo fisico. 00:02:10.459 --> 00:02:13.336 Quando ho iniziato a lavorare sul riconoscimento di oggetti, 00:02:13.336 --> 00:02:16.336 servivano 20 secondi per processare una sola immagine. 00:02:16.360 --> 00:02:20.240 E per capire quanto è importante la velocità in questo settore, 00:02:21.120 --> 00:02:23.656 ecco un esempio di un rilevatore di oggetti 00:02:23.680 --> 00:02:26.096 che impiega due secondi per processare un'immagine. 00:02:26.120 --> 00:02:28.736 Quindi questo è 10 volte più veloce 00:02:28.760 --> 00:02:32.296 del rilevatore a 20 secondi a immagine, 00:02:32.320 --> 00:02:35.166 e potete vedere che nel momento in cui fa le sue predizioni 00:02:35.166 --> 00:02:37.040 l'aspetto del mondo è cambiato, 00:02:37.880 --> 00:02:40.296 e questo non sarebbe utile 00:02:40.320 --> 00:02:41.736 per un'applicazione. NOTE Paragraph 00:02:41.760 --> 00:02:44.190 Se velocizziamo di un altro fattore 10, 00:02:44.190 --> 00:02:47.356 questo è un rilevatore che funziona a cinque immagini al secondo. 00:02:47.356 --> 00:02:48.656 È molto meglio, 00:02:48.680 --> 00:02:50.656 ma, ad esempio, 00:02:50.680 --> 00:02:52.976 se c'è un qualsiasi movimento significativo, 00:02:53.000 --> 00:02:55.560 non vorrei un sistema come questo mentre guido. NOTE Paragraph 00:02:56.810 --> 00:02:58.890 Questo è il nostro sistema di riconoscimento 00:02:58.890 --> 00:03:01.140 in funzione in tempo reale sul mio computer. 00:03:01.140 --> 00:03:04.416 Quindi mi identifica senza problemi mentre mi muovo sull'immagine, 00:03:04.416 --> 00:03:07.880 ed è efficace anche quando cambiano la taglia, 00:03:09.440 --> 00:03:10.640 la posa, 00:03:11.280 --> 00:03:13.136 avanti, indietro. 00:03:13.160 --> 00:03:14.270 È fantastico. 00:03:14.270 --> 00:03:16.326 Questo è ciò di cui abbiamo davvero bisogno 00:03:16.326 --> 00:03:19.346 se vogliamo costruire sistemi basati sulla visione artificiale. NOTE Paragraph 00:03:19.346 --> 00:03:23.080 (Applausi) NOTE Paragraph 00:03:24.280 --> 00:03:26.456 Quindi in pochi anni, 00:03:26.480 --> 00:03:29.136 siamo passati da 20 secondi a immagine 00:03:29.160 --> 00:03:32.696 a 20 millisecondi a immagine, mille volte più veloce. 00:03:32.720 --> 00:03:34.136 Come ci siamo riusciti? 00:03:34.160 --> 00:03:37.176 In passato, i sistemi di riconoscimento di oggetti 00:03:37.200 --> 00:03:39.136 avrebbero preso un'immagine come questa 00:03:39.160 --> 00:03:41.616 e l'avrebbero divisa in un insieme di regioni 00:03:41.640 --> 00:03:44.896 e poi passato un classificatore su ognuna di queste regioni, 00:03:44.920 --> 00:03:47.456 e punteggi elevati per quel classificatore 00:03:47.480 --> 00:03:50.616 sarebbero stati considerati come riconoscimenti nell'immagine. 00:03:50.640 --> 00:03:52.046 Ma questo voleva dire 00:03:52.046 --> 00:03:54.876 passare un classificatore migliaia di volte su un'immagine, 00:03:54.876 --> 00:03:58.310 migliaia di valutazioni di rete neurale per produrre il riconoscimento. 00:03:59.240 --> 00:04:03.776 Invece, abbiamo allenato una singola rete a fare tutto il riconoscimento per noi. 00:04:03.800 --> 00:04:08.080 Produce tutti i bounding boxes e ordina le probabilità simultaneamente. 00:04:08.680 --> 00:04:12.176 Con il nostro sistema, invece di guardare un'immagine migliaia di volte 00:04:12.200 --> 00:04:13.776 per ottenere il riconoscimento, 00:04:13.776 --> 00:04:14.936 guardi una volta sola, 00:04:14.960 --> 00:04:16.540 ed è per questo che lo chiamiamo 00:04:16.540 --> 00:04:18.840 il metodo YOLO del riconoscimento d'oggetti. 00:04:19.360 --> 00:04:23.336 Con questa velocità possiamo quindi non limitarci alle immagini; 00:04:23.360 --> 00:04:25.776 ma possiamo processare video in tempo reale. 00:04:25.800 --> 00:04:28.896 E ora, invece di vedere solo il cane e il gatto, 00:04:28.920 --> 00:04:31.880 possiamo vederli muovere e interagire tra loro. NOTE Paragraph 00:04:34.560 --> 00:04:36.616 Questo è un rilevatore che abbiamo allenato 00:04:36.640 --> 00:04:41.016 su 80 classi diverse 00:04:41.040 --> 00:04:44.296 nel dataset COCO di Microsoft. 00:04:44.320 --> 00:04:47.656 Contiene di tutto come cucchiaio e forchetta, ciotola, 00:04:47.680 --> 00:04:49.480 oggetti comuni come questi. 00:04:50.360 --> 00:04:53.456 Ma anche una varietà di cose più esotiche: 00:04:53.480 --> 00:04:56.736 animali, auto, zebre, giraffe. 00:04:56.760 --> 00:04:58.806 E adesso facciamo qualcosa di divertente. 00:04:58.806 --> 00:05:00.720 Ci metteremo in mezzo al pubblico 00:05:00.720 --> 00:05:03.306 per vedere che tipo di oggetti possiamo identificare. 00:05:03.306 --> 00:05:04.680 Qualcuno vuole un peluche? 00:05:06.000 --> 00:05:07.992 Ci sono degli orsacchiotti lì in mezzo. 00:05:10.040 --> 00:05:14.576 E possiamo abbassare un po' la nostra soglia di riconoscimento, 00:05:14.600 --> 00:05:18.000 così possiamo riconoscervi meglio in mezzo al pubblico. 00:05:19.560 --> 00:05:22.046 Vediamo se riusciamo a trovare dei segnali di stop. 00:05:22.046 --> 00:05:23.800 Troviamo degli zaini. 00:05:25.880 --> 00:05:27.720 Facciamo uno zoom. 00:05:30.320 --> 00:05:31.576 Ed è fantastico. 00:05:31.600 --> 00:05:34.776 E tutto il processo avviene in tempo reale 00:05:34.800 --> 00:05:36.000 sul computer. NOTE Paragraph 00:05:37.010 --> 00:05:38.410 Ed è importante ricordare 00:05:38.410 --> 00:05:40.880 che questo è un sistema di riconoscimento di oggetti 00:05:40.880 --> 00:05:42.190 di uso generale, 00:05:42.190 --> 00:05:46.800 quindi lo possiamo allenare per qualsiasi settore di immagini. 00:05:48.320 --> 00:05:50.856 Lo stesso codice che usiamo 00:05:50.880 --> 00:05:53.336 per trovare segnali di stop o pedoni, 00:05:53.360 --> 00:05:55.676 biciclette in un veicolo con pilota automatico, 00:05:55.676 --> 00:05:58.216 può essere usato per trovare cellule cancerose 00:05:58.240 --> 00:06:01.256 durante una biopsia. 00:06:01.280 --> 00:06:05.320 E ci sono ricercatori in tutto il mondo che stanno già usando questa tecnologia 00:06:06.240 --> 00:06:09.656 per fare passi avanti in campi come la medicina, la robotica. 00:06:09.680 --> 00:06:11.466 Questa mattina, ho letto un articolo 00:06:11.466 --> 00:06:15.656 in cui si parlava di un censimento degli animali al Nairobi National Park 00:06:15.680 --> 00:06:18.816 con YOLO integrato nel sistema di riconoscimento. 00:06:18.840 --> 00:06:21.936 Ed è perché Darknet è open source 00:06:21.960 --> 00:06:25.190 ed è di dominio pubblico, e chiunque può utilizzarlo liberamente. NOTE Paragraph 00:06:25.600 --> 00:06:31.296 (Applausi) NOTE Paragraph 00:06:31.320 --> 00:06:36.256 Ma volevamo rendere il riconoscimento ancora più accessibile e fruibile, 00:06:36.280 --> 00:06:40.336 e attraverso una combinazione di ottimizzazione del modello, 00:06:40.360 --> 00:06:42.656 binarizzazione di rete e approssimazione, 00:06:42.680 --> 00:06:46.600 abbiamo un riconoscimento di oggetti che funziona su un telefono. NOTE Paragraph 00:06:52.800 --> 00:06:58.120 (Applausi) NOTE Paragraph 00:06:58.960 --> 00:07:04.016 E sono davvero contento perché abbiamo una soluzione piuttosto efficace 00:07:04.040 --> 00:07:06.856 a questo problema di visione di computer di basso livello, 00:07:06.856 --> 00:07:10.216 e chiunque può prenderlo e costruirci qualcosa. 00:07:10.240 --> 00:07:12.940 Quindi il resto è nelle vostre mani 00:07:12.940 --> 00:07:16.330 e in quelle delle persone nel mondo che hanno accesso a questo software, 00:07:16.330 --> 00:07:18.100 e sono impaziente di vedere 00:07:18.100 --> 00:07:20.296 cosa le persone faranno con questa tecnologia. NOTE Paragraph 00:07:20.296 --> 00:07:21.516 Grazie. NOTE Paragraph 00:07:21.516 --> 00:07:24.760 (Applausi)