
Autor: Szymon Trochimiak, starszy inżynier ds. badań ML
W przypadku fizycznej sztucznej inteligencji symulacja i świat rzeczywisty nie są konkurencyjnymi, lecz uzupełniającymi się źródłami danych. Czasami przedmiot otwiera się, gdy robot go niesie. Jeśli robot widzi rozmontowany przedmiot, może się zatrzymać i poprosić o pomoc. To właśnie jest zadaniem Live Anomaly Detection (w skrócie LAD). Najtrudniejsze jest ich poznanie, ponieważ robot rzadko napotyka anomalie (dlatego są anomaliami). Poniżej przedstawiamy, jak udało nam się wykorzystać dane syntetyczne do nauki LAD o awariach, które produkcja rzadko nam pokazuje.
Live Anomaly Detection to system wizyjny, który śledzi obraz z kamery podczas każdego pobrania, z częstotliwością 15 klatek na sekundę. Dla każdej klatki system decyduje, czy napotkaliśmy anomalię, tj. rozmontowany przedmiot, czy nie. Jeśli dla danej próby model zwróci wynik pozytywny (tj. wykryto anomalię) dla trzech kolejnych klatek, robot zatrzymuje się, a zdalny operator sprawdza sytuację.
LAD ocenia się na podstawie dwóch liczb:
Pomyłka może spowodować, że w paczce klienta znajdzie się lek z brakującą zawartością. Fałszywy alarm kosztuje operatora uwagę i sekundy cyklu na stacji zbudowanej z myślą o setkach kompletacji na godzinę. Przy dużym natężeniu ruchu te sekundy się sumują, dlatego chcemy zminimalizować zarówno wskaźnik FPR, jak i FNR.
Roboty rejestrują każdy wybór, więc nagrań wideo jest pod dostatkiem. Użytecznych etykiet brakuje. Cztery rzeczy utrudniają ten problem:
Oczywistym “skrótem” byłby generatywny model obrazu, ale nie spełnia on dokładnie tych wymagań. Opisanie słowami, gdzie kończy się “częściowo otwarty”, a zaczyna “całkowicie otwarty”, nie jest wiarygodne. Trudno jest również wygenerować To samo pole o 20 i 25 stopniach otwarcia, co jest rodzajem kontrastowej pary, która uczy granicy. Etykieta odczytana z podpowiedzi to zgadywanie. Etykieta odczytana z geometrii jest dokładna.
Stworzyliśmy więc model parametrycznego opakowania farmaceutycznego w Blenderze. Każda właściwość istotna dla etykiety jest jawnie zdefiniowana:
Jak przejść od specyfikacji do renderowanego i sklasyfikowanego pudełka:

Wyrenderowany karton na szarym tle niewiele nauczy modelu o rzeczywistym środowisku produkcyjnym. Dlatego umieszczamy go w rzeczywistych ramkach, w dwóch etapach. Etap offline tworzy wycinek – prawdziwy chwytak trzymający wyrenderowany pojemnik – raz i go zapisuje. Etap online wkleja ten wycinek do rzeczywistej ramki za każdym razem, gdy jest rysowany podczas treningu, więc ten sam pojemnik pojawia się w wielu scenach.

1. Ramka źródłowa. Prawdziwa rama, pochodząca z produkcji lub laboratorium, w której robot trzyma przedmiot. Ciśnienie ssania informuje nas, czy chwytak coś trzyma, dzięki czemu te ramy można podnosić automatycznie.

2. Wyjmij narzędzie. Nasz wewnętrzny model segmentacji znajduje chwytak i trzymany przedmiot. Zachowujemy chwytak i odrzucamy wszystko inne, w tym sam przedmiot. Zapisujemy również jasność przedmiotu i całej klatki do późniejszej korekty.

3. Element źródłowy. Wyrenderowany karton. Jego klasa jest ustalana przez geometrię renderu.

4. Dopasuj i nałóż. Łączymy chwytak z renderem wykonanym dla tej samej kamery i tego samego narzędzia, a następnie nakładamy prawdziwy chwytak na wyrenderowany karton. Jeśli chwytak nie nachodzi na pudełko, przesuwamy je, aż na nie najdzie.

5. Korekcja gamma. Rendery są jasne i ostre. Dopasowujemy jasność kartonu do jasności rzeczywistego przedmiotu, który zastępuje, i zapisujemy wynik jako ostateczny wycinek.


7. Ostateczne wycięcie i ramka docelowa. Trening ładuje wycięty fragment i rzeczywistą klatkę, w której robot niczego nie trzyma, pochodzącą od tego samego robota, kamery i narzędzia. Podobnie jak klatki źródłowe, można je pobrać za pomocą sygnału ssącego.

8. Nakładka i korekcja gamma. Wycięcie jest wklejane w jego własnym miejscu. Kamera na nadgarstku jest sztywno zamocowana do narzędzia, dzięki czemu wklejony chwytak pokrywa niemal cały uchwyt obiektu docelowego i nie jest wymagane doświetlanie. Na koniec dopasowujemy jasność całej klatki źródłowej do całej klatki docelowej, co daje klatkę używaną w treningu.

Każdy wyrenderowany blok jest ponownie wykorzystywany z około ośmioma różnymi, rzeczywistymi chwytakami, a każdy wycięty element trafia na nową ramkę docelową za każdym razem, gdy jest rysowany. Ramki syntetyczne stanowią około jedną czwartą każdej partii treningowej.
Wizualizacja była prostą częścią. Większość wniosków pochodziła z oceny i analizy:
Rozszerzyliśmy nasz zestaw testowy na wszystkie oznaczone próby z dwóch stanowisk produkcyjnych, około 12 000 filmów, i całkowicie wyłączyłem obie stacje z treningu. Na nim trening z renderowanymi kartonami znacznie ulepszona generalizacja z laboratorium do produkcji: zmniejszyliśmy FNR 2.07 czasy przy FPR=1%. Praktyczna konsekwencja: możemy teraz trenować na materiale produkcyjnym, nie czekając, aż produkcja rozbije wystarczającą liczbę pudełek.
Nowa generacja renderów bierze na celownik wciąż brakujące wady: podarte i zdeformowane pudełka, chybotanie i wynikające z niego rozmycie obrazu, pudełka przytrzymywane klapką lub dolną ścianką oraz bardziej zróżnicowana zawartość.
Zarówno w zastosowaniach cyfrowych, jak i fizycznych, kuszące jest traktowanie danych syntetycznych jako pełnego zamiennika doświadczenia w świecie rzeczywistym. Podejście oparte na symulatorze przyniosło imponujące rezultaty w dziedzinie robotów. lokomocja, wyścigi, i nawet piłka nożna. Opiera się jednak na ścisłym powiązaniu z rzeczywistym wdrożeniem w celu oceny i dostosowania symulatora.
Nasza praca w Nomagic podąża tą samą ścieżką. W tym projekcie zaczęliśmy od rzeczywistych danych: chwytak, tło i oświetlenie pochodzą z produkcji. Symulacja staje się mnożnikiem danych, a my renderujemy sztuczne części i warianty, rozszerzając rzeczywiste dane o informacje specyficzne dla przypadków brzegowych. Aby iterować proces rozszerzania, musimy ponownie zamknąć pętlę do wdrożenia w świecie rzeczywistym.
Praca ta bezpośrednio łączy się ze ścieżką „najpierw mistrzostwo”, którą opisaliśmy w Skromny zwrot w stronę fizycznej sztucznej inteligencji I Ostatnie kilka procent. Wdrożenie robotów i niezawodna autonomia zależą od efektywnego rozwiązywania rzadkich i sporadycznych problemów pojawiających się dopiero w produkcji. Symulacja nie zastępuje naszego koła zamachowego, ale je przyspiesza. Kiedy napotykamy nowe przypadki brzegowe, nie musimy czekać, aż będą się zdarzać wystarczająco często, aby się uczyć; zamiast tego pozwalamy symulacji zwielokrotnić nasz strumień danych.
Jeśli chcesz tworzyć zaawansowane fizyczne rozwiązania sztucznej inteligencji i przyspieszyć ich wpływ na symulację podczas wdrażania: szukamy Cię! Link do naszej strony poświęconej karierze