Comprendere i tipi di gara e abilitare i sensori supportati da AWS DeepRacer - AWS DeepRacer

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Comprendere i tipi di gara e abilitare i sensori supportati da AWS DeepRacer

In AWS DeepRacer League, puoi partecipare ai seguenti tipi di eventi di gara:

  • Prova a tempo: corri su una pista senza ostacoli e mira a fare un giro con il tempo più basso in assoluto.

  • Evitamento di oggetti: corri contro il tempo su una pista con ostacoli fissi e mira a compiere un giro ottenendo il tempo più basso possibile.

  • Head-to-bot racing: gareggia contro uno o più altri veicoli sulla stessa pista e mira a tagliare il traguardo prima degli altri veicoli.

Le gare DeepRacer della community AWS attualmente supportano solo le prove a cronometro.

Dovresti sperimentare diversi sensori sul tuo DeepRacer veicolo AWS per fornirgli capacità sufficienti per osservare l'ambiente circostante per un determinato tipo di gara. La sezione successiva descrive i sensori DeepRacer supportati da AWS che possono abilitare i tipi di eventi di gara autonomi supportati.

Scegli i sensori per i tipi di DeepRacer gara AWS

Il tuo DeepRacer veicolo AWS è dotato di una fotocamera monoculare frontale come sensore predefinito. È possibile aggiungere un'altra telecamera monoculare frontale per ottenere telecamere stereo frontali o per integrare la telecamera monoculare o le telecamere stereo con un'unità LiDAR.

L'elenco seguente riassume le capacità funzionali dei sensori DeepRacer supportati da AWS, insieme a brevi cost-and-benefit analisi:

telecamera frontale

Una telecamera frontale con obiettivo singolo è in grado di catturare immagini dell'ambiente davanti al veicolo ospite, compresi i bordi e le forme delle piste. È il sensore meno costoso ed è adatto per gestire attività di guida autonome più semplici, come prove a tempo su piste ben definite e senza ostacoli. Con un addestramento adeguato, si possono evitare ostacoli fissi in posizioni fisse sulla pista. Tuttavia, le informazioni sulla posizione degli ostacoli sono incorporate nel modello addestrato, pertanto è probabile che il modello sia sovraadattato, pertanto potrebbe non riconoscere altri ostacoli posizionati diversamente. Con oggetti fissi in posizioni casuali o altri veicoli in movimento sul binario, è improbabile che il modello converga.

Nel mondo reale, il DeepRacer veicolo AWS è dotato di una fotocamera frontale a obiettivo singolo come sensore predefinito. La telecamera ha un obiettivo grandangolare di 120 gradi e acquisisce immagini RGB che vengono poi convertite in immagini in scala di grigi di 160 x 120 pixel a 15 fotogrammi al secondo (fps). Queste proprietà del sensore vengono conservate nel simulatore per aumentare al massimo la possibilità che il modello addestrato si trasferisca bene dalla simulazione al mondo reale.

telecamera stereo frontale

Una telecamera stereo ha due o più obiettivi che catturano immagini con la stessa risoluzione e frequenza. Le immagini provenienti da entrambi gli obiettivi vengono utilizzate per determinare la profondità degli oggetti osservati. Le informazioni di profondità da una telecamera stereo sono preziose per il veicolo ospite, per evitarne schianti contro ostacoli o altri veicoli nella parte anteriore, specialmente in ambienti più dinamici. Tuttavia, le informazioni di profondità aggiunte fanno convergere più lentamente gli addestramenti.

Sul veicolo DeepRacer fisico AWS, la telecamera stereo a doppio obiettivo è costruita aggiungendo un'altra telecamera a obiettivo singolo e montando ciascuna telecamera sui lati sinistro e destro del veicolo. Il DeepRacer software AWS sincronizza le acquisizioni di immagini da entrambe le fotocamere. Le immagini acquisite vengono convertite in scala di grigi, impilate e inserite nella rete neurale per l'inferenza. Lo stesso meccanismo è duplicato nel simulatore per addestrare il modello ad ben adattarsi in un ambiente reale.

Sensore LiDAR

Un sensore LiDAR utilizza laser rotanti per inviare impulsi di luce al di fuori dello spettro visibile e programma il tempo che ogni impulso impiegherà per tornare indietro. La direzione e la distanza degli oggetti colpiti da un impulso specifico vengono registrati come punto in una grande mappa 3D centrata attorno all'unità LiDAR.

Ad esempio, LiDAR aiuta a rilevare i punti ciechi del veicolo ospite per evitare collisioni mentre il veicolo cambia corsia. Combinando LiDAR con telecamere mono o stereo, si consente al veicolo ospite di acquisire informazioni sufficienti per intraprendere azioni appropriate. Tuttavia, un sensore LiDAR costa di più rispetto alle telecamere. La rete neurale deve imparare a interpretare i dati LiDAR. Pertanto, gli addestramenti richiedono più tempo per convergere.

Sul veicolo DeepRacer fisico AWS un sensore LiDAR è montato sul retro e inclinato verso il basso di 6 gradi. Ruota alla velocità angolare di 10 rotazioni al secondo e ha una portata da 15 cm a 2 m. È in grado di rilevare oggetti dietro e accanto al veicolo ospite, nonché oggetti alti che non ostacolano le parti del veicolo sul davanti. L'angolo e l'intervallo sono scelti per rendere l'unità LiDAR meno suscettibile al rumore ambientale.

Puoi configurare il tuo DeepRacer veicolo AWS con la seguente combinazione di sensori supportati:

  • Solo telecamera frontale con obiettivo singolo.

    Questa configurazione è utile per le prove a tempo, così come per evitare ostacoli con oggetti in posizioni fisse.

  • Solo telecamera stereo frontale.

    Questa configurazione è utile per evitare gli ostacoli con oggetti in posizioni fisse o casuali.

  • telecamera frontale con lente singola con LiDAR.

    Questa configurazione è utile per evitare gli ostacoli o head-to-bot correre.

  • telecamera stereo frontale con LiDAR.

    Questa configurazione è utile per evitare gli ostacoli o head-to-bot correre, ma probabilmente non è la più economica per le prove a cronometro.

Man mano che aggiungi altri sensori per far sì che il tuo DeepRacer veicolo AWS passi dalle prove cronometrate alla prevenzione degli oggetti alle head-to-bot corse, il veicolo raccoglie più dati sull'ambiente da inserire nella rete neurale sottostante durante l'allenamento. Questo rende l'addestramento più impegnativo perché il modello è necessario per gestire maggiori complessità. Alla fine, le attività di apprendimento per l'addestramento dei modelli diventano più impegnative.

Per imparare progressivamente, dovresti iniziare ad allenarti per le prove a cronometro prima di passare all'evitamento degli oggetti e poi alla head-to-bot corsa. Troverai consigli più dettagliati nella prossima sezione.

Configura l'agente per addestrare i DeepRacer modelli AWS

Per addestrare un modello di reinforcement learning affinché il DeepRacer veicolo AWS possa correre per evitare ostacoli o head-to-bot gareggiare, devi configurare l'agente con i sensori appropriati. Per semplici prove a tempo, è possibile utilizzare l'agente predefinito configurato con una telecamera a obiettivo singolo. Nella configurazione dell'agente è possibile personalizzare lo spazio di azione e scegliere una topologia di rete neurale in modo che funzioni meglio con i sensori selezionati per soddisfare i requisiti di guida previsti. Inoltre, è possibile modificare l'aspetto dell'agente per l'identificazione visiva durante l'addestramento.

Una volta completata, la configurazione dell'agente viene registrata come parte dei metadati del modello per l'addestramento e la valutazione. Per la valutazione, l'agente recupera automaticamente la configurazione registrata per utilizzare i sensori specificati, lo spazio di azione e la tecnologia di rete neurale.

Questa sezione ti guiderà attraverso le diverse fasi per configurare un agente nella DeepRacer console AWS.

Per configurare un DeepRacer agente AWS nella DeepRacer console AWS
  1. Accedi alla DeepRacerconsole AWS.

  2. Nel riquadro di navigazione principale, scegliere Garage.

  3. Per la prima volta che si utilizza Garage, viene visualizzata la finestra di dialogo WELCOME TO THE Garage (BENVENUTO NEL Garage). Scegli > o < sfoglia l'introduzione ai vari sensori supportati per il DeepRacer veicolo AWS o scegli X per chiudere la finestra di dialogo. Queste informazioni introduttive sono disponibili nel pannello di aiuto in Garage.

  4. Nella pagina Garage, scegliere Build new vehicle (Costruisci nuovo veicolo).

  5. Nella pagina Mod your own vehicle (Mod veicolo) sotto Mod specifications (Specifiche mod), scegliere uno o più sensori per cercare di imparare la combinazione migliore in grado di soddisfare i tipi di corsa previsti.

    Per allenarti per le prove cronometrate dei tuoi DeepRacer veicoli AWS, scegli Camera. Per evitare gli ostacoli o head-to-bot correre, si consiglia di utilizzare altri tipi di sensori. Per scegliere la fotocamera stereo, assicurati di aver acquistato una fotocamera a obiettivo singolo aggiuntiva. AWS DeepRacer realizza la telecamera stereo con due fotocamere a obiettivo singolo. È possibile avere una telecamera a obiettivo singolo o una telecamera stereo a doppio obiettivo su un veicolo. In entrambi i casi, puoi aggiungere un sensore LiDAR all'agente se desideri semplicemente che il modello addestrato sia in grado di rilevare ed evitare i punti ciechi durante la prevenzione degli ostacoli o la head-to-bot corsa.

  6. Nella pagina Garage e in Neural network topologies (Topologie di rete neurale), scegliere una topologia di rete supportata.

    In generale, una rete neurale più profonda (con più strati) è più adatta per guidare su piste più complicate con curve nette e numerosi tornanti, per correre corse a ostacoli stazionari o per competere con altri veicoli in movimento. Ma una rete neurale più profonda è più costosa da addestrare e il modello richiede tempi di convergenza maggiori. D'altra parte, una rete più bassa (con meno strati) costa meno e richiede un tempo di addestramento più breve. Il modello addestrato è in grado di gestire condizioni di pista più semplici o requisiti di guida, come le prove a tempo su una pista senza ostacoli senza concorrenti.

    In particolare, AWS DeepRacer supporta CNN a 3 o CNN a 5 livelli.

  7. Nella pagina Garage scegliere Next (Avanti) per procedere alla configurazione dello spazio di azione dell'agente.

  8. Nella pagina Action space (Spazio di azione), lasciare le impostazioni predefinite per il primo addestramento. Per gli addestramenti successivi, sperimentare diverse impostazioni per l'angolo di sterzata, la velocità massima e le loro granularità. Quindi, seleziona Next (Successivo).

  9. Nella pagina Colora il tuo veicolo per distinguerti dalla folla, inserisci un nome in Dai un nome al tuo DeepRacer, quindi scegli un colore per l'agente dall'elenco dei colori del veicolo. Quindi, scegli Submit (Invia).

  10. Nella pagina Garage, esaminare le impostazioni del nuovo agente. Per apportare ulteriori modifiche, scegliere Mod vehicle (Veicolo mod) e ripetere i passaggi precedenti a partire da Step 4 (Passo 4).

Ora, il tuo agente è pronto per l'addestramento.

Personalizza la DeepRacer formazione AWS per le prove a cronometro

Se è la prima volta che usi AWS DeepRacer, dovresti iniziare con una semplice prova a tempo per acquisire familiarità con come addestrare DeepRacer i modelli AWS per guidare il tuo veicolo. In questo modo, vieni introdotto poco per volta ai concetti di base di funzione di ricompensa, agente, ambiente, ecc. Il tuo obiettivo è quello di addestrare un modello per far rimanere il veicolo in pista e finire un giro il più velocemente possibile. Puoi quindi distribuire il modello addestrato sul tuo DeepRacer veicolo AWS per testare la guida su una pista fisica senza sensori aggiuntivi.

Per addestrare un modello per questo scenario, puoi scegliere l'agente predefinito da Garage sulla DeepRacer console AWS. L'agente predefinito è stato configurato con una singola telecamera frontale, uno spazio di azione predefinito e una topologia di rete neurale predefinita. È utile iniziare ad addestrare un DeepRacer modello AWS con l'agente predefinito prima di passare a quelli più sofisticati.

Per addestrare il modello con l'agente predefinito, seguire i suggerimenti riportati di seguito.

  1. Iniziare ad addestrare il modello con una semplice pista di forme piuttosto regolari e curve più dolci accentuate. Utilizzare la funzione di ricompensa predefinita. Addestrare il modello per 30 minuti. Una volta completato il processo di addestramento, valutare il modello sulla stessa pista per verificare se l'agente può terminare un giro.

  2. Leggere la sezione sui parametri della funzione di ricompensa. Continuare la formazione con diversi incentivi per premiare l'agente quando corre di più. Allungare il tempo di addestramento per il modello successivo a 1-2 ore. Confrontare il grafico delle ricompense tra il primo e il secondo addestramento. Continuare a sperimentare fino a quando il grafico delle ricompense non smette di migliorare.

  3. Ulteriori informazioni sullo spazio di azione. Addestrate il modello per la terza volta aumentando la velocità massima (ad esempio 1 m/s). Per modificare lo spazio di azione, è necessario creare in Garage un nuovo agente, quando si ha la possibilità di apportare la modifica. Quando aggiorni la velocità massima del tuo agente, tieni presente che maggiore è la velocità massima, più velocemente l'agente può completare la pista in fase di valutazione e più velocemente il tuo DeepRacer veicolo AWS può finire un giro su una pista fisica. Tuttavia, una velocità massima più alta spesso significa un tempo più lungo per la convergenza dell'addestramento perché l'agente ha maggiori probabilità di sbagliare una curva e quindi di uscire di pista. Potrebbe essere utile ridurre le granularità per dare all'agente più possibilità di accelerare o decelerare e modificare ulteriormente la funzione di ricompensa in altri modi affinché l'addestramento converga più velocemente. Dopo la convergenza dell'addestramento, valuta il 3° modello per vedere se il tempo sul giro migliora. Continua a esplorare fino a quando non ci sono ulteriori miglioramenti.

  4. Scegli una traccia più complicata e ripeti da Step 1 (Passo 1) a Step 3 (Passo 3). Valuta il tuo modello su una traccia diversa da quella utilizzata per l'addestramento, per vedere come il modello può generalizzarsi in diverse tracce virtuali e generalizzarsi in ambienti reali.

  5. (Facoltativo) Prova utilizzando diversi valori per gli iperparametri per migliorare il processo di addestramento, poi ripeti da Step 1 (Passo 1) a Step 3 (Passo 3).

  6. (Facoltativo) Esamina e analizza DeepRacer i log di AWS. Per un codice di esempio che puoi usare per analizzare i log, consulta https://github.com/aws-samples/aws-deepracer-workshops /tree/master/log-analysis.

Personalizza la DeepRacer formazione AWS per le gare che evitano gli oggetti

Dopo aver acquisito familiarità con le prove a tempo e aver addestrato alcuni modelli convergenti, passa alla prossima sfida più impegnativa: evitare gli ostacoli. Qui, il tuo obiettivo è quello di addestrare un modello, in grado di completare un giro il più velocemente possibile senza andare fuori pista, a non schiantarsi contro gli oggetti posizionati sulla pista. Questo è ovviamente un punto più difficile da imparare per l'agente e l'addestramento richiede più tempo per convergere.

La DeepRacer console AWS supporta due tipi di allenamento per evitare gli ostacoli: gli ostacoli possono essere posizionati in posizioni fisse o casuali lungo la pista. Con posizioni fisse, gli ostacoli rimangono ancorati nello stesso posto durante il lavoro di addestramento. Con posizioni casuali, gli ostacoli cambiano i loro rispettivi posti a caso, da episodio a episodio.

Per gli addestramenti, è più facile convergere per evitare ostacoli fissi perché il sistema ha più vincoli. Tuttavia, i modelli possono essere sovraadattati quando le informazioni sulla posizione sono incorporate nei modelli addestrati. Di conseguenza, i modelli potrebbero essere sovraadattati e quindi non risultare perfettamente idonei. La convergenza negli addestramenti per evitare ostacoli posizionati in modo casuale è più difficile perché l'agente deve continuare a imparare a evitare collisioni con ostacoli in luoghi che non ha mai visto prima. Tuttavia, i modelli addestrati con questa opzione tendono ad adattarsi meglio agli ambienti in generale e ad affrontare bene le corse del mondo reale. Per iniziare, provare con ostacoli in posizioni fisse, acquisire familiarità con i comportamenti, quindi affrontare le posizioni casuali.

Nel DeepRacer simulatore AWS, gli ostacoli sono scatole parallele con le stesse dimensioni (9,5" (L) x 15,25" (L) x 10/5" (A)) della confezione del DeepRacer veicolo AWS. Ciò rende più semplice trasferire il modello addestrato dal simulatore al mondo reale se si posiziona la scatola di imballaggio come un ostacolo sulla pista fisica.

Per sperimentare l'evitamento degli ostacoli, seguire la pratica raccomandata descritta nei passaggi seguenti:

  1. Utilizzare l'agente predefinito o sperimentare nuovi sensori e spazi di azione personalizzando un agente esistente o costruendone uno nuovo. Si dovrebbe limitare la velocità massima al di sotto di 0,8 m/s e la granularità della velocità a 1 o 2 livelli.

    Iniziare con l'addestrare un modello per circa 3 ore con 2 oggetti in posizioni fisse. Utilizzare la funzione di ricompensa di esempio e addestrare il modello sulla pista su cui si correrà o su una pista molto simile a quella della gara. La pista AWS DeepRacer Smile Speedway (Intermediate) è una pista semplice, il che la rende una buona scelta per la preparazione delle gare in vetta. Valutare il modello sulla stessa pista con lo stesso numero di ostacoli. Guardare il modo in cui converge la ricompensa totale prevista.

  2. Leggere la sezione sui parametri della funzione di ricompensa. Provare le variazioni della funzione di ricompensa. Aumentare il numero di ostacoli a 4. Addestrare l'agente per vedere se l'allenamento converge nella stessa quantità di tempo di addestramento. In caso contrario, modificare nuovamente la funzione di ricompensa, abbassare la velocità massima o ridurre il numero di ostacoli e addestrare nuovamente l'agente. Ripetere la sperimentazione fino a quando non vi è alcun miglioramento più significativo.

  3. Ora, passare all'addestramento evitando gli ostacoli in luoghi casuali. Dovrai configurare l'agente con sensori aggiuntivi, disponibili da Garage nella DeepRacer console AWS. È possibile utilizzare una telecamera stereo. Oppure è possibile combinare un'unità LiDAR con una telecamera a obiettivo singolo o una telecamera stereo, ma il tempo di addestramento potrebbe essere più lungo. Imposta lo spazio d'azione a una velocità massima relativamente bassa (ad esempio 2 m/s) affinché l'allenamento converga più rapidamente. Per l'architettura di rete, utilizzare una rete neurale superficiale, che è stata trovata sufficiente per evitare ostacoli.

  4. Iniziare ad addestrare per 4 ore il nuovo agente per evitare ostacoli con 4 oggetti posizionati in modo casuale su una pista semplice. Quindi, valutare il modello sulla stessa pista per vedere se può finire giri con ostacoli posizionati in modo casuale. In caso contrario, modificare la funzione di ricompensa, provare diversi sensori e impostare un tempo di addestramento più lungo. Come altro suggerimento, provare a clonare un modello esistente per continuare l'addestramento per sfruttare l'esperienza acquisita in precedenza.

  5. (Facoltativo) Scegliere una velocità massima più alta per lo spazio di azione oppure posizionare più ostacoli in modo casuale lungo la pista. Provare con diverse combinazioni di sensori e modificare le funzioni di ricompensa e i valori degli iperparametri. Provare la topologia di rete 5-layer CNN (CNN a 5 livelli). Quindi, riqualificare il modello per determinare in che modo influenza la convergenza dell'addestramento.

Personalizza la DeepRacer formazione AWS per le head-to-bot gare

Dopo esserti allenato per evitare gli ostacoli, ora sei pronto per affrontare il prossimo livello di sfida: i modelli di allenamento per head-to-bot le gare. A differenza degli eventi che evitano gli ostacoli, le head-to-bot corse hanno un ambiente dinamico con veicoli in movimento. Il tuo obiettivo è addestrare i modelli per il tuo DeepRacer veicolo AWS per competere con altri veicoli in movimento per raggiungere il traguardo per primo senza andare fuori pista o schiantarsi contro altri veicoli. Nella DeepRacer console AWS puoi addestrare un modello da head-to-bot corsa chiedendo al tuo agente di competere contro 1-4 veicoli bot. In generale, dovrebbero esserci più ostacoli posti su una pista più lunga.

Ogni veicolo bot segue un percorso predefinito a velocità costante. È possibile abilitarlo per cambiare corsia o rimanere sulla corsia di partenza. Come nell'addestramento per l'evitamento degli ostacoli, i veicoli bot possono essere distribuiti uniformemente in tutta la pista su entrambe le corsie. La console ti limita ad avere fino a 4 veicoli bot in pista. Avere più veicoli concorrenti in pista offre all'agente di apprendimento più opportunità di incontrare situazioni più diverse con gli altri veicoli. In questo modo, l'agente impara di più in un lavoro di addestramento e viene addestrato più velocemente. Tuttavia, è probabile che ogni allenamento richieda più tempo per convergere.

Per addestrare un agente con veicoli bot, è necessario impostare la velocità massima dello spazio di azione dell'agente superiore alla velocità (costante) dei veicoli bot in modo che l'agente abbia più opportunità di passaggio durante l'addestramento. Come buon punto di partenza, è necessario impostare la velocità massima dell'agente a 0,8 m/s e la velocità di movimento del veicolo bot a 0,4 m/s. Se si abilitano i bot a cambiare corsia, l'allenamento diventa più impegnativo perché l'agente deve imparare non solo come evitare di schiantarsi contro un veicolo in movimento sulla stessa corsia, ma anche come evitare di schiantarsi contro un altro veicolo in movimento sull'altra corsia. È possibile impostare i bot per cambiare corsie a intervalli casuali. La durata di un intervallo viene selezionata casualmente da un intervallo di tempo (ad esempio da 1 a 5 secondi) specificato prima di iniziare l'attività di formazione. Questo comportamento di cambio di corsia è più simile ai comportamenti di head-to-bot gara del mondo reale e l'agente addestrato dovrebbe generare risultati migliori. Tuttavia, ci vuole più tempo per addestrare il modello a convergere.

Segui questi passaggi suggeriti per ripetere il tuo allenamento per le head-to-bot gare:

  1. In Garage della DeepRacer console AWS, crea un nuovo agente di formazione configurato con telecamere stereo e un'unità LiDAR. È possibile addestrare un modello relativamente buono utilizzando solo la telecamera stereo contro i veicoli bot. LiDAR aiuta a ridurre i punti ciechi quando l'agente cambia corsia. Non impostare la velocità massima su un valore troppo alto. Un buon punto di partenza è 1 m/s.

  2. Per allenarti alle head-to-bot gare, inizia con due veicoli bot. Imposta la velocità di movimento del bot al di sotto della velocità massima del tuo agente (ad esempio 0,5 m/s se la velocità massima dell'agente è 1 m/s). Disabilitare l'opzione di cambio corsia, quindi scegliere l'agente di allenamento appena creato. Utilizzare uno degli esempi di funzioni di ricompensa o apportare modifiche minimamente necessarie, quindi allenarsi per 3 ore. Utilizzare la pista su cui si correrà o una pista molto simile. La pista AWS DeepRacer Smile Speedway (Intermediate) è una pista semplice, il che la rende una buona scelta per la preparazione delle gare in vetta. Al termine dell'addestramento, valutare il modello allenato sulla stessa pista.

  3. Per compiti più impegnativi, clona il tuo modello addestrato per un secondo modello head-to-bot da gara. Procedere a sperimentare con più veicoli bot o abilitare opzioni di cambio corsia. Iniziare con operazioni di cambio di corsia lente a intervalli casuali superiori a 2 secondi. Si possono anche sperimentare funzioni di ricompensa personalizzate. In generale, la logica della funzione di ricompensa personalizzata può essere simile a quella per evitare ostacoli, se non si prende in considerazione un equilibrio tra superare altri veicoli e rimanere in pista. A seconda di quanto è buono il modello precedente, potrebbe essere necessario allenarsi per altre 3 o 6 ore. Valuta i tuoi modelli e scopri come funziona il modello.