CRS Alignment
Closed this issue · 3 comments
Hi,
I am relatively new to working with Colmap, and I'm encountering an issue aligning the Coordinate Reference System (CRS) of my Colmap data with the real-world coordinates in my dataset. I was hoping you could provide some guidance on the procedure you used for CRS alignment.
In the script, you've mentioned four images with comments as follows:
"meta porta corridoio lavagne fine: 0870
porta anti incendio corridoio per andare verso il corridoio delle lavagne: 0538
spigolo per girare a sinistra verso tavoloni: 1366
632 centro angolo lavagne
A = '0538.png'
B = '0870.png'
C = '1366.png'"
Are these images related to and containing the three points that represent the same locations in both CRSs? Could you please explain the values in the provided array under cadatastral_crs?
cadatastral_crs = np.array([
[690, 430, 1715],
[280, 895, 1050],
[0, 0, 0]])
Do these values correspond to the real-world coordinates of the three points in images A, B, and C?
Additionally, I'm curious about how you obtained these pixel values and where you established the origin in the real world for this alignment process.
Hello, a lot of time passed so I am not entirely sure about my answers. As written in the report you have to scale and then align, this can be achieved only if you know the position of points inside both CRS.
Are these images related to and containing the three points that represent the same locations in both CRSs?
Yes, they are. Comments refer to some brief description we associated to each image.
Could you please explain the values in the provided array under cadatastral_crs?
If I remember correctly they should be points associated to the map. I am quite sure we obtained them using gimp, we used the zoom tool and identified pixels with the cursor. No automatic procedure for this step.
For the alignment between colman and the real-world we used points highlighted by arrows in the following image
Why?
- they were identified easily by colmap (not lambertian surfaces + edges/corners);
- since the wall is flat it can be measured using a measure-tape.
You can choose the origin of the real world arbitrarily, I would suggest to choose something that simplifies your life in term of measurements/computations.
I hope it's clearer.
@fedeizzo Thank you for your response.
So you mean we should consider 3 specific points associated to the map and know their positions in both colmap and real-world CRSs. But, to identify the pixels and get the values for the cadatastral_crs array, X and Y can be read from the map and I was wondering how you got the Z values here in pixels (1715 and 1050)?
[690, 430, 1715],
[280, 895, 1050],
[0, 0, 0]])
We took the video keeping always the same Z so we didn't consider it. If you consider the map you have 3 CRSs: colmap, real world, and map. You decide your ground truth and then you scale the other two based on the first one