You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using the pre-built Windows binary, I am unable to load my custom features into the project. Regardless of the path entered, it gives a "Path is a not a directory" error on pressing "Extract." However, if I switch between the 'extract' and 'import' tabs and then try to press the "Extract" button, it begins to run, but then colmap stops responding and shuts down.
My images are in a dataset_root/images folder (e.g. dataset_root/images/_MG_9859.JPG).
My features are 4096 dimensional and formatted according to the documentation (x y scale orientation dim_1 ...dim_4096) and located in dataset_root/features (e.g. dataset_root/images/_MG_9859.JPG.txt).
Thanks for the report. The feature import is fixed now, but you would have to recompile yourself for now.
At this point, COLMAP only supports 128-dimensional features, since the matching is based on SiftGPU. To use 4096-dimensional features, do the matching yourself and write the inlier_matches to the database manually. Should be relatively easy to do. Let me know if you need help.
Sounds good. Thanks for the quick repair. I was looking through the 'base' directory source code but couldn't find where it was restricted. Either way, I too figured that writing directly to the DB might circumvent the issue and am working on that now.
Thanks again!
Marc
On Apr 30, 2016, at 5:59 AM, Johannes Schönberger [email protected] wrote:
Hi Marc,
Thanks for the report. The feature import is fixed now, but you would have to recompile yourself for now.
At this point, COLMAP only supports 128-dimensional features, since the matching is based on SiftGPU. To use 4096-dimensional features, do the matching yourself and write the inlier_matches to the database manually. Should be relatively easy to do. Let me know if you need help.
Cheers, Johannes
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
That requirement is imposed by SiftGPU, see base/feature.h and base/feature_matching.h. A CPU matcher could solve the problem, but for any non-standard feature type, it's not clear what distance metric to use anyway. So, it will be hard to generalize for features other than SURF/SIFT or binary features. I suggest to simply write to inlier_matches in the database.
That's what I thought. It might be worth adding functionality for users to provide their own matching function as well. Basically just have a user provide a function handle. This way people can use Colmap for evaluating different metrics for SfM. Perhaps for version 2.0...?
On May 1, 2016, at 4:22 AM, Johannes Schönberger [email protected] wrote:
That requirement is imposed by SiftGPU, see base/feature.h and base/feature_matching.h. A CPU matcher could solve the problem, but for any non-standard feature type, it's not clear what distance metric to use anyway. So, it will be hard to generalize for features other than SURF/SIFT or binary features. I suggest to simply write to inlier_matches in the database.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
Hi Marc, if you need this feature and want to contribute, I am happy to accept a PR. Otherwise, I'll be closing this issue as fixed for now. Feel free to reopen if you disagree :-)
Cheers, Johannes
Hello Marc and Johannes,
I'm also interested in importing my own matching points. I'm making a comparison between different feature extraction/matching algorithms, show how the SFM results can differ using SIFT, SURF and others from Opencv.
How did you manage to write the inlier_matches in the database? My matching points are structured as the following example.
Points with same id can be visible in multiple images, x and y are pixel coordinates.
Is it somehow feasible to fill in the database with these points and run the SFM?
Hi,
Sorry for reopening this issue again. I plan to switch SIFTGPU feature extraction to ASIFT feature extraction instead of importing custom features to the database. However, I am not sure where to start it. :-(
Activity
ahojnnes commentedon Apr 30, 2016
Hi Marc,
Thanks for the report. The feature import is fixed now, but you would have to recompile yourself for now.
At this point, COLMAP only supports 128-dimensional features, since the matching is based on SiftGPU. To use 4096-dimensional features, do the matching yourself and write the
inlier_matchesto the database manually. Should be relatively easy to do. Let me know if you need help.Cheers, Johannes
meder411 commentedon Apr 30, 2016
Hey Johannes,
Sounds good. Thanks for the quick repair. I was looking through the 'base' directory source code but couldn't find where it was restricted. Either way, I too figured that writing directly to the DB might circumvent the issue and am working on that now.
Thanks again!
Marc
ahojnnes commentedon May 1, 2016
That requirement is imposed by SiftGPU, see
base/feature.handbase/feature_matching.h. A CPU matcher could solve the problem, but for any non-standard feature type, it's not clear what distance metric to use anyway. So, it will be hard to generalize for features other than SURF/SIFT or binary features. I suggest to simply write toinlier_matchesin the database.meder411 commentedon May 1, 2016
That's what I thought. It might be worth adding functionality for users to provide their own matching function as well. Basically just have a user provide a function handle. This way people can use Colmap for evaluating different metrics for SfM. Perhaps for version 2.0...?
ahojnnes commentedon May 8, 2016
Hi Marc, if you need this feature and want to contribute, I am happy to accept a PR. Otherwise, I'll be closing this issue as fixed for now. Feel free to reopen if you disagree :-)
Cheers, Johannes
MarcelloAgostini commentedon Jul 12, 2018
Hello Marc and Johannes,
I'm also interested in importing my own matching points. I'm making a comparison between different feature extraction/matching algorithms, show how the SFM results can differ using SIFT, SURF and others from Opencv.
How did you manage to write the inlier_matches in the database? My matching points are structured as the following example.
Points with same id can be visible in multiple images, x and y are pixel coordinates.
Is it somehow feasible to fill in the database with these points and run the SFM?
Cheers, Marcello
MarcelloAgostini commentedon Jul 17, 2018
Anyone having any suggests?
ahojnnes commentedon Jul 17, 2018
@MarcelloAgostini Please have a look here for an example on how to write matches to the database: https://github.com/colmap/colmap/blob/dev/scripts/python/database.py#L196 - other than that, there is also the
matches_importercommand, which allows you to import raw or inlier matches.MarcelloAgostini commentedon Jul 20, 2018
Thanks Johannes, I'll try these solutions.
zhoux121 commentedon Oct 28, 2021
Hi,
Sorry for reopening this issue again. I plan to switch SIFTGPU feature extraction to ASIFT feature extraction instead of importing custom features to the database. However, I am not sure where to start it. :-(
BrianG13 commentedon May 28, 2022
@MarcelloAgostini Did u wrote any code to add the matches like you have?
Sorry for raising an old issue, but I am looking for a piece of code that adds manually the 2d keypoints matches between images.
Thanks!