Come un algoritmo di realtà aumentata basata marcatore (come ARToolkit di uno) funziona?

StackOverflow https://stackoverflow.com/questions/2236311

  •  19-09-2019
  •  | 
  •  

Domanda

Per il mio lavoro ho usato una versione di Java di ARToolkit (NyARTookit). Finora è dimostrato abbastanza buono per le nostre esigenze, ma il mio capo sta cominciando a volere il quadro porting per altre piattaforme come il web (Flash, ecc) e cellulari. Mentre Suppongo che potrei utilizzare altre porte, io sono sempre più infastidito dal non sapere come funziona il kit e al di là che, da alcune limitazioni. Più tardi ho bisogno anche di estendere le capacità del kit per aggiungere cose come interazione (pulsanti virtuali su schede, ecc), che, per quanto ho visto in NyARToolkit non sono supportate.

Quindi, in pratica, ho bisogno di sostituire ARToolkit con un rilevatore di segno personalizzato (e in caso di NyARToolkit, cercare di sbarazzarsi di JMF e utilizzare una soluzione migliore tramite JNI). Tuttavia non so come funzionano questi rivelatori. So di grafica 3D e ho costruito un bel quadro intorno ad esso, ma ho bisogno di sapere come costruire la tecnologia sottostante: -).

Qualcuno sa qualsiasi fonte su come implementare un indicatore a base di applicazione realtà aumentata da zero? Durante la ricerca in google trovo solo "applicazioni" di AR, non gli algoritmi sottostanti: -. /

È stato utile?

Soluzione

'Da zero' è un termine relativo. Veramente farlo da zero, senza l'utilizzo di alcun preesistente codice di visione, sarebbe molto doloroso e non si sarebbe fare un lavoro migliore di esso che tutta la comunità computer vision.

Tuttavia, se si vuole fare con il codice di AR visione esistente, questo è più ragionevole. I sub-compiti essenziali sono:

  1. Trova i marcatori nella vostra immagine o il video.
  2. Assicurarsi che siano quelli che si desidera.
  3. capire come sono orientati rispetto alla camera.

Il primo compito è di localizzazione punto chiave. Tecniche per questo includono SIFT rilevamento punto chiave, il rilevatore di angolo Harris, e altri. Alcuni di questi hanno implementazioni open source - penso OpenCV ha il rilevatore angolo Harris nella funzione GoodFeaturesToTrack

.

Il secondo compito è fare descrittori regione. Tecniche per questo includono descrittori SIFT, descrittori HOG, e molti molti altri. Ci dovrebbe essere un'implementazione open-source di uno di questi da qualche parte.

Il terzo compito è fatto anche dai localizzatori punto chiave. Idealmente si vuole una trasformazione affine, dal momento che questo vi dirà come il marcatore è seduto in 3-spazio. Il rivelatore affine Harris dovrebbe funzionare per questo. Per maggiori informazioni vai qui: http://en.wikipedia.org/wiki/Harris_affine_region_detector

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top