INHOUDSOPGAWE:
- Stap 1: Sipeed MAix: AI at the Edge
- Stap 2: Berei u omgewing voor
- Stap 3: Stel die kode saam
- Stap 4: Laai die.bin -lêer op
- Stap 5: Koppel aan Arduino
- Stap 6: Koppel aan Raspberry Pi
- Stap 7: Gevolgtrekking
Video: AI -kamera vir Framboos Pi/Arduino: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
As u die nuus onlangs gevolg het, was daar 'n ontploffing van nuwe ondernemings wat skyfies ontwikkel om die afleiding en opleiding van ML (masjienleer) te versnel. Die meeste van die skyfies is egter nog in ontwikkeling en dit is nie regtig iets wat u gemiddelde vervaardiger in die hande kan kry nie. Die enigste belangrike uitsondering tot dusver was Intel Movidius Neural Compute Stick, wat beskikbaar is om te koop en met 'n goeie SDK. Dit het wel 'n paar aansienlike nadele - naamlik die prys (ongeveer 100 dollar) en die feit dat dit in 'n USB -stick -formaat kom. Dit is wonderlik as u dit met 'n skootrekenaar of Raspberry PI wil gebruik, maar wat as u 'n paar beeldherkenningsprojekte met Arduino wil doen? Of Raspberry Pi Zero?
Stap 1: Sipeed MAix: AI at the Edge
Ek het nie so lank gelede die Sipeed M1w K210-ontwikkelingsbord in die hande gekry nie, wat 'n RISC-V 64bit-CPU met twee kerne het en spog met 'n ingeboude KPU (Neural Network Processor), spesifiek ontwerp vir die versnelling van CNN vir beeldverwerking. U kan meer besonderhede hier lees.
Die prys van hierdie bord het my eerlikwaar geskok; dit is slegs 19 dollar vir 'n volwaardige AI-on-the-edge ontwikkelingsbord met Wi-Fi-ondersteuning! Daar is egter 'n voorbehoud (natuurlik): die mikropython -firmware vir die bord is nog in ontwikkeling, en in die algemeen is dit tans nie te gebruikersvriendelik nie. Die enigste manier om nou toegang tot al sy funksies te verkry, is deur u eie ingebedde C -kode te skryf of 'n paar bestaande demo's aan te pas.
Hierdie handleiding verduidelik hoe u die opsporingsmodel van Mobilenet 20 -klas kan gebruik om die voorwerpe op te spoor en die opgespoorde voorwerpkode deur UART te stuur, vanwaar dit deur Arduino/Raspberry Pi ontvang kan word.
Hierdie handleiding veronderstel nou dat u vertroud is met Linux en die basiese beginsels van die opstel van C -kode. As u 'n bietjie duiselig geraak het as u hierdie frase hoor:), gaan dan net na stap 4, waar u my voorafgeboude binêre oplaai na Sipeed M1 en die opstel oorskry.
Stap 2: Berei u omgewing voor
Ek het Ubuntu 16.04 gebruik vir die saamstel en oplaai van C -kode. Dit is moontlik om dit in Windows te doen, maar ek het dit self nie probeer nie.
Laai die RISC-V GNU Compiler Toolchain af, installeer al die nodige afhanklikhede.
git-kloon-rekursief
sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
Kopieer die afgelaaide werktuigketting na /opt -gids. Voer daarna die opdragte uit
./configure --prefix =/opt/kendryte-toolchain --met-cmodel = medany
maak
Voeg nou/opt/kendryte-toolchain/bin by u PATH.
U is nou gereed om die kode saam te stel!
Stap 3: Stel die kode saam
Laai die kode af van my github -bewaarplek.
Laai die selfstandige SDK van Kendryte K210 af
Kopieer /kpu -lêergids van my github -bewaarplek na /src -lêergids in SDK.
Voer die volgende opdragte uit in die SDK -lêergids (nie /src -lêergids nie!)
mkdir build && cd build
cmake.. -DPROJ = project_name -DTOOLCHAIN =/opt/kendryte -toolchain/bin && make
waar projeknaam die naam van u projek is (u besluit) en -DTOOLCHAIN = moet dui op die ligging van u risc -v -werktuigketting (onthou u dit in die eerste stap?)
Puik! Hopelik sal u die samestelling sonder foute sien voltooi, en u het 'n.bin -lêer wat u kan oplaai.
Stap 4: Laai die.bin -lêer op
Koppel nou u Sipeed M1 aan op die rekenaar en voer die volgende opdrag uit die /build -gids uit
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu.bin
Waar kpu.bin die naam van u.bin -lêer is
Die oplaai duur gewoonlik 2-3 minute, nadat dit klaar is, sien u dat die bord 20 klasse opspoor. Die laaste stap vir ons is om dit aan te sluit op Arduino mega of Raspberry Pi.
!!! As u net van stap 2 af gekom het !
Voer die volgende opdrag uit die gids waar u my github -bewaarplek gekloon het
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu_bin.bin
Die oplaai duur gewoonlik 2-3 minute, nadat dit klaar is, sien u dat die bord 20 klasse opspoor. Die laaste stap vir ons is om dit aan te sluit op Arduino mega of Raspberry Pi.
Stap 5: Koppel aan Arduino
Ek het die Arduino Mega met Seeed Studio Mega Shield gebruik, daarom het ek 'n Grove -aansluiting aan die Sipeed M1 -bord gesoldeer. U kan egter net jumperdrade gebruik en Sipeed M1 direk met Arduino Mega verbind, volgens hierdie bedradingsdiagram.
Laai daarna die camera.ino -skets op en maak die seriële monitor oop. As u die kamera na verskillende voorwerpe wys (die lys van 20 klasse is in die skets), moet die naam van die klas in die seriële monitor verskyn!
Baie geluk! U het nou 'n werkende beeldopsporingsmodule vir u Arduino!
Stap 6: Koppel aan Raspberry Pi
Ek het Grove Pi+ -hoed vir Raspberry Pi 2B gebruik, maar weer, soos met Arduino, kan u Sipeed M1 direk aansluit op die UART -koppelvlak van Raspberry Pi volgens hierdie bedradingsdiagram.
Na die bekendstelling van camera_speak.py en die kamera na verskillende voorwerpe wys, sal die terminaal die volgende teks "Ek dink dit is" uitvoer, en as u luidsprekers gekoppel het, spreek hierdie frase hardop. Redelik cool, is dit nie?
Stap 7: Gevolgtrekking
Dit is 'n baie opwindende tyd waarin ons leef, met AI en masjienleer wat alle aspekte van ons lewens binnedring. Ek sien uit na die ontwikkeling op hierdie gebied. Ek hou kontak met die Sipeed -span, en ek weet dat hulle aktief mikropythonomhulsel ontwikkel vir al die nodige funksies, insluitend CNN -versnelling.
As dit gereed is, sal ek waarskynlik meer instruksies publiseer oor hoe u u eie CNN -modelle met mikropython kan gebruik. Dink aan al die opwindende toepassings wat u kan hê vir 'n bord wat u eie beeldverwerkende neurale netwerke vir hierdie prys en met hierdie voetspoor kan bestuur!
Aanbeveel:
Uitskakelknoppie vir Framboos Pi: 3 stappe
Uitskakelknoppie vir Raspberry Pi: Die Raspberry Pi is 'n baie nuttige rekenaarplatform waarmee u verskillende IoT/robotika/smart-home/… projek-toepassings kan skep. Die enigste ding wat dit nie het nie, in vergelyking met 'n gewone rekenaar, is 'n afskakelknoppie. So, hoe kan ons
Hoe u u Framboos Pi kan verander in 'n gateway vir eksterne toegang: 6 stappe
Hoe u u Framboos Pi in 'n toegangspoort vir eksterne toegang kan verander: Hallo ouens! In die lig van die onlangse gebeurtenisse, het ons span by remote.it hard aan die dink gekom om idees vir afstandswerk pynloos en toeganklik te maak. Ons het die remote.itPi SD -kaartbeeld gekry, 'n SD -kaart wat u in 'n nuwe
Maklike opstelling IR -afstandsbediening met behulp van LIRC vir die Framboos -PI (RPi) - Julie 2019 [Deel 1]: 7 stappe
Easy Setup IR Remote Control Using LIRC for the Raspberry PI (RPi) - July 2019 [Part 1]: Na baie gesoek was ek verbaas en ontsteld oor die teenstrydige inligting oor hoe om IR -afstandsbediening vir my RPi -projek op te stel. Ek het gedink dit sou maklik wees, maar die opstel van Linux InfraRed Control (LIRC) was al lank problematies
Outomatiese videokonferensie vir ouma met framboos Pi: 9 stappe (met foto's)
Outomatiese videokonferensie vir ouma met framboos Pi: ek is bekommerd oor my 90-jarige ouma, want selfs sy moet tuis bly tydens die COVID-epidemie, maar sy is voortdurend besig om uit te kom en doen " noodsaaklik " dinge op straat, soos om lotterykaartjies te koop, met bure te gesels. Ek
Eenvoudige sorteerstelsel vir produkte met Framboos Pi en Arduino: 5 stappe
Eenvoudige produksorteringstelsel met Framboos Pi en Arduino: ek is 'n fan van ingenieurswese, ek is mal daaroor om programmeer en elektroniese verwante projekte in my vrye tyd te maak; in hierdie projek deel ek met u 'n eenvoudige produksorteersisteem wat ek onlangs gedoen het. hierdie stelsel, berei asseblief die komponente voor