Obsah:
- Krok 1: Sipeed MAix: AI na okraji
- Krok 2: Pripravte si prostredie
- Krok 3: Zostavte kód
- Krok 4: Odovzdanie súboru.bin
- Krok 5: Pripojenie k Arduinu
- Krok 6: Pripojenie k Raspberry Pi
- Krok 7: Záver
Video: AI kamera pre Raspberry Pi/Arduino: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Ak sledujete správy v poslednom čase, došlo k výbuchu začínajúcich spoločností vyvíjajúcich čipy na urýchlenie odvodenia a školenia algoritmov ML (strojového učenia). Väčšina z týchto čipov je však stále vo vývoji a nie je to niečo, čo by váš priemerný výrobca mohol dostať do rúk. Jedinou významnou výnimkou bola zatiaľ Intel Movidius Neural Compute Stick, ktorá sa dá kúpiť a je dodávaná s dobrou súpravou SDK. Má niekoľko významných nevýhod - konkrétne cenu (približne 100 USD) a skutočnosť, že sa dodáva vo formáte USB. Je to skvelé, ak ho chcete používať s prenosným počítačom alebo Raspberry PI, ale čo keď chcete s Arduino vykonávať niekoľko projektov na rozpoznávanie obrázkov? Alebo Raspberry Pi Zero?
Krok 1: Sipeed MAix: AI na okraji
Nie je to tak dávno, čo sa mi do rúk dostala vývojová doska Sipeed M1w K210, ktorá má dvojjadrový 64bitový procesor RISC-V a môže sa pochváliť integrovaným procesorom KPU (Neural Network Processor), špeciálne navrhnutým na urýchlenie CNN na spracovanie obrazu. Viac podrobností si môžete prečítať tu.
Cena tejto dosky ma úprimne šokovala, je to iba 19 USD za plnohodnotnú vývojovú dosku AI-on-the-edge s podporou Wi-Fi! Existuje však námietka (samozrejme, že existuje): firmvér mikropythonu pre dosku sa stále vyvíja a celkovo nie je teraz užívateľsky prívetivý. Jediný spôsob, ako v súčasnosti získať prístup ku všetkým jeho funkciám, je napísať vlastný vstavaný kód C alebo upraviť niektoré existujúce ukážky.
Tento tutoriál vysvetľuje, ako použiť model detekcie triedy Mobilenet 20 na detekciu objektov a odoslanie zisteného kódu objektu prostredníctvom UART, odkiaľ ho môže prijať Arduino/Raspberry Pi.
Tento tutoriál teraz predpokladá, že ste oboznámení s Linuxom a základmi kompilácie kódu C. Ak sa vám pri počúvaní tejto frázy trochu zatočila hlava:), preskočte na krok 4, kde nahráte môj vopred vytvorený binárny súbor na server Sipeed M1 a preskočte kompiláciu.
Krok 2: Pripravte si prostredie
Na kompiláciu a odoslanie kódu C som použil Ubuntu 16.04. V systéme Windows je to možné, ale sám som to neskúsil.
Stiahnite si RISC-V GNU Compiler Toolchain, nainštalujte všetky potrebné závislosti.
git klon-rekurzívny
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
Skopírujte stiahnutý reťazec nástrojov do adresára /opt. Potom spustite nasledujúce príkazy
./configure --prefix =/opt/kendryte-toolchain --with-cmodel = medany
urobiť
Pridajte/opt/kendryte-toolchain/bin do svojej CESTY teraz.
Teraz ste pripravení skompilovať kód!
Krok 3: Zostavte kód
Stiahnite si kód z môjho úložiska github.
Stiahnite si samostatnú súpravu Kendryte K210 SDK
Skopírujte priečinok /kpu z môjho úložiska github do priečinka /src v súprave SDK.
Spustite nasledujúce príkazy v priečinku SDK (nie v priečinku /src!)
mkdir build && cd build
cmake.. -DPROJ = nazov_projektu -DTOOLCHAIN =/opt/kendryte -toolchain/bin && make
kde project_name je názov vášho projektu (na vás) a -DTOOLCHAIN = by mal ukazovať na umiestnenie vašej reťazca nástrojov risc -v (stiahli ste si ju v prvom kroku, pamätáte?)
Skvelé! Dúfajme, že teraz uvidíte, že kompilácia je dokončená bez chýb a máte súbor.bin, ktorý môžete nahrať.
Krok 4: Odovzdanie súboru.bin
Teraz pripojte svoj Sipeed M1 k počítaču a z priečinka /build spustite nasledujúci príkaz
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200 000 kpu.bin
Kde kpu.bin je názov vášho súboru.bin
Odovzdanie zvyčajne trvá 2 až 3 minúty. Po dokončení sa na tabuli zobrazí detekcia 20 tried. Posledným krokom pre nás je pripojenie k Arduino mega alebo Raspberry Pi.
!!! Ak ste práve prišli z kroku 2 !!
Spustite nasledujúci príkaz z priečinka, do ktorého ste klonovali moje úložisko github
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu_bin.bin
Odovzdanie zvyčajne trvá 2 až 3 minúty. Po dokončení sa na tabuli zobrazí detekcia 20 tried. Posledným krokom pre nás je pripojenie k Arduino mega alebo Raspberry Pi.
Krok 5: Pripojenie k Arduinu
Použil som Arduino Mega s Seeed Studio Mega Shield, preto som spájal konektor Grove s doskou Sipeed M1. Môžete však použiť prepojovacie vodiče a pripojiť Sipeed M1 priamo k Arduino Mega podľa tejto schémy zapojenia.
Potom nahrajte skicu camera.ino a otvorte sériový monitor. Keď namierite fotoaparát na rôzne objekty (zoznam 20 tried je v náčrte), malo by sa na sériovom monitore zobraziť názov triedy!
Gratulujem Teraz máte funkčný modul detekcie obrazu pre vaše Arduino!
Krok 6: Pripojenie k Raspberry Pi
Použil som klobúk Grove Pi+ pre Raspberry Pi 2B, ale znova, rovnako ako pre Arduino, môžete podľa tohto schémy zapojenia jednoducho pripojiť Sipeed M1 k rozhraniu UART Raspberry Pi.
Potom spustite Camera_speak.py a namierte fotoaparát na rôzne objekty, terminál vydá nasledujúci text „Myslím, že je“a ak máte pripojené reproduktory, vysloví túto frázu nahlas. Celkom cool, nie?
Krok 7: Záver
Toto je veľmi vzrušujúca doba, v ktorej žijeme, pričom AI a strojové učenie prenikajú do všetkých oblastí nášho života. Teším sa na vývoj v tejto oblasti. Zostávam v kontakte s tímom Sipeed a viem, že aktívne vyvíjajú obalový program pre mikropytóny pre všetky potrebné funkcie vrátane akcelerácie CNN.
Keď bude pripravený, veľmi pravdepodobne uverejním ďalšie návody na používanie vlastných modelov CNN s mikropytónom. Zamyslite sa nad všetkými vzrušujúcimi aplikáciami, ktoré môžete mať pre dosku, ktorá dokáže prevádzkovať vaše vlastné neurónové siete na spracovanie obrazu za túto cenu a s touto stopou!
Odporúča:
LED indikátor vzdialenosti pre postroj pre psa: 5 krokov (s obrázkami)
LED indikátor vzdialenosti Postroj pre psa: Väčšinou beriem svojho psa Rusia na prechádzku, keď zapadá slnko, aby sa mohol hrať, kým sa príliš nezahreje. Problém je v tom, že keď je mimo vodítka, niekedy je príliš vzrušený a beží ďalej, ako by mal, a pri slabom svetle a ostatnými psami
Zaujímavé pokyny pre programovanie programovania pre návrhára-ovládanie farieb: 10 krokov
Zaujímavé pokyny pre programovanie programovania pre návrhárov-Ovládanie farieb: V predchádzajúcich kapitolách sme si povedali viac o tom, ako použiť kód na tvarovanie, a nie o znalostné body o farbe. V tejto kapitole sa pokúsime hlbšie preskúmať tento aspekt znalostí
Pomocník pre fotoaparát D4E1 pre ľavákov. Rozšírená verzia: 7 krokov
Pomocník pre fotoaparát D4E1 pre ľavákov. Rozšírená verzia: V roku 2012 Annelies Rollez, Cesar Vandevelde a Justin Couturon navrhli kamerový držiak pre digitálnu kameru Barts (Grimonprez). Skontrolovali sme dizajn a parametrizovali ho, aby mohol byť vyrobený v flexibilnom výrobnom procese. Takto ľavá ca
Panel pre správu servera / webhostingu pre Raspberry Pi (Ajenti): 5 krokov
Serverový server / Panel webhostingu pre Raspberry Pi (Ajenti): Dobrý deň, vitajte pri mojom prvom návode. Táto príručka sa týka inštalácie Ajenti na Raspberry Pi. Túto príručku však možno použiť aj na inštaláciu ajenti na ľubovoľný operačný systém založený na debiane. Čo je to Ajenti? Ajenti je panel serverového administrátora opensource, ktorý
Výukový program pre štít ovládača motora L298 2Amp pre Arduino: 6 krokov
Tutorial pre štít ovládača motora L298 2Amp pre Arduino: Popis Štítok ovládača motora L298 2Amp pre Arduino je založený na integrovanom obvode motora L298, ovládači motora s plným mostom. Môže poháňať dva samostatné 2A jednosmerné motory alebo 1 2A krokový motor. Rýchlosť a smery motora je možné ovládať samostatne