INHOUDSOPGAWE:

AI -kamera vir Framboos Pi/Arduino: 7 stappe
AI -kamera vir Framboos Pi/Arduino: 7 stappe

Video: AI -kamera vir Framboos Pi/Arduino: 7 stappe

Video: AI -kamera vir Framboos Pi/Arduino: 7 stappe
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, November
Anonim
Image
Image

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

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

Berei u omgewing voor
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

Stel die kode saam
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

Laai die.bin -lêer op
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

Koppel aan Arduino
Koppel aan Arduino
Koppel aan Arduino
Koppel aan Arduino
Koppel aan Arduino
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

Koppel aan Raspberry Pi
Koppel aan Raspberry Pi
Koppel aan Raspberry Pi
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: