Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

reTerminal Machine Learning-demo's (Edge Impulse en Arm NN)

8 GB RAM 32 GB eMMC Raspberry Pi CM-ontwikkelbord met touchscreen en veel interfaces.

Verhaal

De laatste paar artikelen die ik heb gepubliceerd, gingen over TinyML met Wio Terminal - een op Cortex M4F gebaseerd ontwikkelbord met een LCD-scherm in een stevige plastic behuizing. Seeed studio, het bedrijf zorgde ervoor dat Wio Terminal besloot om dit idee een stap verder te brengen en heeft onlangs reTerminal aangekondigd - een op Raspberry Pi 4 Compute Module gebaseerd ontwikkelbord met een lcd-scherm in een stevige plastic behuizing.

Ik heb een van de reTerminals in handen gekregen en heb een korte unboxing-video gemaakt, die ook een paar demo's en een uitleg van mogelijke use-cases voor het apparaat bevatte. Het artikel is bedoeld als aanvulling op de video en gaat in op het instellen van de omgeving en het uitvoeren van demo's voor machine learning.

Specificaties

reTerminal wordt aangedreven door een Raspberry Pi Compute Module 4 (CM4) met Quad-core Cortex-A72 CPU op 1,5 GHz. De versie van de CM4-module die voor reTerminal wordt gebruikt, heeft 4 Gb RAM en 32 Gb eMMC-opslag, wat de opstarttijd verkort en de algehele gebruikerservaring soepeler maakt. Qua randapparatuur is er een 5-inch IPS capacitief multi-touchscreen met een resolutie van 1280 x 720, versnellingsmeter, RTC-module, zoemer, 4 knoppen, 4 LED's en een lichtsensor. En voor connectiviteit heeft het nieuwe bord dual-band 2,4 GHz/5 GHz wifi en Bluetooth 5.0 BLE, plus een gigabit Ethernet-poort aan de zijkant.

reTerminal kan worden gevoed door dezelfde voeding die wordt gebruikt voor Raspberry Pi 4, 5V2A, maar in de officiële beschrijving wordt een 4A-voeding aanbevolen, vooral wanneer u meer randapparatuur aansluit. Voor de demo's heb ik een doorsnee onbekende 5V2A-stekkervoeding van het bedrijf gebruikt en kreeg ik geen waarschuwing voor onderspanning. Dat gezegd hebbende, gebruik bij twijfel 5V4A.

ReTerminals worden standaard geleverd met een vooraf geïnstalleerd 32-bits Raspbian-besturingssysteem, met geïnstalleerde apparaatstuurprogramma's. Omdat voor machine learning-toepassingen een 64-bits besturingssysteem echter een aanzienlijke boost kan geven, zal Seeed studio ook een 64-bits versie van de Raspbian OS-image leveren met vooraf geïnstalleerde reTerminal-specifieke stuurprogramma's.

Een ingebouwd schermtoetsenbord en een eenvoudige QT5-demo zijn ook inbegrepen. Touchscreen is responsief, maar aangezien Raspbian OS geen mobiel besturingssysteem is en niet geoptimaliseerd voor touchscreens, kan het soms een beetje lastig zijn om op kleinere UI-elementen te drukken. Het hebben van een stylus helpt enorm.

Het ingebouwde schermtoetsenbord verschijnt wanneer u de tekst moet typen en verdwijnt daarna. U kunt dat gedrag wijzigen in de instellingen. Het is dus mogelijk om reTerminal als draagbare Raspberry Pi te gebruiken, hoewel je daarvoor misschien een ander besturingssysteem wilt bekijken, bijvoorbeeld Ubuntu touch, dat werkt met Raspberry Pi 4, maar zich momenteel in de bètafase bevindt en zeer experimenteel is. De belangrijkste use case voor reTerminal is het weergeven van gebruikersinterfaces gemaakt met QT, LVGL of Flutter. Laten we een voorbeeld-QT-toepassing starten, die apparaatspecificaties en parameters, gegevens van sensoren en een voorbeeld van een besturingskaart voor een denkbeeldige fabriek toont. Als de interface-elementen groot zijn, is het aanraakscherm prettig in het gebruik.

Edge Impulse-objectdetectie

We gaan gebruik maken van de nieuwste functie van het Edge Impulse-ontwikkelingsplatform, ondersteuning voor Linux-implementatie. We kunnen eenvoudig een objectdetectiemodel trainen door monsters te verzamelen met een camera die is aangesloten op reTerminal, vervolgens trainen in de cloud en het getrainde model automatisch downloaden en uitvoeren met edge-impulse-linux-runner.

De installatieprocedure van Edge Impulse CLI wordt beschreven in de documentatie. Het komt allemaal neer op een paar eenvoudige stappen:

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt install -y gcc g++ make build-essentiële nodejs sox gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps
npm config set gebruiker root &&sudo npm install edge-impulse-linux -g --unsafe-perm

Na Edge Impulse CLI is geïnstalleerd, zorg ervoor dat de camera is aangesloten - ik heb een eenvoudige USB-webcamera gebruikt, als je een Raspberry Pi-camera gebruikt, vergeet dan niet om deze in raspi-config in te schakelen.

Voordat u begint met het verzamelen van de gegevens voor objectdetectie, moet u ervoor zorgen dat in Dashboard onder ‘Projectinfo> Labelmethode’ is ‘Begrenzingsvakken (objectdetectie)’ geselecteerd.

Maak minimaal 100 afbeeldingen voor elke klas die je wilt herkennen. Momenteel kunt u uw eigen afbeeldingen uploaden door op Toon opties - Gegevens uploaden in het tabblad Gegevensverzameling te drukken. Maar het is nog niet mogelijk om de annotaties van de begrenzingsvakken te uploaden, dus de afbeeldingen die u uploadt, moeten nog steeds handmatig worden gelabeld. Nadat je genoeg afbeeldingen hebt geannoteerd, ga je naar Impuls maken, kies Afbeelding voor verwerkingsblok en Objectdetectie (afbeeldingen) voor leerblok.

Het aantal afbeeldingen dat een gebruiker kan verzamelen en annoteren is lang niet genoeg om een ​​groot netwerk helemaal opnieuw te trainen. Daarom verfijnen we een vooraf getraind model om nieuwe klassen objecten te detecteren. In de meeste gevallen kunt u de standaardwaarden voor aantal tijdperken, leersnelheid en vertrouwen laten staan. Voor objectdetectie wordt een aangepaste code gebruikt, dus we kunnen deze niet aanpassen in de Expert-modus, zoals mogelijk is met eenvoudigere modellen.

De training gebeurt op CPU, dus het kost wat tijd, afhankelijk van het aantal afbeeldingen in uw dataset. Neem een ​​kopje van je favoriete drankje, terwijl je bezig bent.

Een van de beste dingen van de nieuw toegevoegde Linux-ondersteuning voor Edge Impulse is de edge-impulse-linux-runner. Wanneer de modeltraining is voltooid en u tevreden bent met de nauwkeurigheid van de validatiegegevensset (die automatisch wordt gesplitst van trainingsgegevens), kunt u het model testen in Live-classificatie en het vervolgens op het apparaat implementeren. In dit geval is het net zo eenvoudig als hardlopen

edge-impulse-linux-runner

in de terminal. Het model wordt automatisch gedownload en voorbereid, waarna het gevolgtrekkingsresultaat in de browser wordt weergegeven, u krijgt een regel op uw terminal, vergelijkbaar met:

Wilt u een feed van de camera en live classificatie in uw browser zien? Ga naar  http://192.168.1.19:4912

Klik op de link in uw terminal om de liveweergave van de camera te zien.

Het backbone-model dat wordt gebruikt voor transfer learning is MobileNetv2 SSD en is vrij groot, dus zelfs met alle optimalisaties halen we ongeveer 2 FPS of ~400 ms. voor een frame - de videostream ziet er behoorlijk responsief uit, maar dat komt omdat inferentie niet op elk frame wordt uitgevoerd, je kunt duidelijk zien dat als je een object detecteert en het vervolgens uit de afbeelding verdwijnt, het selectiekader ervoor enige tijd blijft staan . Aangezien Linux-ondersteuning een heel nieuwe functie is in Edge Impulse, weet ik zeker dat er in de nabije toekomst veel verbeteringen zullen komen, waardoor snellere gevolgtrekking en upload van door gebruikers geannoteerde gegevens mogelijk zal zijn.

ARM NN versnelde inferentie

Hoewel we weten dat Raspberry Pi 4 niet het beste bord is voor machine learning-inferentie, omdat het daarvoor geen hardwareversneller heeft, kunnen we nog steeds een hogere dan realtime inferentiesnelheid bereiken door

a) kleinere modus gebruiken

b) ervoor zorgen dat we alle 4 cores en Single Instruction Multiple Data (SIMD) instructies gebruiken, waarbij meerdere verwerkingselementen in de pijplijn gelijktijdig bewerkingen uitvoeren op meerdere datapunten, beschikbaar met Neon-optimalisatiearchitectuur-uitbreiding voor Arm-processors.

Bron: reTerminal Machine Learning-demo's (Edge Impulse en Arm NN)


Productieproces

  1. De toeleveringsketen en machine learning
  2. ADLINK:op paal gemonteerde multi-access edge AI en machine learning-oplossing
  3. MQTT-communicatie tussen NodeMCU en Raspberry Pi 3 B+
  4. Python- en Raspberry Pi-temperatuursensor
  5. Raspberry Pi temperatuur- en lichtsensor
  6. Raspberry Pi-sensor en actuatorbediening
  7. Betrouwbaarheid verhogen en onderhoudsresultaten verbeteren met machine learning
  8. NXP verdubbelt machine learning at the Edge
  9. Moet inkoop angst opwekken of AI en machine learning-technologie verwelkomen?
  10. AWS versterkt zijn AI- en machine learning-aanbod
  11. Hoe AI en machine learning van invloed zijn op CNC-bewerkingen