Obsah:

AI kamera pre Raspberry Pi/Arduino: 7 krokov
AI kamera pre Raspberry Pi/Arduino: 7 krokov

Video: AI kamera pre Raspberry Pi/Arduino: 7 krokov

Video: AI kamera pre Raspberry Pi/Arduino: 7 krokov
Video: Машинное зрение на Raspberry Pi - определение формы и цвета объектов 2024, Jún
Anonim
Image
Image

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

Sipeed MAix: AI na okraji
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

Pripravte si prostredie
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

Zostavte kódex
Zostavte kódex

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

Odovzdávanie súboru.bin
Odovzdávanie 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

Pripojenie k Arduinu
Pripojenie k Arduinu
Pripojenie k Arduinu
Pripojenie k Arduinu
Pripojenie k Arduinu
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

Pripojenie k Raspberry Pi
Pripojenie k Raspberry Pi
Pripojenie k Raspberry Pi
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: