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.
Programma principale: crea tutte le classi, inizializzazione, cattura i frame dal video.
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:
Carica i parametri intrinseci della telecamera . Precedentemente estratto offline tramite calibrazione.
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à:
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.
Trova corrispondenze tra pattern e descrittori di scena.
Trova la matrice dell'omografia da quelle corrispondenze. RANSAC può essere utilizzato prima per trovare valori anomali / anomali nel set di corrispondenze.
Estrai la posa della videocamera dall'omografia.
- Codice di esempio su Pose da Homography .
- Codice di esempio su Homography from Pose .