Go Down

Topic: Computer Vision con Arduino ? (Read 269 times) previous topic - next topic

Rodrigoson6

Ciao ragazzi vorrei utilizzare arduino per creare un robot (molto semplice nei movimenti) dotato di una telecamera e che sia in grado di riconoscere un fiore (rosso) su uno sfondo verde e marrone (erba e terra insomma  :) ).

Per fare ciò devo ricorrere alla Computer Vision, tecnica della quale era all'oscuro fino a ieri.
Da come mi pare di aver capito ciò che voglio fare alla fine (forse) è anche abbastanza "semplice" perchè si tratta di riconoscere una qualsiasi forma con un colore molto diverso.

Ho aperto questo topic perchè non so assolutamente se si può fare questa cosa con arduino perciò vorrei delle dritte e dei consigli.

Il problema fondamentale è che il robot si troverà in una campagna dove perciò non vi è connessione internet.

Quindi vi chiedo:

1) come dovrei muovermi ?
2) Arduino è in grado di gestire qualche software di computer vision ?
3) se ciò è possibile sapete dirmi se in grado di analizzare solo fotografie o anche in "real-time" mentre viene ripreso il fiore con una telecamera (col robot in movimento) ?
4) difficoltà del progetto?

Me la cavo abbastanza bene con javascript e php perciò se mi consigliate qualcosa programmabile con questi linguaggi ben venga.
L'unico problema è che, come già detto, in campagna non c'è copertura del segnale quindi non saprei come usare queli linguaggi.


Grazie mille


fabpolli

#1
Mar 14, 2019, 03:17 pm Last Edit: Mar 14, 2019, 03:22 pm by fabpolli
Risposta secca: No! Arduino non ha potenza e capacità necessarie a gestire grafica. Figuriamoci algoritmi di analisi delle immagini. Esiste una scheda denomita Teensy che non ha nulla a che fare con Arduino ma si può programmare con l'IDE di Arduino che ha la capacità di riconiscere forme molto constrastate rispetto allo sfondo.
Credo tu stia sottovalutando di molto la difficoltà del progetto, analisi delle immagini con javascript e PHP e l'impossibilità di usarli senza conenttività fanno trasparire anche la poca dimestichezza con server in esecuzione di php (Es girerebbe anche su un raspberry senza necessità di connettività) ecc.
Da quel che capisco voresti analizzare i fiori in un prato e magari distinguere una margherita da una viola e via dicendo, in più in real-time. Fattibile è fattibile, non è assolutamente semplice e richiede hardware e software in grado di gestire questa cosa molto complessa, la quale richiede anche ottime conscenze di programmazione. Tanto per farti un idea cerca OpenCV e inizia a farti un idea della complessità della cosa e verificare se tra i progetti disponibili in rete c'è qualcosa che si avvicina alle tue esigenze.
Magari Arduino lo puoi usare come piattaforma per gestire i motori del robot e nulla più


Rodrigoson6

hmm in effetti temevo che arduino non fosse in grado di gestire una cosa del genere...
Tu ti sei mai cimentato in qualcosa del genere ?

Androclo

Su arduino sono un neofita, mentre nella Visione Artificiale ho qualche rudimento univeritario in più ma non conosto gli algortmi di apprendimento. Il discorso di connessione non ti serve a molto l'algoritmo lo integri nella scheda arduino. In rete ci sono numerosi algortmi, nel caso tuo: vuoi che il robot giri nei campi e ti trovi un fiore specifico? Ti dico che se non hai conoscenze di programmazione è difficile (PHP in questo caso non ti serve a molto la conoscenza di  javascript già qualcosa in più) è possibile farlo anche in real-time (io feci qualcosa di simile sul riconoscimento dei cartelli stradali ma su foto), ma è estremamente complesso perchè un fiore non ha una geometria univoca e cambia anche a seconda dell'angolazione. Spero che qualcuno ti possa aiutare maggiormente ma dal punto di vista della programmazione non è facile.

doppiozero

Se si tratta di distinguere un punto rosso da uno sfondo di colore diverso puoi provare con una pixy

Se ti serve invece distinguere fiori diversi allora non puoi usarla
Runtime Clock Manager -- https://github.com/duezero/RCM---Runtime-Clock-Manager
GPX datalogger -- https://github.com/duezero/GPX-datalogger
AVR HV Rescue Board -- https://www.youtube.com/watch?v=EErKo0aTEio

fabpolli

Tu ti sei mai cimentato in qualcosa del genere ?
Assolutamente no!  :)

Rodrigoson6

Beh in realtà devo riconoscere solo il fiore rosso e distinguerlo dal resto dell'inquadratura che sarà verde per la presenza di erba o marrone per la presenza della terra.
Non ci sono altri fiori.

Si tratta di stinguere un colore.

@fabpolli sai dirmi qualcosa di più sulla scheda Teensy ?

fabpolli

@fabpolli sai dirmi qualcosa di più sulla scheda Teensy ?
No ma nel tuo caso credo vada meglio la scheda suggerita da @doppiozero anche se non so se è in grado di riconiscere una forma non geometrica

Rodrigoson6

Se si tratta di distinguere un punto rosso da uno sfondo di colore diverso puoi provare con una pixy

Se ti serve invece distinguere fiori diversi allora non puoi usarla
Wow ma è fenomenale !
Credo che sia l'ideale anche perchè collegabile ad arduino!

Voi che dite?

gpb01

Voi che dite?
Che penso faccia la caso tuo. Un vecchio utente, non più presente, aveva anche fatto un piccolo filmato ... QUI

Credo fosse con la vecchia Pixy, ora c'è la nuova versione che è ancora più performante.

Guglielmo
Search is Your friend ... or I am Your enemy !

docdoc

Beh la Pixy è molto carina, se ti basta quello ok, altrimenti direi che con Arduino la cosa è... ardua. :)

Altrimenti io passerei ad un bel Raspberry PI3, su cui usare la libreria OpenCV (Computer Vision) con la quale puoi fare tantissime cose, dal riconoscimento di colori e forme, anche al riconoscimento facciale, è utilizzata moltissimo.

Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

docdoc

Un vecchio utente, non più presente, aveva anche fatto un piccolo filmato ...
Eh, già, Astro...  :smiley-cry:  :smiley-roll-blue:  :-X
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

Rodrigoson6

Beh al 99.99% comprero la Pixy2 e vi dirò come andrà...

Probabilmente aprirò altri topic su questo progetto "robot riconosce fiore"  ;D  ;D  :smiley-roll-sweat:

Go Up