Мазмуну:

Raspberry Pi/Arduino үчүн AI камерасы: 7 кадам
Raspberry Pi/Arduino үчүн AI камерасы: 7 кадам

Video: Raspberry Pi/Arduino үчүн AI камерасы: 7 кадам

Video: Raspberry Pi/Arduino үчүн AI камерасы: 7 кадам
Video: Превратите свой Raspberry Pi Pico в ПЛК Mitsubishi FX1N 2024, Ноябрь
Anonim
Image
Image

Эгерде сиз жакында эле жаңылыктарды ээрчип жүргөн болсоңуз, анда ML (машина үйрөнүү) алгоритмдерин чыгарууну жана окутууну тездетүү үчүн чиптерди иштеп чыгуучу стартаптардын жарылышы болду. Бирок, бул микросхемалардын көпчүлүгү дагы эле иштелип чыгууда жана орточо өндүрүшчүнүн колунан келе турган нерсе эмес. Азырынча бир гана өзгөчө өзгөчөлүк Intel Movidius Neural Compute Stick болчу, аны сатып алууга болот жана жакшы SDK менен келет. Анын бир нече олуттуу кемчиликтери бар - тактап айтканда баасы (100 АКШ долларынын тегерегинде) жана USB таяк форматында келгени. Эгер сиз аны ноутбук же Raspberry PI менен колдонууну кааласаңыз, бул сонун, бирок эгер сиз Arduino менен сүрөт таануу боюнча айрым долбоорлорду жасагыңыз келсе? Же Raspberry Pi Zero?

1 -кадам: Sipeed MAix: AI Edge

Sipeed MAix: Edgeдеги AI
Sipeed MAix: Edgeдеги AI

Жакында мен колумду Sipeed M1w K210 өнүгүү тактасында алдым, ал эки ядролук RISC-V 64bit процессорго ээ жана борттогу КПУга (Neural Network Processor) ээ, атайын сүрөттөрдү иштетүү үчүн CNNди ылдамдатуу үчүн иштелип чыккан. Кененирээк маалыматты бул жерден окуй аласыз.

Бул тактанын баасы мени чындап шок кылды, ал Wi-Fi колдоосу менен толук кандуу интеллектуалдык өнүгүү тактасы үчүн болгону 19 доллар! Бир эскертүү бар (албетте бар): такта үчүн микропитон камтылган программасы дагы эле өнүгүүдө жана жалпысынан ал азырынча колдонуучулар үчүн өтө ыңгайлуу эмес. Анын бардык функцияларына кирүүнүн бирден -бир жолу - бул өзүңүздүн камтылган 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

жасоо

PATHга азыр/opt/kendryte-toolchain/bin кошуңуз.

Сиз азыр кодду түзүүгө даярсыз!

3 -кадам: Кодду түзүңүз

Кодду түзүңүз
Кодду түзүңүз

Менин github репозиторийимден кодду жүктөп алыңыз.

Kendryte K210 өз алдынча SDK жүктөп алыңыз

Менин github репозиторийимден /kpu папкасын SDK /src папкасына көчүрүү.

SDK папкасында төмөнкү буйруктарды аткарыңыз (эмес /src папкасы!)

mkdir build && cd build

cmake.. -DPROJ = project_name -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 мега же Raspberry Pi менен туташтыруу.

!!! Эгерде сиз 2 -кадамдан жаңы келген болсоңуз !

Менин github репозиторийимди клондогон папкадан төмөнкү буйрукту аткарыңыз

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

Жүктөө адатта 2-3 мүнөткө созулат, ал бүткөндөн кийин сиз 20 класстын табылганын көрүп турасыз. Биз үчүн акыркы кадам - аны Arduino мега же Raspberry Pi менен туташтыруу.

5 -кадам: Arduino менен туташуу

Arduino менен туташуу
Arduino менен туташуу
Arduino менен туташуу
Arduino менен туташуу
Arduino менен туташуу
Arduino менен туташуу

Мен Seeed Studio Mega Shield менен Arduino Mega колдондум, ошондуктан мен Sipeed M1 тактасына Grove туташтыргычын коштум. Бирок сиз жөн эле секирүүчү зымдарды колдонуп, 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ди Raspberry Piнин UART интерфейсине ушул зым схемасынан кийин эле туташтыра аласыз.

Ошол ишке киришкенден кийин camera_speak.py жана камераны ар кандай объектилерге көрсөткөндө, терминал төмөнкү текстти чыгарат "Мен ойлойм", ошондой эле эгерде сизде динамиктер туташкан болсо, анда бул фразаны катуу сүйлөйт. Абдан сонун, туурабы?

7 -кадам: Жыйынтык

Бул биз жашап жаткан эң сонун мезгил, AI жана машинаны үйрөнүү биздин жашообуздун бардык тармактарына кирди. Мен бул чөйрөдөгү өнүгүүнү чыдамсыздык менен күтүп жатам. Мен Sipeed командасы менен байланышып турам жана алар CNN ылдамдатуусун кошо алганда, бардык керектүү функциялар үчүн micropython орогучун активдүү иштеп чыгышканын билем.

Ал даяр болгондо, мен, кыязы, микрофитон менен CNNдин жеке моделдерин кантип колдонуу керектиги боюнча көбүрөөк көрсөтмөлөрдү жарыялайм. Өзүңүздүн сүрөтүңүздү иштетүүчү нейрон тармактарын ушул баага жана ушул изге иштете турган такта үчүн боло турган бардык кызыктуу тиркемелерди ойлонуп көрүңүз!

Сунушталууда: