Photogrammetry Testing: COLMAP-CL – a game changer for those without an Nvidia card

One of the most common questions I see around photogrammetry is “What can run on a mac?” or “what can run if I don’t have an Nvidia card?”

Most photogrammetry software, paid and commercial, uses NVidia’s CUDA programming language. CUDA is efficient and, as far as I can tell, easy to work with, so most software developers use it. Trouble is, that means if you don’t have an NVidia card, your options are fairly limited.

Well, fret no longer! I was alerted by a user on Reddit, one of the people porting the software, that COLMAP has been forked and re-written to take advantage of OpenCL.

You can get it here: https://github.com/openphotogrammetry/colmap-cl

That means it can run the full reconstruction from images to mesh, on potentially any computer. You still want to have a decent graphics card, or GPU, but it can now be AMD, not just Nvidia. This should also work on a Mac, at least through Parallels/Bootcamp (there are only binaries available for Windows on the above GitHub page.

There’s not a lot for me to report here, it looks and works exactly the same as the original version of COLMAP.

Running the automatic reconstruction on my Styracosaurus model dataset

That means it also has similar limitations – the meshing algorithms aren’t as good as MEshroom or Metashape, say, and there’s no texturing to speak of (you’d need to look into combining COLMAP with MVS or TexRecon.

Sparse Reconstruction

Now, I had initially issues running it on my main computer, because it kept trying to use both the Nvidia GPU and the integrated intel HD4600. Whenever it tried to use the intel, it would crash with very little info. I had to manually change the GPU index to 0 in the options so that COLMAP-CL only used the Nvidia card. That’s fixed as of time of writing, with version 0.9, though I was having issues with the Poisson meshing on my normal machine. The Delaunay meshing worked fine though.

To really test the non-CUDA capabaility, I commandeered my wife’s 2017 iMac. I was able to run it on the iMac booted into Windows 10 via bootcamp. The iMac uses an AMD Radeon 570 Pro GPU, so is completely incompatible with CUDA, but the software worked fine:

The end of processing (COLMAP doesn’t display the mesh, only the dense point cloud, but a mesh was produced, which you can see below).

Quality was pretty much identical to normal COLMAP being run on my Nvidia card, but it did take quite a bit longer (a total of about an hour and a half), and never really pushed either the CPU or GPU to their limits.

It’ll probably work through parallels too, but I haven’t tried that.

This is a big deal. One of the biggest problems some people face when trying to do photogrammetry is that most software, and nearly all the free/open source options need an Nvidia CPU compatible with a recent CUDA version. This fork of COLMAP, COLMAP-CL uses openCL instead of CUDA, and can therefore run on a much wider range of software.

The final mesh:

Final model made with COLMAP-CL on an iMac (intel i5, AMD Radeon 570 Pro) running Windows 10 through Bootcamp

There’s still a few bugs for the maintainers to iron out, but this is a great free option for those who don’t have an Nvidia graphics card.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Website Built with WordPress.com.

Up ↑

%d bloggers like this: