The overall process for the 3D model creation in this study is outlined in
Figure 1. For the multi-scale modeling, an initial coarse model is first obtained by selecting the inspection region, planning a high-level optimized flight and processing the photos using SfM. Once the base planning model is obtained, the user sets up the targeted inspection by choosing priority features and specifying a covering radius and a flight proximity for each priority level. The set covering problem is solved for that target and the generated camera position and orientation are stored and remembered when solving the set covering problem at different priority levels. Every set covering solution is combined to solve the TSP. The multi-scale inspection is then planned and flown, from which the final model is processed. Please note that for repeat inspections, a prior multi-scale model may be used in place of the coarse model, omitting the first three steps shown in
Figure 1.
2.1. View-Planning Method
The view-planning method and basic problem formulation in this work is primarily built on the work presented in Martin et al. [
31]. Each viewpoint is selected based on the a priori points, which can be seen, given the terrain and occlusions represented in the a priori model. [
22] similarly ensure capture of features of interest, but [
22] use geometric constructions to represent and plan the capture of the terrain. The general workflow of the current work is outlined in
Figure 2, and key aspects are described in the following paragraphs.
The process begins with user input. For this step, the user first specifies spatial coordinates bounding the entire inspection region of interest and an imaging distance for general inspection (low priority—refer to
Section 2.3 Site Selection for an application example). Next, the user specifies the spatial coordinates of target features or regions to be more closely inspected and the desired imaging distance for those inspection targets. The user then inputs camera information, including sensor aspect ratio and field of view, and flight information, including a minimum safety distance that the UAV must maintain away from objects. Finally, the user specifies the desired percent coverage (typically 90–95%) or the maximum number of images allowed.
The 90–95% coverage describes an a priori method to ensure effective tie points in 3D model reconstruction (not the expected coverage of the final model). From a histogram of possible camera locations and corresponding orientations, greedy heuristics select the camera that would capture the most a priori data points. A point is considered part of coverage once it has been predicted by 3 or more possible cameras. In terms of overlap, normally a nadir grid would need ≈70% image overlap for SfM; however, while this non-nadir coverage does not follow traditional overlapping metrics, the overlap is sufficient to create detailed reconstructions. This desired coverage is a user input.
With all the inputs from the user, the terrain information needed for view planning is prepared. Elevation data is obtained from the NED (National Elevation Dataset [
41] as mentioned in Wang et al. [
42]) for the area of interest using Matlab’s mapping toolbox [
43]. If a previous point cloud is available for more detailed planning, it is used in conjunction with the NED. A triangle mesh of the terrain is then generated using the Delaunay triangulation method, included in the Python SciPy package [
44]. Normals for each of the triangles are generated and stored for later use.
Next, potential camera position and orientations are generated. These are generated by placing a camera on each of the surface triangles’ normals at the user-specified distance from the surface. The cameras are oriented to look back down the normal, directly facing the surface triangle from which they are generated. The potential camera locations are then checked to ensure that they are not underground or within the user-specified safety distance from the surface. Cameras at invalid locations are removed from the camera set.
Once the cameras are generated, an optimal camera set is selected. To do this, a graph of the cameras and which points they can see is generated. In addition to determining which cameras can see which points, the cameras are sorted by viewing angles as shown in
Figure 3. If the angle is more oblique than 45°, the camera is marked as not viewing the point. This sorting of the buckets is the major difference between view planning for SfM and the more traditional view planning for coverage in surveillance applications. As stated previously, greedy heuristics are then used to select a subset of cameras that cover the user-specified region for each of the multiple viewing angle groups. Each potential camera is selected from a histogram of possible position and orientation. As the selection is greedy, the potential viewpoint that sees the most a priori points is chosen first. Remembering the a priori points which have been seen by the first camera, the viewpoint seeing the next greatest number of a priori points (to achieve desired point coverage for viewing angle groups) is chosen, and so on, until the desired point coverage is achieved by the set of viewpoints selected.
A minimum flight path is optimized for the selected set of camera position and orientations. This is done using the Christofides algorithm with a guaranteed solution within 1.5 times the global optimal value [
45]. Due to the guaranteed quality of the solution, the TSP as presented in Christofides [
45] is used, but recent research such as Genova and P. Williamson [
46] and Bozejko et al. [
47] expound possible improvements solving the TSP. If the camera set is large, the cameras are clustered by location and the Christofides algorithm is applied to each of the clusters. This has a minimal effect on the overall performance because battery limitations mean that UAVs are unable to collect the entire set of photos in a single flight. By pre-batching the photo groups, the path-planning computation time is greatly reduced without appreciably increasing flight time.
Finally, once everything is completed, an ordered list is created of the optimized camera position and orientations for the flight. These outputs are formatted to work with both in-house developed mobile flight applications as well as commercially available software.
The method described is used for the initial flight planning; however, for the multi-scale flight planning, several modifications are needed. First, as the elevation data used for the multi-scale flight is the previously built coarse SfM model, the previous flight is a safety precaution in the case that the flight occurs in a disaster zone with unknown obstacles; the multi-scale flight requires this information to fly the UAV closer, in a manner safe to people and equipment, that obtains higher resolution at points of interest. This SfM model is imported into the optimizer instead of data from the NED. For the multi-scale method, the camera selection optimization methods are performed serially for each of the priority levels, starting with the highest priority level. For each subsequent priority level, the portions seen by previously chosen camera sets are marked as seen. This prevents repeat information from being acquired in the coverage optimization for lower priority regions. Finally, once an optimal camera set is selected for each of the priority levels, the flight path is optimized to collect all the photos with the minimum distance traveled using the Christofides method [
45].
2.3. Site Selection
The test site used for field validation in this study is Tibble Fork Dam, located in Utah, USA. Tibble Fork Dam is an earthen dam in the Wasatch Mountain Range approximately 260 m in crest length with a maximum stream to crest height of 25 m. The dam underwent a rehabilitation project during 2016–2017 to bring it into compliance with updated dam safety standards [
49]. An image of the dam post-rehabilitation is shown in
Figure 4.
The dam was selected as the practical validation site for this work because of its need for regular, comprehensive inspection. A typical inspection routine for an earthen dam such as Tibble Fork Dam includes careful visual inspection of structural health and identification of hazardous anomalies such as seepage exits, excessive surface weathering and erosion, deterioration of structural features, and vandalism. Current practice for inspection of earthen dams involves operations and maintenance personnel walking up and down the groins of the dam (the contacts between the embankment and the abutments), alongside the spillway structure, around the control house and spillway intake, and around other appurtenant features such as toe drain outlets or downstream weir structures. Other regions, such as the central embankment, are generally viewed from a distance, with less rigorous examination. According to these inspection tasks, high- and medium-priority features are selected for the multi-scale targeted view-planning method.
Figure 5 shows the location of priority points on the dam. A 7 m radius buffer is applied around priority points to form priority regions. All regions on the dam not assigned a high or medium priority level are designated as low priority for inspection planning. Flight proximities of 15, 30, and 60 m are chosen for the high, medium, and low priority levels, respectively.
2.5. SfM Model Processing and Analysis
The SfM model processing is performed using Agisoft PhotoScan Professional [
50]. Processing of the SfM model consists of Agisoft’s standard workflow: alignment of photos to create a sparse cloud, manual identification of GCPs and CPs in images, optimization of camera alignment, generation of a dense point cloud and generation of a 3D textured mesh. Default PhotoScan values are used for processing with a couple of the key settings listed in
Table 2. PhotoScan is selected as the primary modeling program based on performance, ubiquity in the literature [
51,
52,
53] and processing reports. Eventually, the density of the point clouds, the error in location of the GCPs and CPs, and comparisons of time and photos required demonstrates the merit of multi-scale models and methods. Visual comparisons are also made using Bentley ContextCapture [
54] because of meshing ability and ease of model navigation [
55].
The processed multi-scale SfM model is comparatively analyzed by priority region for accuracy, resolution, visual clarity, and reconstruction quality. GCP and CP error residuals in the SfM model are analyzed using JMP
® [
56]. Resolution mapping is performed in CloudCompare [
57] (which is open source) and visual clarity and reconstruction quality are assessed via Acute 3D Viewer [
54].