Tartalomjegyzék:

AI kamera a Raspberry Pi/Arduino számára: 7 lépés
AI kamera a Raspberry Pi/Arduino számára: 7 lépés

Videó: AI kamera a Raspberry Pi/Arduino számára: 7 lépés

Videó: AI kamera a Raspberry Pi/Arduino számára: 7 lépés
Videó: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, November
Anonim
Image
Image

Ha nemrég követte a híreket, robbanásszerűen induló vállalkozások fejlesztették ki a chipeket az ML (gépi tanulás) algoritmusok következtetéseinek és képzésének felgyorsítására. Ezeknek a zsetonoknak a nagy része azonban még fejlesztés alatt áll, és nem igazán az, amit az átlagos készítője kézbe vehet. Az egyetlen jelentős kivétel eddig az Intel Movidius Neural Compute Stick volt, amely megvásárolható és jó SDK -val érkezik. Van néhány jelentős hátránya - nevezetesen az ár (körülbelül 100 USD) és az a tény, hogy USB stick formátumban érkezik. Nagyszerű, ha laptoppal vagy Raspberry PI -vel szeretné használni, de mi van, ha néhány képfelismerő projektet szeretne végrehajtani az Arduino -val? Vagy a Raspberry Pi Zero?

1. lépés: Sipeed MAix: AI a szélén

Sipeed MAix: AI a szélén
Sipeed MAix: AI a szélén

Nem is olyan régen került a kezembe a Sipeed M1w K210 fejlesztőlap, amely kétmagos RISC-V 64 bites processzorral rendelkezik és beépített KPU-val (Neural Network Processor) büszkélkedhet, kifejezetten a CNN képfeldolgozásra való gyorsítására. További részleteket itt olvashat.

Ennek a táblának az ára őszintén megdöbbentett, mindössze 19 USD a teljes értékű, fejlett AI-on-the-edge fejlesztőlap Wi-Fi támogatással! Van azonban egy figyelmeztetés (természetesen van): a tábla mikropiton firmware -je még fejlesztés alatt áll, és összességében jelenleg nem túl felhasználóbarát. Az egyetlen módja annak, hogy jelenleg hozzáférjen minden funkciójához, ha saját beágyazott C kódot ír, vagy módosít néhány meglévő demót.

Ez az oktatóanyag elmagyarázza, hogyan kell használni a Mobilenet 20 osztály észlelési modelljét az objektumok észlelésére és az észlelt objektumkód UART -on keresztül történő elküldésére, ahonnan az Arduino/Raspberry Pi fogadhatja.

Ez az oktatóanyag feltételezi, hogy ismeri a Linuxot és a C kód fordításának alapjait. Ha ennek a mondatnak a hallatán kissé szédültél:) akkor ugorj csak a 4. lépésre, ahol feltöltöd az előre elkészített binárisomat a Sipeed M1-be, és kihagyod a fordítást.

2. lépés: Készítse elő a környezetet

Készítse elő környezetét
Készítse elő környezetét

Az Ubuntu 16.04 -et használtam C -kód összeállításához és feltöltéséhez. Windows alatt is meg lehet csinálni, de én magam nem próbáltam.

Töltse le a RISC-V GNU Compiler Toolchain szoftvert, telepítse az összes szükséges függőséget.

git klón-rekursív

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

Másolja a letöltött eszköztárat az /opt könyvtárba. Ezt követően futtassa a következő parancsokat

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

készítsen

Adja hozzá/opt/kendryte-toolchain/bin-t most a PATH-hoz.

Most már készen áll a kód összeállítására!

3. lépés: Fordítsa össze a kódot

Fordítsa össze a kódexet
Fordítsa össze a kódexet

Töltse le a kódot a github tárhelyemről.

Töltse le a Kendryte K210 önálló SDK -t

Másolja a /kpu mappát a github tárhelyemről az SDK /src mappájába.

Futtassa a következő parancsokat az SDK mappában (nem /src mappa!)

mkdir build && cd build

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

ahol a project_name a projekt neve (rajtad múlik), és a -DTOOLCHAIN = a risc -v eszköztár helyére kell mutatnia (az első lépésben töltötted le, emlékszel?)

Nagy! Most remélhetőleg látni fogja, hogy a fordítás hiba nélkül befejeződött, és van egy.bin fájlja, amelyet fel tud tölteni.

4. lépés: A.bin fájl feltöltése

A.bin fájl feltöltése
A.bin fájl feltöltése

Most csatlakoztassa a Sipeed M1 -et a számítógéphez, és a /build mappából futtassa a következő parancsot

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

Ahol a kpu.bin a.bin fájl neve

A feltöltés általában 2-3 percet vesz igénybe, miután elkészült, megjelenik a tábla, amely 20 osztály észlelését futtatja. Számunkra az utolsó lépés az Arduino mega vagy a Raspberry Pi csatlakoztatása.

!!! Ha most jöttél a 2. lépésből !

Futtassa a következő parancsot abból a mappából, ahová klónozta a github táromat

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

A feltöltés általában 2-3 percet vesz igénybe, miután elkészült, megjelenik a tábla, amely 20 osztály észlelését futtatja. Számunkra az utolsó lépés az Arduino mega vagy a Raspberry Pi csatlakoztatása.

5. lépés: Csatlakozás Arduino -hoz

Csatlakozás Arduino -hoz
Csatlakozás Arduino -hoz
Csatlakozás Arduino -hoz
Csatlakozás Arduino -hoz
Csatlakozás Arduino -hoz
Csatlakozás Arduino -hoz

Az Arduino Mega -t használtam a Seeed Studio Mega Shield -el, ezért forrasztottam egy Grove csatlakozót a Sipeed M1 lapra. Azonban csak áthidaló vezetékeket használhat, és a Sipeed M1 -et közvetlenül az Arduino Mega -hoz csatlakoztathatja, ezt a kapcsolási rajzot követve.

Ezt követően töltse fel a camera.ino vázlatot, és nyissa meg a soros monitort. Amikor a kamerát különböző objektumokra irányítja (a 20 osztály listája szerepel a vázlatban), akkor az osztály nevét kell kiadnia a soros monitoron!

Gratulálunk! Most már van működő képfelismerő modulja az Arduino készülékéhez!

6. lépés: Csatlakozás a Raspberry Pi -hez

Csatlakozás a Raspberry Pi -hez
Csatlakozás a Raspberry Pi -hez
Csatlakozás a Raspberry Pi -hez
Csatlakozás a Raspberry Pi -hez

Grove Pi+ kalapot használtam a Raspberry Pi 2B -hez, de ismét, mint az Arduino esetében, közvetlenül csatlakoztathatja a Sipeed M1 -et a Raspberry Pi UART interfészéhez a kapcsolási rajz szerint.

Ezt követően indítsa el a camera_speak.py programot, és mutassa a kamerát különböző objektumokra, a terminál a következő szöveget adja ki: "Szerintem", és ha hangszórók vannak csatlakoztatva, akkor hangosan kimondja ezt a kifejezést. Elég menő, nem?

7. lépés: Következtetés

Nagyon izgalmas időkben élünk, ahol az AI és a gépi tanulás behatol életünk minden területébe. Kíváncsian várom a fejlődést ezen a területen. Tartom a kapcsolatot a Sipeed csapatával, és tudom, hogy aktívan fejlesztik a mikropiton burkolatot az összes szükséges funkcióhoz, beleértve a CNN gyorsítást is.

Ha készen lesz, valószínűleg további utasításokat teszek közzé a saját CNN -modelljeinek mikropitonnal való használatáról. Gondoljon az összes izgalmas alkalmazásra, amelyet egy olyan táblához használhat, amely képes saját képfeldolgozó ideghálózatait futtatni ezen az áron és ezzel a lábnyomával!

Ajánlott: