CMUcam5 Pixy sensore di immagine con processore dedicato potente e versatile.
CMUcam5 Pixy è un sensore di immagine utilizzato per far sì che il robot esegua un compito come raccogliere un oggetto, inseguire una palla, localizzare una stazione di ricarica, ecc…
Cosa sono i sensori di immagine?
I sensori di immagine si chiamano così appunto perchè sono progettati per catturare ed elaborare immagini singole o in sequenza e sono molto utili proprio perché hanno una notevole flessibilità. Con l’algoritmo giusto, un sensore di immagine è in grado di percepire o rilevare praticamente qualsiasi cosa. Ma ci sono due inconvenienti con sensori di immagine:
- Ci sono un sacco di uscite di dati, decine di megabyte al secondo,
- Il trattamento di tale quantità di dati può sopraffare molti processori.
E se il processore può tenere il passo con i dati, gran parte della sua potenza di elaborazione non sarà disponibile per altre attività.
Come Pixy affronta il problema dell’enorme flusso di dati
CMUcam5 Pixy affronta questi problemi abbinando un potente processore dedicato con il sensore di immagine.
Pixy elabora le immagini dal sensore di immagine e invia solo le informazioni utili (ad esempio dinosauro viola rilevato in x = 54, y = 103) al microcontrollore. E lo fa con un frame rate elevato (50 Hz).
Le informazioni sono disponibili attraverso una delle diverse interfacce: seriale UART, SPI, I2C, USB, o uscita analogica / digitale. Così il vostro Arduino o altri microcontrollori possono parlare facilmente con Pixy e hanno ancora un sacco di CPU disponibile per altre attività.
È possibile collegare più Pixys al microcontrollore – per esempio, un robot con 4 Pixys e 360 gradi di rilevamento. Oppure utilizzare Pixy senza un microcontrollore e utilizzare le uscite digitali o analogici per innescare gli eventi, gli interruttori, i servi, etc.
Supporto del controller
CMUcam5 Pixy può facilmente connettersi a un sacco di diversi controllori in quanto supporta diverse opzioni di interfaccia (seriale UART, SPI, I2C, USB, o uscita digitale / analogico), ma Pixy ha iniziato la sua vita dialogando con Arduino. Nel corso degli ultimi mesi è stato aggiunto il supporto per Arduino Due, Raspberry Pi e BeagleBone nero. Sono fornite librerie software per tutte queste piattaforme in modo da poter essere rapidamente operativi. Inoltre, è presente una API di Python se si sta utilizzando un controller basato su Linux (ad esempio Raspberry Pi, BeagleBone).
Rilevamento di oggetti e colori
CMUcam5 Pixy utilizza un algoritmo di filtraggio del colore a base di rilevare oggetti. I metodi di filtraggio basati sul colore sono popolari perché sono veloci, efficienti e relativamente robusti.
La maggior parte di noi hanno familiarità con RGB (rosso, verde e blu) per rappresentare i colori. Pixy calcola il colore (tonalità) e la saturazione di ogni pixel RGB rilevato dal sensore di immagine e usa questi come parametri di filtraggio primari.
La tonalità di un oggetto rimane sostanzialmente invariata, con cambiamenti di illuminazione e l’esposizione.
Cambiamenti di illuminazione e di esposizione possono avere un effetto frustrante su algoritmi di filtraggio colore, provocandone il malfunzionamento.
L’algoritmo di filtraggio di Pixy è robusto ed efficiente quando si tratta di illuminazione e di modifiche di esposizione.
Sette firme colore
Pixy ricorda fino a 7 diverse firme di colore, il che significa che se si dispone di 7 oggetti diversi con colori unici, l’algoritmo di filtro colore della Pixy non avrà alcun problema nella loro identificazione. Se avete bisogno di più di sette colori, è possibile utilizzare i codici di colore (vedi sotto).
Possibilità di rilevare centinaia di oggetti contemporaneamente
Pixy può trovare centinaia di oggetti alla volta.
Esso utilizza un algoritmo di componenti collegati per determinare dove un oggetto inizia e finisce un altro.
Pixy poi compila le dimensioni e le posizioni di ogni oggetto e li segnala attraverso una delle sue interfacce (ad esempio SPI).
50 fotogrammi al secondo
Che cosa significa “50 fotogrammi al secondo”? In breve, ciò significa che Pixy è assai veloce.
Pixy elabora un intero frame immagine 640×400 ogni 1/50 ° di secondo (20 millisecondi).
Questo significa che si ottiene un aggiornamento completo delle posizioni di tutti gli oggetti rilevati ‘ogni 20 ms. In questo modo, è possibile monitorare il percorso di caduta / rimbalzo di una palla. (Una palla viaggia a 30 mph e si muove meno di un piede in 20 ms.)
Insegnare a Pixy gli oggetti che ti interessano
Pixy è unica perché si può fisicamente insegnare ciò che vi interessa nel rilevamento. Si vuole ad esempio che Pixy riconosca un dinosauro viola? Basta posizionare il dinosauro di fronte a Pixy e premere il pulsante. Si vuole che riconosca una sfera arancione? Allora basterà mettere la palla di fronte a Pixy e premere il pulsante. Tutto davvero facile e veloce.
Più in particolare, si insegna un colore a Pixy tenendo l’oggetto davanti al suo obiettivo mentre si tiene premuto il pulsante situato sulla parte superiore.
Nel fare questo, il LED RGB sotto la lente fornisce un feedback per quanto riguarda quale oggetto si sta guardando direttamente. Ad esempio, il LED diventa arancione quando una palla arancione è posta direttamente di fronte Pixy.
Rilasciando il tasto Pixy genera un modello statistico dei colori contenuti nell’oggetto e li memorizza nella sua memoria flash. Da allora in poi andrà quindi ad utilizzare questo modello statistico per trovare gli oggetti con le firme di colore simili nel suo riquadro visivo.
Quanti colori può imparare Pixy?
Pixy può imparare sette firme colore, numerati da 1-7. La firma colore 1 è la firma predefinita. Insegnare a Pixy le altre firme (2-7) richiede una semplice sequenza premendo il pulsante.
0 commenti