7

Ich verwende ein Weitwinkelobjektiv (178º Diagonal FOV) und versuche es mit dem Opencv Kalibrierungsmodul richtig zu kalibrieren. Der gesamte Erfassungs- und Kalibrierungsprozess funktioniert einwandfrei, aber das Ergebnis ist sehr schlecht.Kalibrierung von Weitwinkelobjektiven mit Opencv

Ich habe versucht, viele verschiedene Konfigurationen:

  • Verschiedene Reihe von Bildern
  • unterschiedlichen radialen Koeffizienten Zahlen: 2,3,4,5 sogar 6. (CV_CALIB_FIX_K1, ..., CV_CALIB_FIX_K6)
  • Festlegung von Hauptpunkt und Tangentialverzerrung auf 0 (CV_CALIB_FIX_ASPECT_RATIO, CV_CALIB_FIX_PRINCIPAL_POINT)
  • Verwendung der erwarteten Brennweite als erste Kameramatrix. (CV_CALIB_USE_INTRINSIC_GUESS)

Das Beste, was ich bekommen kann, ist so etwas wie: Bad calibration

Irgendwelche Ideen, wie könnte ich eine gute Kalibrierung bekommen? Denken Sie, dass die Verwendung von zwei Kalibrierungsmustern gleichzeitig oder die Verwendung eines Kreisrasters als Kalibrierungsmuster hilfreich wäre?

Ich habe gesehen in opencv 3.0 dünne Prisma Koeffen hinzugefügt werden. Ich habe es nicht versucht, aber ich glaube nicht, dass es einen Unterschied machen wird, oder? Bearbeiten: Überprüft ... Nichts

+0

Haben Sie Bilder mit dem Kalibrierungsziel in der Begrenzung (oben links, oben rechts usw.) des Sichtfelds erstellt? –

+0

Ja, habe ich getan. Ich habe tatsächlich eine Menge Bilder mit dem Schachbrett überall ... Sie können einen der Datasets überprüfen, die ich hier verwendet habe: [https://dl.dropboxusercontent.com/u/31166777/images.rar] –

Antwort

1

Seit Opencv 2.4.10 und höher gibt es ein spezifisches Verzerrungsmodell für Weitwinkel-/Fisheye-Objektive, die mit dieser starken radialen Verzerrung umgehen können. Ich habe mit meinen Datensätzen getestet und die Ergebnisse sind sehr gut.

3

Vielleicht beschreibt das Kamera/Objektiv-Modell von OpenCV Ihr Ultraweitwinkelobjektiv nicht genau genug. Vielleicht müssen Sie den integrierten OpenCV-Kalibrierungsvorgang aufgeben und Ihren eigenen Kalibrierungsvorgang schreiben.

Zum Beispiel eine Google-Suche gibt mir:

Kanatani, K., "Calibration of Ultrawide Fisheye Lens Cameras by Eigenvalue Minimization," Pattern Analysis and Machine Intelligence, IEEE Transactions on , vol.35, no.4, pp.813,822, April 2013

Abstract: Wir haben eine neue Technik präsentiert ultra Objektiv Fisheye Kameras zur Kalibrierung durch die Beschränkung auferlegt, daß kollineare Punkte sein behoben kollinear zu sein Parallele Linien sind parallel und orthogonale Linien orthogonal. Ausnutzen der Tatsache, dass Linie Einbau in 3D auf ein Eigenwertproblem reduziert, haben wir eine strenge Störungsanalyse eine praktische Kalibrierverfahren zu erhalten. Wir machen Experimente, wir weisen darauf hin, dass falsche Lösungen existieren, wenn Kollinearität und Parallelität allein auferlegt werden. Unsere Technik hat viele wünschenswerte Eigenschaften. Zum Beispiel wird keine metrische Information über das Referenzmuster oder die Kameraposition erforderlich ist, und ein separaten Streifenmuster kann auf einem Bildschirm angezeigt werden, um ein virtuelles Gitter zu erzeugen, die Gitterpunkt-Extraktionsverarbeitung eliminiert werden.

2

Sind Sie sicher, das CV_CALIB_RATIONAL_MODEL Flag zu verwenden? Das wird OpenCV mitteilen, ein Modell zu verwenden, das Weitwinkelobjektive unterstützt.

Hier sind my suggestions für ein 150 Grad-Objektiv. Sie könnten auch erwägen April Cal versuchen, die ich anständig Glück gehabt haben.

1

Ich habe keine Erfahrungen mit Fischaugenobjektiven, aber wenn Sie planen, das Bild auf eine perspektivische Projektion abzubilden, werden Sie in Schwierigkeiten geraten.Die großen Betrachtungswinkelbereiche des Bildes werden auf sehr weite Entfernungen auf der Bildebene abgebildet. Dies könnte tatsächlich zu einem Bild führen, das dem von Ihnen bereitgestellten Bild entspricht. Es gibt definitiv einige Fehler, aber es scheint, dass die meisten der geraden "Weltlinien" geraden "Bildlinien" zugeordnet werden.

Was genau haben Sie als Ergebnis erwartet und wofür möchten Sie diese Kalibrierung verwenden?

1

Fisheye-Objektive haben unterschiedliche Verzerrungsmodelle. Verwenden Sie zum Kalibrieren einer Fischaugenkamera das opencv Fisheye-Modul. Siehe opnecv docs.