Project to Adapt: Domain Adaptation for Depth Completion from Noisy and Sparse Sensor Data

Depth completion aims to predict a dense depth map from a sparse depth input. The acquisition of dense ground truth annotations for depth completion settings can be difficult and, at the same time, a significant domain gap between real LiDAR measurements and synthetic data has prevented from successful training of models in virtual settings. We propose a domain adaptation approach for sparse-to-dense depth completion that is trained from synthetic data, without annotations in the real domain or additional sensors. Our approach simulates the real sensor noise in an RGB+LiDAR set-up, and consists of three modules: simulating the real LiDAR input in the synthetic domain via projections, filtering the real noisy LiDAR for supervision and adapting the synthetic RGB image using a CycleGAN approach. We extensively evaluate these modules against the state-of-the-art in the KITTI depth completion benchmark, showing significant improvements.


Introduction
Motivation. Active sensors such as LiDAR determine the distance of objects within a specified range via a sparse sampling of the environment whose density decreases quadratically with the distance. RGB cameras densely capture their field of view, however, monocular depth estimation from RGB is an ill-posed problem that can be solved only up to a geometric scale. The combination of RGB and depth modalities form a rich source for mutual improvements where each sensor can benefit from the advantage of the other.
Many pipelines have been proposed for a fusion of these two inputs [2][3][4][5][6][7]. Ground truth annotations for this task, however, require elaborate techniques, manual adjustments and are subject to hardware noise or costly and timeconsuming labeling. The most prominent publicly available data for this task [8] creates a ground truth by aligning consecutive raw LiDAR scans that are cleaned from measurement errors, occlusions, and motion artifacts in a post-processing step involving classical stereo reconstruction. Even after the use of this additional data and tedious processing, the signal is not noise-free as discussed in [8]. To avoid such annotations, some methods perform self-supervision [5,6,9], where arXiv:2008.01034v2 [cs.CV] 5 Aug 2020 (a) Overview of the approach (b) Multicamera set-up in CARLA Fig. 1: We investigate the depth completion problem without ground truth annotations in the real domain, which contains paired noisy and sparse depth measurements and RGB images. We highlight some noise present in the real data: see-through on the tree trunk and bicycle, self-occlusion on the bicycle and missing points on the van. In our approach, we leverage synthetic data with multicamera dense depth and RGB images. An overview of the multicamera set-up in CARLA used to simulate the real projection LiDAR artifacts is included. The Depth Camera acts as a virtual LiDAR and collects a dense depth, which is sparsified using real LiDAR binary masks and projected to either the Left Camera or Right Camera reference frame. Both the Left Camera and the Right Camera collect RGB information, used as part of the input data, and a dense depth map, used for supervision a photometric loss is employed with stereo or video data. The dependence on additional data such as stereo or temporal sequences brings other problems such as line-of-sight issues and motion artifacts from incoherently moving objects. Modern 3D engines are capable of rendering highly realistic virtual environments [10][11][12] with perfect ground truth. However, a significant domain gap between real and virtual scenes prevents from successful training on synthetic data only. Contributions and Outline. In contrast to the self-supervised methods [5,6,9], we propose to use a domain adaptation approach to address the depth completion problem without real data ground truth as shown in Figure 1. We train our method from the synthetic data generated with the driving simulator CARLA [12] and evaluate it on the real KITTI depth completion benchmark [8]. The real LiDAR data is noisy with the main source of noise being the see-through artifacts that occur after projecting the LiDAR's point cloud to the RGB cameras. We propose an approach to simulate the see-through artifacts by generating data in CARLA multicamera set-up, employing random masks from the real LiDAR to sparsify the virtual LiDAR sensor, and projecting from the virtual LiDAR to the RGB reference frame. We further improve the model by filtering the noisy input in the real domain, thus obtaining a set of reliable points that are used as supervision. Finally, to reduce the domain gap between the RGB images, we use a CycleGAN [1] to transfer the image style from the real domain to the synthetic one. We compare our approach to other state-of-the-art depth completion methods and provide a detailed analysis of the proposed components. The proposed domain adaptation for RGB-guided sparse-to-dense depth completion is a novel approach for the task of depth completion, which leads to significant improvements as demonstrated by the results. To this end, our main contributions are: 1. A novel domain adaptation method for depth completion that includes geometric and data-driven sensor mimicking, noise filtering and image style adaptation. We demonstrate that adapting the synthetic sparse depth is crucial for improving the performance, whereas RGB adaptation is secondary. 2. The improved state-of-the-art results for the KITTI depth completion benchmark, amongst ground truth free methods, by 6.4% RMSE and 6.3% MAE, and by 9.2% RMSE and 10.4% MAE when combining our pipeline with video self-supervision.

Related Work
We first review related works on depth estimation using either RGB or LiDAR, and then discuss depth completion methods using Convolutional Neural Networks.

Unimodal Approaches
RGB Images. RGB based depth estimation has a long history [13][14][15] reaching from temporal Structure from Motion (SfM) [16,17] and SLAM [18][19][20] to recent approaches that estimate depth from a static image [21][22][23][24]. Networks are either trained with full supervision [21,25] or use additional cameras to exploit photometric consistency during training [22,26]. Some monocular depth estimators leverage a pre-computation stage with an SfM pipeline to provide supervision for both camera pose and depth [27,28] or incorporate hints from stereo algorthms [29]. These approaches are in general tailored for a specific use case and suffer from domain shift errors, which has been addressed with stereo proxies [23] or various publicly available pre-training sources [24]. The estimated depth often suffers from over-smoothing [30] with wrongly inferred "flying pixels" in the free space close to depth discontinuities. Sparse Depth. While recent advantages in depth super-resolution [31,32] show good performance, they are not directly applicable to LiDAR data which is sparsely and irregularly distributed within the image. Similar to super-resolution, a rectangular grid for the sampling was assumed in [33]. The sampling grid of the sparse depth signal is crucial for the depth completion task [8], which can be provided as a mask to the network, thus helping to densify the input. While classical image processing techniques are used in in [34], an encoder-decoder architecture is applied for this task in [35]. Other approaches [36,37] design more efficient architectures to improve the runtime performance.

Depth Completion from RGB and LiDAR
Most recent solutions to depth completion leverage deep neural networks. These can be divided into (a) supervised and (b) self-supervised approaches. Supervision and Ground Truth. Usually, an encoder-decoder network is used to encode the different input signals into a common latent space where feature fusion is possible and a decoder reconstructs an output depth map [2-4, 7, 38]. Different additional random sampling strategies can increase the density of the input signal [2] while fusing 2D and 3D representations [39] can improve depth boundaries. The noise problem has been targeted with local and global information in [3]. Other methods [4,7] leverage different input modalities such as surface normals to increase the amount of diversity in the input data. The publicly available dataset KITTI [8,40] includes real driving scenes where a stereo RGB camera system is fixed on the roof of a car along with a LiDAR scanner that acquires data while the car is driving. A post-processing stage fuses several LiDAR scans and filters outliers with the help of stereo vision to provide labeled ground truth. While this process is intricate and time-consuming, further error is accumulated from calibration and alignment [8].
Self-Supervised Approaches. Another view either from a second camera or a video sequence can be used for self-supervision. Temporal information and mutually predicted poses between RGB frames were used in [5] for self-supervision with a photometric loss on the reprojected image. A probabilistic formulation was proposed in [6] with a conditional prior within a MAP estimation, which also leverages stereo information. A non-learning method was used in [9] to form a spatially dense but coarse depth approximation from the sparse points, where the coarse approximation was then refined using another network. A photometric loss was also used in [9], where a separate network predicted the poses between RGB frames obtained from a video sequence. Synthetic Data. For monocular depth estimation, two domain adaptation approaches used style-transfer methods [41,42]. Sparse-to-dense methods, however, have used synthetic data without any adaptation [4,6,43] so far. Training on synthetic data requires a high rendering quality [44]. To this end, synthesizing driving scenarios has also been researched: SYNTHIA [10] provides synthetic urban images together with semantic annotations, while Virtual KITTI [11] and its point cloud variant [45] constitutes a dataset with synthetic renderings and point clouds that closely match the videos of the KITTI dataset [40] including pixel-perfect semantic ground truth and depth labels. The CARLA simulator [12] was introduced allowing for photo-realistic simulations of driving scenarios, which we utilize to generate realistic RGB images. A LiDAR simulator using ray-casting and a learning process to drop points was proposed in [46], which was tested in detection and segmentation tasks, but is not publicly available. While LiDAR scans can also be simulated with CARLA via ray-casting, the car shapes are approximated with cuboids losing much detail. We leverage the simulator z-buffer to estimate fine-granular depth and then sparsify the signal to simulate LiDAR scans, thus closely matching the real domain. The main components of our method. We use a simulator with a multicamera set-up and real LiDAR binary masks to transform the synthetic dense depth map into a noisy and sparse depth map. We train in a two-step manner: the green blocks are used in the 1st and the 2nd step of training while the blue blocks in the 2nd step only. In the filtering block, green points are the reliable points S p and red points are dropped. The Image Translation network is pretrained using a CycleGAN approach [1] 3 Method Our method, shown in Figure 2, consists of two main components that include an adaptation of the synthetic data to make it similar to the real data, as well as a retrieval of reliable supervision from the real but noisy LiDAR signal.

Data Generation via Projections
Supervised depth completion methods strongly rely on the sparse depth input, achieving good performance without RGB information [3,5]. To train a completion model from synthetic data that works well in the real domain we need to generate a synthetic sparse input that reflects the real domain distribution. Instead of simulating a LiDAR via ray-casting, which is computationally expensive and hard to implement [47], we leverage the z-buffer of our synthetic rendering engine to provide a dense depth ground truth at first. Previous approaches used synthetic sparse data to evaluate a model in indoor scenes or synthetic outdoor scenes [6,35,48]. To sparsify the data a Bernoulli distribution per pixel is used in some works [2,35,48] which, given a probability p B and a dense depth image x D , samples each of the pixels x D,k by either keeping the value x D,k with probability p B or setting its value to 0 with probability (1 − p B ), thus generating the sparse depth x s B D . We argue that using x s B D does not simulate well a real LiDAR input, thus a model trained with x s B D does not perform well in the real domain. Our results in Section 4 support this observation. There are two reasons for the drop of performance in the real LiDAR data. Firstly, the distribution of the points x s B D does not follow the LiDAR sparse distribution. Secondly, there is no noise in the sampled points, as we directly sample from the ground truth. We now propose an approach to address these two issues. from the real domain similarly to [43]. We use x s R,D to generate a binary mask We then apply the masks to the dense synthetic depth data by This approach adapts the synthetic data directly to the sparsity level in the real domain without the need to tune it depending on the LiDAR used. Generating Projection Artifacts. Previous works use noise-free sparse data to pre-train [4] or evaluate a model [35] with synthetic data. However, simulating the noise of real sparse data can reduce the domain gap and improve the adaptation result. Real LiDAR depth contains noise from several sources including the asynchronous acquisition due to the rotation of lasers, dropping of points due to low surface reflectance and projection errors. Simulating a LiDAR sampling process by modelling all of these noise sources can be costly and technically difficult as a physics-based rendering engine with additional material properties is necessary to simulate the photon reflections individually. We propose a more pragmatic solution and use the z-buffer of a simulator by assuming that the dominating noise is a consequence of the point cloud projection to the RGB camera reference frame. For such a simulation, the error becomes twofold. Firstly, the 3D points are not exactly projected on the pixel center which produces a minor quantization error. Secondly, as we are projecting a sparse point cloud arising from another viewpoint, we do not have a way to filter the overlapping points by depth. This creates the see-through patterns that do not respect occlusions as shown in Figure 3 which is also observed in the real domain [49]. Therefore, a simple point drawing from a depth map at the RGB reference cannot recreate this effect and such method does not perform well in the real domain.
To recreate this pattern, we use the CARLA simulator [12], which allows us to capture multicamera synchronized synthetic data. Our CARLA set-up mimics the camera distances in KITTI [40], as our benchmark is the KITTI depth completion dataset [8]. Instead of a LiDAR, we use a virtual depth camera.
The set-up is illustrated in Figure 1. As the data is synthetic, the intrinsic and extrinsic parameters needed for the projections are known. After obtaining the depth from the virtual LiDAR camera, we sparsify it using the LiDAR masks resulting in x s M D , which is then projected onto the RGB reference with where K L , K RGB are the LiDAR and RGB camera intrinsics and P L RGB is the rigid transformation between the LiDAR and RGB reference frame. The resulting x s P D is the projected sparse input to either left or right camera.

RGB Adaptation
Similarly to domain adaptation for depth estimation methods [41,42,50], we address the domain gap in the RGB modality with style translation from synthetic to real images. Due to the added computational complexity of adapting highresolution images, we first train a model to translate from synthetic to real using a CycleGAN [1] approach. The generator is not further trained and is used to translate the synthetic images to the style of real images, thus reducing the domain gap as shown in Figure 3.

Filtering Projection Artifacts for Supervision
In a depth completion setting, the sparse depth input can be used as supervision data, similarly to [5]. However, the approach from [5] did not take into account the noise present in the data. The given LiDAR input is precise in most points with an error of only a few centimeters. However, due to the noise present, some points cannot be used for supervision, such as the see-through points, which have errors in the order of meters. Another method [49] also used the sparse input as guidance for LiDAR-stereo fusion while filtering the noisy points using stereo information. We propose to filter the noisy input without using additional sensor data such as a stereo pair as this may not always be available.
Our goal is to find a set of reliable sparse points S p , likely to be correct, for supervision based on the assumption used in Section 3.1, i.e., the main source of error are the see-through points after projection. We assume that in any given local window there are two modes of depth distribution, approximated by a closer and a further plane. We show an overview of the idea in Figure 2. The points from the closer plane are more likely to be correct as part of the occluding objects. To retrieve S p we apply a minimum pooling with window size w p yielding a minimum depth value d m per window. Then, we include in S p the points s ∈ [d m , d m + θ] where θ is a local thickness parameter of an object. The number of noisy points not filtered out depends on the window w p and object thickness θ, e.g. larger windows remove more points but the remaining points are more reliable. We use the noise rate η, which is the fraction of noisy points as introduced in noisy labels literature [51][52][53], to select w p and θ in the synthetic validation set, thus not requiring any ground truth in the real domain.
After the filtering step, a certain number of false positives remains. The noisy points in S p are more likely to be further away from the dense depth predictionŷ, hence BerHu will give more weight to those outliers. To provide extra robustness against these false positives we use in the real domain a Mean Absolute Error (MAE) loss instead of the Reverse Huber (BerHu) loss used in the synthetic domain, as MAE weights all values equally, showing more robustness to the noise.

Summary of Losses
Our proposed loss is where L S is the loss used for the synthetic data, L R the loss used for the real data and λ S and λ R are hyperparameters. We use a two-step training approach similar to past domain adaptation works using pseudo-labels [54,55], aiming first for good performance in the synthetic data before introducing noise in the labels. First, we set λ S = 1.0 and λ R = 0.0, to train only from the synthetic data. For L S we use a Reverse Huber loss, which works well for depth estimation problems [21]. Hence, we define L S as where b S is the synthetic batch size, n i the number of ground truth points in image i,ŷ is the predicted dense depth, y is the ground truth depth and L bh is the Reverse Huber loss [56].
In the second step we set λ S = 1.0 and λ R = 1.0 as we introduce real domain data into the training process using S p for supervision. We define L R as where b R is the real domain batch size and #(S p,i ) is the cardinality of the set of reliable points S p for an image i.

Experiments
We use PyTorch 1.3.1 [57] and an NVIDIA 1080 Ti GPU as well as the official implementation of FusionNet [3] as our sparse-to-dense architecture. The batch size is set to 4 and we use Adam [58] with a learning rate of 0.001. For the synthetic data, we train using x s P D by randomly projecting to the left or right camera with the same probability. In the first step of training, we use only synthetic data (i.e., λ S = 1.0, λ R = 0.0, b S = 4 and b R = 0) until performance plateaus in the synthetic validation set. In the second step, we mix real and synthetic images setting λ S = 1.0, λ R = 1.0, b S = 2, b R = 2, w p = 16 pixels and θ = 0.5 m, and train for 40,000 iterations. To test our approach, data from a real LiDAR+RGB set-up is needed as we address the artifacts arising from projecting the LiDAR to the RGB camera. There are no standard real LiDAR+RGB indoor depth completion datasets available. In NYUv2 [59] the dense ground-truth is synthetically sparsified using Bernoulli sampling, while VOID [9] provides sparse depth from visual inertial odometry that contains no projection artifacts. Thus, the KITTI depth completion benchmark [8] is our real domain dataset, as it provides paired real noisy LiDAR depth with RGB images, along with denser depth ground truth for testing. We evaluate our method in the selected validation set and test set, each containing 1,000 images. Following [3], we train using images of 1216x256 by cropping their top part. We evaluate on the full resolution images of 1216x356. The metrics used are Root Mean Squared Error (RMSE) and Mean Absolute Error (MAE), reported in mm, and inverse RMSE (iRMSE) and inverse MAE (iMAE), in 1/km. Synthetic Data. We employ CARLA 0.84 [12] to generate synthetic data using the camera set-up in Figure 1. We collect images from 154 episodes resulting in 18,022 multicamera images for training and 3,800 for validation. An episode is defined as an expert agent placed at random in the map and driving around while collecting left and right depth+RGB images, as well as the virtual LiDAR depth. We use for the virtual LiDAR camera a regular dense depth camera instead of the provided LiDAR sensor in CARLA because the objects in the LiDAR view are simplified (e.g., CARLA approximates the cars using cuboids). The resolution of the images is 1392x1392 with a Field Of View of 90 • . To match the view and image resolution in KITTI, we first crop the center 1216x356 of the image and then the upper part of 1216x256. To adapt the synthetic RGB images, we train the original implementation of CycleGAN [1] for 180,000 iterations.

Ablation Study
We include an ablation study in Table 1 using the validation set. For the result of the whole pipeline, we average the results of three different runs to account for training variability. All of the proposed modules provide an increase in accuracy.
CARLA Adaptation. Table 1 shows that reprojecting the sparse depth is as important as matching the LiDAR sampling pattern, decreasing the RMSE by 32.4% when used jointly, i.e training with x s P D instead of x s B D . Table 1 also shows that training with the reprojected x s B D results in worse performance compared to training with x s B D , showing that it is the combination of using a LiDAR distribution of points and projection to another camera which reduces the domain gap. Even though CycleGAN mostly adapts the brightness, contrast and colors of the images as shown in Figure 3, using CycleGAN adaptation to the style of the real domain further reduces the RMSE by 6.6% when training with x s P D examples. Figure 4 includes some predictions when training using x s B D , x s M D and x s P D for examples with projection artifacts, showing that training using x s P D in the synthetic images is crucial to deal with the noisy input in the real domain. Introducing Real Domain Data. Introducing the reliable points S p as supervision in the real domain alongside the MAE loss function increases the performance as Table 1 shows. If we use BerHu along with S p supervision, the method deteriorates as the noisy points are likely to dominate the loss even if the noise rate η in S p is low. Using MAE without filtering also drops the performance, in this case due to the high noise rate η. These results show that using the noisy LiDAR points for supervision as in [5,9] is detrimental to the depth completion performance. To understand the noise level in the data, we define a point to be noisy if it is at least 0.3 meters away from the ground truth. Using this metric, the noise rate η for the points with available ground truth is 5.8%, with our filtering method decreasing η to 1.7% while dropping 45.8% of input points. The results suggest that the value of η in S p is more important than the total amount of points used for supervision. Our method shows a clear improvement compared to both synthetic baselines (Syn. Baseline) defined in Table 1. Impact of RGB Modality. Contrary to self-supervised methods, which use RGB information to compute a photometric loss, we do not require the RGB image for good performance as shown in Table 2. Including RGB information reduces the error by 0.7% in RMSE, and by using the CycleGAN RGB images the RMSE is reduced by 2.1%. In a fully supervised manner the difference is 16.3% for FusionNet [3], showing that methods aiming to further reduce the RGB domain gap may increase the overall performance. Due to computational constraints, we train the CycleGAN model in a separate step. To test an end-to-end approach, we use the method in [42], which does not use cycle-consistency, however we obtained lower-quality translated images and reduced accuracy as shown in Table 2.

Method Evaluation
Comparison to State-of-the-Art. In Table 3 we compare our method, Ours, with the real domain GT-free state-of-the-art. In the test set 4 our method decreases the RMSE by 6.4%, the MAE by 6.3% and obtains better results for iRMSE and iMAE compared to VOICED [9]. Note that these improvements upon previous methods are obtained by using an architecture with fewer parameters. Table 1 and Table 3 show that we achieve similar results to [9] by training only with synthetic data, i.e., in the first training step, which validates the observation that the main source of error to simulate are the see-through points. DDP [28] uses synthetic ground truth from Virtual KITTI [11] for training, however no  adaptation is performed on the synthetic data, resulting in worse results compared to our method even when using stereo pairs (DDP+Stereo). Both VOICED [9] and SS-S2D [5] use, besides video self-supervision, the noisy sparse input as supervision with no filtering, reducing the achievable performance as shown in Table 1 in No Filter. Non-learning methods in Table 3 perform worse than [5,6,9]. Domain Adaptation Baselines. Following synthetic-to-real depth estimation methods [41,42], we use as a domain adaptation baseline a CycleGAN [1] to adapt the images. To sparsify the synthetic depth, we use the real LiDAR masks [43], shown in Table 1 to perform better than Bernoulli sampling. The performance of this domain adaptation baseline is presented in Table 3 in DA Base. We explore the use of adversarial approaches to match synthetic and real distributions on top of the DA Base. DA Base + Disc. Out. in Table 3 uses an output discriminator using the architecture in [62], with an adversarial loss weight of 0.001 similarly to [63]. Following [42], we also tested a feature discriminator in the model bottleneck in DA Base + Disc. Feat. with weight 0.01. Table 3 shows that the use of discriminators has a small performance impact and that standard domain adaptation pipelines are not capable of bridging the domain gap. Semi-Supervised Learning. In some settings, a subset of the real data may be annotated. Our full pipeline mimics the noise in the real sparse depth and takes advantage of the unannotated data by using the filtered sparse depth S p for supervision. This provides a good initialization for further finetuning with any available annotations as Table 4 shows. Compared to pretraining using the DA Baseline, our method achieves in all cases a better performance after finetuning.  Hyper-Parameter Selection. We do not tune λ S and λ R as we assume we do not have real-domain annotated data. The projected points x s P D in the synthetic validation set are used to choose w p and θ by employing η in S p as the indicator for the filtering process performance. We define a point to be noisy if the distance to the GT is bigger than 0.3 m, but other values tested yield similar results for the optimal w p and θ. Figure 5 shows the noise percentage depending on w p and θ, where we see that curves for η follow a similar pattern in both the synthetic and real domain. We first select w p and then θ as the gain in performance is lower for θ. The optimal values found are w p = 16 pixels and θ = 0.5 m. Figure 5 also shows the MAE depending on the number of iterations in the second step, where we empirically found that any chosen value yields better performance compared to using only synthetic data. After 40,000 training iterations, we did not see a noticeable improvement. Adding Self-Supervision. When real domain video data is available, our approach can be combined with self-supervised methods [5,9]. Ours+SS-S2D in Table 3 adds the photometric loss λ ph L ph from [5] to our pipeline during the second step of training for the real data, with λ ph = 10 to have similar loss values Fig. 7: Failure cases of our method in KITTI, which cannot correct all types of noise. The left side example shows a set of noisy inputs on the wall. The right side example shows dropping of points due to low-reflectance black surfaces as L S + L R . Ours+SS-S2D further reduces the error in the test set and achieves, compared to VOICED [9], a lower RMSE by 9.2% and a lower MAE by 10.4%. Model Agnosticism. We chose FusionNet [3] as our main architecture, but we test our approach with the 18-layers architecture from [5] to show our method is robust to changes of architecture. Due to memory constraints we use the 18-layers architecture instead of the 34-layers model from [5], which accounts for the different parameter count in Table 3 between Ours w/S2D arch and SS-S2D. We set the batch size to 2, increase the number of iterations in the second step to 90,000 (the last 20,000 iterations use a lower learning rate of 10 −4 ), and freeze the batch normalization statistics in the second step. The result is given in Table 3 in Ours w/S2D arch., which achieves state-of-the-art RMSE and MAE. Qualitative Results in PandaSet [64] are shown in Figure 6 for our full method compared to the DA Baseline (DA Base in Table 3) trained for CARLA and KITTI without further tuning. PandaSet contains a different camera set-up with different physical distances compared to the one used in training, e.g., top row in Figure 6 corresponds to a back camera not present in KITTI. Our method is still capable of better correcting projection artifacts (top row and middle row) and completing the missing data (bottom row) compared to the DA Baseline. Limitations. While we addressed see-through artifacts, other types of noise can be present in the real sparse depth as Figure 7 shows. The left side example shows a set of noisy inputs on the wall that is not corrected. The right side example shows missing points in the prediction due to the lack of data in the black hood surface. The fully supervised model deals properly with these cases, suggesting that approaches focused on other types of noise could further decrease the error.

Conclusions
We proposed a domain adaptation method for sparse depth completion using data-driven masking and projections to imitate real noisy and sparse depth in synthetic data. The main source of noise in a joint RGB + LiDAR set-up was assumed to be the see-through artifacts due to projection from the LiDAR to the RGB reference frame. We also found a set of reliable points in the real data that are used for additional supervision, which helped to reduce the domain gap and to improve the performance of our model. A promising direction is to investigate the use of orthogonal domain adaptation techniques capable of leveraging the RGB inputs even more to correct also other types of error in the LiDAR co-modality.