Talaan ng mga Nilalaman:

AI Camera para sa Raspberry Pi / Arduino: 7 Hakbang
AI Camera para sa Raspberry Pi / Arduino: 7 Hakbang

Video: AI Camera para sa Raspberry Pi / Arduino: 7 Hakbang

Video: AI Camera para sa Raspberry Pi / Arduino: 7 Hakbang
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, Nobyembre
Anonim
Image
Image

Kung sinusundan mo ang balita kamakailan lamang, nagkaroon ng isang pagsabog ng mga pagsisimula ng pagbuo ng mga chips para sa pagpapabilis ng pag-hinuha at pagsasanay sa mga algorithm ng ML (machine learning). Gayunpaman ang karamihan sa mga chips ay nasa ilalim pa rin ng pag-unlad at hindi talaga isang bagay na maaaring makuha ng iyong average na tagagawa. Ang tanging makabuluhang pagbubukod sa ngayon ay ang Intel Movidius Neural Compute Stick, na magagamit para sa pagbili at mayroong magandang SDK. Mayroon itong ilang mga makabuluhang disadvantages - lalo ang presyo (sa paligid ng 100 USD) at ang katunayan na ito ay nasa format ng USB stick. Mahusay kung nais mong gamitin ito sa laptop o Raspberry PI, ngunit paano kung nais mong gumawa ng ilang mga proyekto sa pagkilala ng imahe kasama ng Arduino? O Raspberry Pi Zero?

Hakbang 1: Sipeed MAix: AI sa Edge

Sipeed MAix: Ai sa Edge
Sipeed MAix: Ai sa Edge

Hindi pa matagal na ang nakaraan nakuha ko ang aking mga kamay sa Sipeed M1w K210 development board, na mayroong dual-core RISC-V 64bit CPU at ipinagmamalaki ang isang on-board KPU (Neural Network Processor), na partikular na idinisenyo para sa pagpapabilis ng CNN para sa pagproseso ng imahe. Maaari mong basahin ang higit pang mga detalye dito.

Ang presyo ng board na ito ay lantaran na ikinagulat ko, ito ay 19 USD lamang para sa ganap na AI-on-the-edge development board na may suporta sa Wi-fi! Mayroong isang pag-iingat (syempre may): ang micropython firmware para sa board ay nasa pagpapaunlad pa rin, at sa pangkalahatan ay hindi ito masyadong magiliw sa ngayon. Ang tanging paraan lamang upang ma-access ang lahat ng mga pagpapaandar nito ngayon ay upang isulat ang iyong sariling naka-embed na C code o baguhin ang ilang mga umiiral nang demo.

Ipinapaliwanag ng tutorial na ito kung paano gamitin ang modelo ng pagtuklas ng klase ng Mobilenet 20 upang makita ang mga bagay at ipadala ang nakita na object code sa pamamagitan ng UART, mula sa kung saan ito maaaring matanggap ng Arduino / Raspberry Pi.

Ngayon, ipinapalagay ng tutorial na ito na pamilyar ka sa Linux at ang mga pangunahing kaalaman sa pag-iipon ng C code. Kung ang pandinig sa pariralang ito ay nagpahilo sa iyo:) pagkatapos ay laktawan lamang ang Hakbang 4, kung saan mo mai-upload ang aking paunang built na binary sa Sipeed M1 at laktawan ang pag-iipon.

Hakbang 2: Ihanda ang Iyong Kapaligiran

Ihanda ang Iyong Kapaligiran
Ihanda ang Iyong Kapaligiran

Gumamit ako ng Ubuntu 16.04 para sa compile ng C code at i-upload. Posibleng gawin iyon sa Windows, ngunit hindi ko ito sinubukan.

I-download ang RISC-V GNU Compiler Toolchain, i-install ang lahat ng kinakailangang mga dependency.

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

Kopyahin ang na-download na toolchain sa / direktoryo ng opt. Pagkatapos nito patakbuhin ang pagsunod sa mga utos

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

gumawa

Magdagdag / pumili / kendryte-toolchain / bin sa iyong PATH ngayon.

Handa ka na ngayong mag-ipon ng code!

Hakbang 3: Tipunin ang Code

Compile ang Code
Compile ang Code

I-download ang code mula sa aking repository ng github.

I-download ang Kendryte K210 standalone SDK

Kopyahin / kpu folder mula sa aking github repository sa / src folder sa SDK.

Patakbuhin ang mga sumusunod na utos sa SDK folder (hindi / src folder!)

mkdir build && cd build

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

kung saan ang project_name ang pangalan ng iyong proyekto (nasa iyo) at -DTOOLCHAIN = dapat ituro ang lokasyon ng iyong risc-v toolchain (na-download mo ito sa lst step, tandaan mo?)

Malaki! Ngayon sana ay makita mong natapos ang compilation nang walang mga error at mayroon kang isang.bin file na maaari mong i-upload.

Hakbang 4: Pag-upload ng.bin File

Pag-upload ng.bin File
Pag-upload ng.bin File

Ikonekta ngayon ang iyong Sipeed M1 sa computer at mula sa / build folder patakbuhin ang sumusunod na utos

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

Kung saan ang kpu.bin ay ang pangalan ng iyong.bin file

Karaniwang tumatagal ng 2-3 minuto ang pag-upload, matapos itong gawin makikita mo ang board na tumatakbo sa 20 klase ng pagtuklas. Ang huling hakbang para sa amin ay ikonekta ito sa Arduino mega o Raspberry Pi.

!!! Kung galing ka lang sa Hakbang 2 !!

Patakbuhin ang sumusunod na utos mula sa folder kung saan mo na-clone ang aking github repository

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

Karaniwang tumatagal ng 2-3 minuto ang pag-upload, matapos itong gawin makikita mo ang board na tumatakbo sa 20 klase ng pagtuklas. Ang huling hakbang para sa amin ay ikonekta ito sa Arduino mega o Raspberry Pi.

Hakbang 5: Kumokonekta sa Arduino

Kumokonekta sa Arduino
Kumokonekta sa Arduino
Kumokonekta sa Arduino
Kumokonekta sa Arduino
Kumokonekta sa Arduino
Kumokonekta sa Arduino

Ginamit ko ang Arduino Mega sa Seeed Studio Mega Shield, ito ang dahilan kung bakit ako naghinang ng isang konektor ng Grove sa Sipeed M1 board. Gayunpaman maaari mo lamang gamitin ang mga jumper wires at ikonekta ang Sipeed M1 nang direkta sa Arduino Mega, kasunod sa diagram ng mga kable na ito.

Pagkatapos nito i-upload ang camera.ino sketch at buksan ang Serial monitor. Kapag itinuro mo ang camera sa iba't ibang mga bagay (ang listahan ng 20 klase ay nasa sketch) dapat itong maglabas ng pangalan ng klase sa serial monitor!

Binabati kita! Mayroon ka na ngayong gumaganang module ng pagtuklas ng imahe para sa iyong Arduino!

Hakbang 6: Pagkonekta sa Raspberry Pi

Kumokonekta sa Raspberry Pi
Kumokonekta sa Raspberry Pi
Kumokonekta sa Raspberry Pi
Kumokonekta sa Raspberry Pi

Ginamit ko ang Grove Pi + hat para sa Raspberry Pi 2B, ngunit muli, tulad ng sa Arduino maaari mo lamang direktang ikonekta ang Sipeed M1 sa interface ng UART ng Raspberry Pi kasunod sa diagram ng mga kable na ito.

Matapos ang paglunsad ng camera_speak.py at ituro ang camera sa iba't ibang mga object, ilalabas ng terminal ang sumusunod na teksto na "Sa palagay ko ito ay" at kung mayroon kang mga speaker na konektado, masasalita nito nang malakas ang pariralang ito. Medyo cool, hindi ba?

Hakbang 7: Konklusyon

Napakalaking oras ng paglabas na aming tinitirhan, kasama ang AI at pag-aaral ng makina na tumagos sa lahat ng mga lugar sa aming buhay. Inaasahan ko ang pag-unlad sa lugar na ito. Nakikipag-ugnay ako sa koponan ng Sipeed, at alam kong aktibo silang nagkakaroon ng micropython wrapper para sa lahat ng kinakailangang pag-andar, kabilang ang pagpabilis ng CNN.

Kapag handa na ito ay malamang na maglathala ako ng maraming mga itinuturo sa kung paano gamitin ang iyong sariling mga modelo ng CNN gamit ang micropython. Isipin ang lahat ng mga kapanapanabik na application na maaari kang magkaroon para sa isang board na maaaring magpatakbo ng iyong sariling pagproseso ng imahe ng mga neural network para sa presyong ito at sa bakas ng paa na ito!

Inirerekumendang: