Camera Intrinsics
- Auch genannt: intrinsic parameters, intrinsic matrix
- Kategorie: Foundations & spatial maths › Frames & transforms
- Schlagwörter: camera-calibration, computer-vision, projective-geometry, sensors, 3d-perception
Die inneren Parameter einer Kamera, Brennweiten, Hauptpunkt und Objektivverzeichnung, die 3D-Punkte im Kamerakoordinatensystem auf Pixelkoordinaten abbilden.
Definition
Intrinsische Kameraparameter (camera intrinsics) sind die Parameter, die beschreiben, wie eine Kamera Licht von 3D-Punkten in ihrem eigenen Koordinatensystem in Pixelpositionen umwandelt. Im Lochkameramodell werden sie in einer 3×3-Matrix K zusammengefasst, die die in Pixeln ausgedrückten Brennweiten fx und fy, den Hauptpunkt (cx, cy), an dem die optische Achse das Bild trifft, und manchmal einen Scherungsterm enthält, der bei fast allen modernen Sensoren null ist. Ein Punkt (X, Y, Z) im Kamerakoordinatensystem wird auf das Pixel u = fx·X/Z + cx und v = fy·Y/Z + cy projiziert. Reale Objektive fügen Verzeichnung hinzu, meist mit radialen und tangentialen Koeffizienten im Brown-Conrady-Modell modelliert oder mit eigenen Fischaugenmodellen für Weitwinkelobjektive.
Intrinsische Parameter werden durch Kalibrierung geschätzt. Die gängige Methode, eingeführt von Zhang (2000), fotografiert ein ebenes Ziel wie ein Schachbrett aus vielen Orientierungen und bestimmt K und die Verzeichnungskoeffizienten durch Minimierung des Rückprojektionsfehlers; die Kamerakalibrierwerkzeuge von OpenCV, MATLAB und ROS folgen alle diesem Ansatz. In Tiefenkameras gespeicherte Werkskalibrierungen sind oft gut genug, um sie direkt zu verwenden, sollten aber aus dem Gerät ausgelesen und nicht geraten werden. Intrinsische Parameter ändern sich mit Auflösung, Beschnitt, Zoom und manchmal Fokus, sodass eine Kalibrierung nur für den Bildmodus gilt, in dem sie durchgeführt wurde.
Intrinsische Parameter unterscheiden sich von den extrinsischen Parametern (extrinsics), die beschreiben, wo sich die Kamera relativ zum Roboter oder zur Welt befindet. Zusammen ergeben sie die vollständige Projektion von Weltpunkten auf Pixel. Roboter nutzen intrinsische Parameter überall: beim Rückprojizieren von Tiefenpixeln in Punktwolken, beim Bestimmen der Objektpose aus Bild-Keypoints mit Perspective-n-Point, beim Entzerren von Bildern vor dem Feature-Matching und beim Rendern synthetischer Trainingsbilder, die zu einer realen Kamera passen. Hält man die intrinsischen Parameter aus einem gelernten Modell heraus und wendet sie danach in einem geometrischen Schritt an, funktioniert dasselbe Netz auch mit einer anderen Kamera.
Warum es wichtig ist
Jede Messung, die Pixel mit realer Geometrie verknüpft, hängt von den intrinsischen Parametern ab. Fehler darin verzerren Punktwolken, verfälschen Posenschätzungen systematisch und zerstören die Übereinstimmung zwischen simulierten und realen Bildern; korrekte intrinsische Parameter sind daher Voraussetzung für das meiste Robotersehen.
Wichtige Anwendungen
- Rückprojektion von Tiefenbildern in Punktwolken
- Objekt- und Kameraposenschätzung mit PnP
- Bildentzerrung vor Feature-Tracking und visueller Odometrie
- Rendern synthetischer Trainingsdaten, die zu einer realen Kamera passen
- Stereorektifizierung und Tiefenschätzung
In der Praxis
Ein Team stellt sein Greifsystem von einer RGB-D-Kamera auf eine andere mit anderer Auflösung um. Sein Keypoint-Detektor gibt Pixelkoordinaten aus, und die Pose wird mit PnP unter Verwendung der Kameramatrix bestimmt. Statt neu zu trainieren, liest das Team die intrinsischen Parameter der neuen Kamera für genau die verwendete Stream-Auflösung aus dem Treiber, gibt die entzerrten Bilder an den Detektor weiter und aktualisiert K im PnP-Schritt. Eine schnelle Prüfung projiziert das 3D-Modell eines bekannten Objekts in der geschätzten Pose zurück ins Bild; die Kanten stimmen auf ein bis zwei Pixel überein, was bestätigt, dass die Parameter stimmen. Als das Team die Bilder später aus Geschwindigkeitsgründen auf die Hälfte verkleinert, halbiert es auch fx, fy, cx und cy.
Häufige Missverständnisse
- Die Brennweite in K ist die Objektivbrennweite in Millimetern — sie wird in Pixeln angegeben und hängt von der Pixelgröße des Sensors und der Bildauflösung ab
- Intrinsische Parameter bleiben gleich, wenn Bilder skaliert oder beschnitten werden — Skalierung ändert Brennweiten und Hauptpunkt, Beschnitt verschiebt den Hauptpunkt
- Der Hauptpunkt liegt immer genau in der Bildmitte — er liegt meist nahe daran, kann aber um mehrere Pixel oder mehr abweichen
- Objektivverzeichnung kann in der Robotik ignoriert werden — sie wirkt am stärksten nahe den Bildrändern und bei Weitwinkelobjektiven, wo unkorrigierte Fehler groß sein können
Wer das wissen sollte
- Ingenieure für Robotersehen und Wahrnehmung
- Entwickler, die RGB-D-Kameras für die Manipulation verwenden
- Forschende, die synthetische Trainingsdaten erzeugen
- Robotikstudierende, die projektive Geometrie lernen
Verwandte Technologien
- OpenCV calibrateCamera
- ROS camera_calibration
- Lochkameramodell (Pinhole Camera Model)
- Brown-Conrady-Verzeichnungsmodell (Brown-Conrady Distortion Model)
- Kannala-Brandt-Fischaugenmodell (Kannala-Brandt Fisheye Model)
Verwandte Begriffe
Verwandte Projekte
- pySLAM: Hybrid Python/C++ visual SLAM pipeline with classic and deep-learning front-ends
- AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
- MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
- Gazebo: Industry-standard open-source robotics simulator with multi-physics and ROS integration
- PULP-Dronet: Visual navigation for nano-drones with CNN inference onboard a PULP processor.
- OpenWeedLocator: Low-cost Raspberry Pi weed detector that uses computer vision for precision spot spraying
Videos
- Intrinsic and Extrinsic Matrices | Camera Calibration: First Principles of Computer Vision
- Linear Camera Model | Camera Calibration: First Principles of Computer Vision