Lepiej ułóż to Lego z zeszłej Gwiazdki, bo zaraz zrobi to za ciebie maszyna
To co, układamy? Maszyny już potrafią. No, prawie.
Lego zna chyba każdy. Te osoby kojarzą też na pewno koszmarny ból, jaki towarzyszy wdepnięciu w jakiś mniejszy element. Maszynom on nie groźny, a to właśnie one nauczyły się podążać za instrukcją słynnych klocków.
Poczekajmy jednak chwilę, zanim schowamy swoje zestawy do szafy w obawie przed najazdem złowrogich maszyn, bo to wcale nie jest zła wiadomość.
Instrukcje obsługi Lego są wspaniałym przykładem tego, jak wizualnie przekazać proces budowy, dostosowując go pod bardzo szerokie grono budowniczych. Te klocki powinien móc ułożyć każdy - no, może nie dwulatek, który prawdopodobnie wolałby je zjeść, ale zrobią to i nieco starsze dzieci, i młodzież, a także dorośli. Przeglądając kolejne strony, jesteśmy w stanie zidentyfikować, jakie elementy gdzie przyłączyć, o ile oczywiście odnajdziemy je w stercie przed sobą, a nie trzy lata później pod szafą. Nie sposób nie zauważyć, że każdy z etapów jest przedstawiony maksymalnie minimalistycznie, na stronach nie ma z reguły napisów, a jedynie rysunki i czasami strzałki. Dla człowieka zrozumienie takiego obrazka nie stanowi problemu. Sprawa miała się gorzej w przypadku maszyn.
Przed wyzwaniem nauczenia maszyny interpretacji instrukcji Lego stanęli naukowcy z Uniwersytetu Stanforda. Jak przyznają, najwięcej problemów wynikało z konieczności interpretacji dwuwymiarowych obrazów modeli 3D w drukowanych instrukcjach. Ludzie rozumieją to ot tak, natomiast dla maszyn konieczne było opracowanie nowego frameworku opartego na uczeniu się, który nazwano Manual-to-Executable-Plan Network albo MEPNet w skórcie. Nazwa jest średnio chwytliwa, ale co najważniejsze - działa!
W zależności od tego, w którym miejscu trzeba dodać element, instrukcje Lego często przedstawiają obraz półzłożonego modelu z zupełnie innej perspektywy niż w poprzednim kroku. System MEPNet musi więc rozszyfrować, co widzi i jak to jest skorelowane z modelem 3D, który został wygenerowany w poprzednich krokach.
Następnie framework powinien określić, gdzie do wcześniej wygenerowanego modelu 3D pasują nowe elementy poprzez porównanie kolejnej iteracji półzłożonego modelu z poprzednimi. Szkielet MEPNet musi sam sobie wyobrazić, gdzie można umieszczać następne części, ale ten proces nieco ułatwiają cechy charakterystyczne klocków Lego: wypustki na górze i wgłębienia na spodzie, które pozwalają na bezpieczne połączenie ich ze sobą. MEPNet rozumie ograniczenia położenia klocków Lego, jakie mogą być układane i łączone na podstawie lokalizacji tych aspektów, co pomaga zawęzić miejsca, w których można je zamocować.
Cały mechanizm nie działa jeszcze w taki sposób, że wystarczy dać robotowi worek klocków i instrukcję, a potem czekać, aż ułoży - to zupełnie inne wyzwanie, natomiast dzięki wynikom tego badania może być łatwiej osiągalne. Nasze dawno zapomniane zestawy z poprzednich świąt są zatem bezpieczne, ale... może jednak warto je ułożyć przed następnymi.