Jak komputery widzą świat

Jak komputery widzą świat

Komputery również uczą się widzieć – i to już od wielu lat. W roku 1957 została uruchomiona pierwsza neuronowa sieć wykorzystująca algorytm perceptronowy, która potrafiła odnaleźć w lesie zamaskowane czołgi – jednak tylko przy dobrej pogodzie. Dziś systemów rozpoznawania twarzy używamy np. do porządkowania zdjęć. Ale w istocie jest to zwykłe oprogramowanie, które jedynie ściśle odtwarza zaprogramowany wzorzec. W przyszłości w naszych komputerach zastąpi je sieć neuronowa, która rozpozna nasze ulubione motywy i “weźmie pod uwagę” kąt, pod jakim fotografowana była osoba lub inny obiekt. Komputer stanie się asystentem fotografa, który udzieli rad, zrobi porządek ze zdjęciami i będzie wiedział, czemu poświęcić najwięcej uwagi. Aby realizować tak kompleksowe scenariusze, sieci neuronowe muszą jeszcze długo trenować – ostatnie lata przyniosły już jednak duże postępy.

Wkrótce komputery zostaną wyposażone w kamery i czujniki, dzięki którym zarejestrują obraz otoczenia i ruch w przestrzeni. Microsoft zainicjował ten trend kilka lat temu w swojej konsoli do gier

Xbox. Kinect rozpoznaje gracza, który za pomocą swoich ruchów steruje grą. Projekt firmy Google o nazwie Tango i nowa kamera Intel RealSense przenoszą teraz te umiejętności na urządzenia mobilne.

Tablet Dell Venue 8 7000 dzięki kamerze RealSense R100 tworzy obraz otoczenia. Pierwsza generacja RealSense dla każdego zarejestrowanego tabletem zdjęcia zapisuje dodatkowe informacje o pomieszczeniu. Do tego celu wykorzystuje trzy rozmieszczone w różnych miejscach tabletu aparaty, które fotografują równocześnie z głównym. Właściwe zdjęcie robi aparat środkowy. W obu fotografiach z aparatów po prawej i lewej stronie algorytm szuka identycznych punktów, na podstawie których podczas późniejszej analizy obliczana jest głębia. W przypadku odległości powyżej jednego metra działa to już dość dokładnie, ale powyżej pięciu metrów precyzja się zmniejsza. Tablet Dell mierzy odległości pomiędzy dwoma obiektami albo określa powierzchnię wybranego obszaru. Architekci amatorzy i renowatorzy mieszkań nie muszą już sięgać po taśmę mierniczą, bo fotografia w

zupełności wystarcza.

Wrażenie przestrzenności za sprawą sieci punktów pomiarowych

To dopiero początek. Następna generacja RealSense, oznaczona numerem 200, będzie dokładniejsza, bo informacje o przestrzeni będzie ustalać za pomocą lasera, który wykorzystując światło podczerwone, utworzy sieć punktów pomiarowych. Dane odbierane będą przez dwa czujniki IR, algorytm połączy punkty w powierzchnie i obliczy model głębi otoczenia, który da się powiązać ze zdjęciem. A oprogramowanie “nałoży” na twarz sieć 78 punktów. Rejestracja ich pozycji pozwoli “obliczyć” ludzki nastrój – złość, radość albo smutek – a na podstawie zmian kolorów skóry na twarzy

zmierzyć również tętno. W przyszłości urządzenia mobilne będą rozpoznawać humor swoich właścicieli lub ich rozmówców. Dzięki sieciom neuronowym będą w tym z czasem coraz lepsze. To jednak wciąż pieśń przyszłości. Na razie kamery na podczerwień RealSense, podobnie jak Kinect, działają w małej rozdzielczości 320×240 albo 368×480 punktów pomiarowych. System rejestruje wideo i jednocześnie analizuje ruchy oraz gesty. Przy 60 klatkach na sekundę system wykonuje więc 18 milionów operacji na sekundę. Intel zaleca, aby urządzeniem z kamerą RealSense poruszać powoli i najlepiej by było, gdyby rejestrowany obiekt stał jak słup. Wspomniane zalecenia świadczą o tym, że jeśli chodzi o orientację w przestrzeni – wymaganą np. do autonomicznej jazdy – przed urządzeniami mobilnymi jeszcze daleka droga. W grę wchodzi ponadto dodatkowe wyzwanie: hardware RealSense musiałby się tak skurczyć, aby mieścić się w smartfonie. Zespół badawczy Microsoft u znalazł już sposób na zmniejszenie urządzeń sensorycznych.

Soczewka kamery jest otoczona wieńcem LED-ów emitujących światło podczerwone, a z kamery wymontowywany jest filtr podczerwieni, aby można było odbierać światło o tej długości fal. System zwany Depth4Free wystarcza do rozpoznawania gestów na bliskim dystansie, ale nie można nim obmierzać pomieszczeń. Z tym zadaniem radzi sobie Google Tango. Najpierw system orientowania się w pomieszczeniach trafi do budowanych przez NASA robotów Spheres. Te kule wielkości futbolówki mają szybować przez międzynarodową stację kosmiczną i skanować jej wnętrze. Dotychczas w ramach projektu Tango powstał tylko tablet, wyposażony w podobny zestaw czujników jak RealSense albo Kinect. Dodatkowo Motion Tracking System – dzięki pomiarom w podczerwieni – ma spowodować, że urządzenie będzie w stanie określić własną pozycję. Kiedy więc użytkownik będzie poruszać się z tabletem po pomieszczeniu, Tango zapisze drogę, jednocześnie wykonując pomiary pomieszczenia. Kiedy przemierzać będzie tę samą trasę, Tango na podstawie synchronizacji danych rozpozna, że już tu był i będzie umiał się odnaleźć.

Ale po co to wszystko? Otóż na przykład za parę lat po ulicach naszych miast będą jeździć sterowane komputerowo autonomiczne samochody. Do orientacji w zmieniającym się wciąż środowisku będą potrzebować kompletnego zestawu czujników. Obliczenia odległości dokonywane za pomocą kamery stereo będą wystarczające na niewielkim dystansie – do ok. 30 m. W efekcie samochód rozpozna stałe elementy, czyli pasy ruchu i sygnalizatory, ale rejestrować będzie tylko wąski fragment obrazu, maks. 60 st. Kompletny obraz, obejmujący kąt 360 st., autonomiczne samochody otrzymują z systemu Lidar, który wysyła impulsy laserowe i mierzy, po jakim czasie następuje ich odbicie. Na dystansie do kilkuset metrów działa to całkiem skutecznie. To wszystko nie wystarcza jednak do samodzielnej jazdy: komputer pokładowy musi porównywać dane ze szczegółową mapą 3D otoczenia i do wyliczenia drogi wymaga dodatkowych informacji o lokalizacji ciągów pieszych oraz znaków drogowych. Oprócz tego komputer musi identyfikować obiekty, takie jak piesi, rowerzyści albo zwierzęta, aby obliczyć, dokąd zmierzają. To jest właśnie zadanie dla sieci neuronowych.

Sieci neuronowe szukają odpowiedzi na pytania w rodzaju: “kiedy koń właściwie jest koniem?”. W tym celu karmi się je ogromną ilością zdjęć koni, na podstawie których sieć uczy się wyodrębniać cechy charakterystyczne dla konia, takie jak grzywa, ogon, nos, nogi albo kopyta, i odróżnić prawdziwego konia od konia na plakacie. Jeśli programiści skutecznie będą uczyć taką sieć, to będzie ona w stanie rozpoznać konia stanowiącego potencjalne zagrożenie dla ruchu drogowego. Największe postępy w identyfikacji obiektów badacze osiągnęli w Convolutional Neural Networks (CNN). Centralna operacja obliczeniowa – konwolucja – nakłada na kwadrat z pikseli filtr konwolucyjny, który porównuje piksele w środku kwadratu z pikselami na skrajach i sprawdza, jak podobne jest otoczenie. Z filtra konwolucyjnego korzystał już każdy: edytor grafiki o nazwie GIMP używa go do zmiękczania lub wyostrzania zdjęć. CNN powtarzają tę operację wiele razy, niejako oddalając się coraz bardziej od właściwej zawartości obrazu i przechodząc z każdą operacją filtrowania na wyższy poziom abstrakcji. Z pikseli powstają linie, łuki i krawędzie, a te z kolei tworzą oczy, nos, nogi. Celem filtra jest jak najwyraźniejsze wyeksponowanie tych cech. CNN używa do tego dziesiątków, a nawet tysięcy filtrów równocześnie i uczy się, które lepiej sprawdzają się przy pracy z obiektem określonego typu. Na końcu procesów filtrowania sieć neuronowa ma do czynienia z coraz większymi strukturami, aż wreszcie podejmuje decyzję: tak, to jest koń.

Eksperci zajmujący się CNN zaczynają karierę na uniwersytetach, m.in. na Uniwersytecie Standforda, ale na ogół szybko przechodzą do dużych dostawców usług IT, jak Google, Facebook i Microsoft, którzy przeczesują i katalogują swoje gigantyczne kolekcje zdjęć metodami CNN. I tak badacze z Uniwersytetu Stanforda i Yahoo Labs zapowiedzieli w lutym przełom w rozpoznawaniu twarzy: ich CNN identyfikuje twarze widziane pod każdym kątem, nawet gdy są częściowo zasłonięte. W tym celu nakarmili sieć 200 tysiącami zdjęć twarzy. Do tego dodano 20 milionów fotografii bez twarzy, jako materiał do weryfikacji. CNN do momentu zakończenia treningu potrzebował 50 tys. cykli do przetworzenia zestawów liczących 128 zdjęć. Facebook ogłosił, że jego sieć Deep-Face w 97,25 proc. wszystkich przypadków poprawnie rozpoznaje twarz – tym samym tylko o kilka punktów procentowych ustępuje przeciętnej skuteczności człowieka.

Te sukcesy należy traktować z pewną rezerwą. – Sieci neuronowe mają trudności z identyfikacją pojedynczych obiektów w kompleksowym obrazie – uważa dr Mark Asbach, który doktoryzował się z rozpoznawania twarzy i pracował jako kierownik projektu w Instytucie Fraunhofera. Aktualnie zajmuje się projektem Pixolus, w którym rozpoznawanie obiektów odbywa się w aplikacji. Jeśli obiekt zajmuje tylko niewielki fragmencik zdjęcia, to sieć neuronowa musi rozpoznać miliony takich wycinków w każdej fotografii. – Liczba potencjalnych błędnych decyzji rośnie wtedy skokowo – uważa Asbach.

Z drugiej strony CNN osiągają szybko dość dobre rezultaty, jeśli szkoli się je w określonym celu – w takim przypadku ważne jest ograniczenie parametrów. Badacze z Uniwersytetu Rutgers w New Jersey zbudowali sieć neuronową rozpoznajacą malarzy i styl, w jakim malowali. W 60 proc. wszystkich przypadków sieci udało się prawidłowo rozpoznać autora obrazu, a w około połowie – przypisać styl. Microsoft w końcu kwietnia pod adresem how-old.net udostępnił online sieć neuronową, która próbuje oszacować wiek osób. Wyniki niestety nie są jeszcze przekonujące. Aby nauczyć sieć lepiej rozpoznawać wiek, Microsoft musiałby dodać funkcję feedbacku, bo sieci neuronowe stają się tym lepsze, im intensywniej się je ćwiczy.

Nadchodzą specjalne chipy do smartfonów

W przyszłości zastosowanie CNN nie będzie ograniczone do wielkich webowych serwisów. Po zakończeniu wymagającego intensywnych obliczeń treningu CNN będzie działał na każdym komputerze. Do tego przydałoby się, aby funkcja rozpoznawania stała się elementem języków programowania, jak Wolfram Alfa. Programiści mogą wbudowywać takie moduły do swoich aplikacji, bez konieczności posiadania wiedzy w tej materii. Qualcomm, rynkowy lider w segmencie procesorów mobilnych, w przyszłości chce zaoferować do swoich chipów Snapdragon specjalne moduły zoptymalizowane pod kątem silnie sparalelizowanych operacji obliczeniowych CNN. W następnych latach w nowych modelach smartfonów mogą one stać się elementem równie oczywistym jak dziś chipy sygnałowe do konwersji audio albo wideo.

Rozwój CNN cechuje spory dynamizm – przed wieloma laty nie były one nawet faworyzowanym typem sieci neuronowych, a dziś stanowią ich awangardę. Mark Asbach obawia się, że w przyszłości tylko duzi usługodawcy webowi zbudują lepsze sieci neuronowe do swoich zastosowań, podczas gdy pojedynczy badacze nie będą mogli sobie na to pozwolić: po prostu liczba przykładów niezbędnych do treningu będzie coraz większa. – Dzisiejsze CNN za kilka lat mogą zostać wyparte przez nową metodę niewymagającą ludzkiego eksperta, który wybierze przykłady do treningu. Dziś jednak nie widać jeszcze propozycji konkretnych rozwiązań problemów związanych z “unsupervised learning”. Tym samym nie da się odpowiedzieć ostatecznie na pytanie, kiedy komputery będą widzieć tak dobrze jak sześcioletnie dziecko, którego zmysł wzroku osiągnął etap dojrzałości.