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, Studeni
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 ML-a (strojnog učenja). Međutim, većina tih čipova je još uvijek u razvoju i nije nešto što bi vaš prosječni proizvođač mogao dohvatiti. Jedina značajna iznimka do sada bio je Intel Movidius Neural Compute Stick, koji je dostupan za kupnju i dolazi s dobrim SDK -om. Ima nekoliko značajnih nedostataka - naime cijenu (oko 100 USD) i činjenicu da dolazi u USB formatu. Izvrsno je ako ga želite koristiti s prijenosnim računalom ili Raspberry PI -om, 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 rubu
Sipeed MAix: AI na rubu

Ne tako davno u ruke mi je došla razvojna ploča 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 AI-on-the-edge s podrškom za Wi-Fi! Ipak, postoji upozorenje (naravno da postoji): mikropython firmver za ploču je još uvijek u razvoju, te općenito za sada nije previše prilagođen korisnicima. Jedini način da sada pristupite svim njegovim funkcijama je da napišete vlastiti ugrađeni C kod ili izmijenite neke postojeće demonstracije.

Ovaj vodič objašnjava kako koristiti model otkrivanja klase Mobilenet 20 za otkrivanje objekata i slanje otkrivenog objektnog koda 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 u glavi:) samo prijeđite na korak 4, gdje učitavate moju unaprijed izgrađenu binarnu datoteku na Sipeed M1 i preskočite sastavljanje.

Korak 2: Pripremite svoje okruženje

Pripremite svoje okruženje
Pripremite svoje okruženje

Koristio sam Ubuntu 16.04 za kompilaciju i prijenos C koda. To je moguće učiniti u sustavu Windows, ali ja to nisam isprobao.

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

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 alatni lanac u direktorij /opt. Nakon toga pokrenite sljedeće naredbe

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

napraviti

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

Sada ste spremni za sastavljanje koda!

Korak 3: Sastavite kôd

Sastavite Kodeks
Sastavite Kodeks

Preuzmite kod iz mog github spremišta.

Preuzmite Kendryte K210 samostalni SDK

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

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

mkdir build && cd build

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

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

Sjajno! Nadajmo se da ćete vidjeti da je kompilacija završena bez grešaka i da imate.bin datoteku koju možete prenijeti.

Korak 4: Prijenos.bin datoteke

Prijenos.bin datoteke
Prijenos.bin datoteke

Sada povežite svoj Sipeed M1 s računalom i iz mape /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

Prijenos obično traje 2-3 minute, a nakon što završite 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

Prijenos obično traje 2-3 minute, a nakon što završite 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 samo 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. Kad usmjerite kameru na različite objekte (popis od 20 klasa nalazi se na skici), ona bi trebala prikazati naziv klase u serijskom monitoru!

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

Korak 6: Spajanje na Raspberry Pi

Povezivanje s Raspberry Pi
Povezivanje s Raspberry Pi
Povezivanje s Raspberry Pi
Povezivanje s 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 jest", a također, ako imate povezane zvučnike, izgovarat će ovu frazu naglas. Prilično cool, zar ne?

Korak 7: Zaključak

Ovo su vrlo uzbudljiva vremena u kojima živimo, a umjetna inteligencija i strojno učenje prodiru u sva područja našeg života. Veselim se razvoju na ovom području. Ostajem u kontaktu sa Sipeed timom i znam da 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 za ovu cijenu i s ovim otiskom!

Preporučeni: