iPhone iOS IImaggio come rilevare un punto "puntatore laser" su un feed della fotocamera?


9

Ho un giocattolo robot cingolato e lo controllo con un iPhone. Il robot emette un feed live della telecamera di dimensioni fotogrammi note e lo sto visualizzando su UIImage.

Ho aggiunto un puntatore laser al robot e l'ho riparato lungo l'asse del robot. Sto cercando di rilevare il punto del puntatore laser sull'immagine e quindi provare a calcolare la vicinanza dell'oggetto. Se il punto laser è lontano dal centro, so che il robot è bloccato contro il muro e deve eseguire il backup.

Come posso rilevare un punto di pixel bianco-rossi luminosi su uno schermo? Una soluzione sarebbe quella di campionare il colore dei pixel entro un certo raggio del centro e rilevare un colore brillante blob. Qualcuno può suggerire un algoritmo per questa attività?

Un altro approccio sarebbe quello di tenere traccia della posizione media del punto negli ultimi pochi fotogrammi, riducendo così il raggio approssimativo. Se non ci sono punti all'interno di un'area predefinita, l'area di ricerca potrebbe essere espansa.

Infine, voglio essere in grado di insegnare al robot a rilevare il tappeto attorno ad esso. Il tappeto riflette un puntatore laser in un certo modo e voglio capire quanti telai attorno al robot hanno proprietà simili. Se so dove si trova il puntatore laser su uno schermo, posso ritagliare un piccolo rettangolo da quell'immagine e confrontarli tra loro. Esiste un modo efficace per confrontare più piccole immagini tra loro per capire se le loro sagome corrispondono?

Ho notato che il laser è riflesso da superfici lucide e la direzione di questo riflesso potrebbe dirmi qualcosa sull'orientamento della superficie nello spazio, in conformità con le leggi di rifrazione.

Grazie!

Puntatore laser chiuso

Puntatore laser 1


1
È possibile attivare e disattivare il puntatore laser in un modello? Come se un fotogramma sia spento, il successivo sia acceso e sottrai i fotogrammi successivi per renderlo molto ovvio.
endolith,

È un'ottima idea! Ma non ho il controllo del puntatore laser, acceso o spento.
Alex Stone,

@AlexStone Sto cercando di ottenere risultati simili, l'unica differenza è che sto cercando di rilevare la luce laser sulla pupilla. Potete aiutarmi con il codice iOS o qualsiasi codice di esempio che avete citato in giudizio con il monitoraggio del raggio laser? Apprezzo il tuo aiuto in anticipo, grazie AJ.
AmJa,

Risposte:


10

OpenCV è compilabile per iOS. Anche se potrebbe non essere il più efficiente, ti dà la possibilità di eseguire il porting dell'algoritmo. Ho fatto un simile problema di tracciamento dei marker usando l'algoritmo ConDensation. Cerca il tracciamento dei marker con OpenCV. È un'area di ricerca MOLTO ampia e l'algoritmo esatto che desideri dipende completamente dalla tua applicazione. Se ricordo bene ci sono circa 3000 tecniche di elaborazione delle immagini segnalate: sceglierne una buona è un'arte vera!

Una soluzione sarebbe quella di campionare il colore dei pixel entro un certo raggio del centro e rilevare un colore brillante chiazza. Qualcuno può suggerire un algoritmo per questa attività?

A proposito, questa è l'idea di base dietro quello che viene chiamato un filtro antiparticolato (di cui la condensa è un metodo). Ben fatto, hai capito l'idea di base da solo!

Un altro approccio sarebbe quello di tenere traccia della posizione media del punto negli ultimi pochi fotogrammi, riducendo così il raggio approssimativo. Se non ci sono punti all'interno di un'area predefinita, l'area di ricerca potrebbe essere espansa.

Questo si chiama persistenza dello stato e può essere modellato in vari modi. L'algoritmo di condensazione utilizza un approccio stocastico non dissimile da un semplice vecchio filtro Kalman.

Esiste un modo efficace per confrontare più piccole immagini tra loro per capire se le loro sagome corrispondono?

Questo è un po 'più difficile. Potresti provare la corrispondenza dei modelli, ma non so quanto funzionerà bene su iOS (il calcolo molto pesante e la fotocamera iOS non sono adatti a questo).


Paul, grazie per una risposta incredibilmente dettagliata! Ho un framework OpenCV e cercherò esempi di progetti che lo utilizzano.
Alex Stone,

Ciao Paul, hai qualche idea sull'app di esempio per il rilevamento laser tramite videocamera iOS usando openCV?
AmJa,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.