Closed Zumbalamambo closed 4 years ago
If you already have 6DoF poses of the images, you simply need to triangulate a new 3D SfM model. This requires:
@Skydes I do have the point cloud as well. Do I still need to use COLMAP? These are the components that I have.
Yes, we use COLMAP for the triangulation of the SuperPoint+SuperGlue SfM model, and the COLMAP data format for I/O. As described above, first format your data into binary a COLMAP model. Then run all the steps of the Aachen pipeline.
I'm still stuck with creating a colab model for hierarchical localization :P I have been trying to follow your guidelines. Is there any documentation or code sample that creates colmap model based on the image data that has got the 6dof pose already? May be with colmap gui?
I also noticed this function this https://github.com/cvg/Hierarchical-Localization/blob/b005824c90eebaf3392d3ac464964edf5c126344/hloc/colmap_from_nvm.py#L13
In my case, how shall I structure it accordingly? what must be the camera_id,image_id, and name? :)
This function is used if a COLMAP database is already available. In your case: iterate through your images, and create a new Camera
and Image
for each. Pick a unique integer id for each, e.g. camera_id = image_id = index_of_the_image
, and use the filename of the image as the name
. Also iterate though the pointcloud, create a Point3D
for each point, also with an id, and fill in the covisibility information that links images and points.
@Skydes thank you!... I'm doing it currently. May I know what is params ?
I used mobile camera to capture the images so should I choose SIMPLE_PINHOLE?
How did you obtain the camera intrinsics? The camera models are described here, pick one that corresponds to your calibration. Use SIMPLE_PINHOLE if you have a single focal length, and no distortion.
@Zumbalamambo Have you done it? What he mentioned as quoted above?
@Skydes If I have a dataset like InLoc with poses and 3D points for every reference image, is there an example which builds the COLMAP database (which involves creation of unique IDs for Points3D, Camera, Image etc)? I am aware of pipeline_InLoc.ipynb but I am not looking to localize query image. Instead: I am basically trying to implement "covisibility clustering for InLoc". From what I understand, I can do it in following two ways:
do_covisibility_clustering()
which involves defining unique IDs for Points3D, Camera, Image etc. If I have to do that anyway, I might as well create COLMAP database and just use do what I mentioned in the first point?Let me know if I am on right track and please give further directions.
Created new issue for this, we can keep this issue closed and continue there instead.
I have set of images, 6dof positions of images. How do i structure is in such a way that the hfnet requires it to be.