Съдържание:

AI камера за Raspberry Pi/Arduino: 7 стъпки
AI камера за Raspberry Pi/Arduino: 7 стъпки

Видео: AI камера за Raspberry Pi/Arduino: 7 стъпки

Видео: AI камера за Raspberry Pi/Arduino: 7 стъпки
Видео: Простой робот с камерой | Orange pi | Raspberry pi | OpenCV 2024, Ноември
Anonim
Image
Image

Ако наскоро сте следили новините, имаше експлозия от стартиращи фирми, разработващи чипове за ускоряване на изводите и обучението по алгоритми за МЛ (машинно обучение). Повечето от тези чипове обаче все още се разработват и всъщност не са нещо, което обикновеният производител може да хване. Единственото значително изключение досега беше Intel Movidius Neural Compute Stick, който е достъпен за закупуване и се предлага с добър SDK. Той има няколко съществени недостатъка - а именно цената (около 100 USD) и факта, че се предлага във формат USB флаш. Чудесно е, ако искате да го използвате с лаптоп или Raspberry PI, но какво ще стане, ако искате да направите някои проекти за разпознаване на изображения с Arduino? Или Raspberry Pi Zero?

Стъпка 1: Sipeed MAix: AI на ръба

Sipeed MAix: AI на ръба
Sipeed MAix: AI на ръба

Не толкова отдавна се докопах до платката за разработка на Sipeed M1w K210, която има двуядрен 64-битов процесор RISC-V и може да се похвали с вграден KPU (Neural Network Processor), специално проектиран за ускоряване на CNN за обработка на изображения. Можете да прочетете повече подробности тук.

Цената на тази платка ме откровено шокира, тя е само 19 USD за пълноценна платка за разработка на AI на ръба с поддръжка на Wi-Fi! Има обаче едно предупреждение (разбира се, че има): фърмуерът на микропитона за платката все още се разработва и като цяло не е прекалено удобен за потребителя към момента. Единственият начин за достъп до всички негови функции в момента е да напишете свой собствен вграден C код или да промените някои съществуващи демонстрации.

Този урок обяснява как да използвате модела за откриване на клас Mobilenet 20 за откриване на обектите и изпращане на кода на открития обект през UART, откъдето той може да бъде получен от Arduino/Raspberry Pi.

Сега този урок предполага, че сте запознати с Linux и основите на компилирането на C код. Ако чуването на тази фраза ви замая малко:), тогава просто преминете към Стъпка 4, където качвате моя предварително изграден двоичен файл в Sipeed M1 и пропуснете компилирането.

Стъпка 2: Подгответе вашата среда

Подгответе вашата среда
Подгответе вашата среда

Използвах Ubuntu 16.04 за компилиране и качване на C код. Това е възможно да се направи в Windows, но аз самият не го пробвах.

Изтеглете RISC-V GNU Compiler Toolchain, инсталирайте всички необходими зависимости.

git clone-рекурсивен

sudo apt-get инсталирайте 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

Копирайте изтегления набор от инструменти в директорията /opt. След това изпълнете следните команди

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

направете

Добавете/opt/kendryte-toolchain/bin към вашия PATH сега.

Вече сте готови да компилирате кода!

Стъпка 3: Компилирайте кода

Съставете кода
Съставете кода

Изтеглете кода от моето хранилище на github.

Изтеглете самостоятелен SDK на Kendryte K210

Копирайте /kpu папка от моето хранилище на github в /src папка в SDK.

Изпълнете следните команди в папка SDK (не /папка src!)

mkdir build && cd build

cmake.. -DPROJ = име на проект -DTOOLCHAIN =/opt/kendryte -toolchain/bin && make

където project_name е името на вашия проект (зависи от вас) и -DTOOLCHAIN = трябва да сочи към местоположението на вашата risc -v набор от инструменти (изтеглили сте го в първата стъпка, помните ли?)

Страхотен! Сега се надяваме, че компилацията ще завърши без грешки и имате.bin файл, който можете да качите.

Стъпка 4: Качване на.bin файла

Качване на.bin файла
Качване на.bin файла

Сега свържете вашия Sipeed M1 към компютъра и от папката /build изпълнете следната команда

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

Където kpu.bin е името на вашия.bin файл

Качването обикновено отнема 2-3 минути, след като приключи, ще видите таблото с откриване на 20 класа. Последната стъпка за нас е да го свържем с Arduino mega или Raspberry Pi.

!!! Ако току -що сте дошли от Стъпка 2 !

Изпълнете следната команда от папката, където сте клонирали моето хранилище на github

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

Качването обикновено отнема 2-3 минути, след като приключи, ще видите таблото с откриване на 20 класа. Последната стъпка за нас е да го свържем с Arduino mega или Raspberry Pi.

Стъпка 5: Свързване с Arduino

Свързване с Arduino
Свързване с Arduino
Свързване с Arduino
Свързване с Arduino
Свързване с Arduino
Свързване с Arduino

Използвах Arduino Mega с Seeed Studio Mega Shield, затова запоявах конектор Grove към платката Sipeed M1. Можете обаче просто да използвате джъмперни кабели и да свържете Sipeed M1 директно към Arduino Mega, следвайки тази схема на свързване.

След това качете скицата на camera.ino и отворете серийния монитор. Когато насочите камерата към различни обекти (списъкът от 20 класа е в скицата), тя трябва да изведе името на класа в серийния монитор!

Честито! Вече имате работещ модул за откриване на изображения за вашия Arduino!

Стъпка 6: Свързване към Raspberry Pi

Свързване с Raspberry Pi
Свързване с Raspberry Pi
Свързване с Raspberry Pi
Свързване с Raspberry Pi

Използвах шапка Grove Pi+ за Raspberry Pi 2B, но отново, както с Arduino, можете просто да свържете директно Sipeed M1 към UART интерфейса на Raspberry Pi, следвайки тази схема на свързване.

След това стартирайте camera_speak.py и насочете камерата към различни обекти, терминалът ще изведе следния текст „Мисля, че е“, а също така, ако имате свързани високоговорители, той ще произнесе тази фраза на глас. Доста готино, нали?

Стъпка 7: Заключение

Това е много изходно време, в което живеем, като AI и машинното обучение проникват във всички области на нашия живот. Очаквам с нетърпение развитието в тази област. Поддържам връзка с екипа на Sipeed и знам, че активно разработват обвивка от микропитон за всички необходими функции, включително ускорение на CNN.

Когато е готов, много вероятно ще публикувам повече инструкции за това как да използвате вашите собствени модели CNN с микропитон. Помислете за всички вълнуващи приложения, които можете да имате за дъска, която може да управлява вашите собствени невронни мрежи за обработка на изображения за тази цена и с този отпечатък!

Препоръчано: