Innehållsförteckning:

AI -kamera för Raspberry Pi/Arduino: 7 steg
AI -kamera för Raspberry Pi/Arduino: 7 steg

Video: AI -kamera för Raspberry Pi/Arduino: 7 steg

Video: AI -kamera för Raspberry Pi/Arduino: 7 steg
Video: robot race. line follower robot with arduino program 2024, November
Anonim
Image
Image

Om du har följt nyheterna nyligen, det var en explosion av nystartade företag som utvecklar chips för att påskynda ML (maskininlärning) algoritmer inferens och utbildning. Men de flesta av dessa marker är fortfarande under utveckling och inte riktigt något din genomsnittliga tillverkare kan få tag på. Det enda betydande undantaget hittills var Intel Movidius Neural Compute Stick, som finns att köpa och levereras med ett bra SDK. Det har några betydande nackdelar - nämligen priset (cirka 100 USD) och det faktum att det kommer i USB -stickformat. Det är bra om du vill använda den med bärbar dator eller Raspberry PI, men vad händer om du vill göra några bildigenkänningsprojekt med Arduino? Eller Raspberry Pi Zero?

Steg 1: Sipeed MAix: AI at the Edge

Sipeed MAix: AI at the Edge
Sipeed MAix: AI at the Edge

För inte så länge sedan fick jag tag på Sipeed M1w K210 utvecklingskort, som har en dubbelkärnig RISC-V 64bit CPU och har en inbyggd KPU (Neural Network Processor), speciellt utformad för att accelerera CNN för bildbehandling. Du kan läsa mer information här.

Priset på detta bräde chockade mig uppriktigt sagt, det är bara 19 USD för fullfjädrad AI-on-the-edge utvecklingskort med Wi-Fi-stöd! Det finns dock en förbehåll (naturligtvis finns det): micropython -firmware för styrelsen är fortfarande under utveckling, och överlag är den inte alltför användarvänlig från och med nu. Det enda sättet att komma åt alla dess funktioner just nu är att skriva din egen inbäddade C -kod eller ändra några befintliga demos.

Denna handledning förklarar hur man använder Mobilenet 20 -klassdetektionsmodell för att upptäcka objekten och skicka den detekterade objektkoden via UART, varifrån den kan tas emot av Arduino/Raspberry Pi.

Nu antar den här självstudien att du är bekant med Linux och grunderna för att sammanställa C -kod. Om du hörde den här frasen gjorde dig lite yr:) hoppa bara över till steg 4, där du laddar upp min förbyggda binär till Sipeed M1 och hoppar över kompileringen.

Steg 2: Förbered din miljö

Förbered din miljö
Förbered din miljö

Jag använde Ubuntu 16.04 för C -kodsamling och uppladdning. Det är möjligt att göra det i Windows, men jag själv försökte inte det.

Ladda ner RISC-V GNU Compiler Toolchain, installera alla nödvändiga beroenden.

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

Kopiera den nedladdade verktygskedjan till /opt -katalogen. Efter det kör du följande kommandon

./configure --prefix =/opt/kendryte-toolchain --med-cmodel = medany

göra

Lägg till/opt/kendryte-toolchain/bin till din PATH nu.

Du är nu redo att kompilera koden!

Steg 3: Kompilera koden

Kompilera koden
Kompilera koden

Ladda ner koden från mitt github -arkiv.

Ladda ner Kendryte K210 fristående SDK

Kopiera /kpu -mappen från mitt github -arkiv till /src -mappen i SDK.

Kör följande kommandon i SDK -mappen (inte /src -mappen!)

mkdir build && cd build

cmake.. -DPROJ = projektnamn -DTOOLCHAIN =/opt/kendryte -toolchain/bin && make

där projektnamn är namnet på ditt projekt (upp till dig) och -DTOOLCHAIN = ska peka på platsen för din risc -v verktygskedja (du laddade ner det i första steget, kommer du ihåg?)

Bra! Nu förhoppningsvis ser du sammanställningen klar utan några fel och du har en.bin -fil som du kan ladda upp.

Steg 4: Ladda upp.bin -filen

Ladda upp.bin -filen
Ladda upp.bin -filen

Anslut nu din Sipeed M1 till datorn och från /build -mappen kör följande kommando

sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu.bin

Där kpu.bin är namnet på din.bin -fil

Uppladdningen tar vanligtvis 2-3 minuter, när det är klart ser du tavlan som kör 20 klasser. Det sista steget för oss är att ansluta den till Arduino mega eller Raspberry Pi.

!!! Om du bara kom från steg 2 !!

Kör följande kommando från mappen där du klonade mitt github -arkiv

sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu_bin.bin

Uppladdningen tar vanligtvis 2-3 minuter, när det är klart ser du tavlan som kör 20 klasser. Det sista steget för oss är att ansluta den till Arduino mega eller Raspberry Pi.

Steg 5: Ansluter till Arduino

Ansluter till Arduino
Ansluter till Arduino
Ansluter till Arduino
Ansluter till Arduino
Ansluter till Arduino
Ansluter till Arduino

Jag använde Arduino Mega med Seeed Studio Mega Shield, det är därför jag lödde en Grove -kontakt till Sipeed M1 -kortet. Men du kan bara använda bygelkablar och ansluta Sipeed M1 direkt till Arduino Mega, enligt detta kopplingsschema.

Efter det ladda upp camera.ino -skissen och öppna seriemonitorn. När du riktar kameran mot olika objekt (listan över 20 klasser finns i skissen) bör den mata ut namnet på klassen i seriemonitorn!

Grattis! Du har nu fungerande bilddetekteringsmodul för din Arduino!

Steg 6: Ansluter till Raspberry Pi

Ansluter till Raspberry Pi
Ansluter till Raspberry Pi
Ansluter till Raspberry Pi
Ansluter till Raspberry Pi

Jag använde Grove Pi+ hatt för Raspberry Pi 2B, men igen, som med Arduino kan du bara ansluta Sipeed M1 direkt till Raspberry Pi: s UART -gränssnitt enligt detta kopplingsschema.

Efter att starta camera_speak.py och rikta kameran mot olika objekt, kommer terminalen att mata ut följande text "Jag tror att det är" och även om du har högtalare anslutna kommer den att tala den här frasen högt. Ganska coolt, eller hur?

Steg 7: Slutsats

Det här är en mycket spännande tid vi lever i, med AI och maskininlärning som tränger igenom alla områden i våra liv. Jag ser fram emot utvecklingen inom detta område. Jag håller kontakten med Sipeed -teamet och jag vet att de aktivt utvecklar mikropytonomslag för alla nödvändiga funktioner, inklusive CNN -acceleration.

När det är klart kommer jag troligtvis att publicera fler instruktioner om hur du använder dina egna CNN -modeller med mikropyton. Tänk på alla spännande applikationer du kan ha för en tavla som kan driva dina egna bildbehandlingsneurala nätverk för detta pris och med detta fotavtryck!

Rekommenderad: