# A Wide-Area Deep Ocean Floor Mapping System: Design and Sea Tests
## 2 System Overview
### Imaging Algorithms  
Following geometry processing, data filtering, and calibration, the next step is to define a reconstruction grid underneath the array to cover the search area. We adopted range migration approach to construct the 3D image of the ocean floor because of the advantages this approach offers in computing a high-resolution image at a relatively low computation cost, making it well-suited for near real-time operations. Specifically, we implemented two popular imaging algorithms: diffraction stack [22] and Kirchhoff migration, which was first intuited in 1954 by [PERSON] [23] and has been refined significantly since then for 2D and 3D applications in acoustic, seismic, and electromagnetic wave imaging [24; 25; 26]. Both imaging algorithms can be understood using the following example. If a point in our binning grid was located on the boundary of the object we are interested in imaging, as shown in Figure 6, then the outgoing wave from the transmitter reflects at that point and propagates back to one of the receivers. The pressure signal measured at the receiver will then have a maximum at an instant corresponding to the travel time from the transmitter to the voxel and back to the receiver. Integrating pressure measurements from all receivers at corresponding travel times will show a strong reflectivity value if a voxel lies on the object's surface.  
Figure 5: The calibration approach finds optimal sensor positions and sound speed by modeling direct path (orange) and surface bounce path (red) contributions in the matched filtered data (blue).  
Because of our sparse aperture and the high-resolution requirements, the migrated image suffers from significant sidelobes. To address this limitation, we implemented scattering models to filter the reflected signals at each voxel. Our implementation included models for Lambert's scattering [21], Phong diffuse and specular reflections [27], and the more general Ellis and Crowe bistatic scattering model [28], shown in Figure 6. The imaging and scattering algorithms were implemented for computation using MATLAB, which is a software package that can use graphics processing units to accelerate the computation. For instance, computing a high-resolution 3D image of a 0.5 m \(\times\) 0.5 m \(\times\) 0.2 m region on a 501 \(\times\) 501 \(\times\) 201 grid (i.e., \(\sim\)50 million voxels at \(\sim\)1 mm resolution) takes around 1.27 min on a NVIDIA RTX A6000 48 GB GDDR6 unit.  
The last step in our approach corresponds to visualizing the migrated image. We use a box filter to integrate the energy in a small box of voxels into one larger, lower-resolution voxel, which helps reduce the SNR. In addition, we compare the amplitudes of the voxels and set a threshold for \"filled\" or \"empty\"; typically, we have been using 14-18 dB above the minimum energy to be considered material instead of water.  
Altogether, the imaging algorithm can be summarized as follows:  
1. Range migration--fill the volume underneath the array with voxels and estimate bistatic travel times for each voxel, then sum the matched filter amplitudes at that voxel from all the transmit receiver combinations.
2. Scattering filter--use the scattering angle to filter the return strengths in each voxel.
3. Integration--sum a cube of voxels into one larger voxel, essentially taking \(3\times 3\times 3\) or \(15\times 15\times 15\) voxels and combing all the energy in those voxels into one larger, lower-resolution voxel.
4. Thresholding--compare the amplitudes of the voxels and threshold for \"filled\" vs. \"empty\" voxels.