Snabbare design av system för bildigenkänning med RZ/V2-seriens MPU:er från Renesas

Av Jacob Beningo

Bidraget med av DigiKeys nordamerikanska redaktörer

Eftersom bildigenkänning i molnkanten blir en allt viktigare funktion i många produkter, har maskininlärning (ML) och artificiell intelligens (AI) blivit en del av en stor mängd tillämpningar. Problemet för utvecklarna är att maskininlärning och AI-aktiverad bildbehandling kan kräva mer datorkraft för att köra igenkänningsalgoritmerna än vad som finns tillgängligt i tillämpningar med begränsad effekt. Det ökar också kostnaderna om det krävs dyra lösningar för värmehantering.

Målet för ML/AI i molnkanten är att hitta den optimala arkitekturen som balanserar prestanda och kraft, samtidigt som den tillhandahåller ett robust ekosystem med programvaror där tillämpningen kan utvecklas.

Med dessa förutsättningar i åtanke presenterar artikeln en lösning i form av mikroprocessorserien RZ/V2 (MPU) med inbyggd AI-hårdvaruaccelerator från Renesas Electronics. Artikeln undersöker hur en MPU, snarare än en microocontroller (MCU) eller högeffektiv grafikprocessor (GPU), kan lösa flera av de problem som konstruktörer ställs inför. En beskrivning av hur de kan börja konstruera bildigenkänningssystem med RZ/V2-serien ingår, tillsammans med några "tips och tricks" för att underlätta processen.

Introduktion till MPU:erna i RZ/V2-serien

RZ/V2-serien är en lösning som öppnar många möjligheter för utvecklare som använder en mikroprocessor med tre kärnor. Mikroprocessorerna i RZ/V2L-serien innehåller två Arm Cortex-A55 processorer med en hastighet på 1,2 GHz och en microcontrollerkärna i realtid (Arm® Cortex®-M33) med en hastighet på 200 MHz. Dessutom innehåller delarna i serien en grafikprocessor baserad på en Arm Mali-G31 multimediaprocessor med NEON-instruktioner för SIMD-instruktioner (single instruction/multiple data). Kombinationen av dessa tre processorkärnor och multimediaprocessorn ger en väl avvägd lösning för utvecklare som arbetar med system för bildigenkänning.

Det finns för närvarande två MPU-modeller i serien RZ/V2, modellen RZ/V2L och modellen RZ/V2M. RZ/V2L har en enkel bildsignalprocessor (ISP), en 3D-grafikmotor och en mycket mångsidig uppsättning kringutrustning. RZ/V2M har istället en högeffektiv ISP med stöd för 4K-upplösning och 30 bilder per sekund (bps). Artikeln fokuserar på familjen RZ/V2L, som består av R9A07G054L23GBG och R9A07G054L24GBG. Den största skillnaden mellan de två komponenterna är att R9A07G054L23GBG levereras i en 15 mm2 456-LFBGA kapsling, medan R9A07G054L24GBG levereras i en 21 mm2 551-LFBGA kapsling.

Blockdiagrammet för RZ/V2L-serien visas i figur 1. Förutom de tre processorkärnorna innehåller MPU:erna gränssnitt för standardkringutrustning som DDR3/DDR4-minne, SPI, USB, Ethernet, I²C, CAN, SCI, GPIO och en analog-till-digitalomvandlare (ADC). Komponenterna innehåller dessutom säkerhetsfunktioner som säker uppstart, en kryptomotor och en TRNG-generator (äkta slumptalsgenerator). Det som skiljer MPU-serien åt är dock AI-acceleratorn med DRP (Dynamically Reconfigurable Processor).

Diagram över MPU-serien RZ/V2L från Renesas (klicka för att förstora)Figur 1: MPU-serien RZ/V2L har stöd för olika kringutrustningars gränssnitt, säkerhet och videobearbetningsalternativ. Den kritiska funktionen för tillämpningar med bildigenkänning är DRP-AI acceleratorn. (Bildkälla: Renesas Electronics Corporation)

DRP-AI acceleratorns hemlighet

DRP-AI acceleratorn är den hemliga beståndsdel som gör att MPU:erna i RZ/V2L-serien kan köra bildigenkänningstillämpningar snabbt, med mindre energiförbrukning och en lägre värmeprofil. DRP-AI består av två komponenter: en DRP och en AI-multiplicera-och-ackumulera (MAC), som kan bearbeta operationer i konvolutionella nätverk och alla kombinationslager effektivt, genom att optimera dataflödet med interna switchar (figur 2).

Hårdvaran DRP-AI är avsedd för utförande av AI-slutsatser. DRP-AI använder en unik dynamisk omkonfigurerbar teknik som utvecklats av Renesas och som ger flexibilitet, behandling i hög hastighet och energieffektivitet. Med översättaren för DRP-AI, som är ett kostnadsfritt programverktyg, kan användare dessutom implementera optimerade AI-modeller som snabbt maximerar prestandan. Flera körbara filer som produceras av översättaren för DRP-AI kan placeras i externt minne. Tillämpningen kan sedan växla dynamiskt mellan flera AI-modeller under körningen.

DRP kan snabbt bearbeta komplicerade aktiviteter, som t.ex. förbehandling av bilder och AI-modeller, genom att dynamiskt ändra hårdvarukonfigurationen.

Diagram över Renesas DRP-AI som består av en DRP och en AI-MAC.Figur 2: DRP-AI består av en DRP och en AI-MAC, som tillsammans kan utföra åtgärder i konvolutionella nätverk och helkombinerade lager effetivt, genom att optimera dataflödet med interna switchar. (Bildkälla: Renesas Electronics Corporation)

Översättaren för DRP-AI

Översättningsverktyget för DRP-AI genererar körbara filer som är optimerade för DRP-AI från upplärda ONNX-modeller, oberoende av AI-ramverket. En utvecklare kan till exempel använda PyTorch, TensorFlow eller något annat ramverk för AI-modellering bara det matar ut en ONNX-modell. När modellen har lärts upp, matas den in i översättaren för DRP-AI, som genererar körbara DRP- och AI-MAC-filer (figur 3).

Diagram över AI-modeller som lärs upp med hjälp av valfritt ONNX-kompatibelt ramverk.Figur 3: AI-modeller lärs upp med hjälp av valfritt ONNX-kompatibelt ramverk.. ONXX-modelen matas sedan in i översättaren för DRP-AI, som genererar körbara DRP- och AI-MAC. (Bildkälla: Renesas Electronics Corporation)

Översättaren för DRP-AI har tre huvudsakliga syften:

  1. Schemaläggning av respektive åtgärd för att bearbeta AI-modellen.
  2. Gömma generell aktivitet, som t.ex. tid för minnesåtkomst som uppstår vid varje åtgärds övergång i schemat.
  3. Optimering av nätverksdiagrammets struktur.

Översättaren tilldelar automatiskt respektive process i AI-modellen till AI-MAC och DRP, vilket gör att användaren enkelt kan använda DRP-AI utan att behöva vara hårdvaruexpert. Utvecklaren kan istället göra anrop via den medföljande drivrutinen för att köra den högeffektiva AI-modellen. Översättaren för DRP-AI kan dessutom uppdateras kontinuerligt för att stödja nyutvecklade AI-modeller utan ändringar av hårdvaran.

Systemanvändningsfall och processer

Det allmänna processflödet för att använda MPU:erna RZ/V2L för att lära upp och använda tillämpningar för bildigenkänning visas i figur 4. Som vanligt kan ingenjörer hämta sina datauppsättningar och använda dessa för att lära upp sin modell för bildigenkänning. Oavsett om de försöker identifiera katter, en produkt i en kundvagn eller delar som inte fungerar på ett löpande band, kommer inlärningsprocessen att ske med hjälp av välkända ramverk för AI. När modellen har lärts upp konverteras den till ONNX-format och matas in i översättaren för DRP-AI som i sin tur genererar objektkod som kan köras på hårdvaran för DRP-AI. Information från kameror, accelerometrar eller andra sensorer samplas sedan och matas in i programmen, vilket ger resultatet av att köra slutsatsen.

Bild på inlärning och körning av en algoritm för bildigenkänningFigur 4: Processen för att lära in och köra en algoritm för bildigenkänning på MPU:erna RZ/V2L. (Bildkälla: Renesas Electronics Corporation)

Det finns flera sätt för ingenjörer att utnyttja MPU:erna RZ/V2L i sina konstruktioner (figur 5). För det första kan MPU:erna RZ/V2L användas i fristående konstruktioner där RZ/V2L är den enda processorn i systemet. Med sina tre kärnor och maskinvara för AI-acceleration behövs kanske inte ytterligare datorkraft.

Det andra användningsfallet är när RZ/V2L används som en AI-processor i ett mer omfattande system. I det här användningsfallet kör RZ/V2L AI-slutsatserna och returnerar ett resultat till en annan processor eller ett annat system som sedan agerar på resultatet. Vilket användningsfall som väljs beror på olika faktorer, t.ex. kostnad, övergripande systemarkitektur, prestanda och krav på realtidssvar.

Diagram över två användningsområden för MPU:erna RZ/V2L från RenesasFigur 5: De två användningsområdena för MPU:erna RZ/V2L är att använda dem fristående i ett program eller som en AI-processor i ett mer omfattande system. (Bildkälla: Renesas Electronics Corporation)

Exempel på tillämpningar i verkligheten

Det finns många användningsområden där teknik för bildigenkänning kan användas. Ett intressant exempel är i snabbköpet. När man går genom kassan i livsmedelsbutik idag så skannar en anställd eller en kund vanligtvis alla varor i kundvagnen. Ett intressant användningsfall skulle kunna vara att med hjälp av bildigenkänning upptäcka de produkter som transporteras av transportbandet och automatiskt ta betalt för dem.

En prototyp kan byggas med hjälp av en enkel CMOS-kamera och utvärderingskortet RTK9754L23S01000BE från Renesas (figur 6). Det inbyggda utvecklingskortet RZ/V2L har ett system på en modul (SOM) och ett grundkort som gör att utvecklare snabbt kan komma igång. Utvecklingskortet har dessutom stöd för Linux och olika verktyg som översättaren för DRP-AI.

Bild på det inbyggda utvecklingskortet för RZ/V2L från RenesasFigur 6: Det inbyggda utvecklingskortet RZ/V2L har ett system på en modul (SOM och ett grundkort som gör att utvecklare snabbt kan komma igång. (Bildkälla: Renesas Electronics Corporation)

En driftöversikt över vad som krävs för att samla in bilddata och producera ett AI-resultat visas i figur 7. I det här tillämpningsexemplet tas bilder av transportbandet med hjälp av en CMOS-sensor via den inbyggda ISP:n. Därefter sparas bilden i minnet och matas in i DRP-AI-motorn. Slutligen drar DRP-AI-motorn en slutsats och tillhandahåller ett AI-resultat. Resultatet kan till exempel vara att en banan hittas, eller ett äpple, eller någon annan frukt.

Resultatet åtföljs ofta av en förtroendenivå på 0-1. Exempelvis innebär ett förtroende på 0,90 att AI:n är säker på att den har upptäckt ett äpple. Å andra sidan kan ett förtroende på 0,52 betyda att AI:n tror att det är ett äpple men är osäker. Det är inte ovanligt att man tar ett AI-resultat och skapar ett genomsnitt av det över flera prover för att öka chanserna för korrekta resultat.

Diagram över det inbyggda utvecklingskortet för RZ/V2L från RenesasFigur 7: Det inbyggda utvecklingskortet RZ/V2L används för att köra en AI-slutsats som känner igen olika frukter på ett transportband. Figuren visar de steg som krävs för att ta en bild och producera ett AI-resultat. (Bildkälla: Renesas Electronics Corporation)

I exemplet ritas slutligen en ruta ut runt det upptäckta föremålet och namnet på det igenkända föremålet visas tillsammans med tillitsnivån (figur 8).

Exempel på utdata från RZ/V2L från RenesasFigur 8: Exempel på utdata från RZ/V2L i en tillämpning som känner av frukt och grönsaker på ett transportband. (Bildkälla: Renesas Electronics Corporation)

Tips och tricks för att komma igång med RZ/V2L

Utvecklare som vill komma igång med maskininlärning på MPU:erna RZ/V2L från Renesas kommer att upptäcka att de har många resurser att dra nytta av för att komma igång. Här följer flera "tips och tricks" som utvecklare bör ha i åtanke för att förenkla och påskynda utvecklingen:

  • Börja med ett utvecklingskort och de befintliga exemplen för att få en känsla av hur man distribuerar och kör ett program.
  • Om det är nödvändigt att utföra flera slutsatser, spara de körbara modellerna i externt minne och använd funktionerna för DRP-AI för att snabbt växla mellan modellerna.
  • Läs dokumentationen och videorna på Renesas webbplats för RZ/V inbäddade AI-MPU:er.
  • Ladda ner Översättaren för DRP-AI.
  • Ladda ner stödpaketet för DRP-AI i RZ/V2L.

Utvecklare som följer dessa "tips och tricks" kommer att spara en hel del tid och frustration när de ska komma igång.

Sammanfatttning

ML och AI håller på att ta sig in i många avancerade tillämpningar, och förmågan att känna igen objekt i realtid blir allt viktigare. För konstruktörer handlar det om att hitta rätt arkitektur för att dra slutsatser i resursbegränsade miljöer. GPU:er tenderar att förbruka mycket ström, medan MCU:er kanske inte har tillräcklig beräkningskraft.

Som framgår har MPU-serien RZ/V med DRP-AI från Renesas flera fördelar, t.ex. maskinvaruaccelererad AI, tillsammans med en omfattande verktygskedja och stöd för prototypframställning.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Om skribenten

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo är konsult inom inbäddad programvara. Han har publicerat över 200 artiklar om utveckling av inbäddad programvara, och är en eftertraktad talare och teknisk utbildare med tre examina, däribland en master i teknik från University of Michigan.

Om utgivaren

DigiKeys nordamerikanska redaktörer