De hersen achter autonome auto's: Hoe AI moderne voertuigen stuurt
Autonome voertuigen (AV's), of zelfs voertuigen met geavanceerde bestuurdersassistentesystemen (ADAS), vertrouwen op data van veel sensoren – meerdere camera's, lidar, radar, en soms zelfs sonar. Het omgaan met de stromen data die van deze array van sensoren komen, is een enorme en tegelijkertijd cruciale taak. Al die data moet in realtime omgezet worden in informatie om veilig de auto te besturen tenminste zo goed als als een perfecte menselijke bestuurder aan het stuur zou zitten. „Op de weg moeten menselijke bestuurders alert zijn op hun huidige omgeving, interageren met andere bestuurders, en beslissingen nemen. Net als menselijke bestuurders, moeten AV's waarnemen, interageren en beslissingen nemen. Bovendien moeten AV's een goede relatie opbouwen met hun passagiers.”1
Deze functies vertrouwen op kunstmatige intelligentie (AI) om de data van de verschillende sensoren te assimileren en te combineren voor een instantane beeld van het voertuig en zijn dynamische omgeving – het proces sensorfusie genoemd. Optimaal voor automotief gebruik, gebruikt de AI diepe neurale netwerken (DNNs). Gemodelleerd op de manier waarop informatie verwerkt wordt door het menselijk brein, leren DNNs hoe ze de echte wereld van rijden door te leren van ervaring, in plaats van door te worden verteld wat te doen door een programmeur. Het DNN werkt door meerdere inputs te accepteren, verschillende gewichten aan toe te kennen en inferenties te trekken. Het vereist een extreem hoogpresterend maar energie-efficiënt computerplatform om al dat in „realtime” te doen. Dit kan versneld worden door een verwerkingsversneller te gebruiken.
AI in actie brengen
Om te leren wat er in een hoogpresterend platform voor automotieve AI zit, interviewde ik Gil Abraham van CEVA, Inc. over hun tools voor het implementeren ervan.
CEVA's Vision and AI Business unit heeft wat Abraham drie pilaren noemt: NeuPro-M, wat de AI-processor is; SensPro, wat een hoogpresterende sensor hub digitale signaalprocessor (DSP) is; en CDNN-Invite software. CDNN-Invite stelt fabricanten in staat hun eigen proprietaire DNN-versnellers in te voeren om samen te werken met CEVA's NeuPro-M AI-processor alsook de SensPro DSP en te genieten van één geünificeerd systeem dat centraal beheerd kan worden door dezelfde geheugen- en flow software development kit (SDK).
De SensPro DSP kan signaalverwerking uitvoeren op inputs van veel verschillende sensoren, inclusief meerdere lidars, radars en camera's en ze convolueren – een proces genaamd sensorfusie, dat de inputs van veel sensoren bijeenbrengt. Dit is cruciaal voor automotief gebruik omdat elke sensor zijn eigen beperkingen heeft.
Bijvoorbeeld:
Camera's kunnen een zeer hoge resolutie hebben zodat ze fijn dettaglio kunnen waarnemen. Maar je hebt meestal meer dan één nodig om voertuigblinde vlekken, achteruitzicht, omgevingszicht, en verschillende frontale camera's met verschillende brandpuntsafstand te dekken. Elke camera levert een aparte datastroom. Ook kunnen camera's niet betrouwbaar functioneren 's nachts of als ze in de zon kijken.
Radar functioneert goed 's nachts en kan afstandsmetingen leveren. Maar het heeft niet een hoge genoeg resolutie om de precieze locatie van een object te perceeren of te onderscheiden tussen meerdere objecten die dicht bij elkaar zijn. Het kan niet-detecteren van stilstaande of langzaam bewegende objecten en kan ook de „semantiek” van de scène niet detecteren: kleur en vorm van objecten – daarvoor heb je camera's nodig.
Lidar fungeert als zijn eigen lichtbron dus het presteert goed zowel in duisternis als daglicht. Het biedt ook snelle en nauwkeurige meetdata met hoge genoeg resolutie voor precieze realtime vrije-ruimte detectie terwijl meerdere objecten binnen een scène getrackt worden. Maar om genoeg lidar-datapunten te hebben heb je vijf of zes van deze dure apparaten op een voertuig gemonteerd nodig.
De SensPro DSP kan inputs van deze, alsook time of flight (ToF) sensoren, inertiële meetunits (IMU's), efficiënt algoritmen verwerken voor gelijktijdige localisatie en mapping (SLAM) en al die gebruikmakend, kan het „contextuele bewustzijn” creëren – een volledig beeld van de situatie van de automobile en zijn omgeving. Je kunt ook een toegewijde instructieset in de hardware toevoegen om extra versnelling van andere specifieke verwerking te krijgen als nodig.
Systeemintegratie
NeuPro-M adres veel van de sleuteluitdagingen van autonome voertuigfuncties inclusief hoge snelheid en lage latentie schaalbare operatie, laag operationeel vermogen, hoge beveiliging, en de mogelijkheid om te voldoen aan de functionele eisen van de ISO 26262 standaard voor veiligheidsgerelateerde elektrische/elektronische systemen in productie-wegvoertuigen. Het is ook schaalbaar, dus bijvoorbeeld kan het gebruikt worden voor enkele sensoren, clusters van sensoren in een zone, of het kan zelfs geïmbedded worden als onderdeel van de motorbesturingseenheid (ECU) van de automobile.
Architectuur van een hoogpresterend Automotief AI-platform
De functie van de CEVA NeuPro-M AI-processor is om hoog-niveau rijbeslissingen te nemen. Deze beslissingen zijn gebaseerd op de DNN-inputs die situatie-informatie leveren, zoals: Zijn er tegenliggende auto's; blijft de automobile in de baan; wat is de absolute locatie (SLAM)?
De NeuPro-M AI-processor is de besluitvormer over welke acties te ondernemen, gegeven de informatie die het ontvangt. AI vereist een massaal aantal berekeningen om beslissingen te nemen, en deze moeten in near-realtime gedaan worden. Het vereist dus een krachtige processor. Voor automotieve toepassingen is het ook nodig om stroomverbruik te minimaliseren – naarmate het aantal berekeningen toeneemt en de tijd om ze uit te voeren afneemt, neemt het verbruikte vermogen toe. De maatstaf voor de prestaties van de processor kan samengevat worden in één getal: tera operaties per seconde per watt (TOPS/watt) – hoe hoger het getal, hoe beter de prestaties. De stroom-efficiëntie van de NeuPro-M is 24 TOPS/watt, wat significant hoger is dan de meeste andere automotieve AI-processoren.
Beveiliging is van het allerbelangrijkste – in feite kun je zeggen dat beveiliging en veiligheid de belangrijkste eisen zijn voor automotieve toepassingen. De AI-processor in een autonoom voertuig is de bestuurder-verantwoordelijke. De neurale netwerken die de AI-verwerking uitvoeren, wijzen gewichten toe aan elk van hun inputs, en die gewichten zijn kwetsbaar voor kwaadwillige manipulatie. Beveiligingssystemen zijn daarom een integraal onderdeel van de processor om te beschermen tegen die aanvallen.
Prestatieoptimalisatie
Voor het optimaliseren van prestaties is het belangrijk om te realiseren dat ongeacht hoe snel de processor is, het systeem in een knelpunt kan lopen door bandbreedtebeperkingen op de beweging van informatie naar de processor, primair vanwege systeem-interfacebeperkingen in termen van geheugen. De berekeningseenheden werken veel sneller dan de tijd die het kost om de enorme hoeveelheden data op te slaan en op te halen om de geheugen te informeren. Een manier om dit aan te pakken is door een continue stroom data naar de processor te sturen in plaats van te wachten op voldoende informatie om een bepaalde berekening uit te voeren.
Een andere manier waarop prestaties geoptimaliseerd kunnen worden is om adaptief te zijn – een modulair adaptieve topologie te gebruiken. De processor-topologieën kunnen geoptimaliseerd worden voor het verwerken van verschillende typen sensoren en het uitvoeren van verschillende typen operaties. Één functie kan bijvoorbeeld zijn om de aandrijvingsefficiëntie te optimaliseren, wat veel wiskunde vereist, of aan de andere kant kan het gewoon een enkele sensor verwerken.
Als je iets heel nauwkeurig moet berekenen, kun je drijvende-komma-arithmetiek gebruiken in plaats van vast-komma, binnen een vectorprocessor. Een andere manier om bandbreedtereductie aan te pakken, is om de data te comprimeren, zodat je niet al hoeft te verplaatsen in het systeem. Dit zijn software-fixes, maar je moet ook kijken naar het optimaliseren van de DSP's en de AI-processor, door een diepe duik te maken om alle knelpunten in elk van deze gebieden aan te pakken.
Parallelle verwerking
De NeuPro-M (NPM) processor heeft drie delen (Zie Figuur 2): De master controller; de NPM common subsystem; en de NPM engine. De processor kan overal van één tot acht engines bevatten, die geselecteerd kunnen worden om de behoeften van een bepaalde toepassing te voldoen. De processor-operatie kan geschaald worden door het aantal engines te kiezen. „Dat is hoe je steeds meer kracht krijgt,” zei Abraham.
De NPM common subsystem staat in constante communicatie met de NPM engine. Dat kanaal wordt gemonitord om ervoor te zorgen dat het geen knelpunt wordt – om ervoor te zorgen dat data blijft instromen in het systeem. De infererende AI draait met twee datasets: de data zelf, misschien een afbeelding; en het gewicht, wat toegepast wordt op de data om de inferentie te doen. De common subsystem houdt het kanaal open door compressie toe te passen op zowel de data als de gewichten.
Parallelle verwerking kan geïmplementeerd worden zowel door meerdere engines te gebruiken als door de coprocessoren binnen de engines, elk bevattend vijf coprocessoren en een gedeeld intern geheugen.
Voorbeeld – Een voertuig besturen met een Vier-Engine NPM
Figuur 3 illustreert een eenvoudige automotieve toepassing van parallelle verwerking. De linkerkant van de figuur toont een afbeelding van de weg, vastgelegd door een frontale camera. Een processor binnen het voertuig blokkeert de tegenoverliggende baan om de berekeningen nodig om het voertuig gecentreerd op zijn kant van de weg te houden te vereenvoudigen en slaat de afbeelding op in het geheugen. De opgeslagen afbeelding is input vanuit het geheugen van het voertuig naar de NPM common subsystem, die in dit voorbeeld vier engines dient. De software besluit dan wat de use case is – wat nodig is – en hoe de afbeelding verdeeld moet worden om maximale prestaties met minimum vermogen (hoge benutting) voor de gewenste functie te bereiken. In dit geval deelt de NPM de afbeelding in vier delen, met enige overlap, en elk deel wordt naar een andere engine gestuurd. De AI-inferentie wordt dan op elk van de vier segmenten van de weg uitgevoerd. De vier segmenten worden dan weer samen gesticht in het subsystem-geheugen, waaruit het uitgevoerd wordt naar de perceptielaag elders in de SoC, voor het uitvoeren van de gewenste taken.
Dit voorbeeld illustreert de twee niveaus van parallelle verwerking, één door de vier engines te gebruiken om op verschillende segmenten van de afbeelding te werken en binnen elke engine, parallelle verwerking door de berekeningen te delen over de vijf interne coprocessoren.
Optimalisatie via software
AI fungeert voornamelijk door convolutie, wat een wiskundige operatie is op twee functies die een derde functie produceren die uitdrukt hoe de vorm van de ene gewijzigd wordt door de ander. De wiskundige Shmuel Winograd innoveerde een nieuwe methode om convolutie in de helft van het gebruikelijke aantal stappen te doen. CEVA implementeerde dit theoretische idee in hun processoren om dezelfde precisie te bereiken als met normale convolutie bereikt zou zijn, maar met een bijna 2x versnelling – een prestatiewinst met een reductie in vermogen. Dit kan in elk van de vijf coprocessoren binnen de engine gedaan worden.
Een andere truc is om anders te opereren op verschillende datatypen, afhankelijk van wat optimaal zou zijn voor een bepaalde toepassing. Bijvoorbeeld, gelijktijdige lokalisatie en mapping (SLAM), vereist zeer hoge nauwkeurigheid dus moet je drijvende-komma-arithmetiek gebruiken. Voor andere toepassingen zou een vast aantal bits perfect zijn. Op deze manier kan de automobiel fabrikant de berekeningsmethode kiezen die het beste werkt voor elke functie binnen het voertuig.
Door zowel software-manipulatie als hardware-optimalisatie te gebruiken, kun je significante versnelling bereiken – tot 16x met NeuPro-M volgens Abraham.
Samenvatting
Dit was een overzicht van de interne werking van een bepaalde AI-processor terwijl het data van een verscheidenheid aan sensoren verwerkt – radar, lidar, sonar, camera's – en beslissingen neemt. De NPM is een heterogene processor – het kan opereren op verschillende datatypen en zijn operatie optimaliseren gemeten in TOPS/watt door twee niveaus van parallelle verwerking alsook gerichte ontwerp van de software.
- Fang Chen, PhD, SAE Edge Research Report — Onopgeloste Kwesties in Voertuigautonomie, Kunstmatige Intelligentie, en Mens-Machine-Interactie.
Dit artikel is geschreven door Ed Brown, Editor of Sensor Technology. Voor meer informatie, contacteer Ed op dit e-mailadres wordt beschermd tegen spambots. Je hebt JavaScript nodig om het te kunnen zien. of bezoek hier .
Sensor
- AI-gestuurde Robotica: High-tech Intelligente Machines
- AI, ML en Deep Learning uitgelegd: cruciale verschillen en werking
- AI-assistenten Transformeren de Reisindustrie: De Intelligente Oplossingen van Morgen Omarm
- Hoe Sensoren Productie-efficiëntie en Inzicht Transformeren
- AI: De voornaamste verdediging tegen cyberdreigingen
- Big Data vs AI: Synergie achter digitale transformatie
- Hoe AI de productie en bewerking revolusionceert: inzichten van Matt Danford
- Kunstmatige Intelligentie in Detailhandel: Bewezen Voordelen, Geen Hype
- Hoe Artificiële Intelligentie de Kracht van het Internet of Things Versterkt
- Hoe AI het Internet of Things-landschap transformeert
- De beste AI-toepassingen ontdekken: efficiëntie en innovatie maximaliseren