Sisällysluettelo:

AI -kamera Raspberry Pi/Arduino: 7 vaihetta
AI -kamera Raspberry Pi/Arduino: 7 vaihetta

Video: AI -kamera Raspberry Pi/Arduino: 7 vaihetta

Video: AI -kamera Raspberry Pi/Arduino: 7 vaihetta
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Kesäkuu
Anonim
Image
Image

Jos olet seurannut uutisia äskettäin, start-up-yritykset kehittivät räjähdysmäisesti siruja nopeuttamaan ML (koneoppiminen) -algoritmien päätelmiä ja koulutusta. Suurin osa näistä siruista on kuitenkin vielä kehitysvaiheessa, eikä keskivertokoneesi voi saada niitä käsiinsä. Ainoa merkittävä poikkeus tähän mennessä oli Intel Movidius Neural Compute Stick, joka on ostettavissa ja mukana tulee hyvä SDK. Sillä on muutamia merkittäviä haittoja - nimittäin hinta (noin 100 USD) ja se, että se tulee USB -muistimuotoon. On hienoa, jos haluat käyttää sitä kannettavan tietokoneen tai Raspberry PI: n kanssa, mutta entä jos haluat tehdä joitain kuvan tunnistusprojekteja Arduinon kanssa? Tai Raspberry Pi Zero?

Vaihe 1: Sipeed MAix: AI Edge

Sipeed MAix: AI reunalla
Sipeed MAix: AI reunalla

Ei niin kauan sitten sain käsiini Sipeed M1w K210 -kehityskortin, jossa on kaksiytiminen 64-bittinen RISC-V-suoritin ja sisäinen KPU (Neural Network Processor), joka on erityisesti suunniteltu CNN: n nopeuttamiseen kuvankäsittelyä varten. Voit lukea lisätietoja täältä.

Tämän levyn hinta järkytti minua suoraan, se on vain 19 USD täysimittaisen tekoälyn kehityskortille, jossa on Wi-Fi-tuki! On kuitenkin varoitus (tietysti): levyn mikropython -laiteohjelmisto on edelleen kehitteillä, ja kaiken kaikkiaan se ei ole liian käyttäjäystävällinen tällä hetkellä. Ainoa tapa käyttää kaikkia sen toimintoja tällä hetkellä on kirjoittaa oma upotettu C -koodi tai muokata joitain olemassa olevia demoja.

Tässä opetusohjelmassa selitetään, miten Mobilenet 20 -luokan tunnistusmallin avulla voidaan tunnistaa objektit ja lähettää havaittu objektikoodi UARTin kautta, josta Arduino/Raspberry Pi voi vastaanottaa sen.

Tässä opetusohjelmassa oletetaan, että tunnet Linuxin ja C -koodin kääntämisen perusteet. Jos tämän lauseen kuuleminen sai sinut hieman huimaamaan:), siirry vain vaiheeseen 4, jossa lataat valmiiksi rakennetun binaarini Sipeed M1: een ja ohitat kokoamisen.

Vaihe 2: Valmistele ympäristösi

Valmista ympäristösi
Valmista ympäristösi

Käytin Ubuntu 16.04 C -koodin kokoamiseen ja lataamiseen. Se on mahdollista tehdä Windowsissa, mutta en itse kokeillut sitä.

Lataa RISC-V GNU Compiler Toolchain, asenna kaikki tarvittavat riippuvuudet.

git klooni-rekursiivinen

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

Kopioi ladattu työkaluketju /opt -hakemistoon. Suorita sen jälkeen seuraavat komennot

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

tehdä

Lisää/opt/kendryte-toolchain/bin PATH-laitteeseesi nyt.

Olet nyt valmis koota koodi!

Vaihe 3: Käännä koodi

Kokoa koodi
Kokoa koodi

Lataa koodi github -arkistostani.

Lataa erillinen Kendryte K210 SDK

Kopioi /kpu -kansio github -arkistostani /src -kansioon SDK: ssa.

Suorita seuraavat komennot SDK -kansiossa (ei /src -kansio!)

mkdir rakentaa && cd rakentaa

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

jossa projektin_nimi on projektisi nimi (sinun tehtäväsi) ja -DTOOLCHAIN = pitäisi osoittaa risc -v -työkaluketjun sijainti (latasit sen ensimmäisessä vaiheessa, muistatko?)

Loistava! Nyt toivottavasti näet kokoamisen ilman virheitä ja sinulla on.bin -tiedosto, jonka voit ladata.

Vaihe 4:.bin -tiedoston lataaminen

. Bin -tiedoston lataaminen
. Bin -tiedoston lataaminen

Liitä nyt Sipeed M1 tietokoneeseen ja suorita seuraava komento /build -kansiosta

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

Missä kpu.bin on.bin -tiedoston nimi

Lataus kestää yleensä 2–3 minuuttia, kun se on valmis, näet levyn, jossa on 20 luokan tunnistus. Viimeinen askel meille on liittää se Arduino megaan tai Raspberry Pi: hen.

!!! Jos tulit juuri vaiheesta 2 !

Suorita seuraava komento kansiosta, johon olet kloonannut github -arkistoni

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

Lataus kestää yleensä 2–3 minuuttia, kun se on valmis, näet levyn, jossa on 20 luokan tunnistus. Viimeinen vaihe meille on liittää se Arduino megaan tai Raspberry Pi: hen.

Vaihe 5: Yhdistäminen Arduinoon

Yhdistetään Arduinoon
Yhdistetään Arduinoon
Yhdistetään Arduinoon
Yhdistetään Arduinoon
Yhdistetään Arduinoon
Yhdistetään Arduinoon

Käytin Arduino Megaa Seeed Studio Mega Shieldin kanssa, siksi juotin Grove -liittimen Sipeed M1 -levyyn. Voit kuitenkin käyttää vain hyppyjohtoja ja liittää Sipeed M1 suoraan Arduino Megaan tämän kytkentäkaavion mukaisesti.

Lataa sen jälkeen camera.ino -luonnos ja avaa sarjamonitori. Kun osoitat kameran eri kohteisiin (luonnoksessa on 20 luokan luettelo), sen pitäisi antaa sarjamonitorin luokan nimi!

Onnittelut! Sinulla on nyt toimiva kuvan tunnistusmoduuli Arduinollesi!

Vaihe 6: Yhdistäminen Raspberry Pi: hen

Yhdistäminen Raspberry Pi: hen
Yhdistäminen Raspberry Pi: hen
Yhdistäminen Raspberry Pi: hen
Yhdistäminen Raspberry Pi: hen

Käytin Grove Pi+ -hattua Raspberry Pi 2B: hen, mutta jälleen kerran, kuten Arduinon kanssa, voit liittää Sipeed M1: n suoraan Raspberry Pi: n UART -liitäntään tämän kytkentäkaavion mukaisesti.

Käynnistä sen jälkeen camera_speak.py ja osoita kamera eri kohteisiin, päätelaite lähettää seuraavan tekstin "mielestäni" ja myös jos sinulla on kaiuttimet kytketty, se puhuu tämän lauseen ääneen. Aika siistiä, eikö?

Vaihe 7: Johtopäätös

Tämä on hyvin jännittävää aikaa, kun elämme, ja tekoäly ja koneoppiminen tunkeutuvat kaikkiin elämän alueisiin. Odotan innolla kehitystä tällä alalla. Pidän yhteyttä Sipeed -tiimiin, ja tiedän, että he kehittävät aktiivisesti mikropython -kääretä kaikkiin tarvittaviin toimintoihin, mukaan lukien CNN -kiihdytys.

Kun se on valmis, julkaisen todennäköisesti lisää ohjeita siitä, miten voit käyttää omia CNN -mallejasi mikropythonilla. Ajattele kaikkia jännittäviä sovelluksia, joita sinulla voi olla levylle, joka voi käyttää omia kuvankäsittelyhermoverkkoja tähän hintaan ja tällä jalanjäljellä!

Suositeltava: