Dziesięć lat temu
badacze rozpoznawania obrazów sądzili, że nauczenie komputera
rozróżniania kota od psa
jest prawie niemożliwe
nawet przy sporym postępie rozwoju sztucznej inteligencji.
Teraz jest to możliwe z dokładnością większą niż 99%.
Nazywamy to klasyfikacją obrazu:
dostarcz obraz, przypisz do niego etykietę...
komputery znają teraz tysiące innych kategorii.
Jestem doktorantem na Uniwersytecie Waszyngtońskim
i pracuję nad projektem "Darknet",
który jest frameworkiem sieci neuronowej
do ćwiczenia i testowana modeli rozpoznawania obrazów.
Sprawdźmy więc, co "Darknet" sądzi
o tym obrazie.
Wprowadzenie tego obrazu do klasyfikatora
nie tylko da nam prognozę, czy to pies czy kot,
ale nawet prognozę konkretnej rasy.
Taki poziom szczegółowości jest teraz dostępny.
I jest to poprawne rozpoznanie.
Mój pies to naprawdę malamut.
Dokonaliśmy niesamowitego postępu w klasyfikacji obrazów,
ale co się stanie, jeśli wprowadzimy taki obraz?
Klasyfikator zwraca podobną prognozę
i jest poprawna - na zdjęciu jest malamut,
ale na podstawie samej etykiety nie można dowiedzieć się wiele
na temat tego, co dzieje się na zdjęciu.
Do tego potrzeba czegoś bardziej zaawansowanego.
Pracuję nad wykrywaniem obiektów.
Patrzymy na obraz i próbujemy znaleźć wszystkie obiekty,
wpisujemy je w bryły brzegowe
i je nazywamy.
Oto co się dzieje, kiedy wprowadzimy ten obraz do detektora.
Z tego rodzaju rezultatem
możemy zrobić znacznie więcej, stosując nasze algorytmy.
Komputer wie, że na zdjęciu jest kot i pies.
Zna ich względne położenie,
ich wielkość.
Może też uzyskać dodatkowe informacje:
w tle leży książka.
Żeby zbudować system na rozpoznawaniu obrazu,
powiedzmy samoprowadzący się pojazd lub manipulator robotyczny,
potrzeba właśnie tego typu informacji.
Potrzeba czegoś do interakcji ze światem fizycznym.
Kiedy zacząłem pracować nad wykrywaniem obiektów,
przetworzenie jednego obrazu zajmowało 20 sekund.
Aby lepiej odczuć dlaczego prędkość jest tak ważna w tej dziedzinie,
pokażę przykład detektora obiektów,
który przetwarza obraz w 2 sekundy.
To 10 razy szybciej
niż ten przetwarzający obraz w 20 sekund,
a i tak można zaobserwować, że zanim dokonał prognozy,
zmieniła się cała sytuacja,
a to nie byłoby zbyt użyteczne w zastosowaniu.
Jeśli dziesięciokrotnie przyspieszymy ten proces,
tak wygląda detektor przy pięciu klatkach an sekundę.
Wygląda to dużo lepiej,
ale na przykład
w przypadku znacznego ruchu
nie chciałbym, żeby taki system prowadził mój samochód.
Tak wygląda nasz system działający w czasie rzeczywistym
na moim laptopie.
Płynnie śledzi mnie w trakcie poruszania się w ramie
i jest odporny na dużą różnorodność zmian wielkości,
pozy,
rotacji poziomej.
O to chodziło.
Tego właśnie potrzeba,
żeby budować systemy na rozpoznawaniu obrazu.
(Brawa)
Zaledwie w kilka lat
przeszliśmy od 20 sekund na obraz
do 20 milisekund na obraz - tysiąc razy szybciej.
Jak to się stało?
W przeszłości systemy wykrywania obiektów
rozbiłyby ten obraz
na mnóstwo obszarów
i wprowadziłyby każdy z nich do klasyfikatora,
a wysokie rezultaty klasyfikatora
byłyby uważane za wykrycie obiektów.
Ale to wymagało wprowadzenia obrazu do klasyfikatora tysiące razy,
tysięcy ewaluacji sieci neuronowych, aby otrzymać wykrycie.
Zamiast tego nauczyliśmy pojedynczą sieć
całkowitego wykrywania.
Tworzy ona wszystkie bryły brzegowe i prawdopodobieństwa klasowe jednocześnie.
Nasz system, zamiast tysiąc razy analizować obraz
do jednego wykrycia,
analizuje go tylko raz
i dlatego nazywamy to metodą wykrywania obrazów YOLO.
Z tą prędkością nie musimy ograniczać się jedynie do obrazów.
Możemy przetwarzać wideo w czasie rzeczywistym.
Teraz zamiast kota i psa
można też obserwować ich ruch i interakcję.
Trenowaliśmy ten detektor
na osiemdziesięciu różnych klasach
w zbiorze danych Microsoft COCO.
Zawiera on różnorodne rzeczy, na przykład łyżkę i widelec, miskę
i podobne przedmioty codziennego użytku.
Zawiera również bardziej egzotyczne obrazy:
zwierzęta, samochody, zebry, żyrafy.
Teraz zrobimy coś dla zabawy.
Skierujemy detektor na publiczność
i zobaczymy, co się da wykryć.
Czy ktoś chce pluszaka?
Mam tu kilka misiów.
Możemy trochę obniżyć nasz próg wykrywalności,
aby znaleźć więcej osób na widowni.
Zobaczmy, czy uda nam się rozpoznać te znaki stopu.
Widzimy kilka plecaków.
Zróbmy niewielkie zbliżenie.
Świetnie.
Całe przetwarzanie ma miejsce w czasie rzeczywistym
na laptopie.
Należy pamiętać,
że jest to system wykrywania obiektów do użytku ogólnego,
więc możemy go wytrenować dla dowolnej kategorii obrazów.
Ten sam kod, którego używamy
do znalezienia znaków stopu, pieszych,
lub rowerów w autonomicznym pojeździe
można wykorzystać do znalezienia komórek rakowych
w biopsji tkanki.
Badacze na całym świece używają już tej technologii
do rozwoju w dziedzinach takich jak medycyna, czy robotyka.
Dziś rano czytałem pracę
omawiającą zliczanie zwierząt w Parku Narodowym Nairobi
przy wykorzystaniu YOLO jako części systemu wykrywania obiektów.
Jest to możliwe ponieważ "Darknet" jest programem open source,
będącym własnością publiczną do wolnego użytku.
(Brawa)
Chcieliśmy jednak, żeby wykrywanie było bardziej przystępne i przydatne,
więc poprzez połączenie optymalizacji modelu,
binaryzacji i aproksymacji sieci
otrzymaliśmy wykrywanie obiektów działające na telefonie.
(Brawa)
Jestem bardzo podekscytowany, bo mamy potężne rozwiązanie problemu
rozpoznawania obrazów na komputerach o niskiej wydajności
i każdy może je wykorzystać i stworzyć coś przy jego użyciu.
Reszta zależy od was
i ludzi na całym świecie z dostępem do tego oprogramowania.
Nie mogę się doczekać tego,
co ludzie stworzą przy użyciu tej technologii.
Dziękuję.
(Brawa)