Overview
GeometricCamera is the abstract base class that defines the common interface for all camera models in ORB-SLAM3. It provides virtual methods for projection, unprojection, and two-view reconstruction that must be implemented by derived camera models.
Header: CameraModels/GeometricCamera.h
Namespace: ORB_SLAM3
Camera Types
The class defines two camera type constants:Constructors
_vParameters- Vector of camera parameters (format depends on derived class)
Core Methods
Projection
Project 3D points to 2D image coordinates.p3D/v3D- 3D point in camera coordinates
Unprojection
Unproject 2D image points to 3D rays.p2D- 2D point in image coordinates (pixels)
Jacobian
v3D- 3D point in camera coordinates
Uncertainty
p2D- 2D point in image coordinates
Calibration Matrix
Two-View Reconstruction
vKeys1- Keypoints from first imagevKeys2- Keypoints from second imagevMatches12- Matches between viewsT21- Output: relative pose from view 1 to view 2vP3D- Output: triangulated 3D pointsvbTriangulated- Output: flags indicating successful triangulation
true if reconstruction successful
Epipolar Constraint
otherCamera- Camera model for second viewkp1- Keypoint in first imagekp2- Keypoint in second imageR12- Rotation from camera 1 to camera 2t12- Translation from camera 1 to camera 2sigmaLevel- Sigma level for uncertaintyunc- Uncertainty threshold
true if constraint satisfied
Match and Triangulate
kp1- Keypoint in first imagekp2- Keypoint in second imagepOther- Camera model for second viewTcw1- Pose of first cameraTcw2- Pose of second camerasigmaLevel1- Sigma level for first keypointsigmaLevel2- Sigma level for second keypointx3Dtriangulated- Output: triangulated 3D point
true if triangulation successful
Parameter Access
Identification
Derived Classes
ORB-SLAM3 provides two implementations:- Pinhole - Standard pinhole camera model with radial-tangential distortion
- KannalaBrandt8 - Fisheye camera model for wide-angle lenses