2013-08-05 11 views
7

La qualità della calibrazione viene misurata dall'errore di riproiezione (esiste un'alternativa?), che richiede le coordinate di un mondo di conoscenza di alcuni punti 3d.Come verificare che la calibrazione della fotocamera sia corretta? (o come stimare l'errore di riproiezione)

Esiste un modo semplice per produrre punti noti? Esiste un modo per verificare la calibrazione in un altro modo (ad esempio, il metodo di calibrazione di Zhang richiede solo che l'oggetto di calibrazione sia planare e che la geometria del sistema non sia nota)

risposta

6

È possibile verificare la precisione dei parametri di distorsione dell'obiettivo non lineare stimati indipendentemente dalla posizione. Cattura immagini di bordi diritti (ad esempio un filo a piombo o una striscia laser su una superficie piana) che coprono il campo visivo (un modo semplice per estendere il campo visivo è ruotare la fotocamera mantenendo fisso il filo a piombo, quindi aggiungere tutte le immagini) . Seleziona punti su dette immagini di linea, non distorte le loro coordinate, misura le linee matematiche, errore di calcolo.

Per la parte lineare, è anche possibile acquisire immagini di più impianti planari in una posizione relativa nota, spostando un target planare con un rig ripetibile/accurato (ad esempio un giradischi) o montando più target planari ad angoli noti da l'un l'altro (ad esempio tre piani a 90 gradi l'uno dall'altro).

Come sempre, un compromesso è in ordine tra requisiti di precisione e budget. Con abbastanza soldi e un'amichevole officina nelle vicinanze puoi lasciare correre la tua fantasia con la geometria del rig. Una volta avevo un dodecaedro delle dimensioni di un pompelmo, lavorato in plastica bianca con dimensioni di 1/20 mm. Utilizzato per calibrare la posa di una telecamera sull'effettore finale di un braccio robotico, spostandolo su una sfera attorno a un punto fisso. Il dodecaedro ha proprietà davvero interessanti riguardo agli angoli di occlusione. Inutile dire che è tutto brevettato.

6

Le immagini utilizzate per generare l'intrinseco la calibrazione può essere utilizzata anche per verificarlo. Un buon esempio di questo è lo strumento camera-calib del Mobile Robot Programming Toolkit (MRPT).

metodo di Per Zhang, procede calibrazione MRPT come segue:

  1. elaborare le immagini in ingresso:

    • 1a. Individua il target di calibrazione (estrai gli angoli della scacchiera)
    • 1b. Stimare la posa della telecamera rispetto al bersaglio, supponendo che il bersaglio sia una scacchiera planare con un numero noto di intersezioni.
    • 1c. Assegnare punti sull'immagine a un modello del target di calibrazione in relative coordinate 3D.
  2. Trovare una calibrazione intrinseca che spieghi meglio tutti i modelli generati in 1b/c.

Una volta generata la calibrazione intrinseca, è possibile tornare alle immagini di origine.

Per ogni immagine, moltiplicare la posa stimata della telecamera con la calibrazione intrinseca, quindi applicarla a ciascuno dei punti derivati ​​in 1c.

Questo mapperà i relativi punti 3D dal modello di destinazione all'immagine di origine di calibrazione 2D. La differenza tra la caratteristica dell'immagine originale (angolo della scacchiera) e il punto riproiettato è l'errore di calibrazione.

MRPT esegue questo test su tutte le immagini di input e genera un errore di riproiezione aggregato.

Se si desidera verificare un sistema completo, includendo sia le caratteristiche intrinseche della telecamera che la trasformazione da telecamera a mondo, sarà probabilmente necessario creare un jig che posiziona la telecamera e il target in una configurazione nota, quindi testare il 3D calcolato punta contro le misurazioni del mondo reale.

+0

Sto lavorando allo stesso problema che ho calibrato sulla fotocamera ho ottenuto le matrici intrinseche e voglio verificare se la calibrazione è buona o meno. ma nella tua risposta tu dici che dovremmo moltiplicare la posa della telecamera con la matrice della telecamera in modo da ottenere il 2D imagecorner! dove prendi la posa della macchina fotografica? Grazie in anticipo per il vostro aiuto – Engine

2

Sulla domanda del motore: la matrice di posa è una matrice [R | t] in cui R è una rotazione 3D pura e un vettore di traslazione. Se hai calcolato un'omografia dall'immagine, la sezione 3.1 del rapporto tecnico Microsoft di Zhang (http://research.microsoft.com/en-us/um/people/zhang/Papers/TR98-71.pdf) fornisce un metodo di forma chiusa per ottenere sia R che t utilizzando l'omografia nota e la matrice di telecamere intrinseca K. (Non posso commentare, quindi Ho aggiunto una nuova risposta)

Problemi correlati