Indice
Introduzione
Una delle più grandi sfide tuttora aperte quando si parla di robotica e guida autonoma, riguarda la comprensione dei comandi umani in linguaggio naturale, tenendo conto dell’ambiente in cui la macchina si trova e contemporaneamente dei cambiamenti che avvengono in tempo reale intorno ad essa.
In questo senso un comando del tipo:
“Dopo aver superato un edificio bianco, gira a destra vicino a un camion bianco, poi gira a sinistra e vai verso una piazza con un grande albero e infine prosegui fino a trovare un segnale di stop.”
diventa uno dei task più complicati in assoluto da far digerire ad un mezzo autonomo supportato dalla AI.
Lo Stato dell’Arte
Negli ultimi anni sono stati fatti enormi progressi nella guida autonoma.
Tantissimo è stato fatto per quel che riguarda la sensoristica e le capacità di visione del mezzo per l’applicazione di tecniche di Computer Vision. Ma in queste impostazioni, la specificazione degli obiettivi non richiede praticamente mai l’uso del testo, ma prende in input un’immagine o il contenuto informativo di uno specifico sensore, che viene così costantemente valutato per permettere la percorrenza e il raggiungimento del luogo di interesse nel migliore dei modi.
(Source: Tesla – Ingineerix)
Gli attuali metodi di navigazione focalizzati principalmente sulla comprensione del testo invece, hanno da sempre richiesto una supervisione del processo di learning costosa e lenta, in quanto occorreva addestrare il robot direttamente a comprendere il testo, imparando da un gran numero di compiti simili caratterizzati da traiettorie annotate con descrizioni linguistiche.
Sulla base di questi due diversi stimoli, il team di ricerca di Google, in collaborazione con la UC Berkeley e la University of Warsaw, ha recentemente sviluppato il sistema LM-Nav. L’ obiettivo è quello di consentire ai sistemi di navigazione robotica sia di comprendere i comandi in linguaggio naturale che di soddisfare i requisiti del compito attraverso i loro sistemi auto-supervisionati. Il tutto senza bisogno né di un set di dati etichettati, né di lunghe sessioni di training o di fine tuning.
La Soluzione
LM-Nav è costruito interamente sull’azione combinata di 3 diversi modelli pre-addestrati, uno per la modellazione del linguaggio (LLM), uno per l’associazione immagine-linguaggio (VLM) e uno per la navigazione (VNM).
Tralasciando i dettagli tecnici sulla formalizzazione del problema, che possono essere approfonditi nella sezione Riferimenti, andiamo a vedere qual è il contributo che ogni singola componente dà al sistema.
(Source: lmnav)
LLM o Large Language Models, sono modelli utilizzati per il compito di comprensione del linguaggio naturale (NLP – Natural Language Processing) e in questa applicazione permettono di estrarre dai prompt testuali dati dall’utente, una serie di punti di riferimento (landmarks) utili alla navigazione. il LLM scelto per LM-Nav è il famoso GPT-3 di OpenAI.
VLM o Vision-and-Language Models, sono modelli in grado di correlare le informazioni espresse da parole e immagini. In questa applicazione sono usati per correlare i landmarks estratti dai comandi dell’utente con l’ambiente circostante percepito visivamente dal robot. Il VLM scelto per questo sistema, è il modello CLIP di OpenAI.
VNM o Visual Navigation Models, sono modelli capaci di fornire gli input necessari al sistema per navigare direttamente a partire dalle osservazioni visive, correlando le immagini con delle azioni da eseguire in successione nel tempo. I ricercatori hanno scelto come modello di navigazione visiva ViNG di DeepAI.
Funzionamento del Sistema
Ognuna di queste 3 componenti ha un ruolo specifico e sequenziale nel sistema. Nello schema in basso sono riportati gli step che vanno dall’ elaborazione dell’input fino alla restituzione dell’output. Andiamo quindi a vederli nel dettaglio:
(Source: arXiv)
- Step 1: VNM utilizza una funzione di distanza “goal-conditioned” per dedurre la connessione sia spaziale che temporale tra l’insieme di osservazioni “grezze” ricavate e costruisce una mappa topologica dei luoghi visitati. Parallelamente il modello LLM traduce le istruzioni date in linguaggio naturale, in una sequenza di punti di interesse testuali.
- Step 2: VLM determina una funzione di massima verosimiglianza tra le caratteristiche dei punti di interesse e i nodi della mappa generata al punto precedente.
- Step 3: la distribuzione di probabilità congiunta ottenuta al punto precedente viene quindi utilizzata da un algoritmo di ricerca grafica per rilevare e tracciare il percorso ottimale sulla mappa. Il robot guida nel mondo reale seguendo le indicazioni ricavate, utilizzando le policy dettate dal VNM.
Esperimenti pratici
Il video che segue mostra il funzionamento del robot in uno scenario d’uso reale. L’unico prompt fornito alla macchina è il seguente:
“Gira a destra vicino al segnale di stop. Cerca un edificio a vetrate, dopo aver superato un’auto bianca.”
(Source: Dhruv Shah)
Il robot capisce i comandi in tempo reale e grazie alle informazioni ottenute dalla visuale egocentrica riconosce correttamente tutti e 3 i landmarks (lo stop, l’auto bianca e l’edificio a vetrate) e infine trova il punto di arrivo senza alcuna difficoltà.
Nello schema in basso sono indicati altri 3 esperimenti ottenuti a partire da diversi prompt di difficoltà crescente. In tutti gli scenari i risultati ottenuti dalla macchina sono sorprendenti, soprattutto se si considera che per ottenerli sono stati usati 3 modelli completamente out of the box!
(source: arXiv)
Il robot riesce ad interpretare le sfumature linguistiche e a risolvere in autonomia eventuali problemi di ambiguità intrinseca nel linguaggio parlato dagli esseri umani, oltretutto trovando il percorso corretto a partire da frasi che avrebbero potuto confondere molte persone.
Conclusione
In sintesi, questo sistema di navigazione robotica è in grado di comprendere sia i comandi in linguaggio naturale che di svolgere i compiti assegnati in maniera del tutto autonoma.
Tutti e 3 i modelli che lo compongono, riescono a comunicare tra di loro in maniera impeccabile e il risultato che ne viene fuori è veramente promettente. Questo robot è effettivamente in grado di capire, interpretare ed eseguire: sembra davvero uscito fuori da un film di fantascienza, facendoci fare un passo avanti nella direzione di quella che da qui a breve diventerà l’era dell’ AI-driven navigation e della guida ad automazione completa.
Riferimenti
- Paper – LM-Nav: Robotic Navigation with Large Pre-Trained Models of Language, Vision, and Action: https://arxiv.org/pdf/2207.04429.pdf
- Codice – Source code of LM-Nav: https://github.com/blazejosinski/lm_nav
- Video – LM-Nav Experiment Videos : https://www.youtube.com/watch?v=QyIOTjv6lis
- Sito Web: https://sites.google.com/view/lmnav