Съдържание:

Sipeed MaiX Bit OpenMV Demos - Компютърно виждане: 3 стъпки
Sipeed MaiX Bit OpenMV Demos - Компютърно виждане: 3 стъпки

Видео: Sipeed MaiX Bit OpenMV Demos - Компютърно виждане: 3 стъпки

Видео: Sipeed MaiX Bit OpenMV Demos - Компютърно виждане: 3 стъпки
Видео: Unpacking and OpenMV Demos Sipeed MaiX Bit 2024, Ноември
Anonim
Image
Image

Това е втората поредна статия за Sipeed AI на платформата за микроконтролер Edge. Този път ще пиша за MaiX Bit (връзка към Seeed Studio Shop), по -малка, готова за разработка дъска. Спецификациите му са много подобни на MaiX Dock, дъската, която използвах за последния урок, тъй като използват същия чип, Kendryte K210.

Ще използваме фърмуера на micropython, за да изпробваме някои демонстрации на OpenMV. Ето описание от началната страница на OpenMV:

Проектът OpenMV е за създаване на евтини, разширяеми, захранвани от Python модули за машинно виждане и има за цел да се превърне в „Arduino на Machine Vision“.… Python прави работата с алгоритмите за машинно виждане много по-лесна. Например методът find_blobs () в кода намира цветни петна и връща списък с 8-ценни обекти, представляващи всяка намерена цветна петна. В Python итерацията през списъка с обекти, върнати от find_blobs () и начертаването на правоъгълник около всяка цветна петна се извършва лесно само в два реда код.

Така че, въпреки че MaiX Bit разполага със специален ускорител за невронни мрежи, понякога може да е по-лесно просто да използвате алгоритми с твърдо кодиране на OpenMV, за да свършите работата или да ги използвате един до друг.

Някои случаи на употреба, които ми идват на ум, са:

1) Откриване на линия за бот на последовател на линия

2) Откриване на светофари с разпознаване на кръг и цвят

3) Използване на разпознаване на лица за намиране на лица за разпознаване на лица (с DNN)

Хранилище на Github за тази статия

Стъпка 1: Фърмуер за Flash Micropython

Свържете се с MaiX Bit
Свържете се с MaiX Bit

На първо място ще трябва да прехвърлим фърмуера на микропитон на нашата платка. Предварително компилиран двоичен файл е включен в хранилището на github за тази статия, заедно с kflash.py (помощна програма за флаш). Ако искате да компилирате фърмуера от изходния код, просто изтеглете изходния код от https://github.com/sipeed/MaixPy, инсталирайте инструментариума и компилирайте изходния код във файла maixpy.bin. Подробни инструкции за изграждане можете да намерите тук.

Мигайте двоичния файл с

sudo python3 kflash.py kpu.bin

След успешно мигане преминете към следващата стъпка.

Стъпка 2: Свържете се с MaiX Bit

Сега нашият бит MaiX би трябвало да бъде достъпен чрез USB серийна връзка с скорост на предаване 115200. Можете да използвате любимия си софтуер за серийна комуникация или просто команди cat и echo, каквото отговаря на вашите нужди. Използвах екран за серийна комуникация и ми беше много удобно.

Командата за установяване на серийна комуникационна сесия с екран е

sudo screen /dev /ttyUSB0 115200

където /dev /ttyUSB0 е адресът на вашето устройство.

Може да се наложи да натиснете бутона за нулиране на вашия микроконтролер, за да видите поздравителното съобщение и подкана за интерпретатор на python.

Стъпка 3: Пуснете демонстрацията

Сега можете да влезете в режим на копиране, като натиснете Ctrl+E и копирате-поставите демо кодовете. За да ги стартирате, натиснете Ctrl+D в режим на копиране.

Ако не искате да записвате видеоклиповете, трябва да коментирате редовете за видеозапис. В противен случай кодът ще създаде изключение, ако няма поставена SD карта

Ето кратки описания на всяка демонстрация:

Намиране на кръгове - използва функцията find_circles от OpenMV. Нуждае се от по -голяма промяна за вашето конкретно приложение, по -специално праг (контролира какви кръгове се откриват от преобразуването на Hough. Връщат се само кръгове с амплитуда, по -голяма или равна на прага) и r_min, r_max стойности.

Намиране на правоъгълници - използва функцията find_rects от OpenMV. Можете да играете с прагова стойност, но стойността, която имам в демонстрацията, работи доста добре за намиране на правоъгълници.

Намиране на лица, намиране на очи - използва функцията find_features с Haar Cascades за откриване на очи и челно лице в изображението. Можете да си поиграете със стойностите на прага и скалата за правилния компромис с точност на скоростта.

Намиране на безкрайни линии - използва функцията find_lines, за да намери всички безкрайни линии в изображението, използвайки преобразуването на Hough.

Откриване на цвят - използва функцията get_statistics за получаване на обект на процентил и след това преобразува средните стойности на LAB кортежа в RGB стойностите. Аз лично написах този пример и той работи доста добре, но имайте предвид, че резултатите от цветовото разпознаване ще бъдат повлияни от условията на околната светлина.

Можете да намерите още много интересни демонстрации в хранилището на OpenMV github! Те са най -вече съвместими с микропитон MaiX Bit, единственото нещо, което трябва да запомните, е да добавите sensor.run (1) след задаване на pixformat и frameize.

Приятно експериментиране с OpenMV код. Ако имате въпроси или искате да споделите някои от вашите интересни резултати, не се колебайте да се свържете с мен в Youtube или LinkedIn. Сега, извинете, ще отида да направя някои роботи!

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