Mundarija:

Raspberry Pi/Arduino uchun AI kamera: 7 qadam
Raspberry Pi/Arduino uchun AI kamera: 7 qadam

Video: Raspberry Pi/Arduino uchun AI kamera: 7 qadam

Video: Raspberry Pi/Arduino uchun AI kamera: 7 qadam
Video: Как превратить Raspberry Pi Pico в ПЛК | Беремиз4Пико 2024, Noyabr
Anonim
Image
Image

Agar siz yaqinda yangiliklarni kuzatayotgan bo'lsangiz, ML (mashinani o'rganish) algoritmlarini chiqarish va o'qitishni tezlashtirish uchun chiplar ishlab chiqaruvchi yangi boshlanuvchilar portlashi yuz berdi. Biroq, bu chiplarning aksariyati hali ishlab chiqilmagan va sizning o'rtacha ishlab chiqaruvchingiz qo'lga kiritadigan narsa emas. Hozircha yagona muhim istisno - bu sotib olish mumkin bo'lgan va yaxshi SDK bilan ta'minlangan Intel Movidius Neural Compute Stick. Uning bir nechta muhim kamchiliklari bor - narx (taxminan 100 AQSh dollari) va USB -tayoq formatida. Agar siz uni noutbuk yoki Raspberry PI bilan ishlatmoqchi bo'lsangiz, juda yaxshi, lekin agar siz Arduino yordamida tasvirni aniqlash loyihalarini amalga oshirishni xohlasangiz nima bo'ladi? Yoki Raspberry Pi Zero?

1 -qadam: Sixlangan MAix: AI chekkasida

Tayyorlangan MAix: AI Edge
Tayyorlangan MAix: AI Edge

Yaqinda men ikkita yadroli RISC-V 64bit protsessorli va bortli KPU (neyron tarmoq protsessori) bilan jihozlangan, tasvirni qayta ishlash uchun CNN-ni tezlashtirish uchun mo'ljallangan Sipeed M1w K210 ishlab chiqish kartasiga qo'l qo'ydim. Batafsil ma'lumotni bu erda o'qishingiz mumkin.

Bu taxtaning narxi meni hayratda qoldirdi, Wi-Fi qo'llab-quvvatlanadigan AI-ni to'liq ishlab chiqish uchun atigi 19 dollar! Bir ogohlantirish bor (albatta bor): doska uchun mikropiton dasturiy ta'minoti hali ishlab chiqilmoqda va umuman olganda hozircha foydalanuvchilar uchun qulay emas. Hozirgi vaqtda uning barcha funktsiyalariga kirishning yagona usuli - bu o'z ichiga o'rnatilgan C kodini yozish yoki mavjud demolarni o'zgartirish.

Ushbu qo'llanmada ob'ektlarni aniqlash va aniqlangan ob'ekt kodini UART orqali yuborish uchun Mobilenet 20 sinfini aniqlash modelidan qanday foydalanish kerakligi tushuntiriladi, uni Arduino/Raspberry Pi qabul qilishi mumkin.

Endi, bu qo'llanmada siz Linux va C kodini kompilyatsiya qilish asoslari bilan tanishsiz. Agar bu iborani eshitib, sizni boshingiz aylansa:) keyin 4-bosqichga o'ting, u erda oldindan tuzilgan ikkilikni Sipeed M1-ga yuklaysiz va kompilyatsiyani o'tkazib yuborasiz.

2 -qadam: Atrof -muhitni tayyorlang

Atrof -muhitingizni tayyorlang
Atrof -muhitingizni tayyorlang

Men Ubuntu 16.04 dan C kodini tuzish va yuklash uchun foydalanardim. Buni Windows -da qilish mumkin, lekin men buni o'zim sinab ko'rmaganman.

RISC-V GNU kompilyator asboblar zanjirini yuklab oling, barcha kerakli bog'liqliklarni o'rnating.

git klon-takroriy

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

Yuklab olingan asboblar zanjirini /opt katalogiga nusxalash. Shundan so'ng quyidagi buyruqlarni bajaring

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

qilmoq

PATH-ga hozir/opt/kendryte-toolchain/bin qo'shing.

Siz hozir kodni tuzishga tayyormiz!

3 -qadam: Kodni tuzing

Kodni tuzing
Kodni tuzing

Github omboridan kodni yuklab oling.

Kendryte K210 mustaqil SDK -ni yuklab oling

Github omborimdan /kpu papkasini SDK -dagi /src papkasiga nusxalash.

SDK papkasida quyidagi buyruqlarni bajaring (not /src papkasi!)

mkdir build && cd build

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

bu erda project_name -bu sizning loyihangizning nomi (sizga bog'liq) va -DTOOLCHAIN = risc -v asboblar tarmog'ining manzilini ko'rsatishi kerak (siz uni birinchi bosqichda yuklab olgansiz, eslaysizmi?)

Ajoyib! Umid qilamanki, siz kompilyatsiya xatosiz tugaganini ko'rasiz va yuklashingiz mumkin bo'lgan.bin faylingiz bor.

4 -qadam:.bin faylini yuklash

. Bin faylini yuklash
. Bin faylini yuklash

Endi Sipeed M1 -ni kompyuterga ulang va /build papkasidan quyidagi buyruqni bajaring

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

Bu erda kpu.bin -.bin faylingizning nomi

Yuklash odatda 2-3 daqiqa davom etadi, tugallangandan so'ng siz 20 ta sinfni aniqlaydigan boshqaruv panelini ko'rasiz. Biz uchun oxirgi qadam - uni Arduino mega yoki Raspberry Pi ga ulash.

!!! Agar siz faqat 2 -qadamdan kelgan bo'lsangiz !!

Github omborimni klonlagan papkadan quyidagi buyruqni bajaring

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

Yuklash odatda 2-3 daqiqa davom etadi, tugallangandan so'ng siz 20 ta sinfni aniqlaydigan boshqaruv panelini ko'rasiz. Biz uchun oxirgi qadam - uni Arduino mega yoki Raspberry Pi ga ulash.

5 -qadam: Arduino -ga ulanish

Arduino -ga ulanish
Arduino -ga ulanish
Arduino -ga ulanish
Arduino -ga ulanish
Arduino -ga ulanish
Arduino -ga ulanish

Men Arduino Mega -ni Seeed Studio Mega Shield bilan ishlatardim, shuning uchun men Grove ulagichini Sipeed M1 kartasiga lehimladim. Shu bilan birga, siz o'tish simlarini ishlatishingiz va Sipeed M1 -ni Arduino Mega -ga ulashingiz mumkin.

Shundan so'ng, kamera.ino eskizini yuklang va Serial monitorni oching. Kamerani har xil narsalarga yo'naltirganingizda (20 ta sinflar ro'yxati eskizda), u ketma -ket monitorda sinf nomini ko'rsatishi kerak!

Tabriklaymiz! Endi sizda Arduino uchun tasvirni aniqlash moduli mavjud!

6 -qadam: Raspberry Pi -ga ulanish

Raspberry Pi -ga ulanish
Raspberry Pi -ga ulanish
Raspberry Pi -ga ulanish
Raspberry Pi -ga ulanish

Men Raspberry Pi 2B uchun Grove Pi+ shapkasidan foydalanardim, lekin yana, Arduino -da bo'lgani kabi, bu simli sxemaga muvofiq Sipeed M1 -ni Raspberry Pi -ning UART interfeysiga to'g'ridan -to'g'ri ulashingiz mumkin.

Kamera_speak.py ishga tushirilgandan va kamerani turli ob'ektlarga yo'naltirgandan so'ng, terminal quyidagi "Menimcha" matnini chiqaradi va agar sizda karnay ulangan bo'lsa, u bu iborani baland ovozda gapiradi. Juda zo'r, shunday emasmi?

7 -qadam: Xulosa

Bu biz yashayotgan juda hayratlanarli payt, AI va mashinani o'rganish hayotimizning barcha sohalariga kirib kelgan. Men bu sohada rivojlanishni kutmoqdaman. Men Sipeed jamoasi bilan aloqada bo'lib turaman va bilaman, ular CNN tezlashuvini o'z ichiga olgan barcha kerakli funktsiyalar uchun mikropitonli o'ramni faol ishlab chiqmoqdalar.

Tayyor bo'lgach, men o'z CNN modellarini mikropiton bilan qanday ishlatish bo'yicha ko'rsatmalarni nashr etaman. O'zingizning tasvirni qayta ishlaydigan neyron tarmoqlarini shu narxda va shu oyoq izi bilan ishlaydigan taxtada bo'lishi mumkin bo'lgan barcha qiziqarli dasturlarni o'ylab ko'ring!

Tavsiya: