Photogrammetry Testing: Reality Capture
[Disclosure: I asked Capturing Reality for a temporary license to access the full version so I could test it and export models, they kindly agreed and gave me a 1 month license. This in no way affects my review]
Ok, let’s get this out of the way – Reality Capture is fast. I mean, really fast. And it doesn’t seem to be at the expense of accuracy/reconstruction completeness either. I mean, the website clearly states “10x faster than anything on the market”… but when has marketing hyperbole ever been correct? Well… now… it seems.
But, it’s subscription (which isn’t for everyone) for the low-end version, or it’s very expensive for a perpetual license.
Here’s what you need to know:
Lowest Cost: $99 (~£77) for 3 months [caveats: no support, max 2,500 images per project] via their website, or you can pay £29.99 for 1 month through steam
Time to reconstruct Styracosaurus dataset*: 397.262 seconds (6.6 minutes) + texturing
* on default, on my test machine
Ok, so let’s start at the beginning. You open up Reality capture and it looks like this:
I head to the folder button in the top left, select my folder of images of the styracosaurus model, they load (almost instantly), and then I click the start button and leave the reconstruction to it, hoping default settings are good enough:
Turns out they are:
This mesh isn’t textured, it’s just using coloured verticies. Texturing is accomplished via a button on the top bar under ‘reconstruction’. That took 205 seconds, or a little over 3 minutes, for a 4096px texture. The textured model looks as good as the coloured mesh, to be honest, hence why I didn’t include texturing in the headline time-taken.
So, the reconstruction looks great, very complete. All 53 cameras were matched, and there’s not a lot of noise around the horn (which is usually problematic), and the (shiny) brass plaque was good too:
Reality capture also allows direct upload to sketchfab, decimating the model accordingly first, which is good because the full model is too large to upload to sketchfab. You can view the decimated model here:
As mentioned at the start, the whole process took about 6 and a bit minutes. To put that in perspective, last time I tested COLMAP with this dataset, it took 50 minutes! COLMAP + OpenMVS took 37 minutes, and Meshroom took 45 minutes. Reality Capture really is about 10x quicker.
That being said, some of those options have improved since I last tested them, so I will review this comparison again in the not too distant future.
I also tried Reality Capture’s reconstruction on low and high settings:
For Low, I ran a draft alignment (14.5 seconds), then a ‘preview’ quality reconstruction (0.944 seconds). That’s right, a fully coloured mesh in just 15 seconds! It didn’t look great, mind:
But then what do you expect for 15 seconds worth of processing? Colourising verts looked similarly ‘draft-like’:
Texturing (4096×4096) took 78 seconds, but turned it into something highly useful for visualization purposes:
High was a different kettle of fish… Total time taken (not including texturing) was 24 minutes. But the mesh wasn’t actually better than default:
It suffered from an awful lot of noise, and horn lost a bit of fidelity. Meanwhile, the mesh was considerbly larger in vertex/poly number and consequently file size (High was 1.66 GB, but default was 480mb). Even after a couple of smoothing passes, the model didn’t get much better:
For the record, this is what system usage looked like during high reconstruction:
A big selling point of Reality Capture is that it’s easy on resources. You can see here it’s only using about 8GB of the 16GB RAM available, and neither the GPU or CPU are being maximally taxed.
From the testing with this dataset at least, it doesn’t seem like there’s much benefit going above default settings.
One thing Capturing Reality claim about Reality Capture is that doubling photos only doubles processing time, whereas in other packages, you’ll see an exponential increase in time taken.
So I decided to test a larger dataset – 218 photos of Neuquensaurus, used in a previous paper on Sauropod body mass. I have managed to make a model of this in the past (obviously – it’s used in the paper), but it was a massive pain in the rear, because the conditions weren’t great for the photos.
Anyway, Reality Capture made light work of it. Just 10 minutes (593 seconds) from start to finish (so in fact only ~twice as long as the styracosaurus model dataset). The result looked… a bit messy:
Better textured, but still not great. High or preview weren’t noticeably different from the default settings.
BUT! Turns out it’s just the mesh that looks messy. If you view just the vertices, everything looks much cleaner:
And a top view gives you an idea of just how well this complex shape (including ribs and armature) was reconstructed, which is double impressive given that the place it was mounted made it difficult to photograph from one side:
And here’s a close up view of those verticies:
There’s a bunch of features in Reality Capture that I haven’t had time to play with, or that I don’t really have any need for. Ground control points being one.
One feature I would use that I haven’t come across is scaling based on a known size in the image. You can import control points, but not click in a photo and scale, at least as far as I’ve seen yet. If that changes, I’ll update this post.
My only other comment is that changing the settings can be fiddly. Whenever you click a settings button, a new menu opens in the lower left:
These menus aren’t particularly nice to look at, and everything’s a bit tiny and cramped (I’m not on a high DPI screen or anything), and it can be difficult to browse through the menus. So the UI does the job perfectly fine for default settings, but if you want to dig in it’s not as nice as it could be.
Finally, there’s the matter of the pricing structure. I’m wary of subscriptions. Let’s be honest, I’m wary of paying money at all when there’s good free options. But this really is fast, and it’s relatively cheap. I don’t think the subscription model is right for me, but if you’re doing a lot of photogrammetry, I’m quite sure that for £30 a month, you’ll probably save that amount of money in time and computer resources.
Whilst I wouldn’t normally go this route, I could definitely see myself going away on fieldwork, collecting a tonne of photos of specimens, then paying for a month’s worth of Reality Capture to process them all.
Interesting review, thanks. Do you have any ideas or opinions on how it achieves the 10x performance improvement? Is it better algorithms, more use of the GPU or maybe lots of little things?
To the best of my knowledge, reality capture is made by the people that originally wrote cmpmvs, which had the best meshing algorithm out there but was slow. My guess is they’ve got particularly advanced densification/meshing algorithms optimized for the GPU.
Greet app and ezee software this software is best my workout is ezee good
Many thanks for the review! I was wondering if you could compare with the COLMAP+OpenMVS, in terms of the accuracy and the reconstruction quality? Based on your opinion, which one would you prefer if we ignore the computation time? Thank you in advance!
I think for most use cases, Reality Capture is better, though some datasets will work better on COLMAP and OpenMVS, or Meshroom. That being said, Reality Capture is pretty expensive, and if reconstruction time isn’t an issue, I’m not sure it’s so much better in accuracy and reconstruction to justify the cost.
Thanks for your quick reply! Your blogs help me a lot in developing the photogrammetry skill set. By the way, stay safe 🙂