• No results found

Post Processing of Structure from Motion Point Clouds

5.3 Retrieved Roughness Metrics

5.3.1 Post Processing of Structure from Motion Point Clouds

As was mentioned in an earlier section, the size of objects within the scene must be known to the user in order to properly scale SfM point clouds. [79] We used a custom built frame with ground control points printed on the corners to scale the point clouds. The known distances in between the centers of the ground control points are assumed constant across each measurement. These targets have contrasting centers that are well-resolved by GRIT-T’s on-board camera system at a nominal operating distance of 600 to 700 mm. The plane through the centers of these ground control points is defined to be the plane that is perpendicular to the ”z-axis” of our coordinate system. In other words, the z-coordinate of each ground control point is constrained to be equal to zero in the triangulation process of the structure from motion workflow. An example of a captured image of a sample holder with ground control targets is shown below in Figure 5.6.

The centers of the frame targets are used as ground control points for the VisualSFM workflow. This method uses a triangulation routine to match user provided measures of the coordinates of the ground control points to the ground control points of the derived point cloud. After performing this triangulation, the code provides a root mean square error of the fitted accuracies of the positions of the centers of the targets predicted by the RANSAC triangulation. The root mean square errors for the point clouds of the different roughness states used in this study are shown in Table 5.1.

Figure 5.6: An image obtained of laboratory sample B1-6 with ground control point targets in the scene.

Table 5.1: Table of the horizontal Root Mean Square Error (cm) resulting from the trian- gulation routine of the ground control points from VisualSFM.

Roughness Label Grid Spacing Horizontal RMSE (cm)

Wave-1 10 mm 0.08

Wave-2 25 mm 0.10

Grid-1 10 mm 0.10

sured distances between the ground control point is less than 0.15 cm2 for all cases. This indicates that we should have confidence in the fact that the grid lines of the surface roughness that are derived in our point clouds should be accurate to within a centimeter. However, it is sometimes observed in the resulting point clouds that there is background noise or outlier points that must be removed. If so desired, the user of the codes can post- process the scaled structure from motion point clouds with a step that removes outlier points and downsamples the point cloud to a fixed grid. I developed a post-processing code to carry out these operations. The operating procedure is carried out using steps outlined in Section 3.3.3.

First, the spatial coordinates of each point within the point cloud are read into the program. Then, any background data and extraneous scene information is removed by performing a circular cropping according to a user input maximum radius, rmax , from the center of the point cloud. Note that the center of the point cloud is defined by using the center of the ground control points.

Next, the program will attempt to remove any statistical outliers from the point cloud. These statistical outliers can arise within the point cloud due to factors such as background noise grouped with components within the scene or the triangulation routine of VisualSFM failing to find sufficient keypoint matching features in regions. To remove these outliers, we apply a sliding window filter over each point within the cropped point cloud. For each point within the point cloud, the N nearest neighbors of the point are calculated based on spatial Euclidean distance. The average elevation, zN N, and standard deviation, σN N, of the elevations of these nearest neighbor points are then calculated. The filtering uses a user-defined standard deviation multiplier, α, to tune the filtering. This parameter gives the user the ability to adjust the standard deviation filter to meet different criteria for choosing outlier points. It should be noted that this approach requires the user to manually examine the filtered point clouds to check that the filtering has been performed properly.

In the next step, we perform another smoothing operation in the form of a Delaunay triangulation on the current processed point cloud. In this step, the user will input a grid resolution, g, which specifies the grid resolution along the x and y axes of the point cloud interpolation. A Delaunay triangulation is a triangulation of the convex hull of points within the point cloud. The result is a linearly interpolated series of triangles defined by sets of vertices for each triangle. Note than in addition to smoothing the data set, this step also results in a downsampling of the point cloud. This means that processing the point cloud is more computationally efficient.

At this point, we have a post-processed point cloud that can be used to generate roughness metrics for comparison across the different samples that are used in this study. In the next section, we will discuss two such metrics: the random roughness metric and the photometric mean slope angle.