SDK per la realtà aumentata con OpenCV [chiuso]


94

Sto sviluppando un SDK per la realtà aumentata su OpenCV. Ho avuto alcuni problemi a trovare tutorial sull'argomento, quali passaggi seguire, possibili algoritmi, codifica veloce ed efficiente per prestazioni in tempo reale, ecc.

Finora ho raccolto le seguenti informazioni e link utili.

Installazione di OpenCV

Scarica l' ultima versione di rilascio .

Puoi trovare le guide all'installazione qui (piattaforme: linux, mac, windows, java, android, iOS).

Documentazione in linea .

Realtà aumentata

Per i principianti ecco un semplice codice di realtà aumentata in OpenCV. È un buon inizio.

Per chiunque cerchi un SDK all'avanguardia e ben progettato, ho trovato alcuni passaggi generali che dovrebbe avere ogni realtà aumentata basata sul tracciamento dei marker, considerando le funzioni di OpenCV.

  1. Programma principale: crea tutte le classi, inizializzazione, cattura i frame dal video.

  2. Classe AR_Engine: controlla le parti di un'applicazione di realtà aumentata. Dovrebbero esserci 2 stati principali:

    • rilevamento : cerca di rilevare il marker nella scena
    • tracciamento : una volta rilevato, utilizza tecniche di calcolo inferiori per tracciare il marcatore nei fotogrammi in arrivo.

Inoltre dovrebbero esserci alcuni algoritmi per trovare la posizione e l'orientamento della fotocamera in ogni fotogramma. Ciò si ottiene rilevando la trasformazione dell'omografia tra il marker rilevato nella scena e un'immagine 2D del marker che abbiamo elaborato offline. La spiegazione di questo metodo qui (pagina 18). I passaggi principali per le stime di posa sono:

  1. Carica i parametri intrinseci della telecamera . Precedentemente estratto offline tramite calibrazione. parametri intrinseci

  2. Carica il pattern (marker) da tracciare: è un'immagine del marker planare che stiamo per tracciare. È necessario estrarre le caratteristiche e generare descrittori ( punti chiave ) per questo modello in modo da poterlo confrontare successivamente con le caratteristiche della scena. Algoritmi per questa attività:

  3. Per ogni aggiornamento del fotogramma, esegui un algoritmo di rilevamento per estrarre le caratteristiche dalla scena e generare i descrittori. Anche in questo caso abbiamo diverse opzioni.

    • VAGLIARE
    • VELOCE
    • SURF
    • FREAK : Un nuovo metodo (2012) ritenuto il più veloce.
    • ORB
  4. Trova corrispondenze tra pattern e descrittori di scena.

  5. Trova la matrice dell'omografia da quelle corrispondenze. RANSAC può essere utilizzato prima per trovare valori anomali / anomali nel set di corrispondenze.

  6. Estrai la posa della videocamera dall'omografia.

Esempi completi:


1
Purtroppo questo è "non costruttivo", stai cercando suggerimenti.
bfavaretto

3
Per quanto riguarda il compito di installazione, ora OpenCV è migrato su GIT, quindi per scaricare il codice cource è necessario fare un "git clone git: //code.opencv.org/opencv.git".
Carlos Cachalote

12
47 voti positivi ancora chiusi a causa di regole stupide.
SvaLopLop

Risposte:


19

Poiché le applicazioni AR spesso vengono eseguite su dispositivi mobili, potresti considerare anche altre funzionalità di rilevamento / descrittore:


3
Grazie! Esiste anche una versione "veloce" di FAST che funziona in tempo reale sui cellulari, è piramidale e i descrittori SIFT sono ridotti
Jav_Rock

2
Ho ottenuto risultati quasi perfetti usando ORB
dinamico

In realtà, leggendo di ORB si dice che è VELOCE nelle piramidi
Jav_Rock,

3
Freak è l'ultimo algoritmo per elaborare il descrittore su AR. Più veloce che veloce.
goe

13

In genere, se si possono scegliere i marker, si rileva prima un target quadrato utilizzando un rilevatore di bordi e quindi Hough o semplicemente i contorni, quindi si identifica il marker in particolare dal design interno. Piuttosto che usare un generico abbinatore di punti.

Dai un'occhiata ad Aruco per un codice di esempio ben scritto.


4
Sì, l'approccio fiducial è il più semplice, ma non è del tutto aggiornato. Penso che ora si dovrebbe puntare ai pennarelli strutturati. Grazie. L'esempio è molto interessante in quanto ben spiegato, però.
Jav_Rock

1
Se vuoi conoscere la posa, devi abbinare la posizione 3D delle caratteristiche del marker alle coordinate dell'immagine corrispondenti. I bersagli di forma regolare lo rendono più facile ma non hanno bisogno di essere planari
Martin Beckett

Ma se non sono planari, è necessario il modello 3d o un modello CAD, altrimenti l'omografia da 2d a 3d non è più un metodo valido, vero? Intendo la trasformazione lineare diretta utilizzata nella findomografia
Jav_Rock

Sì, se hai un marcatore 3d devi conoscere la vera forma 3d della parola (da cad, o misurarla) ma dà una soluzione migliore
Martin Beckett
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.