Mündəricat:

Raspberry Pi/Arduino üçün AI Kamera: 7 addım
Raspberry Pi/Arduino üçün AI Kamera: 7 addım

Video: Raspberry Pi/Arduino üçün AI Kamera: 7 addım

Video: Raspberry Pi/Arduino üçün AI Kamera: 7 addım
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Noyabr
Anonim
Image
Image

Bu yaxınlarda xəbərləri izləyirsinizsə, ML (maşın öyrənmə) alqoritmlərinin çıxarılmasını və təlimini sürətləndirmək üçün fiş inkişaf etdirən yeni başlayanlar bir partlayış oldu. Ancaq bu çiplərin çoxu hələ də inkişaf mərhələsindədir və əslində orta istehsalçınızın əlindən ala biləcəyi bir şey deyil. İndiyə qədər yeganə əhəmiyyətli istisna, satın alına bilən və yaxşı bir SDK ilə birlikdə gələn Intel Movidius Neural Compute Stick idi. Bir neçə əhəmiyyətli çatışmazlığı var - yəni qiyməti (təxminən 100 ABŞ dolları) və USB stick formatında olması faktı. Laptop və ya Raspberry PI ilə istifadə etmək istəyirsinizsə, əladır, amma Arduino ilə bəzi görüntü tanıma layihələri etmək istəyirsinizsə nə etməli? Yoxsa Raspberry Pi Zero?

Addım 1: Sipeed MAix: AI kənarında

Sipeed MAix: Edge -də AI
Sipeed MAix: Edge -də AI

Çox keçməmiş əllərimi iki nüvəli RISC-V 64bit CPU-ya malik olan və görüntü emalı üçün CNN-i sürətləndirmək üçün xüsusi olaraq hazırlanmış bir bortda KPU (Neyron Şəbəkə Prosessoru) olan Sipeed M1w K210 inkişaf lövhəsinə sahib oldum. Ətraflı məlumatı buradan oxuya bilərsiniz.

Açıqca bu lövhənin qiyməti məni şok etdi, Wi-Fi dəstəyi ilə tam hüquqlu AI-on-the-edge inkişaf lövhəsi üçün cəmi 19 USD! Bununla birlikdə bir xəbərdarlıq var (əlbəttə var): lövhə üçün micropython firmware hələ inkişaf mərhələsindədir və ümumilikdə indiyə qədər istifadəçi dostu deyil. Hal -hazırda bütün funksiyalarına daxil olmağın yeganə yolu, öz C kodunuzu yazmaq və ya bəzi mövcud demoları dəyişdirməkdir.

Bu dərslik, Mobilenet 20 sinif aşkarlama modelinin obyektləri aşkar etmək və Arduino/Raspberry Pi tərəfindən qəbul edilə biləcəyi yerdən UART vasitəsi ilə göndərilməsini izah edir.

İndi bu təlimatda Linux və C kodunun tərtib edilməsinin əsasları ilə tanış olduğunuz güman edilir. Bu ifadəni eşitmək sizi bir az başgicəlləndirdi:) Əgər əvvəlcədən qurduğum ikili faylımı Sipeed M1-ə yüklədiyiniz və tərtib etməyi atdığınız 4-cü addıma keçin.

Addım 2: Ətrafınızı hazırlayın

Ətrafınızı Hazırlayın
Ətrafınızı Hazırlayın

C kodu tərtib etmək və yükləmək üçün Ubuntu 16.04 istifadə etdim. Windows -da bunu etmək mümkündür, amma mən özüm sınamamışam.

RISC-V GNU Derleyici Alət Zəncirini yükləyin, lazım olan bütün asılılıqları quraşdırın.

git klonu-təkrarlanan

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

Yüklənmiş alət zəncirini /opt qovluğuna kopyalayın. Bundan sonra aşağıdakı əmrləri yerinə yetirin

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

etmək

İndi yolunuza/opt/kendryte-toolchain/bin əlavə edin.

İndi kodu tərtib etməyə hazırsınız!

Addım 3: Kodu tərtib edin

Kodu tərtib edin
Kodu tərtib edin

Kodu github depomdan yükləyin.

Kendryte K210 bağımsız SDK yükləyin

Github depomdan /kpu qovluğunu SDK -dakı /src qovluğuna kopyalayın.

Aşağıdakı əmrləri SDK qovluğunda çalıştırın (not /src qovluğu!)

mkdir build && cd qurmaq

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

burada project_name, layihənizin adıdır (sizə bağlıdır) və -DTOOLCHAIN = risc -v alət zəncirinizin yerini göstərməlidir (birinci addımda yükləmisiniz, yadınızdadırmı?)

Əla! İndi inşallah kompilyasiyanın səhvsiz bitdiyini görəcəksiniz və yükləyə biləcəyiniz.bin faylınız var.

Addım 4:.bin Faylının Yüklənməsi

. Bin Dosyası Yüklənir
. Bin Dosyası Yüklənir

İndi Sipeed M1 -i kompüterə qoşun və /build qovluğundan aşağıdakı əmri işlədin

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

Harada kpu.bin.bin faylınızın adıdır

Yükləmə ümumiyyətlə 2-3 dəqiqə çəkir, tamamlandıqdan sonra lövhədə 20 sinif aşkarlama işlədiyini görəcəksiniz. Bizim üçün son addım onu Arduino mega və ya Raspberry Pi ilə birləşdirməkdir.

!!! Yalnız 2 -ci addımdan gəlsəniz !

Github depomu klonladığınız qovluqdan aşağıdakı əmri işlədin

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

Yükləmə ümumiyyətlə 2-3 dəqiqə çəkir, tamamlandıqdan sonra 20 sinif aşkarlama ilə işləyən lövhəni görəcəksiniz. Bizim üçün son addım onu Arduino mega və ya Raspberry Pi ilə birləşdirməkdir.

Addım 5: Arduinoya qoşulun

Arduino ilə əlaqə
Arduino ilə əlaqə
Arduino ilə əlaqə
Arduino ilə əlaqə
Arduino ilə əlaqə
Arduino ilə əlaqə

Seeed Studio Mega Shield ilə Arduino Mega -dan istifadə etdim, buna görə bir Grove bağlayıcısını Sipeed M1 lövhəsinə lehimlədim. Bununla birlikdə, keçid tellərindən istifadə edə və Sipeed M1 -i birbaşa Arduino Mega -ya qoşa bilərsiniz.

Bundan sonra camera.ino eskizini yükləyin və Serial monitoru açın. Kameranı fərqli obyektlərə yönəltdiyiniz zaman (20 sinifin siyahısı eskizdədir) seriyanın monitorunda sinifin adını yazmalıdır!

Təbrik edirik! İndi Arduino üçün işləyən görüntü aşkarlama modulunuz var!

Addım 6: Raspberry Pi -yə qoşulun

Raspberry Pi ilə əlaqə
Raspberry Pi ilə əlaqə
Raspberry Pi ilə əlaqə
Raspberry Pi ilə əlaqə

Mən Raspberry Pi 2B üçün Grove Pi+ şapkasından istifadə etdim, amma yenə də Arduino ilə olduğu kimi, Sipeed M1 -i də Raspberry Pi -nin UART interfeysinə birbaşa qoşa bilərsiniz.

Bu kamera_speak.py -ni işə saldıqdan və kameranı fərqli obyektlərə yönəltdikdən sonra, terminal aşağıdakı "Məncə belədir" yazısını çıxaracaq və dinamikləriniz varsa, bu ifadəni yüksək səslə danışacaq. Çox sərin, elə deyilmi?

Addım 7: Nəticə

AI və maşın öyrənməsinin həyatımızın bütün sahələrinə nüfuz etməsi ilə yaşadığımız çox çətin dövrlərdir. Bu sahədə inkişafı gözləyirəm. Sipeed komandası ilə əlaqə saxlayıram və bilirəm ki, CNN sürətlənməsi də daxil olmaqla bütün lazımi funksiyalar üçün mikropiton sarğı hazırlayırlar.

Hazır olduqda, çox güman ki, öz CNN modellərinizi mikropitonla necə istifadə etməyinizlə bağlı daha çox təlimatlar dərc edəcəyəm. Bu qiymətə və bu ayaq izi ilə öz şəkil emal neyron şəbəkələrinizi işlədə biləcək bir lövhə üçün edə biləcəyiniz bütün maraqlı tətbiqləri düşünün!

Tövsiyə: