Innholdsfortegnelse:

AI -kamera for Raspberry Pi/Arduino: 7 trinn
AI -kamera for Raspberry Pi/Arduino: 7 trinn

Video: AI -kamera for Raspberry Pi/Arduino: 7 trinn

Video: AI -kamera for Raspberry Pi/Arduino: 7 trinn
Video: Как создать свой собственный сервер принтеров Canon с помощью Raspberry Pi 2024, Juni
Anonim
Image
Image

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

Sipeed MAix: AI at the Edge
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

Forbered miljøet
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

Kompiler koden
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

Laster opp.bin -filen
Laster 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

Kobler til Arduino
Kobler til Arduino
Kobler til Arduino
Kobler til Arduino
Kobler til Arduino
Kobler 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

Koble til Raspberry Pi
Koble til Raspberry Pi
Koble til Raspberry Pi
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: