Բովանդակություն:

AI Camera Raspberry Pi/Arduino- ի համար. 7 քայլ
AI Camera Raspberry Pi/Arduino- ի համար. 7 քայլ

Video: AI Camera Raspberry Pi/Arduino- ի համար. 7 քայլ

Video: AI Camera Raspberry Pi/Arduino- ի համար. 7 քայլ
Video: How to setup and use ESP32 Cam with Micro USB WiFi Camera 2024, Նոյեմբեր
Anonim
Image
Image

Եթե դուք վերջերս հետևում եք նորություններին, տեղի ունեցավ նորաստեղծ ձեռնարկությունների պայթյուն, որոնք մշակում են ML (մեքենայական ուսուցման) ալգորիթմների եզրակացությունն ու ուսուցումը արագացնելու համար: Այնուամենայնիվ, այդ չիպերի մեծ մասը դեռ մշակման փուլում է, և իրականում դա այն չէ, ինչ ձեր միջին արտադրողը կարող է ձեռք բերել: Մինչ այժմ միակ նշանակալի բացառությունը Intel Movidius Neural Compute Stick- ն էր, որը հասանելի է գնման համար և գալիս է լավ SDK- ով: Այն ունի մի քանի էական թերություններ ՝ գինը (մոտ 100 ԱՄՆ դոլար) և այն փաստը, որ այն գալիս է USB կրիչով: Հիանալի է, եթե ցանկանում եք այն օգտագործել նոութբուքի կամ Raspberry PI- ի հետ, բայց ի՞նչ անել, եթե ցանկանում եք Arduino- ի հետ կատարել պատկերի ճանաչման որոշ նախագծեր: Թե՞ Raspberry Pi Zero:

Քայլ 1. Sipeed MAix: AI եզրին

Sipeed MAix: AI եզրին
Sipeed MAix: AI եզրին

Ոչ վաղ անցյալում ես ձեռքս վերցրեցի Sipeed M1w K210 զարգացման տախտակը, որն ունի երկմիջուկ RISC-V 64bit պրոցեսոր և հպարտանում է ներկառուցված KPU- ով (նյարդային ցանցի պրոցեսոր), որը հատուկ նախագծված է CNN- ի արագացման համար պատկերի մշակման համար: Առավել մանրամասն կարող եք կարդալ այստեղ:

Այս տախտակի գինն անկեղծորեն ցնցեց ինձ, այն ընդամենը 19 ԱՄՆ դոլար է ՝ լիարժեք AI-on-the-edge զարգացման տախտակի համար ՝ Wi-Fi աջակցությամբ: Չնայած կա մի նախազգուշացում (իհարկե, կա). Տախտակի համար նախատեսված micropython- ի որոնվածը դեռ մշակման փուլում է, և ընդհանուր առմամբ այն այժմ այնքան էլ օգտագործողի համար հարմար չէ: Այս պահին բոլոր գործառույթներին հասնելու միակ միջոցը գրել ձեր ներկառուցված 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

Ներբեռնված գործիքաշղթան պատճենեք /ընտրել գրացուցակում: Դրանից հետո գործարկեք հետևյալ հրամանները

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

կատարել

Ավելացրեք/opt/kendryte-toolchain/bin ձեր PATH- ին հիմա:

Դուք այժմ պատրաստ եք կազմել կոդը:

Քայլ 3: Կազմեք ծածկագիրը

Կազմեք օրենսգիրքը
Կազմեք օրենսգիրքը

Ներբեռնեք կոդը իմ github պահոցից:

Ներբեռնեք Kendryte K210 ինքնուրույն SDK

Պատճենեք /kpu թղթապանակը իմ github պահոցից 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 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 տախտակին: Այնուամենայնիվ, կարող եք պարզապես օգտագործել jumper լարերը և միացնել 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: Եզրակացություն

Սա շատ հետաքրքիր ժամանակներ են, որտեղ մենք ապրում ենք, երբ արհեստական ինտելեկտը և մեքենայական ուսուցումը ներթափանցում են մեր կյանքի բոլոր ոլորտները: Ես անհամբերությամբ եմ սպասում այս ոլորտում զարգացումներին: Ես կապ եմ պահպանում Sipeed թիմի հետ և գիտեմ, որ նրանք ակտիվորեն մշակում են միկրոֆիթոնի փաթաթան բոլոր անհրաժեշտ գործառույթների համար, ներառյալ CNN- ի արագացումը:

Երբ այն պատրաստ լինի, ես, ամենայն հավանականությամբ, ավելի շատ հրահանգներ կհրապարակեմ, թե ինչպես օգտագործել ձեր սեփական CNN մոդելները միկրոպիթոնի հետ: Մտածեք բոլոր հետաքրքիր ծրագրերի մասին, որոնք կարող եք ունենալ տախտակի համար, որը կարող է գործարկել ձեր սեփական պատկերների մշակման նյարդային ցանցերը այս գնով և այս հետքերով:

Խորհուրդ ենք տալիս: