Nel contesto delle intelligenze artificiali, il termine “Procedural Generation” si riferisce a una tecnica o un approccio utilizzato per generare automaticamente contenuti o dati in modo procedurale, piuttosto che crearli manualmente o staticamente. La generazione procedurale è un po’ una “nuova frontiera” rispetto all’uso dei “classici” modelli generativi capaci di creare testi, immagini e suoni. Nella Procedural Generation, invece di progettare e creare manualmente ogni singolo elemento o dato, si sviluppano algoritmi o modelli che generano in modo dinamico e casuale una varietà di elementi, come immagini, livelli di gioco, ambienti virtuali, musica, personaggi, storie e altro ancora.
I meccanismi di generazione procedurale permettono di creare una vasta quantità di contenuti in modo rapido ed efficiente, evitando la necessità di creare manualmente ogni singolo elemento. Possono inoltre offrire una maggiore varietà e diversità nelle esperienze generate, rendendo ogni istanza unica o personalizzata. La Procedural Generation può consentire di creare mondi o ambienti dinamici che possono essere esplorati e adattati in modo interattivo.
Infinigen: generazione procedurale di scene 3D. Infiniti mondi sotto i nostri occhi
I ricercatori e gli sviluppatori del Princeton Vision & Learning Lab hanno presentato Infinigen, uno strumento che utilizza proprio la generazione procedurale per creare esperienze sempre diverse. Il progetto è stato sviluppato per la ricerca sulla visione artificiale ed è in grado di generare ampi set di dati 3D.
Basato su Blender, Infinigen è gratuito, open source ed è interamente procedurale. Ciò ogni risorsa, dalle forme alla texture, è generata da zero attraverso regole matematiche randomizzate, senza utilizzare fonti esterne. Lo schema adottato consente variazioni e composizioni infinite. Infinigen supporta oggetti e scene del mondo naturale, tra cui piante, animali, terreni e fenomeni naturali come fuoco, nuvole, pioggia e neve. Le abilità di Infinigen saranno estese nel corso del tempo per generare oggetti architetturali e artificiali.
Geometria reale e annotazioni automatiche
Gli ideatori di Infinigen puntualizzano che la loro “creatura” non si serve di tecniche note per alterare i dettagli geometrici (bump/normal-maps, full-transparency,…). Tutti i dettagli resi da Infinigen sono invece reali assicurando la massima aderenza al reale di ciascun oggetto generato in 3D.
Il software sviluppato nei laboratori accademici della Princeton, inoltre, può generare annotazioni di alta qualità in modo automatizzato. Si tratta di un aspetto particolarmente utile per le successive elaborazioni, ad esempio in ambito computer vision. Inoltre, ciascuna annotazione risulta facilmente personalizzabile.
Il materiale prodotto con Infinigen può essere sfruttato per generare dati di addestramento illimitati e diversificati da impiegare per un ampio ventaglio di compiti basati sulla visione computerizzata, tra cui rilevamento di oggetti, segmentazione semantica, flusso ottico e ricostruzioni 3D.
Come scaricare e utilizzare Infinigen
Il sito ufficiale descrive il funzionamento e le finalità di Infinigen mentre su GitHub è possibile trovare il codice sorgente e le istruzioni per l’installazione e l’utilizzo in proprio.
I ricercatori della Princeton fanno presente di aver testato la piattaforma con successo su Ubuntu 22.04.2 LTS utilizzando schede grafiche basate su GPU NVidia GTX-1080, RTX-2080, RTX-3090, RTX-4090 (Driver 525, CUDA 12.0). Sono state effettuate delle prove anche con la sola CPU. I sistemi disponevano almeno di 16 GB di memoria RAM. Infigen può funzionare anche sulle macchine macOS Monterey e Ventura basate su Apple M1 Pro e 16 GB RAM.
Infinigen può essere anche provato su WSL, il Sottosistema Windows per Linux integrato in Windows 10 e Windows 11 che permette di eseguire Linux in Windows.
Le istruzioni che seguono permettono di clonare il repository Git di Infinigen, creare un ambiente virtuale con Conda quindi installare il progetto:
git clone https://github.com/princeton-vl/infinigen.git cd infinigen conda create --name infinigen python=3.10 conda activate infinigen bash install.sh
Il documento tecnico elaborato dai ricercatori della Princeton, spiega invece nel dettaglio l’approccio utilizzato per lo sviluppo di Infinigen.