Regard 3D has been around for a while now. I included it in my 2017 photogrammetry roundup, and version 1.0.0 was released in march 2019, but I’ve never actually run through it on my blog, so here goes.
Regard 3D uses openMVG as the backend for SFM, and CMVS/PMVS, MVE, or SMVS for dense reconstruction. Importantly, Regard3D is one of the few photogrammetry programmes with a GUI that doesn’t require an Nvidia CUDA compatible GPU.
I’ll run through once with defaults, then play with settings and see what I can get. Open the app and you’re met with the following UI. It’s functional:
Hit the upper left most icon to create a new project. It’ll ask for a project directory, and a name. I’ve chucked it on my desktop for now.
With that done, you’re given a button to Add a picture set. Select your photos, and it’ll give you the relevant details:
Press ‘OK’ and you’ll be met with the first stage, and the option to start computing matches:
Hitting ‘Compute Matches’ brings up a sub-window of options:
As you can see, it’s using AKAZE, rather than SIFT. I left everything on default for this guide.
Computing matches took 2 minutes 16.
You can ask it to show you matching results, and it’ll give you the appropriate visualization:
You then click on Triangulation, pick your method, and off you go. Again, I’m sticking with defaults for now.
That took 11 seconds, and calibrated 41 of the 53 images (not great):
The result is a sparse point cloud and camera positions:
And now you have the ability to click on ‘create dense pointcloud…’
Again, that opens a sub-window of options:
And again, I’ll stick with default settings for now, but will come back to this later, because densification method includes CMVS/PMVS as the default, but also MVE, which I’ve had great success with previously, and SMVS which I’ve had even better luck with.
When that’s done (it took 12 minutes 27 seconds here), it’ll show you your dense point cloud:
As you can see from the buttons on the left, you can create a surface, but you can also export the point cloud, or the scene directly to meshlab
You can see in the image above, the reconstruction’s not great, but let’s power on regardless (pun unintended). Again, plenty of options appear when you click Create Surface:
That took 13 seconds.
It’s a bit bumpy, and I’m showing you the good side here, but not bad. This isn’t a textured model – default settings just colour the vertices.
So, on default settings we got a so-so model, and it took a total of 907 seconds (about 15 minutes).
Here’s the model for your perusal:
Now I’m familiar with some of the other algorithms available at each stage, so I ve gone out of my way to try and make something better. Sadly, I don’t have time to do an exhaustive search and documentation of different parameters as I’ve done in the past.
Anyway, try as I might, I could not get more than 41 of the 53 cameras to match, so I ended up working from the densification stage of the process above, and running MVE and texturing. The mesh is ok, but it produced 120 8mb texture files. I had to re UV map the model and re-project the textures in Blender. Here’s the final model:
As you can see, that big gap on the rear left means there’s still a whopping great hole in the mesh that I simply couldn’t get reconstructed. Plus this took an extra 50 minutes, plus the time spent in blender re-UV mapping (ages! resulting in this twitter thread).
It’s a really nice GUI around some well-established and high-performing algorithms. They don’t work particularly well on this dataset, and it’s not GPU accelerated, so it’s not super quick. On the flip side, lack of GPU requirements means this will run on anything with a half decent CPU and good amount of RAM. One thing I don’t like is that you can’t run a dataset from start to finish unattended – you have to be present to select settings and click ok at each stage. That made looking for the best parameters for this dataset a massive pain in the arse.