Sadržaj:

AI kamera za Raspberry Pi/Arduino: 7 koraka
AI kamera za Raspberry Pi/Arduino: 7 koraka

Video: AI kamera za Raspberry Pi/Arduino: 7 koraka

Video: AI kamera za Raspberry Pi/Arduino: 7 koraka
Video: Raspberry Pi 3: Камера (#1) – введение, подключение, базовые утилиты, TimeLapse, библиотека PiCamera 2024, Jun
Anonim
Image
Image

Ako ste nedavno pratili vijesti, došlo je do eksplozije početnika koji razvijaju čipove za ubrzavanje zaključivanja i obuke algoritama za ML (mašinsko učenje). Međutim, većina tih čipova je još uvijek u razvoju i nije nešto što bi vaš prosječni proizvođač mogao dohvatiti. Jedini značajan izuzetak do sada je bio Intel Movidius Neural Compute Stick, koji je dostupan za kupovinu i dolazi sa dobrim SDK -om. Ima nekoliko značajnih nedostataka - naime cijenu (oko 100 USD) i činjenicu da dolazi u USB formatu. Odlično je ako ga želite koristiti s prijenosnim računalom ili Raspberry PI, ali što ako želite raditi neke projekte za prepoznavanje slika s Arduinom? Ili Raspberry Pi Zero?

Korak 1: Sipeed MAix: AI na rubu

Sipeed MAix: AI na ivici
Sipeed MAix: AI na ivici

Ne tako davno došao sam u ruke razvojne ploče Sipeed M1w K210, koja ima dvojezgreni RISC-V 64-bitni CPU i ima ugrađeni KPU (Neural Network Processor), posebno dizajniran za ubrzavanje CNN-a za obradu slika. Više detalja možete pročitati ovdje.

Cijena ove ploče me iskreno šokirala, to je samo 19 USD za punopravnu razvojnu ploču sa AI-om na rubu s Wi-Fi podrškom! Ipak, postoji upozorenje (naravno da postoji): mikropython firmver za ploču je još uvijek u razvoju, i sveukupno trenutno nije previše prilagođen korisniku. Jedini način da trenutno pristupite svim njegovim funkcijama je da napišete vlastiti ugrađeni C kod ili izmijenite neke postojeće demonstracije.

Ovaj vodič objašnjava kako se koristi model otkrivanja klase Mobilenet 20 za otkrivanje objekata i slanje koda otkrivenog objekta putem UART -a, odakle ga Arduino/Raspberry Pi može primiti.

Ovaj vodič pretpostavlja da ste upoznati s Linuxom i osnovama sastavljanja C koda. Ako vam se od ove rečenice malo zavrtjelo:), tada samo prijeđite na korak 4, gdje učitavate moju unaprijed izgrađenu binarnu datoteku na Sipeed M1 i preskočite kompajliranje.

Korak 2: Pripremite svoje okruženje

Pripremite svoje okruženje
Pripremite svoje okruženje

Koristio sam Ubuntu 16.04 za kompilaciju i otpremanje C koda. Moguće je to učiniti u sustavu Windows, ali ja to nisam pokušao.

Preuzmite RISC-V GNU Compiler Toolchain, instalirajte sve potrebne zavisnosti.

git clone --recursive

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

Kopirajte preuzeti alat u direktorij /opt. Nakon toga pokrenite sljedeće naredbe

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

napraviti

Dodajte/opt/kendryte-toolchain/bin sada na svoju PATH.

Sada ste spremni za sastavljanje koda!

Korak 3: Pripremite kôd

Sastavite Kodeks
Sastavite Kodeks

Preuzmite kod iz mog github spremišta.

Preuzmite samostalni SDK za Kendryte K210

Kopirajte /kpu fasciklu iz mog github spremišta u /src fasciklu u SDK -u.

Pokrenite sljedeće naredbe u mapi SDK (ne /folder src!)

mkdir build && cd build

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

gdje je naziv_projekta naziv vašeg projekta (na vama) i -DTOOLCHAIN = trebao bi ukazivati na lokaciju vašeg risc -v alata (preuzeli ste ga u prvom koraku, sjećate se?)

Odlično! Nadajmo se da ćete vidjeti da je kompilacija završena bez grešaka i da imate.bin datoteku koju možete učitati.

Korak 4: Otpremanje.bin datoteke

Otpremanje.bin datoteke
Otpremanje.bin datoteke

Sada povežite svoj Sipeed M1 s računalom i iz foldera /build pokrenite sljedeću naredbu

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

Gdje je kpu.bin naziv vaše.bin datoteke

Učitavanje obično traje 2-3 minute, nakon što se završi, vidjet ćete ploču s otkrivanjem 20 klasa. Posljednji korak za nas je povezivanje s Arduino mega ili Raspberry Pi.

!!! Ako ste upravo došli iz 2. koraka !

Pokrenite sljedeću naredbu iz mape u kojoj ste klonirali moje github spremište

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

Učitavanje obično traje 2-3 minute, nakon što se završi vidjet ćete ploču s otkrivanjem 20 klasa. Posljednji korak za nas je povezivanje s Arduino mega ili Raspberry Pi.

Korak 5: Povezivanje s Arduinom

Povezivanje s Arduinom
Povezivanje s Arduinom
Povezivanje s Arduinom
Povezivanje s Arduinom
Povezivanje s Arduinom
Povezivanje s Arduinom

Koristio sam Arduino Mega sa Seeed Studio Mega Shieldom, zato sam lemio Grove konektor na ploču Sipeed M1. Međutim, možete jednostavno koristiti kratkospojne žice i spojiti Sipeed M1 izravno na Arduino Mega, slijedeći ovaj dijagram ožičenja.

Nakon toga prenesite skicu camera.ino i otvorite serijski monitor. Kada usmjerite kameru na različite objekte (lista od 20 klasa je na skici), ona bi trebala prikazati naziv klase u serijskom monitoru!

Čestitamo! Sada imate radni modul za otkrivanje slike za svoj Arduino!

Korak 6: Povezivanje na Raspberry Pi

Povezivanje sa Raspberry Pi
Povezivanje sa Raspberry Pi
Povezivanje sa Raspberry Pi
Povezivanje sa Raspberry Pi

Koristio sam Grove Pi+ šešir za Raspberry Pi 2B, ali opet, kao i kod Arduina, možete jednostavno izravno spojiti Sipeed M1 na Raspberry Pi UART sučelje slijedeći ovaj dijagram ožičenja.

Nakon toga pokrenite camera_speak.py i usmjerite kameru na različite objekte, terminal će prikazati sljedeći tekst "Mislim da jeste", a ako imate povezane zvučnike, izgovorit će ovu frazu naglas. Prilično kul, zar ne?

Korak 7: Zaključak

Ovo su vrlo uzbudljiva vremena u kojima živimo, a umjetna inteligencija i mašinsko učenje prodiru u sva područja našeg života. Radujem se razvoju u ovoj oblasti. Održavam kontakt sa Sipeed timom i znam da oni aktivno razvijaju omot od mikropitona za sve potrebne funkcije, uključujući CNN ubrzanje.

Kad bude spremno, vrlo vjerojatno ću objaviti još instrukcija o tome kako koristiti vlastite CNN modele s mikropythonom. Zamislite sve uzbudljive aplikacije koje možete imati za ploču koja može pokrenuti vaše vlastite neuronske mreže za obradu slika po ovoj cijeni i s ovim otiskom!

Preporučuje se: