I'm trying to measure objects with sparse reconstruction cloud map in COLMAP. Without inputting camera poses (translation and rotation matrix as quaternion) for images in meters, I will not be able to make any measurements from sparse model after reconstruction. Since COLMAP takes arbitrary units for its extrinsic parameter generation, the measurements made on the cloud map will not have units. But I'm trying to make measurements in meters with it. I want to use mobile phone images as input, so the camera Intrinsics are already available from exif. Is it possible to get the poses of the camera for a set of images using OpenCV? If not, are there any other method of getting the camera pose?
Asked
Active
Viewed 1,023 times
1

Christoph Rackwitz
- 11,317
- 4
- 27
- 36

Kiran George
- 63
- 1
- 1
- 7
-
1SFM has an inherent **scale ambiguity**. please research that. until you resolve that using additional information (exif info does NOT give you that), you can't measure physical lengths. this is a mathematical fact. – Christoph Rackwitz Sep 13 '22 at 11:16
-
@ChristophRackwitz Thanks for the quick reply. https://github.com/colmap/colmap/issues/1051 It says that if we enter the pose of the camera in metric scale for reconstruction, then reconstruction generated enforces that co-ordinate system. – Kiran George Sep 13 '22 at 11:24
-
that *random person* has no affiliation to the colmap project and also says *"Please correct me if I'm wrong."* so you shouldn't trust those assertions. you need to know some distances in your scene, and you need to recognize those points/distances in your point cloud. then you can scale it. – Christoph Rackwitz Sep 13 '22 at 14:11
-
@ChristophRackwitz So it is not possible to get any absolute measurements from COLMAP sparse model even if I input accurate intrinsic and extrinsic parameters in meters. Can you please confirm this? – Kiran George Sep 14 '22 at 08:29
-
if you have extrinsic parameters, then yes. however, your statement about "the camera" did imply no such thing. the entire math doesn't care where your single camera is. it could be on Mars, that wouldn't change the scale ambiguity. _extrinsic_ means you have multiple cameras _and_ you know the distances (poses) between them... and then your COLMAP library needs to handle that, or else _you_ need to handle that. you'd best discuss this with the authors/maintainers of that library. they know what it can do. – Christoph Rackwitz Sep 14 '22 at 14:02
-
1if you're asking about OpenCV, I'd recommend browsing the docs of the `sfm` module, then trying out a few things... because _someone_ has to, in order to answer your questions, so it might as well be you. – Christoph Rackwitz Sep 14 '22 at 14:05