In regards to the extrinsicMatrix attribute of the AVCameraCalibrationData class, the description provided is as follows:
A matrix relating a camera’s position and orientation to a world or scene coordinate system.
I'm trying to build an app for 3D reconstruction/scanning that only uses the AVFoundation framework (not ARKit). I'm able to extract RGB frames, depth maps, and the camera's intrinsic matrix. However, the extrinsicMatrix is always an identity matrix.
The documentation mentions this:
The camera’s pose is expressed with respect to a reference camera (camera-to-world view). If the rotation matrix is an identity matrix, then this camera is the reference camera.
My questions are:
Does the extrinsicMatrix param refer to a global coordinate system at all? If so, which coordinate system it is?
Are there settings to configure that would trigger the extrinsicMatrix to change according to camera movement?
If the extrinsicMatrix can't be used in this manner, can you recommend another way to estimate camera motion between frames to provide accurate 3D reconstruction?
Thanks in advance, and I'd be happy to provide more info if needed. I'm using an iPhone 14 Pro and the .builtInDualWideCamera as the AVCaptureDevice.
Selecting any option will automatically load the page