Taula de continguts:
- Pas 1: Sipeed MAix: IA al Edge
- Pas 2: prepareu el vostre entorn
- Pas 3: Compileu el codi
- Pas 4: càrrega del fitxer.bin
- Pas 5: Connexió a Arduino
- Pas 6: Connexió a Raspberry Pi
- Pas 7: Conclusió
Vídeo: Càmera AI per a Raspberry Pi / Arduino: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Si heu estat seguint les notícies recentment, hi va haver una explosió d’empreses emergents que desenvolupaven xips per accelerar la inferència i la formació d’algoritmes de ML (machine learning). Tanmateix, la majoria d'aquests xips encara estan en desenvolupament i no és realment una cosa que el vostre fabricant mitjà pugui aconseguir. L'única excepció significativa fins al moment va ser Intel Movidius Neural Compute Stick, que es pot comprar i ve amb un bon SDK. Té alguns desavantatges significatius, és a dir, el preu (al voltant de 100 USD) i el fet que es presenta en format de memòria USB. És fantàstic si el voleu utilitzar amb ordinadors portàtils o Raspberry PI, però, i si voleu fer alguns projectes de reconeixement d’imatges amb Arduino? O Raspberry Pi Zero?
Pas 1: Sipeed MAix: IA al Edge
No fa molt de temps vaig posar les mans en la placa de desenvolupament Sipeed M1w K210, que té una CPU RISC-V de 64 bits de doble nucli i compta amb un KPU (processador de xarxa neuronal) integrat, dissenyat específicament per accelerar CNN per al processament d’imatges. Podeu llegir més detalls aquí.
El preu d’aquest tauler em va sorprendre francament, és de només 19 dòlars per a un tauler de desenvolupament de gamma completa amb compatibilitat Wi-Fi. Tanmateix, hi ha una advertència (és clar que sí): el microprogramari del micropitó per a la placa encara està en desenvolupament i, en general, no és massa fàcil d'utilitzar fins ara. L’única manera d’accedir a totes les seves funcions ara mateix és escriure el vostre propi codi C incrustat o modificar algunes demostracions existents.
Aquest tutorial explica com utilitzar el model de detecció de classes Mobilenet 20 per detectar els objectes i enviar el codi d'objecte detectat a través de UART, des d'on el pot rebre Arduino / Raspberry Pi.
Ara, aquest tutorial suposa que coneixeu Linux i els fonaments bàsics de la compilació del codi C. Si escoltar aquesta frase us va causar una mica de mareig:), només heu de passar al pas 4, on pengeu el meu binari preconstruït a Sipeed M1 i ometeu la compilació.
Pas 2: prepareu el vostre entorn
He utilitzat Ubuntu 16.04 per recopilar i penjar codi C. És possible fer-ho al Windows, però jo mateix no ho vaig provar.
Descarregueu la cadena d’eines del compilador GNU RISC-V, instal·leu totes les dependències necessàries.
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
Copieu la cadena d'eines descarregada al directori / opt. Després d'això, executeu les següents ordres
./configure --prefix = / opt / kendryte-toolchain --with-cmodel = medany
fer
Afegiu / opt / kendryte-toolchain / bin al vostre PATH ara.
Ja esteu preparats per compilar el codi.
Pas 3: Compileu el codi
Baixeu-vos el codi del meu repositori de github.
Descarregueu l'SDK independent de Kendryte K210
Copia la carpeta / kpu del meu dipòsit github a la carpeta / src de l'SDK.
Executeu les ordres següents a la carpeta SDK (no la carpeta / src!)
mkdir build && cd build
cmake.. -DPROJ = nom_projecte -DTOOLCHAIN = / opt / kendryte-toolchain / bin && make
on nom_projecte és el nom del vostre projecte (fins a vosaltres) i -DTOOLCHAIN = hauria d’assenyalar la ubicació de la vostra cadena d’eines risc-v (l’heu descarregat al primer pas, recordeu?)
Genial! Ara esperem que vegeu la compilació acabada sense errors i que tingueu un fitxer.bin que podeu penjar.
Pas 4: càrrega del fitxer.bin
Ara connecteu el Sipeed M1 a l'ordinador i des de la carpeta / build executeu l'ordre següent
sudo python3 isp_auto.py -d / dev / ttyUSB0 -b 200000 kpu.bin
On kpu.bin és el nom del fitxer.bin
La càrrega normalment triga 2-3 minuts, un cop acabada, veureu el tauler executant 20 classes de detecció. L’últim pas per a nosaltres és connectar-lo a Arduino mega o Raspberry Pi.
!!! Si acabes de venir del pas 2 !
Executeu l'ordre següent des de la carpeta on heu clonat el dipòsit de github
sudo python3 isp_auto.py -d / dev / ttyUSB0 -b 200000 kpu_bin.bin
La càrrega normalment triga 2-3 minuts, un cop acabada, veureu el tauler executant 20 classes de detecció. L’últim pas per a nosaltres és connectar-lo a Arduino mega o Raspberry Pi.
Pas 5: Connexió a Arduino
He utilitzat l’Arduino Mega amb Seeed Studio Mega Shield, per això he soldat un connector Grove a la placa Sipeed M1. Tot i això, només podeu utilitzar cables jumper i connectar Sipeed M1 directament a Arduino Mega, seguint aquest esquema de cablejat.
Després carregueu l'esbós camera.ino i obriu el monitor de sèrie. Quan assenyaleu la càmera cap a diferents objectes (la llista de 20 classes es troba a l'esbós), hauria de generar el nom de la classe al monitor sèrie.
Enhorabona! Ara teniu un mòdul de detecció d'imatges de treball per al vostre Arduino.
Pas 6: Connexió a Raspberry Pi
He utilitzat el barret Grove Pi + per a Raspberry Pi 2B, però de nou, igual que amb Arduino, podeu connectar directament Sipeed M1 a la interfície UART de Raspberry Pi seguint aquest esquema de cablejat.
Després d'aquest llançament camera_speak.py i apuntant la càmera cap a diferents objectes, el terminal emetrà el següent text "Crec que és" i, també, si teniu altaveus connectats, pronunciarà aquesta frase en veu alta. Bastant xulo, oi?
Pas 7: Conclusió
Són moments molt emocionants que vivim, amb la IA i l’aprenentatge automàtic que penetren a totes les àrees de la nostra vida. Estic desitjant el desenvolupament en aquesta àrea. Estic en contacte amb l'equip de Sipeed i sé que estan desenvolupant activament un embolcall de micropitons per a totes les funcions necessàries, inclosa l'acceleració CNN.
Quan estigui a punt, és probable que publiqui més instruccions sobre com utilitzar els vostres propis models CNN amb micropitó. Penseu en totes les emocionants aplicacions que podeu tenir per a una placa que pot executar les vostres pròpies xarxes neuronals de processament d’imatges per aquest preu i amb aquesta petjada.
Recomanat:
Càmera web més senzilla com a càmera de seguretat: detecció de moviment i imatges enviades per correu electrònic: 4 passos
Càmera web més senzilla com a càmera de seguretat: detecció de moviment i imatges enviades per correu electrònic: ja no cal que descarregueu ni configureu programari per obtenir imatges detectades de moviment des de la vostra càmera web fins al vostre correu electrònic; només cal que utilitzeu el navegador. Utilitzeu un navegador Firefox, Chrome, Edge o Opera actualitzat a Windows, Mac o Android per capturar la imatge
Lent circular polaritzadora (CPL) per a càmera de càmera Roav C1: 9 passos (amb imatges)
Lent circular polaritzadora (CPL) per a la càmera de càmera Roav C1: A continuació, es mostra com he creat un filtre de polarització circular per a la meva càmera de càlcul Roav C1. Això ajudarà a reduir l’enlluernament que surt del parabrisa de la llum del sol durant el dia i dels fars al vespre
Monopode de Trekking Pole per a càmera / càmera de vídeo petita: 4 passos
Trekking Pole Monopod for Small Camera / Camcorder: M’agrada fer moltes fotografies mentre faig excursions, però el meu trípode és una mica massa pesat per a excursions greus i el meu trípode d’estil goril·la triga massa a arribar al lloc adequat i no és molt estable (hauria d’haver-ne comprat un de més bonic). Aquest senzill c
Afegiu una presa de sincronització de PC a un cable Nikon Sc-28 Ttl (utilitzeu la configuració automàtica per a un flaix de la càmera i desactiveu els flaixos de la càmera !!): 4 passos
Afegiu una presa de sincronització de PC a un cable Nikon Sc-28 Ttl (utilitzeu Configuració automàtica per a un flaix de la càmera i desactiveu els flaixos de la càmera !!): en aquest instructiu us mostraré com treure un d’aquests molestos connectors TTL de 3 pines al costat d’un cable TTL de la càmera Nikon SC-28 i substituïu-lo per un connector de sincronització de PC estàndard. això us permetrà utilitzar un flash dedicat, s
Com construir un nivell de càmera il·luminada per a una càmera DSLR: 4 passos (amb imatges)
Com es construeix un nivell de càmera il·luminada per a una càmera DSLR: Alguna vegada heu disparat en condicions de poca llum i heu notat que els vostres trets eren fora de nivell? Doncs segur que ho tinc! Darrerament he estat fent molta feina amb la fotografia de llarga exposició i quan surto al camp amb un gorilapode em trobo corrent