Мазмұны:

K210 тақталары мен Arduino IDE/Micropython көмегімен кескінді тану: 6 қадам (суреттермен)
K210 тақталары мен Arduino IDE/Micropython көмегімен кескінді тану: 6 қадам (суреттермен)

Бейне: K210 тақталары мен Arduino IDE/Micropython көмегімен кескінді тану: 6 қадам (суреттермен)

Бейне: K210 тақталары мен Arduino IDE/Micropython көмегімен кескінді тану: 6 қадам (суреттермен)
Бейне: PyAi k210 - новая платформа машинного зрения на Kendryte k210 2024, Қараша
Anonim
Image
Image

Мен Sipeed Maix Bit -те OpenMV демонстрациясын қалай жүргізу керектігі туралы бір мақала жаздым, сонымен қатар осы тақтамен объектілерді анықтау демонстрациясының бейнесін жасадым. Адамдар қойған көптеген сұрақтардың бірі - нейрондық желі үйретілмеген объектіні қалай тануға болады? Басқаша айтқанда, өзіңіздің жеке сурет жіктеуішін жасау және оны аппараттық жеделдету арқылы іске қосу.

Бұл түсінікті сұрақ, өйткені сіздің жобаңыз үшін мысықтар мен иттер мен ұшақтар сияқты кейбір жалпы объектілерді танудың қажеті жоқ шығар. Сіз белгілі бір нәрсені білгіңіз келеді, мысалы, үй жануарларының есігіне арналған ит тұқымы немесе сұрыптауға арналған өсімдік түрі немесе сіз ойлайтын кез келген басқа қосымшалар!

Менде сен барсың! Бұл мақалада мен сізге керас тілінде ауыспалы оқытумен суреттің жеке классификаторын құруды, үйретілген үлгіні.kmodel форматына түрлендіруді және оны Micropython немесе Sipeed тақтасында (кез келген тақта, Bit/Dock немесе Go болуы мүмкін) іске қосуды үйретемін. Arduino IDE. Бұл біліммен жасай алатын тапсырмалардың шегі тек сіздің қиялыңыз болады.

2020 жылдың МАМЫРЫН ЖАҢАРТУ: K210 тақталарымен суретті тану туралы менің мақалам мен бейнебаяным әлі де өте танымал екенін көріп, YouTube пен Google-дегі ең жақсы нәтижелердің бірі болғандықтан, мен мақаланы aXeleRate, Keras негізіндегі AI үшін ақпаратты қосу үшін жаңартуды шештім. Мен шетін дамытамын.

aXeleRate, негізінен, суретті тану/объектілерді анықтау модельдерін үйрету үшін қолданған сценарийлер жиынтығына негізделген - бір жүйеге біріктірілген және Google Colab жұмыс процесі үшін оңтайландырылған. Қолдануға ыңғайлы және жаңартылған.

Мақаланың ескі нұсқасы үшін оны steemit.com сайтынан көруге болады.

1 -қадам: CNN және трансферлік оқыту: кейбір теория

CNN және ауыспалы оқыту: кейбір теория
CNN және ауыспалы оқыту: кейбір теория

Конволюциялық нейрондық желілер немесе CNN - бұл терең нейрондық желілер класы, көбінесе визуалды суреттерді талдауға қолданылады. Интернетте осы тақырып бойынша көптеген әдебиеттер бар, мен мақаланың соңғы бөлігінде бірнеше сілтеме беремін. Қысқаша айтқанда, сіз CNN -ді суретке қолданылатын сүзгілер тізбегі ретінде қарастыруға болады, әр сүзгі суретте белгілі бір ерекшелікті іздейді - төменгі конвульсиялық қабаттарда мүмкіндіктер әдетте сызықтар мен қарапайым пішіндер, ал жоғарғы қабаттарда мүмкіндіктер болады. нақтырақ болуы мүмкін, мысалы дене бөліктері, нақты құрылымдар, жануарлардың немесе өсімдіктердің бөліктері және т. Мұрт, екі көз және қара мұрын? Мысық болу керек! Жасыл жапырақтар, ағаш діңі? Ағашқа ұқсайды!

Сіз CNN -дің жұмыс принципі туралы түсінікті аласыз деп үміттенемін. Әдетте терең нейрондық желі сізге қажет объектілердің түрлерін тануға пайдалы сүзгілерді «әзірлеу» үшін мыңдаған суреттер мен жаттығу сағаттарын қажет етеді (жаттығуға қолданылатын жабдыққа байланысты). Бірақ төте жол бар.

Көптеген қарапайым заттарды (мысықтар, иттер, тұрмыстық техника, көлік және т. қайтадан объектілер. Біз желінің соңғы бірнеше қабаттарын біз үшін маңызды объектілердің белгілі бір кластарын тануға қайта үйрете аламыз. Бұл «ауыспалы оқыту» деп аталады. Сізге оқытудың әлдеқайда аз деректері мен ауыспалы оқытудың уақытын есептеу қажет, өйткені сіз тек бірнеше жүз нейроннан тұратын желінің соңғы бірнеше қабатын ғана үйретесіз.

Керемет естіледі, иә? Оны қалай жүзеге асыру керектігін қарастырайық.

2 -қадам: қоршаған ортаны дайындаңыз

Өз ортаңызды дайындаңыз
Өз ортаңызды дайындаңыз

AXeleRate қолданудың екі әдісі: жергілікті жерде Ubuntu компьютерінде немесе Google Colab жүйесінде жұмыс істеу. Google Colab -те жұмыс істеу үшін мына мысалды қараңыз:

Colab дәптері кескіндерінің жіктелуі

Модельді жергілікті деңгейде үйрету және оны аппараттық жеделдету үшін пайдалану үшін экспорттау қазір әлдеқайда жеңіл.

Менің жұмыс ортам Ubuntu 16.04, 64bit. Сіз Ubuntu кескінін іске қосу үшін виртуалды машинаны пайдалана аласыз, өйткені біз жаттығу үшін GPU қолданбаймыз. Кейбір өзгертулермен сіз Windows -та оқу сценарийін іске қоса аласыз, бірақ модельді түрлендіру үшін сізге Linux жүйесін қолдану қажет болады. Бұл оқулықты орындау үшін сізге қолайлы орта Ubuntu 16.04 болып табылады, ол жергілікті немесе виртуалды машинада жұмыс істейді.

Python үшін орта менеджері Miniconda орнатудан бастайық. Біз оқшауланған ортаны құрамыз, сондықтан кездейсоқ Python жүйесінде ештеңені өзгертпейміз.

Орнатқышты мына жерден жүктеңіз

Орнату аяқталғаннан кейін жаңа ортаны жасаңыз:

conda жасау -n ml python = 3.7

Жаңа ортаны белсендірейік

мл белсендіріңіз

Bash қабығының алдындағы префикс ортаның атымен көрсетіледі, бұл сіздің қазір сол ортада жұмыс жасайтындығыңызды білдіреді.

3 -қадам: AXeleRate орнатыңыз және тесттерді іске қосыңыз

AXeleRate орнатыңыз және тесттерді іске қосыңыз
AXeleRate орнатыңыз және тесттерді іске қосыңыз

AXeleRate бағдарламасын жергілікті компьютерге орнатыңыз

pip install git+https://github.com/AIWintermuteAI/aXeleRate

Мысалдарды жүктеу үшін келесі әрекеттерді орындаңыз:

git clone

AXeleRate қалтасында test_training.py көмегімен жылдам тесттер жүргізуге болады. Ол әр модель үшін дайындық пен қорытынды жасайды, үйретілген модельдерді сақтайды және түрлендіреді. Бұл тек 5 дәуірге арналған жаттығулар болғандықтан және деректер жиынтығы өте аз болғандықтан, сіз пайдалы модельдерді ала алмайсыз, бірақ бұл сценарий тек қателердің жоқтығын тексеруге арналған.

4-қадам: Үлгіні қайта үйрету, Keras моделін.kmodel-ге түрлендіру

Модельді қайта үйрету, Keras моделін.kmodel-ге түрлендіру
Модельді қайта үйрету, Keras моделін.kmodel-ге түрлендіру

Бұл ойыншық үлгісі үшін біз модельді Аяз ата мен Ардуино Уноны тануға үйрететін боламыз. Әрине, сіз басқа сыныптарды таңдай аласыз. Деректерді осы жерден жүктеңіз. Conf-g.webp

AXeleRate қалтасынан келесі пәрменді іске қосыңыз:

python axelerate/train.py - c configs/santa_uno.json

Тренинг басталады. Егер валидация дәлдігі (біздің тексеру әдістемесі) 20 дәуірде жақсармаса, жаттығу мерзімінен бұрын тоқтатылады. Тексеру дәлдігі жақсарған сайын модель жоба қалтасында сақталады. Оқыту аяқталғаннан кейін, aXeleRate автоматты түрде ең жақсы үлгіні белгіленген форматтарға түрлендіреді - сіз қазір «tflite», «k210» немесе «edgetpu» таңдай аласыз.

5 -қадам: Үлгіні Sipeed Maix битінде іске қосыңыз

Үлгіні Sipeed Maix битінде іске қосыңыз
Үлгіні Sipeed Maix битінде іске қосыңыз
Үлгіні Sipeed Maix битінде іске қосыңыз
Үлгіні Sipeed Maix битінде іске қосыңыз
Үлгіні Sipeed Maix битінде іске қосыңыз
Үлгіні Sipeed Maix битінде іске қосыңыз

Сізде бар модельді Sipeed Maix аппараттық құралында іске қосудың екі әдісі бар: micropython микробағдарламасы және Arduino IDE. Micropython аппараттық құралдарын пайдалану оңай, бірақ ол қол жетімді жадтың едәуір бөлігін алады, сондықтан модельге аз орын қалады. Arduino IDE негізінен C коды болып табылады, ол әлдеқайда тиімді және жадының ізі аз. Менің модельім бар болғаны 1,9 Мб, сондықтан екі нұсқа да ол үшін жұмыс істейді. Сіз Micropython көмегімен 2,9 Мб болатын модельдерді қолдана аласыз, үлкенірек нәрсе үшін Arduino IDE қолдануды қарастыру қажет.

OpenMV IDE -ді осы жерден және микропитонның ең аз микробағдарламасын осы жерден жүктеп алыңыз.

Kflash_gui құралының көмегімен микробағдарламаны жазыңыз. Сондай -ақ, скриншотта көрсетілгендей, үйретілген үлгіні жыпылықтау үшін жазуды таңдауға болады. Немесе оны SD картасына көшіріңіз (бұл жағдайда.kmodel -ді SD картасының түбіріне көшіріп, SD картасын Sipeed Maix Bit -ке салыңыз)

OpenMV IDE ашыңыз және қосылу түймесін басыңыз. Santa_uno.py сценарийін example_scripts қалтасынан ашып, Бастау түймесін басыңыз. Сіз камерадан тікелей трансляцияны көріп тұруыңыз керек, ал егер сіз Сериялық Терминалды ашсаңыз, сенімділік ұпайымен суретті танудың ең жақсы нәтижесі болады!

Arduino IDE -мен пайдалану үшін алдымен осы жерде құжатталған Arduino IDE -ге Sipeed тақталарын қосу процедурасын орындау қажет. Сіздің Arduino IDE нұсқасы кем дегенде 1.8.12 болуы керек. Тақталарды қосқаннан кейін mobilenet_v1_transfer_learning.ino нобайын ашып, оны Sipeed Maix Bit -ке жүктеңіз. SD картасындағы модель атауын «модель» етіп өзгертіңіз (немесе осы атаумен көшірме жасаңыз). Names.cpp ішіндегі жапсырма атауларын өзгертуге болады. Ол Sipeed Maix экранында камераның тікелей ағыны мен кескінді танудың жоғарғы нәтижесін көрсетеді.

6 -қадам: Қорытынды

Мұнда CNN және трансферлік оқыту тақырыбы бойынша оқуға болатын басқа материалдар бар:

Mobilenet және Keras көмегімен ауысымдық оқыту Трансферлік оқытудың тамаша түсіндірмесі, бұл оқулық осы мақаланың кодының өзгертілген нұсқасын пайдаланады.

Мысықтар мен иттер мен конвульсиялық нейрондық желілер CNN -дің негізін түсіндіреді және кейбір сүзгілерді елестетеді. Мысықтармен!

Sipeed MaixPy мен MaixDuino -да MobileNet -ті үйретіңіз, түрлендіріңіз, іске қосыңыз! Sipeed командасының Mobilenet 1000 сыныптарын нөлден қалай үйрету туралы оқулық (ауыспалы оқыту жоқ). Сіз олардың алдын ала дайындалған моделін жүктей аласыз және көріңіз!

Сіз қазірдің өзінде алған білімдеріңізді машиналық көзқараспен керемет жобалар жасау үшін қолдана аласыз деп үміттенемін! Сіз мұнда Sipeed тақталарын сатып ала аласыз, олар ендірілген жүйелерде ML үшін қол жетімді ең арзан нұсқалардың бірі.

Ұсынылған: