## 4 Description of the Proposed 3D Underwater Shape Reconstruction System
### 3D Underwater Shape Reconstruction Algorithm  
The proposed 3D reconstruction algorithm depends on the configuration of the stereo cameras and the laser belt device. In Figure 5a, we illustrate the difference between the use of air-calibration parameters or underwater-calibration ones. In the first case, light refraction effects are considered in the algorithm of ray tracing which consists on following the trajectory of a light when crossing different environment (of different refraction indexes). In the second case, light refraction effects such as those due to water properties (liquid type, refraction index, temperature, pressure...), and those due to environment variability (air/waterproof tank/water) are taken into consideration in the estimated polynomial function '\(f_{w}\)'. In fact, the stereo system calibration is performed in the environment of test with all actual conditions. This equivalence was proved, experimentally, by applying both cases on the same pairs of images by using underwater-calibration and using air-calibration with ray tracing relations. The system of vision was calibrated using underwater images of the checkerboard pattern test (Figure 2). The relationship is established between 3D points and the 2D corresponding ones extracted from acquired images. The obtained system of parameters corresponds to a polynomial function noted \"\(f_{w}\)\" (case of underwater calibration). This relationship (Equation (4)) permits to correspond to each pixel point \(p(x,y)\) a 3D vector r (\(X_{r}\), \(Y_{r}\), \(Z_{r}\)). In case of stereo system (Figure 5b), each laser is represented by a projection on image1 and on image2. For each pixel point respectively (\(p_{1}\) and \(p_{2}\)), a ray vector is determined using the corresponding sensor parameters respectively (\(f_{1}\) and \(f_{2}\)). In case of using the laser position information \"\(\mathrm{Z_{laser}}\)\", we determinate the distance \"\(\mathrm{D_{e}}\)\" between the real point \"\(\mathrm{P_{e}}\)\" and the system optical axis using refraction angle \"\(\mathrm{\theta}\)\" corresponding to each projection as expressed in (Equation (5)). This later is determined using the ray vector coordinates. The resulting 3D coordinates of the real point are given by (Equation (6)). In case of using only the stereo information, the coordinates of the real point \"\(\mathrm{P_{e}}\)\" is determined using the intersection of the stereo ray vectors \"\(\mathrm{I^{+}}\)\" and \"\(\mathrm{r^{2}}\)\" using the relations of (Equation (7)). In our work, we exploit the redundancy between the passive stereo restitution (camera1+camera2) and the active monocular restitution (camera+lasers) to refine the result of reconstruction. In fact, 3D coordinates of the world point \"\(\mathrm{P}\)e\" are determined using three following approximations:  
(1) Intersecting the ray vector \"\(\mathrm{I^{+}}\)\"corresponding to the laser projection on image plane (\(\prod^{1}\)) to the laser beam position (\(\mathrm{Z_{laser}}\)1) with respect to camera1  
(2) Intersecting the ray vector \"\(\mathrm{r^{2}}\)\"corresponding to the laser projection on image plane (\(\prod^{2}\)) to the laser beam position (\(\mathrm{Z_{laser}}\)2) with respect to camera2  
Figure 5: 2D/3D underwater geometric restitution: (**a**) Illustration of air and underwater reconstruction; (**b**) illustration of underwater stereo reconstruction. (3) Intersecting the ray vector \"r1\"corresponding to the laser projection on image plane (\(\prod^{1}\)) to the ray vector \"r2\"corresponding to the laser projection on image plane (\(\prod^{2}\)). \[p\left[ \begin{array}{c}u\\ v\end{array} \right]\leftrightarrow\tau\left[ \begin{array}{c}X_{r}=u-u_{0} \\ Y_{r}=v-v_{0}\\ Z_{r}=f(\rho)\end{array} \right]\,,\;\rho=\sqrt{X_{r}^{2}+Y_{r}^{2}} \tag{4}\]  
\[D_{e}=\left(\frac{Z_{\text{laser}}}{\tan(\theta)}\right),\;\theta=\arctan \left(\frac{Z_{r}}{\sqrt{X_{r}^{2}+Y_{r}^{2}}}\right) \tag{5}\]  
\[P_{e}\left[ \begin{array}{c}X_{e}\\ Y_{e}\\ Z_{e}\end{array} \right]=\left[