Mundarija:
- 1 -qadam: Sixlangan MAix: AI chekkasida
- 2 -qadam: Atrof -muhitni tayyorlang
- 3 -qadam: Kodni tuzing
- 4 -qadam:.bin faylini yuklash
- 5 -qadam: Arduino -ga ulanish
- 6 -qadam: Raspberry Pi -ga ulanish
- 7 -qadam: Xulosa
Video: Raspberry Pi/Arduino uchun AI kamera: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
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
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
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
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
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
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
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:
Raspberry Pi uchun yangi boshlanuvchilar uchun qo'llanma: 6 qadam (rasmlar bilan)
Raspberry Pi uchun yangi boshlanuvchilar uchun qo'llanma: Men bir muncha vaqt Arduino bilan ishlaganman. Bu oson, arzon va ishni bajaradi. Ammo so'nggi paytlarda men IoT loyihalariga ko'proq moyil bo'ldim. Shunday qilib, men ESP ishlab chiqish kartasini ishlata boshladim va u juda yaxshi ishladi. Ammo endi men oldinga siljishni xohlayman
GoPro uchun Arduino - Servo va MPU6050 Gyro -dan foydalanish uchun Roll va Pitch Axis Gimbal: 4 qadam
GoPro uchun Arduino - Servo va MPU6050 Gyro yordamida Roll and Pitch Axis Gimbal: Bu ko'rsatma Janubiy Florida universitetining Makecourse loyihasi talablarini bajarish uchun yaratilgan (www.makecourse.com) Ushbu loyihaning maqsadi - GoPro uchun 3 o'qli Gimbal Arduino nano + 3 servo dvigatellari yordamida
Arduino uchun 6 tugma uchun 1 ta analog kirishni ishlating: 6 qadam
Arduino uchun 6 tugma uchun 1 ta analog kirishni ishlating: men tez -tez Arduino uchun qanday qilib ko'proq raqamli kirishni olishim mumkinligi haqida o'ylardim. Yaqinda men bir nechta raqamli kirishni kiritish uchun Analog Kirishlardan birini ishlatishim kerak edi. Men tezda qidirib topdim va odamlar qaerda ekanligini topdim
Sevgi o'yinchilar uchun, Arduino loyihasi yakkaliklar uchun yaratilgan: 5 qadam
Sevgi O'yinchilar uchun, Arduino loyihasi yakkaliklar uchun yaratilgan: Bu ko'rsatma mening Arduino loyiham haqida " Sevgi o'yinchilar uchun " bu kulgilar va o'yin -kulgi vositasi sifatida boshlangan. Bu mukammal yoki boshqa narsa emas, lekin u ishlaydi
ENV2 yoki boshqa kamera telefonlari uchun kamera stabilizatori: 6 qadam
ENV2 yoki boshqa kamera telefonlari uchun kamera stabilizatori: Siz hech qachon video qilishni xohlaysizmi, lekin sizda faqat kamerali telefon bormi? Siz hech qachon kamerali telefon bilan video suratga olgansiz, lekin uni ushlab tura olmaysizmi? Bu siz uchun o'rgatadigan narsadir