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.
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.
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:
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:
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.