
Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38


Pokud jste v poslední době sledovali novinky, došlo k explozi začínajících firem vyvíjejících čipy pro urychlování odvozování a školení algoritmů ML (strojového učení). Většina těchto čipů je však stále ve vývoji a není to něco, co by váš průměrný výrobce mohl dostat do rukou. Jedinou významnou výjimkou byla zatím Intel Movidius Neural Compute Stick, kterou je možné zakoupit a je dodávána s dobrou sadou SDK. Má to několik významných nevýhod - konkrétně cenu (kolem 100 USD) a skutečnost, že je dodáván ve formátu USB. Je skvělé, pokud ho chcete používat s notebookem nebo Raspberry PI, ale co když chcete s Arduinem provádět nějaké projekty rozpoznávání obrázků? Nebo Raspberry Pi Zero?
Krok 1: Sipeed MAix: AI na okraji

Není to tak dávno, co se mi dostala do rukou vývojová deska Sipeed M1w K210, která má dvoujádrový 64bitový procesor RISC-V a pyšní se integrovaným KPU (Neural Network Processor), speciálně navrženým pro akceleraci CNN pro zpracování obrazu. Více podrobností si můžete přečíst zde.
Cena této desky mě upřímně šokovala, je to pouhých 19 USD za plnohodnotnou vývojovou desku AI-on-the-edge s podporou Wi-Fi! Existuje však varování (samozřejmě existuje): firmware mikropythonu pro desku je stále ve vývoji a celkově není prozatím příliš uživatelsky přívětivý. Jediný způsob, jak získat přístup ke všem jeho funkcím právě teď, je napsat vlastní vložený kód C nebo upravit některá stávající dema.
Tento tutoriál vysvětluje, jak pomocí modelu detekce třídy Mobilenet 20 detekovat objekty a odeslat kód detekovaného objektu přes UART, odkud jej může přijímat Arduino/Raspberry Pi.
Tento tutoriál předpokládá, že jste obeznámeni s Linuxem a základy kompilace kódu C. Pokud se vám tato fráze trochu zatočila:), pak přejděte ke kroku 4, kde nahrajete můj předem vytvořený binární soubor na Sipeed M1 a přeskočíte kompilaci.
Krok 2: Připravte si prostředí

Pro kompilaci a nahrávání kódu C jsem použil Ubuntu 16.04. Ve Windows je to možné, ale sám jsem to nezkoušel.
Stáhněte si RISC-V GNU Compiler Toolchain, nainstalujte všechny potřebné závislosti.
git clone-rekurzivní
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
Zkopírujte stažený řetězec nástrojů do adresáře /opt. Poté spusťte následující příkazy
./configure --prefix =/opt/kendryte-toolchain --with-cmodel = medany
udělat
Přidejte/opt/kendryte-toolchain/bin do své PATH nyní.
Nyní jste připraveni zkompilovat kód!
Krok 3: Sestavte kód

Stáhněte si kód z mého úložiště github.
Stáhněte si samostatnou SDK Kendryte K210
Zkopírujte složku /kpu z mého úložiště github do složky /src v SDK.
Spusťte následující příkazy ve složce SDK (ne ve složce /src!)
mkdir build && cd build
cmake.. -DPROJ = název_projektu -DTOOLCHAIN =/opt/kendryte -toolchain/bin && make
kde název_projektu je název vašeho projektu (na vás) a -DTOOLCHAIN = by měl ukazovat na umístění vašeho řetězce nástrojů risc -v (stáhli jste si jej v prvním kroku, pamatujete?)
Skvělý! Doufejme, že nyní uvidíte kompilaci dokončenou bez chyb a máte soubor.bin, který můžete nahrát.
Krok 4: Nahrání souboru.bin

Nyní připojte svůj Sipeed M1 k počítači a ze složky /build spusťte následující příkaz
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200 000 kpu.bin
Kde kpu.bin je název vašeho souboru.bin
Nahrávání obvykle trvá 2–3 minuty, po dokončení uvidíte desku s detekcí 20 tříd. Posledním krokem pro nás je připojení k Arduino mega nebo Raspberry Pi.
!!! Pokud jste právě přišli z kroku 2 !
Spusťte následující příkaz ze složky, kam jste naklonovali mé úložiště github
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu_bin.bin
Nahrávání obvykle trvá 2–3 minuty, po jeho dokončení uvidíte desku s detekcí 20 tříd. Posledním krokem pro nás je připojení k Arduino mega nebo Raspberry Pi.
Krok 5: Připojení k Arduinu



Použil jsem Arduino Mega s Seeed Studio Mega Shield, proto jsem připájel konektor Grove na desku Sipeed M1. Můžete však použít propojovací vodiče a připojit Sipeed M1 přímo k Arduino Mega podle tohoto schématu zapojení.
Poté nahrajte skicu camera.ino a otevřete sériový monitor. Když namíříte kameru na různé objekty (seznam 20 tříd je v náčrtu), měla by na sériovém monitoru zobrazit název třídy!
Gratulujeme! Nyní máte funkční modul detekce obrazu pro vaše Arduino!
Krok 6: Připojení k Raspberry Pi


Použil jsem klobouk Grove Pi+ pro Raspberry Pi 2B, ale opět, stejně jako u Arduina, můžete jednoduše připojit Sipeed M1 k rozhraní UART Raspberry Pi podle tohoto schématu zapojení.
Poté spusťte camera_speak.py a nasměrujte kameru na různé objekty, terminál vydá následující text „Myslím, že je“a pokud máte připojené reproduktory, vysloví tuto frázi nahlas. Docela cool, že?
Krok 7: Závěr
Toto je velmi vzrušující doba, ve které žijeme, kdy AI a strojové učení pronikají do všech oblastí našeho života. Těším se na vývoj v této oblasti. Zůstávám v kontaktu s týmem Sipeed a vím, že aktivně vyvíjejí obal pro mikropython pro všechny potřebné funkce, včetně akcelerace CNN.
Až bude připraven, velmi pravděpodobně zveřejním další instruktáže o tom, jak používat vaše vlastní modely CNN s mikropythonem. Přemýšlejte o všech vzrušujících aplikacích, které můžete mít pro desku, která může provozovat vaše vlastní neuronové sítě pro zpracování obrazu za tuto cenu as touto stopou!
Doporučuje:
Dokumentární kamera MetaPrax s cenou 10 $ pro videokonference: 5 kroků

Dokumentární kamera MetaPrax za 10 $ pro videokonference: Publikoval 20200803 John E. Nelson [email protected] Kamery pro dokument, které se mají používat při online schůzkách, stojí od online prodejců 60 až 150 $. S náhlou transformací související s COVID-19 z osobního učení na vzdálené učení přes stážisty
Použijte 1 analogový vstup pro 6 tlačítek pro Arduino: 6 kroků

Použijte 1 analogový vstup pro 6 tlačítek pro Arduino: Často jsem přemýšlel, jak bych mohl pro svůj Arduino získat více digitálních vstupů. Nedávno mě napadlo, že bych měl být schopen použít jeden z analogových vstupů pro zavedení více digitálních vstupů. Rychle jsem hledal a zjistil, kde jsou lidé
Panel pro správu serveru / webhostingu pro Raspberry Pi (Ajenti): 5 kroků

Server Admin / Webhosting Panel for Raspberry Pi (Ajenti): Dobrý den, vítejte u mého prvního Instructable. Tato příručka se týká instalace Ajenti na Raspberry pi. Tuto příručku však lze také použít k instalaci ajenti na jakýkoli operační systém založený na debianu. Co je Ajenti? Ajenti je panel správce serveru opensource, který
Kamera pro detekci pohybu Raspberry Pi 3 s živým posuvem: 6 kroků

Kamera pro detekci pohybu Raspberry Pi 3 s živým posuvem: Úvod V tomto projektu se naučíte, jak vytvořit kameru pro detekci pohybu, kterou budete moci používat jako past na fotoaparát, monitor domácího mazlíčka/dětské chůvičky, bezpečnostní kameru a mnoho dalšího. Tento projekt je rozdělen do několika kroků: Úvod Nastavení
Výukový program pro štít ovladače motoru L298 2Amp pro Arduino: 6 kroků

Výukový program pro štítový ovladač motoru L298 2Amp pro Arduino: Popis L298 2Amp Motor Driver Shield pro Arduino je založen na integrovaném obvodu ovladače motoru L298, což je ovladač můstku motoru s plným můstkem. Může pohánět dva samostatné 2A DC motory nebo 1 2A krokový motor. Rychlost a směry motoru lze ovládat samostatně