AI Camera Raspberry Pi/Arduino- ի համար. 7 քայլ
AI Camera Raspberry Pi/Arduino- ի համար. 7 քայլ
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 մոդելները միկրոպիթոնի հետ: Մտածեք բոլոր հետաքրքիր ծրագրերի մասին, որոնք կարող եք ունենալ տախտակի համար, որը կարող է գործարկել ձեր սեփական պատկերների մշակման նյարդային ցանցերը այս գնով և այս հետքերով:

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