Innholdsfortegnelse:
- Trinn 1: Sipeed MAix: AI at the Edge
- Trinn 2: Forbered miljøet
- Trinn 3: Kompiler koden
- Trinn 4: Last opp.bin -filen
- Trinn 5: Koble til Arduino
- Trinn 6: Koble til Raspberry Pi
- Trinn 7: Konklusjon
Video: AI -kamera for Raspberry Pi/Arduino: 7 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Hvis du har fulgt nyhetene nylig, var det en eksplosjon av oppstart som utvikler sjetonger for å akselerere slutning og trening av ML (maskinlæring) algoritmer. Imidlertid er de fleste av disse sjetongene fortsatt under utvikling og egentlig ikke noe den gjennomsnittlige produsenten din kan få tak i. Det eneste betydelige unntaket så langt var Intel Movidius Neural Compute Stick, som er tilgjengelig for kjøp og kommer med en god SDK. Den har noen få betydelige ulemper - nemlig prisen (rundt 100 USD) og det faktum at den kommer i USB -pinne -format. Det er flott hvis du vil bruke det med bærbar PC eller Raspberry PI, men hva om du vil gjøre noen bilderekjennelsesprosjekter med Arduino? Eller Raspberry Pi Zero?
Trinn 1: Sipeed MAix: AI at the Edge
For ikke så lenge siden fikk jeg hendene mine på Sipeed M1w K210 utviklingskort, som har dual-core RISC-V 64bit CPU og har en innebygd KPU (Neural Network Processor), spesielt designet for å akselerere CNN for bildebehandling. Du kan lese flere detaljer her.
Prisen på dette brettet sjokkerte meg ærlig talt, det er bare 19 USD for fullverdig AI-on-the-edge utviklingstavle med Wi-fi-støtte! Det er imidlertid et forbehold (selvfølgelig er det): micropython -fastvaren for brettet er fortsatt under utvikling, og totalt sett er det ikke så brukervennlig som nå. Den eneste måten å få tilgang til alle funksjonene akkurat nå er å skrive din egen innebygde C -kode eller endre noen eksisterende demoer.
Denne opplæringen forklarer hvordan du bruker deteksjonsmodell i Mobilenet 20 -klassen til å oppdage objektene og sende den oppdagede objektkoden gjennom UART, hvorfra den kan mottas av Arduino/Raspberry Pi.
Nå antar denne opplæringen at du er kjent med Linux og det grunnleggende om kompilering av C -kode. Hvis du ble litt svimmel av å høre denne setningen:) hopper du bare til trinn 4, hvor du laster opp min forhåndsbygde binær til Sipeed M1 og hopper over kompileringen.
Trinn 2: Forbered miljøet
Jeg brukte Ubuntu 16.04 for C -kodekompilering og opplasting. Det er mulig å gjøre det i Windows, men jeg prøvde det ikke selv.
Last ned RISC-V GNU Compiler Toolchain, installer alle nødvendige avhengigheter.
git-klon-rekursiv
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
Kopier den nedlastede verktøykjeden til /opt -katalogen. Etter det kjører du følgende kommandoer
./configure --prefix =/opt/kendryte-toolchain --with-cmodel = medany
gjøre
Legg til/opt/kendryte-toolchain/bin til din PATH nå.
Du er nå klar til å kompilere koden!
Trinn 3: Kompiler koden
Last ned koden fra mitt github -depot.
Last ned Kendryte K210 frittstående SDK
Kopier /kpu -mappen fra github -depotet mitt til /src -mappen i SDK.
Kjør følgende kommandoer i SDK -mappen (ikke /src -mappen!)
mkdir build && cd build
cmake.. -DPROJ = prosjektnavn -DTOOLCHAIN =/opt/kendryte -toolchain/bin && make
hvor prosjektnavn er navnet på prosjektet ditt (opp til deg) og -DTOOLCHAIN = skal peke til plasseringen av risc -v verktøykjeden (du lastet det ned i første trinn, husker du?)
Flott! Forhåpentligvis vil du se samlingen ferdig uten feil, og du har en.bin -fil du kan laste opp.
Trinn 4: Last opp.bin -filen
Koble nå Sipeed M1 til datamaskinen, og kjør følgende kommando fra /build -mappen
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu.bin
Hvor kpu.bin er navnet på.bin -filen
Opplastingen tar vanligvis 2-3 minutter, etter at den er ferdig, ser du tavlen som kjører 20 klasseregistrering. Det siste trinnet for oss er å koble den til Arduino mega eller Raspberry Pi.
!!! Hvis du nettopp kom fra trinn 2 !
Kjør følgende kommando fra mappen der du klonet mitt github -depot
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu_bin.bin
Opplastingen tar vanligvis 2-3 minutter, etter at den er ferdig, ser du tavlen som kjører 20 klasseregistrering. Det siste trinnet for oss er å koble den til Arduino mega eller Raspberry Pi.
Trinn 5: Koble til Arduino
Jeg brukte Arduino Mega med Seeed Studio Mega Shield, derfor loddet jeg en Grove -kontakt til Sipeed M1 -kortet. Imidlertid kan du bare bruke jumperkabler og koble Sipeed M1 direkte til Arduino Mega, etter dette koblingsskjemaet.
Last deretter opp camera.ino -skissen og åpne seriell skjerm. Når du peker kameraet på forskjellige objekter (listen over 20 klasser er i skissen) bør det skrive ut navnet på klassen i den serielle skjermen!
Gratulerer! Du har nå fungerende bildedeteksjonsmodul for din Arduino!
Trinn 6: Koble til Raspberry Pi
Jeg brukte Grove Pi+ hatt for Raspberry Pi 2B, men igjen, som med Arduino kan du bare koble Sipeed M1 direkte til Raspberry Pi's UART -grensesnitt etter dette koblingsskjemaet.
Etter den lanseringen camera_speak.py og pek kameraet på forskjellige objekter, vil terminalen sende ut følgende tekst "Jeg tror det er", og hvis du har tilkoblede høyttalere, vil den snakke denne setningen høyt. Ganske kult, ikke sant?
Trinn 7: Konklusjon
Dette er en spennende tid vi lever i, med AI og maskinlæring som trenger gjennom alle områdene i livet vårt. Jeg gleder meg til utviklingen på dette området. Jeg holder kontakten med Sipeed -teamet, og jeg vet at de aktivt utvikler mikropytonpakker for alle nødvendige funksjoner, inkludert CNN -akselerasjon.
Når den er klar, vil jeg sannsynligvis publisere flere instrukser om hvordan du bruker dine egne CNN -modeller med mikropyton. Tenk på alle de spennende applikasjonene du kan ha for et brett som kan kjøre dine egne bildebehandlingsneurale nettverk for denne prisen og med dette fotavtrykket!
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Slik laster du fôr til kyr: 9 trinn
Slik laster du fôr til kyr: Alt som lever trenger mat for å overleve. I vinter- og vårmånedene er det ikke gress for kyr å beite på. Dette gjør det veldig viktig at kuene blir matet skikkelig slik at de produserer sunne kalver. I de følgende trinnene vil pr
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
Installere Raspbian i Raspberry Pi 3 B Uten HDMI - Komme i gang med Raspberry Pi 3B - Sette opp din Raspberry Pi 3: 6 trinn
Installere Raspbian i Raspberry Pi 3 B Uten HDMI | Komme i gang med Raspberry Pi 3B | Sette opp din Raspberry Pi 3: Som noen av dere vet Raspberry Pi-datamaskiner er ganske fantastiske, og du kan få hele datamaskinen bare på et enkelt, lite bord. Raspberry Pi 3 Model B har en firekjerners 64-biters ARM Cortex A53 klokket til 1,2 GHz. Dette gir Pi 3 omtrent 50
DIY Arduino robotarm, trinn for trinn: 9 trinn
DIY Arduino robotarm, trinn for trinn: Denne opplæringen lærer deg hvordan du bygger en robotarm selv