Taula de continguts:

Sipeed MaiX Bit OpenMV Demos - Visió per ordinador: 3 passos
Sipeed MaiX Bit OpenMV Demos - Visió per ordinador: 3 passos

Vídeo: Sipeed MaiX Bit OpenMV Demos - Visió per ordinador: 3 passos

Vídeo: Sipeed MaiX Bit OpenMV Demos - Visió per ordinador: 3 passos
Vídeo: HuskyLens Tutorial - Getting Started with Husky Lens - AI Vision Sensor 2024, Desembre
Anonim
Image
Image

Aquest és el segon article de la sèrie sobre Sipeed AI a la plataforma de microcontroladors Edge. Aquesta vegada escriuré sobre MaiX Bit (enllaç a Seeed Studio Shop), una placa de desenvolupament més petita i preparada per a taulers de proves. Les seves especificacions són molt similars a MaiX Dock, la placa que vaig fer servir per a l'últim tutorial, ja que utilitzen el mateix xip, Kendryte K210.

Farem servir microprogramari de micropitó per provar algunes demostracions d’OpenMV. Aquí teniu la descripció de la pàgina principal d'OpenMV:

El projecte OpenMV tracta de crear mòduls de visió màquina de baix cost, extensibles i amb tecnologia Python, que pretén convertir-se en el “Arduino of Machine Vision“. … Python facilita molt el treball amb algorismes de visió de màquina. Per exemple, el mètode find_blobs () del codi troba blobs de colors i retorna una llista d'objectes de vuit valors que representen cada blob de color trobat. A Python, iterar a través de la llista d'objectes retornats per find_blobs () i dibuixar un rectangle al voltant de cada blob de color es fa fàcilment amb només dues línies de codi.

Per tant, malgrat que MaiX Bit disposa d’accelerador de xarxes neuronals dedicat, de vegades pot ser més fàcil fer servir algoritmes codificats OpenMV per fer la feina o utilitzar-los junts.

Alguns casos d’ús que em vénen al cap són:

1) Detecció de línia per al seguidor de línia del bot

2) Detecció de semàfors amb detecció de cercles i colors

3) Utilitzar la detecció de cares per trobar les cares per al reconeixement de cares (amb DNN)

Dipòsit de Github per a aquest article

Pas 1: Firmware de Flash Micropython

Connecteu-vos a MaiX Bit
Connecteu-vos a MaiX Bit

Primer de tot, haurem de llançar el microprogramari de micropitó a la nostra placa. S'inclou un binari precompilat al repositori github d'aquest article, juntament amb kflash.py (una utilitat flash). Si voleu compilar el microprogramari des del codi font, només heu de descarregar-lo des de https://github.com/sipeed/MaixPy, instal·leu la cadena d’eines i compileu el codi font al fitxer maixpy.bin. Podeu trobar instruccions detallades de construcció aquí.

Feu flash el fitxer binari amb

sudo python3 kflash.py kpu.bin

Després de parpellejar amb èxit, seguiu el pas següent.

Pas 2: connecteu-vos a MaiX Bit

Ara, el nostre MaiX Bit hauria de ser accessible mitjançant una connexió sèrie USB amb velocitat de transmissió 115200. Podeu fer servir el vostre programari preferit per a la comunicació en sèrie o simplement ordres de cat i eco, sigui el que convingui a les vostres necessitats. Feia servir la pantalla per a la comunicació en sèrie i em resultava molt convenient.

L'ordre per establir una sessió de comunicació en sèrie amb pantalla és

sudo screen / dev / ttyUSB0 115200

on / dev / ttyUSB0 és l'adreça del dispositiu.

És possible que hàgiu de prémer el botó de restabliment del microcontrolador per veure el missatge de salutació i l’indicador de l’intèrpret de python.

Pas 3: executeu les demostracions

Ara podeu accedir al mode de còpia prement Ctrl + E i copiar-enganxar els codis de demostració. Per executar-los, premeu Ctrl + D en mode de còpia.

Si no voleu gravar els vídeos, heu de comentar les línies de gravació de vídeo. En cas contrari, el codi generarà una excepció si no hi ha cap targeta SD inserida

Aquí teniu breus descripcions de cada demostració:

Cerca cercles: utilitza la funció find_circles d'OpenMV. Necessita més ajustaments per a la vostra aplicació específica, especialment el llindar (controla quins cercles es detecten a partir de la transformació de la broca. Només es retornen els cercles amb una magnitud superior o igual al llindar) i els valors r_min, r_max.

Cerca rectangles: utilitza la funció find_rects d’OpenMV. Podeu jugar amb un valor llindar, però el valor que tinc a la demostració funciona bastant bé per trobar rectangles.

Cerca cares, cerca ulls: utilitza la funció find_features amb Haar Cascades per detectar els ulls i la cara frontal a la imatge. Podeu jugar amb els llindars i els valors d’escala per obtenir la compensació correcta de precisió de velocitat.

Troba línies infinites: utilitza la funció find_lines per trobar totes les línies infinites de la imatge mitjançant la transformada de hough.

Detecta el color: utilitza la funció get_statistics per obtenir un objecte percentil i, a continuació, converteix els valors mitjans de la tupla LAB en tupla de valors RGB. He escrit aquest exemple jo mateix i funciona força bé, però tingueu en compte que els resultats de la detecció de color es veuran afectats per les condicions de llum ambiental.

Podeu trobar moltes més demostracions interessants al repositori github d'OpenMV. La majoria són compatibles amb el micropitó MaiX Bit, l’únic que cal recordar és afegir sensor.run (1) després d’haver configurat el format de pix i el format de marc.

Feliç experimentació amb el codi OpenMV. Si teniu cap pregunta o voleu compartir alguns dels vostres resultats interessants, no dubteu a contactar-me a Youtube o LinkedIn. Ara, disculpeu-me, aniré a fabricar uns robots!

Recomanat: