Indholdsfortegnelse:
- Trin 1: Sipeed MAix: AI at the Edge
- Trin 2: Forbered dit miljø
- Trin 3: Kompilér koden
- Trin 4: Upload af.bin -filen
- Trin 5: Tilslutning til Arduino
- Trin 6: Tilslutning til Raspberry Pi
- Trin 7: Konklusion
Video: AI -kamera til Raspberry Pi/Arduino: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Hvis du har fulgt nyhederne for nylig, var der en eksplosion af start-ups, der udviklede chips til at accelerere ML (machine learning) algoritmer inferens og træning. Men de fleste af disse chips er stadig under udvikling og egentlig ikke noget din almindelige maker kan få fat på. Den eneste betydelige undtagelse hidtil var Intel Movidius Neural Compute Stick, som kan købes og leveres med en god SDK. Det har nogle få betydelige ulemper - nemlig prisen (omkring 100 USD) og det faktum, at det kommer i USB -stick -format. Det er fantastisk, hvis du vil bruge det med bærbar computer eller Raspberry PI, men hvad nu hvis du vil lave nogle billedgenkendelsesprojekter med Arduino? Eller Raspberry Pi Zero?
Trin 1: Sipeed MAix: AI at the Edge
For ikke så længe siden fik jeg mine hænder på Sipeed M1w K210 udviklingsplade, der har dual-core RISC-V 64bit CPU og kan prale af en indbygget KPU (Neural Network Processor), specielt designet til at accelerere CNN til billedbehandling. Du kan læse flere detaljer her.
Prisen på dette board chokerede mig ærligt talt, det er kun 19 USD for fuldt udviklet AI-on-the-edge udviklingsbræt med Wi-fi-understøttelse! Der er dog en advarsel (selvfølgelig er der): micropython -firmwaren til tavlen er stadig under udvikling, og generelt er den ikke for brugervenlig fra nu af. Den eneste måde at få adgang til alle dens funktioner lige nu er at skrive din egen indlejrede C -kode eller ændre nogle eksisterende demoer.
Denne vejledning forklarer, hvordan du bruger detektionsmodel i Mobilenet 20 -klassen til at registrere objekterne og sende den registrerede objektkode via UART, hvorfra den kan modtages af Arduino/Raspberry Pi.
Nu går denne vejledning ud fra, at du er fortrolig med Linux og det grundlæggende ved kompilering af C -kode. Hvis du blev lidt svimmel af at høre denne sætning:) skal du bare springe til trin 4, hvor du uploader min præbyggede binær til Sipeed M1 og springer kompilering over.
Trin 2: Forbered dit miljø
Jeg brugte Ubuntu 16.04 til C -kodekompilering og upload. Det er muligt at gøre det i Windows, men jeg har ikke selv prøvet det.
Download RISC-V GNU Compiler Toolchain, installer alle de nødvendige afhængigheder.
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 downloadede værktøjskæde til /opt bibliotek. Efter det skal du køre følgende kommandoer
./configure --prefix =/opt/kendryte-toolchain --with-cmodel = medany
lave
Tilføj/opt/kendryte-toolchain/bin til din STI nu.
Du er nu klar til at kompilere koden!
Trin 3: Kompilér koden
Download koden fra mit github -lager.
Hent Kendryte K210 standalone SDK
Kopiér /kpu -mappen fra mit github -lager til /src -mappen i SDK.
Kør følgende kommandoer i SDK -mappen (ikke /src -mappen!)
mkdir build && cd build
cmake.. -DPROJ = projektnavn -DTOOLCHAIN =/opt/kendryte -toolchain/bin && make
hvor projektnavn er navnet på dit projekt (op til dig) og -DTOOLCHAIN = skal pege på placeringen af din risc -v værktøjskæde (du downloadede det i det første trin, kan du huske?)
Store! Nu forhåbentlig vil du se kompilering færdig uden fejl, og du har en.bin -fil, du kan uploade.
Trin 4: Upload af.bin -filen
Tilslut nu din Sipeed M1 til computeren, og kør følgende kommando fra mappen /build
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu.bin
Hvor kpu.bin er navnet på din.bin -fil
Upload tager normalt 2-3 minutter, efter at det er gjort, ser du tavlen kører 20 klasseregistrering. Det sidste trin for os er at forbinde det med Arduino mega eller Raspberry Pi.
!!! Hvis du lige kom fra trin 2 !
Kør følgende kommando fra den mappe, hvor du klonede mit github -lager
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu_bin.bin
Upload tager normalt 2-3 minutter, efter at det er gjort, ser du tavlen kører 20 klasseregistrering. Det sidste trin for os er at forbinde det med Arduino mega eller Raspberry Pi.
Trin 5: Tilslutning til Arduino
Jeg brugte Arduino Mega med Seeed Studio Mega Shield, derfor lod jeg et Grove -stik til Sipeed M1 -kortet. Men du kan bare bruge jumperwires og forbinde Sipeed M1 direkte til Arduino Mega, ved at følge dette ledningsdiagram.
Herefter skal du uploade camera.ino -skitsen og åbne den serielle skærm. Når du peger kameraet på forskellige objekter (listen over 20 klasser er i skitsen) skal det sende navnet på klassen i den serielle skærm!
Tillykke! Du har nu et fungerende billeddetekteringsmodul til din Arduino!
Trin 6: Tilslutning til Raspberry Pi
Jeg brugte Grove Pi+ hat til Raspberry Pi 2B, men igen, som med Arduino kan du bare direkte tilslutte Sipeed M1 til Raspberry Pi's UART -interface efter dette ledningsdiagram.
Efter at starte camera_speak.py og pege kameraet på forskellige objekter, vil terminalen udsende følgende tekst "Jeg tror det er", og også hvis du har tilsluttet højttalere, vil den tale denne sætning højt. Ret cool, ikke sandt?
Trin 7: Konklusion
Dette er en meget spændende tid, vi lever i, hvor AI og maskinindlæring trænger ind på alle områder af vores liv. Jeg ser frem til udviklingen på dette område. Jeg holder kontakten med Sipeed -teamet, og jeg ved, at de aktivt udvikler micropython -indpakning til alle de nødvendige funktioner, herunder CNN -acceleration.
Når den er klar, vil jeg sandsynligvis offentliggøre flere instruktioner om, hvordan du bruger dine egne CNN -modeller med mikropython. Tænk på alle de spændende applikationer, du kan have til et bræt, der kan køre dit eget billedbehandlings neurale netværk til denne pris og med dette fodaftryk!
Anbefalede:
Ambilight -system til hver input, der er sluttet til dit tv. WS2812B Arduino UNO Raspberry Pi HDMI (opdateret 12.2019): 12 trin (med billeder)
Ambilight -system til hver input, der er sluttet til dit tv. WS2812B Arduino UNO Raspberry Pi HDMI (opdateret 12.2019): Jeg har altid ønsket at tilføje ambilight til mit tv. Det ser så fedt ud! Det gjorde jeg endelig, og jeg blev ikke skuffet! Jeg har set mange videoer og mange tutorials om oprettelse af et Ambilight -system til dit fjernsyn, men jeg har aldrig fundet en komplet tutorial til mit nøjagtige navn
LoRa Messenger til to enheder til distancer Op til 8 km: 7 trin
LoRa Messenger til to enheder til afstande Op til 8 km: Tilslut projektet til din bærbare computer eller telefon, og chat derefter mellem enhederne uden internet eller SMS ved hjælp af bare LoRa.Hey, hvad sker der gutter? Akarsh her fra CETech. I dag skal vi lave et projekt, der kan forbindes til din smartphone eller en hvilken som helst
1A til 40A nuværende BOOST -konverter til op til 1000W DC -motor: 3 trin
1A til 40A Current BOOST-konverter til op til 1000W DC-motor: Hej! I denne video lærer du, hvordan du laver et strømforstærkerkredsløb til dine høj ampere DC-motorer op til 1000W og 40 ampere med transistorer og en center-tap-transformer. Selvom, strømmen ved udgangen er meget høj, men spændingen bliver r
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: 3 trin
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: Min plan var enkel. Jeg ville skære en væg-drevet LED-lysstreng i stykker og derefter genkoble den til at køre 12 volt. Alternativet var at bruge en strømomformer, men vi ved alle, at de er frygtelig ineffektive, ikke? Ret? Eller er de det?
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): 6 trin
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): Dette viser dig, hvordan du laver en 12v til USB (5v) adapter. Den mest oplagte anvendelse af dette er til 12v biladaptere, men hvor som helst du har 12v kan du bruge det! Hvis du har brug for 5v til andet end USB, skal du blot springe trinene om tilføjelse af USB -porte over