Procedurele Content als
Synthetische data voor ai training

Published
juli 8, 2020

Five AI is een bedrijf dat aan oplossingen werkt rond zelfrijdende auto’s. Hiervoor simuleren ze verkeerssituaties aan de hand van synthetische training data. Om de synthetische training data op te bouwen maken ze gebruik van procedurele 3D technieken. Zo hebben ze een systeem opgebouwd met gebruik van Houdini om automatisch correcte straten aan te leggen met de correcte rijvakken en verkeerssignalisaties.

Door virtueel te werken kunnen ze verkeersscenario’s nabootsen die moeilijk te recreëren zijn in de werkelijkheid. Bijvoorbeeld met weinig voorkomende auto’s. Ook kunnen ze virtueel snel verschillende situaties creëren met verschillende weers- of lichtomstandigheden. Met de verkregen beelden (renders) kunnen ze dan een neural netwerk trainen (via deep learning). Maar naast de realistische beelden kan de AI ook getraind worden op beelden die diepte informatie bevatten, deze zijn makkelijker virtueel te genereren dan uren op te nemen.

Dit principe heet structured domain randomization, een korte uitleg hierover kan je in het onderstaande filmpje bekijken.

Een concrete procedurele tool die Five AI gemaakt heeft is er een om een oneindige variatie aan rondpunten te genereren aan de hand van parameters en regels.

Een ander aspect waarbij ze gebruik maken van Houdini is geautomatiseerde asset processing, of het verwerken van allerhande 3D assets die ze van verschillende bronnen verkrijgen om te werken binnen de rest van hun pipeline.

Ze creëren ook modulaire tools om hun development te vergemakelijken. Zo maakten ze bijvoorbeeld een tool om een euler spiral of clothoid te genereren. Deze curves worden gebruikt in wegenbouw om vlotte transities van bijvoorbeeld rotondes naar een rechte baan te bepalen. Daarnaast werkten ze ook rond synthetische lidar data en creërden ze een tool om sensor kalibratie te vergemakkelijken door variaties van lens vervormingen te genereren.

Een vierde aspect waarvan ze gebruik maken is data manipulatie. Dit doen ze vooral aan de hand van Python scripts om de data te importeren en gebruiken dan een Houdini netwerk voor een veelvoud aan visualisaties mogelijkheden. Een voorbeeld van data type is GeoJson binnen een project rond GIS data.

rotonde tool
unstructured domain randomisation

Ze maken ook gebruik van unstructered domain randomization. Hiervoor worden er beelden gegenereerd die voor mensen niet nuttig zijn maar waar de AI wel mee kan trainen. Hiervoor genereren ze bijvoorbeeld afbeeldingen met verschillende 3D objecten in random orientaties en groottes met random textures en belichting. Deze afbeeldingen helpen bij de training vooral om vormen beter te leren herkennen.

De volledige Houdini Hive talk door Sam Swift-Glasman van Five AI kan je hieronder bekijken.