Cuprins:
- Pasul 1: Sipeed MAix: AI la Edge
- Pasul 2: Pregătiți-vă mediul
- Pasul 3: Compilați codul
- Pasul 4: Încărcarea fișierului.bin
- Pasul 5: Conectarea la Arduino
- Pasul 6: Conectarea la Raspberry Pi
- Pasul 7: Concluzie
Video: Cameră AI pentru Raspberry Pi / Arduino: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Dacă ați urmărit știrile recent, a existat o explozie de start-up-uri care dezvoltă cipuri pentru accelerarea inferenței și antrenamentului algoritmilor ML (machine learning). Cu toate acestea, majoritatea acestor cipuri sunt încă în curs de dezvoltare și nu chiar ceva ce poate face mâna producătorului dvs. mediu. Singura excepție semnificativă de până acum a fost Intel Movidius Neural Compute Stick, care este disponibil pentru cumpărare și vine cu un SDK bun. Are câteva dezavantaje semnificative - și anume prețul (aproximativ 100 USD) și faptul că vine în format stick USB. Este minunat dacă doriți să-l utilizați cu laptop sau Raspberry PI, dar dacă doriți să faceți câteva proiecte de recunoaștere a imaginilor cu Arduino? Sau Raspberry Pi Zero?
Pasul 1: Sipeed MAix: AI la Edge
Nu cu mult timp în urmă am pus mâna pe placa de dezvoltare Sipeed M1w K210, care are procesor dual-core RISC-V 64 biți și are un KPU (procesor de rețea neuronală), conceput special pentru accelerarea CNN pentru procesarea imaginilor. Puteți citi mai multe detalii aici.
Prețul acestei plăci ma șocat sincer, este doar 19 USD pentru o placă de dezvoltare completă AI-on-the-edge cu suport Wi-Fi! Există totuși o avertizare (desigur că există): firmware-ul micropython pentru placa este încă în curs de dezvoltare și, în general, nu este prea ușor de utilizat până acum. Singura modalitate de a accesa toate funcțiile sale este acum să scrieți propriul cod C încorporat sau să modificați unele demonstrații existente.
Acest tutorial explică modul de utilizare a modelului de detectare a clasei Mobilenet 20 pentru a detecta obiectele și a trimite codul obiectului detectat prin UART, de unde poate fi primit de Arduino / Raspberry Pi.
Acum, acest tutorial presupune că sunteți familiarizați cu Linux și elementele de bază ale compilării codului C. Dacă auzirea acestei fraze te-a cam amețit:) atunci treci doar la Pasul 4, unde îmi încarci binele pre-construit pe Sipeed M1 și sări peste compilare.
Pasul 2: Pregătiți-vă mediul
Am folosit Ubuntu 16.04 pentru compilarea și încărcarea codului C. Este posibil să fac asta în Windows, dar eu însămi nu am încercat-o.
Descărcați RISC-V GNU Compiler Toolchain, instalați toate dependențele necesare.
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
Copiați lanțul de instrumente descărcat în directorul / opt. După aceea, executați următoarele comenzi
./configure --prefix = / opt / kendryte-toolchain --with-cmodel = medany
face
Adăugați / opt / kendryte-toolchain / bin la PATH acum.
Acum sunteți gata să compilați codul!
Pasul 3: Compilați codul
Descărcați codul din depozitul meu github.
Descărcați Kendryte K210 SDK independent
Copiați folderul / kpu din depozitul meu github în folderul / src din SDK.
Rulați următoarele comenzi în folderul SDK (nu folderul / src!)
mkdir build && cd build
cmake.. -DPROJ = project_name -DTOOLCHAIN = / opt / kendryte-toolchain / bin && make
unde project_name este numele proiectului dvs. (depinde de dvs.) și -DTOOLCHAIN = ar trebui să indice locația lanțului de instrumente risc-v (l-ați descărcat în primul pas, vă amintiți?)
Grozav! Acum, sperăm că veți vedea compilarea terminată fără erori și aveți un fișier.bin pe care îl puteți încărca.
Pasul 4: Încărcarea fișierului.bin
Acum conectați Sipeed M1 la computer și din folderul / build executați următoarea comandă
sudo python3 isp_auto.py -d / dev / ttyUSB0 -b 200000 kpu.bin
Unde kpu.bin este numele fișierului dvs..bin
Încărcarea durează de obicei 2-3 minute, după ce ați terminat, veți vedea placa executând 20 de clase de detectare. Ultimul pas pentru noi este să îl conectăm la Arduino mega sau Raspberry Pi.
!!! Dacă tocmai ai venit de la Pasul 2 !
Rulați următoarea comandă din folderul în care ați clonat depozitul meu github
sudo python3 isp_auto.py -d / dev / ttyUSB0 -b 200000 kpu_bin.bin
Încărcarea durează de obicei 2-3 minute, după ce ați terminat, veți vedea placa executând 20 de clase de detectare. Ultimul pas pentru noi este să îl conectăm la Arduino mega sau Raspberry Pi.
Pasul 5: Conectarea la Arduino
Am folosit Arduino Mega cu Seeed Studio Mega Shield, de aceea am lipit un conector Grove pe placa Sipeed M1. Cu toate acestea, puteți utiliza doar fire jumper și conecta Sipeed M1 direct la Arduino Mega, urmând această diagramă de cablare.
După aceea încărcați schița camera.ino și deschideți monitorul Serial. Când îndreptați camera către diferite obiecte (lista celor 20 de clase se află în schiță) ar trebui să scoată numele clasei pe monitorul serial!
Felicitări! Aveți acum modul de lucru pentru detectarea imaginilor pentru Arduino!
Pasul 6: Conectarea la Raspberry Pi
Am folosit pălăria Grove Pi + pentru Raspberry Pi 2B, dar din nou, ca și în cazul Arduino, puteți conecta direct Sipeed M1 la interfața UART a Raspberry Pi urmând această schemă de conectare.
După aceea lansați camera_speak.py și îndreptați camera către diferite obiecte, terminalul va afișa următorul text „Cred că este” și, de asemenea, dacă aveți difuzoare conectate, va rosti această frază cu voce tare. Destul de cool, nu-i așa?
Pasul 7: Concluzie
Sunt momente foarte emoționante în care trăim, cu AI și învățarea automată care pătrund în toate domeniile vieții noastre. Aștept cu nerăbdare dezvoltarea în acest domeniu. Țin legătura cu echipa Sipeed și știu că dezvoltă în mod activ înfășurarea micropitonului pentru toate funcțiile necesare, inclusiv accelerarea CNN.
Când este gata, foarte probabil voi publica mai multe instructabile despre cum să utilizați propriile modele CNN cu micropiton. Gândiți-vă la toate aplicațiile interesante pe care le puteți avea pentru o placă care poate rula propriile rețele neuronale de procesare a imaginii la acest preț și cu această amprentă!
Recomandat:
Cameră CCTV cu NodeMCU + Modul de cameră pentru laptop vechi (cu și fără utilizarea Blynk): 5 pași
Cameră CCTV cu NodeMCU + Modulul de cameră pentru laptop vechi (cu și fără utilizarea Blynk): Bună băieți! În acest instructable, vă voi arăta cum am folosit modulul de cameră vechi al laptopului și nodeMCU pentru a face ceva similar cu CCTV
Capcană simplă pentru camera Raspberry Pi realizată dintr-un recipient pentru alimente: 6 pași (cu imagini)
Capcană simplă pentru camera Raspberry Pi realizată dintr-un recipient pentru alimente: „Mi se pare că lumea naturală este cea mai mare sursă de emoție, cea mai mare sursă de frumusețe vizuală, cea mai mare sursă de interes intelectual. Este cea mai mare sursă de atâta viață care face ca viața să merite trăită. &Quot; - D
Cameră de rezervă pentru camera video reciclată: 7 pași (cu imagini)
Cameră de rezervă pentru camera video reciclată: sunt sigur că majoritatea dintre voi care citiți acest lucru au un sertar sau un dulap undeva plin de tehnică iubită odată care tocmai a devenit prea veche și depășită. Cu siguranță am partea mea de tehnologie veche și este trist să văd că un astfel de potențial se pierde. Ei bine, în acest ghid, sunt g
Stabilizator pentru cameră pentru ENV2 sau alte telefoane cu cameră: 6 pași
Camera Stabilizer pentru ENV2 sau alte telefoane cu cameră: vreți vreodată să faceți un videoclip, dar aveți doar un telefon cu cameră? Ați făcut vreodată un videoclip cu un telefon cu cameră, dar nu îl puteți ține nemișcat? Ei bine, acesta este instructivul pentru tine
Suport pentru trepied pentru o cameră rapidă (sau altă cameră web): 5 pași
Suport pentru trepied pentru o cameră foto rapidă (sau altă cameră web): există multe motive pentru care ați putea dori să puneți camera web pe un trepied. Trebuia să fac acest lucru, deoarece suportul pentru Logitech QuickCam Pro 4000 lipsea, dar este adesea plăcut să-l folosesc cu un trepied pentru imagini mai bune, în general, mai ales dacă