The quality assessment of a reconstruction process is one of the most important topic in 3D modelling. In this tutorial, we would like to show you some basic tools how to verify the correctness of the created model as well as where to find the detail information about different steps in reconstruction process. By the example of creating a georeferenced model of a gravel pit, we will show you where to find important processing parameters and explain their meaning.
The first step of creating a model is to import images and align them. There are several ways how to estimate the quality of an alignment itself, both visual and parametric.
For the visual inspection of an alignment, the Inspection tool can be used, which shows the dependencies among cameras. If it is possible, we highly recommend you to use the Inspection tool for on-site analyses. Take pictures of a desired object and upload them into RC in the field. Run the alignment in a draft mode in order to save time via Alignment -> Draft (if the set of pictures is not large, you can run full Alignment -> Align Images), and then select Alignment -> Inspect. A web of blue lines should appear (see the picture below). The colour scale of the Inspection tool is blue to red. The more red, the worse. On the other hand, the closer to blue colour, the better. If you can detect some parts where the connections among cameras are very low, then you can take and add more images of this part to the same project and run the alignment again in the field, until you are satisfied with the result. For more information about using the Inspection tool on site, take a look at this blog: http://janebeecr.blogspot.sk/2017/04/how-to-never-miss-spot-again-with.html. In our example below, you can see the gap between the bottom-left part of the scene and the rest of cameras, which is probably the reason why 2 components were created during the first alignment. There are not enough connections among cameras.
First of all, we can take a look at the number of components that has been created and the number of images that has been taken into account. In our particular case, not all of the images were aligned during the alignment process, and 2 components were created. The ideal situation is when all images get aligned into 1 component. With the click on a component in the 1Ds view, detailed information on the selected component shows up. The larger the number of cameras and points used, the better. In the same menu, the statistics from alignment of each component can be found in the Alignment report (the red box in the picture below).
The Total projections number says how many times are 3D points seen in images. You get this value by multiplying Average track length by Points count.
Average track length is the number of images, in average, in which a point appears. When you divide Total projections value by Points count, you get Average track length number. The higher the number, the better connections among images.
Example: For one 3D point visible in 3 pictures, the Total projections value would be 3, and Average track length would be 3. For 2 3D points, from which 1 is visible in 3 pictures and the other in 4 pictures, Total projections would be 7 and Average track length would be 3.5.
Maximal, median and minimal error are basic statistics for a projection error. In simple terms, a projection error is the difference in the position in pixels between a point in a photo and the projection of the corresponding 3D point in the same photo.
Maximal error is the maximal value of a point projection error, Median error is the middle value of all projection errors telling that a half of projection errors is smaller than this value, and a half of projection errors is bigger (median in the same sense as in statistics) and Mean error is the average projection error. For all 3 types of errors, we can say the smaller they are, the better.
If the selected component is geo-referenced and uses correct units, the values Geo-referenced and Metric are marked as True.
Alignment time shows the time of the alignment itself.
Aligning images into more than 1 component can happen for several reasons: for example there are not enough images of some parts, or the overlap among images is too small. There is a number of options how to merge components into one scene. One of the methods can be found here: Working with components: Merging components.
The accuracy of a geo-referencing process
To correctly geo-reference the whole project, we have used a set of ground control points (GCPs). To import a set of GCPs, simply select Workflow -> Ground control in the Import & Metadata panel. If you are not familiar with file formats acceptable for importing GCPs, you can find them in the Help in the Ground Controls Import section, or select any file for importing, and take a look at the list of file formats in the import dialog.
Note: Please pay attention to the selection of the correct coordinate system of you ground controls, and also to the order of coordinates.
Before importing any ground controls, we recommend you to set an equivalent coordinate system of GCPs to the whole project. You can set the Project coordinate system by selecting Workflow -> Settings in the Application panel in the Coordinate systems part. If you would like to export GCP coordinates afterwards, do not forget to set the Output coordinate system to the corresponding type.
If you forget to set right coordinate system before importing GCPs, and the Project coordinate system and the Ground controls' coordinate system do not match, a warning window will pop up (see the picture below):
After selecting the option Set to the Project, RealityCapture will unify the GCP coordinate system and the Project coordinate system.
The list of imported GCPs can be found in the 1Ds view in the Control points tree. The symbol in the red box in the picture below indicates that the type of the selected control point is Ground control. The note 'unassigned' means that so far no images have been assigned to the selected control point. Once the control point is identified in at least one image, this note will change to the number of images assigned to the point.
Here comes the part when you have to place GCPs to the right position.
Once you identify the selected control point in images (we recommend you to use at least 3 images), control point status changes from 'unassigned' to the number of pictures assigned.
After selecting the previously identified control point (GCP 1 in the picture above) and clicking on the plus sign next to it, you can see the images in which the GCP has been identified and the per-image-measurement deviations in pixels (red box in the picture above).
Note: If you add GCPs before calculating camera poses, i.e. aligning images, you will not be able to see per-image-measurement deviations.
In the first part of the Selected control point(s) panel, you can see detailed information on the selected control point, such as its type, coordinate system and imported x, y, z coordinates. This first part is editable and can be changed even after a GCP file was imported.
The second part shows the Actual position of a control point (in this part still in the local coordinate system) and the Alignment report, which is the summary of deviations between the given and the calculated position (please note the difference between the Alignment report when aligning images, and the Alignment report of a control point). Large errors are caused by a mismatch between coordinate systems.
After the identification of all GCPs, there are 2 ways to transform a component. The first one is to use Alignment -> Update, which will find a non-rigid transformation of the placed GCPs in the component to the imported 3D positions of GCPs. There are cases, where an aligned component suffers from a banana-like deformation caused by accumulation of errors. In such cases, constraints' update does not remove the deformation (see the picture below):
In order to improve the accuracy of alignment with GCPs and remove the 'banana effect', we have to align images again: Alignment -> Align Images. After alignment, a new component has been created. We have renamed it to Georeferenced. As you can see in the picture below, the banana effect has been removed.
In the Alignment report table, you can see all the previously mentioned statistics. As you can see, the items Geo-referenced and Metric have been changed to true.
Now we will take a look at the position of errors after adding all GCPs, and at the subsequent alignment (which is the final step of the geo-referencing process).
The Actual position and position of errors in the Alignment report for the control point 1 have been changed. The actual position is now in the selected coordinate system, and the errors in the Alignment report define residuals between the given and calculated positions. Total deviations for all ground control points can be also seen in the Control points tree (the red box in the picture above).
After geo-referencing the scene, we can proceed to a reconstruction of the model itself. In the RECONSTRUCTION tab, choose the desired quality of the reconstruction - Preview, Normal Detail or High Detail. You can see detailed information and parameters in the Reconstruction Settings panel in Workflow -> Settings.
Once the model is created, you can see the number of triangles right next to the model name (the red box in the picture below) in the 1Ds view. In the Selected model(s) panel there is summary information on Texturing (in the picture below they are set to Unknown or 0, because we have not done texturing yet) and a reconstruction Report, where the time of the reconstruction divided into individual parts can be found (the green box in the picture below).
Colouring and texturing parameters
The main difference between Colouring and Texturing is that colouring creates only colours for vertices, while texturing creates an image for each triangle of a model. It is recommended to use the colouring method for denser objects because it is less time-consuming and creates smaller objects. On the contrary, texturing is more realistic than colouring but more time-consuming. Before the texturing process, you can adjust colouring/texturing parameters in the Process panel of the RECONSTRUCTION tab by selecting Reconstruction -> Settings.
Texturing a model with a large number of triangles can be very time-consuming, and sometimes not entirely necessary. To reduce the number of triangles in order to make the model smaller in size and more comfortable to work with, you can use the Simplify tool. This tool does not modify an already existing model but creates a new model with the reduced number of triangles. To illustrate the differences between coloured and textured models, we have created an orthographic projection of a coloured and a textured model with 30M triangles, and after that we created an ortho projection of a textured model whose number of triangles has been reduced to 1M using the Simplify tool. Same parameters have been used for all 3 orthographic projections.
Coloured model with 30M triangles:
Textured model with 30M triangles:
Textured model with 1M triangles:
You can browse texturing properties after the model has been textured or imported by selecting a model in the 1Ds view and looking into the Texturing subpanel of the Selected model(s) panel. In the red box of the picture below, you can see parameters used in the texturing process as well as the quality parameters defining texture accuracy. The first five parameters bounded by the green box say about the settings that had been set (or kept default) before the texturing process. Parameters in the red box are the parameters defining the quality of the created texture. The Texture utilization (with gutter) is the percentage of used texels, Texture quality says about the texture detail, i.e. how texture is detailed with the comparison to the maximal detail possible from images, and Texel size and Optimal texel size define the size of a texel in 3D, and a size of a texel in 3D corresponding to the minimal detail from images, respectively.
Orthographic projection parameters
In RealityCapture you can create arbitrary orthographic projections by activating the Ortho Projection tool in the RECONSTRUCTION tab. Each ortho projection is created with 3 layers: colour, depth, and altitude layer. You can change the projection type and its parameters in the Ortho Projection Tool.
All options in the Type line are available only for georeferenced models, otherwise the Arbitrary type is selected automatically.
The Arbitrary type means there are no restrictions. The Top type can be used when you need to make a geo-referenced orthographic photograph or a digital surface model, and you need to export it to a GIS application. The Side type means that your projection plane will be always orthogonal to the ground plane of the selected coordinate system (often used in CAD project documentation). When the type is set to Map, the coordinate system will be set to GPS and all rotation options will be locked to 0 (used when exporting an orthophoto to KML or KMZ format).
Info group defines parameters of the reconstruction region.
Width and Height (outside the Info group) define the resolution of the rendered ortho projection. When you change one of these parameters, the other parameter and Ortho pixel size will be recomputed accordingly to preserve the aspect ratio defined by the reconstruction region.
Ortho pixel size is a size of a pixel in units of the chosen coordinate system.
If you are not sure how to define the resolution of an ortho projection, RealityCapture will calculate the optimal parameters with respect to the properties of the selected model using the Estimate optimal resolution function.
You can also adjust the background of an ortho photo by changing these parameters: Backface color type, Backface color, and Backface color transparency.
You can then create the ortho projection by clicking Render, or create an empty ortho projection, and render multiple ones at once later by clicking Add to batch.
You can see all created ortho projections in the 1Ds view and access detailed information on each projection by clicking on it, the Selected ortho photo(s) menu shows up (see the picture below). Width and Height defines the size of an ortho projection in pixels (the ones previously defined in the Ortho projection tool) and Units per column/row pixel define an ortho pixel size in the coordinate system units (in our project 0.068 m, which is 68 mm). In the part Coordinate system, we can see specifications about the coordinate system and the type of a projection used to create an ortho projection.
All three ortho projection layers can be exported using Ortho projection and Digital surface model tools located in the Export section of RECONSTRUCTION tab in various file formats (for more information see RC's output / export file formats).