Next Article in Journal
A Rapid Convergent Low Complexity Interference Alignment Algorithm for Wireless Sensor Networks
Previous Article in Journal
V-Alert: Description and Validation of a Vulnerable Road User Alert System in the Framework of a Smart City
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Temporal and Spatial Denoising of Depth Maps

1
Department of Computer Science and Information Engineering, National Taipei University, New Taipei City 23741, Taiwan
2
Department of Biomedical Engineering, Yuanpei University of Medical Technology, Hsinchu 30015, Taiwan
3
Department of Software Engineering and Management, National Kaohsiung Normal University, Kaohsiung 82444, Taiwan
4
Graduate Institute of Electronics Engineering, National Taiwan University, Taipei 10617, Taiwan
*
Author to whom correspondence should be addressed.
Sensors 2015, 15(8), 18506-18525; https://doi.org/10.3390/s150818506
Submission received: 3 May 2015 / Revised: 22 July 2015 / Accepted: 23 July 2015 / Published: 29 July 2015
(This article belongs to the Section Physical Sensors)

Abstract

:
This work presents a procedure for refining depth maps acquired using RGB-D (depth) cameras. With numerous new structured-light RGB-D cameras, acquiring high-resolution depth maps has become easy. However, there are problems such as undesired occlusion, inaccurate depth values, and temporal variation of pixel values when using these cameras. In this paper, a proposed method based on an exemplar-based inpainting method is proposed to remove artefacts in depth maps obtained using RGB-D cameras. Exemplar-based inpainting has been used to repair an object-removed image. The concept underlying this inpainting method is similar to that underlying the procedure for padding the occlusions in the depth data obtained using RGB-D cameras. Therefore, our proposed method enhances and modifies the inpainting method for application in and the refinement of RGB-D depth data image quality. For evaluating the experimental results of the proposed method, our proposed method was tested on the Tsukuba Stereo Dataset, which contains a 3D video with the ground truths of depth maps, occlusion maps, RGB images, the peak signal-to-noise ratio, and the computational time as the evaluation metrics. Moreover, a set of self-recorded RGB-D depth maps and their refined versions are presented to show the effectiveness of the proposed method.

1. Introduction

The availability of low-cost RGB-D (depth) sensors has helped expand numerous research fields such as image processing [1], 3D printing [2], surveillance [3], object tracking [4], and the computer vision of robotics [5]. Previously, many other types of cameras were used to generate depth maps, namely time of flight (TOF), light detection and ranging (LIDAR), and stereo cameras [6], and each had a different principle of operation. However, they were substantially more expensive and occupied a large volume. By contrast, low-cost RGB-D sensors are handheld devices that are easy to set up and affordable. Examples of these low-cost depth sensors are Microsoft’s Kinect and Asus’s Xtion PRO LIVE. These sensors have been widely used in the aforementioned applications because of their high performance [6].
However, the problems associated with these sensors are the presence of noise or outliers and the instability of depth maps in the spatial domain, which reduce the performance of the depth camera in applications. Annoying outliers appearing in depth images contaminate the depth information, and the depth pixel value obtained in the spatial domain is inaccurate.
Solving the noise problem is crucial because noise affects applications such as 3D reconstruction and depth data compression by using an RGB-D camera [7]. Although there have been many studies on the applications of these depth sensors, few have focused on the problems inherent to these sensors [8].
RGB-D sensors such as Microsoft Kinect and Asus Xtion PRO LIVE have many problems with regard to the generated depth images: noise, inaccurate depth pixel values, and temporal vibrations. Errors in the sensors are usually caused by the inadequate calibration of sensors and the inaccurate measurement of disparities [1] between sensors. They are also related to the measurement setup, such as light conditions and image geometry (distance between the objects and the sensors, and the orientation of the objects). In a very bright environment, depth images recorded using RGB-D sensors cannot form the speckle pattern of the projected object because of the low contrast between the infrared (IR) pattern and bright light [9]. In addition to the sensors and environment, the properties of the objects also affect the depth images. A shiny or reflective surface of an object appears overexposed in an infrared image and leads to error disparities.
Many studies have been conducted on the errors appearing in RGB-D depth images. Some studies have used traditional approaches involving denoising algorithms, for example, the bilateral filtering algorithm [10]. A modification of bilateral filtering was proposed in [7], which also proposed divisive normalized bilateral filtering (DNBL) for achieving temporal and spatial filtering. Some studies were conducted to improve the quality of depth images; a stereo matching method that prevents holes was proposed in [11,12]. Studies on temporal filtering were presented in [8,13]. The two approaches presented in [8,13] involve temporal filters with adaptive thresholds that filter out unreasonable depth values and smooth the temporal vibration. In [14], a fusion-based inpainting method was proposed to improve the quality of the depth map. However, these approaches ignore spatial filtering, which leads to undesirable values in depth images. A few approaches combining temporal and spatial filtering have been proposed. In [7], Fu et al. proposed a method to fill the holes in depth images in the spatial domain, and applied a modified bilateral filter to reduce vibrations in the temporal domain. However, the prehole filling of the authors’ assumption and blurry image leads to inaccuracy of depth pixel values. Furthermore, the performance has not been proven because of the lack of quantitative data. In [15], the authors proposed a temporal and spatial denoising filter algorithm to enhance the quality of depth images by using RGB images. The algorithm first determines the median of the pixel values in the temporal domain. It then fills the holes in the depth image by using a median filter and several thresholds. However, this method relies on many thresholds and therefore is not adaptive. Moreover, the use of RGB images for denoising has a drawback; an example is a scene with different depth measurements but with objects of the same color or objects in a dark environment. The method does not provide quantitative information about the depth accuracy of pixel values. It is difficult to distinguish the quality of depth images solely from visual information. In [16], a depth color fusion method was proposed. The method could efficiently reduce distance-dependent depth maps, spatial noise, and temporal random fluctuations. However, the method requires processing both depth and color images, including foreground and background segmentation; thus, it may cost more hardware requests such as parallel implementation with a graphics processing unit architecture or cloud computing.
To remove the depth image noise, obtain accurate depth values, and eliminate depth instability in the temporal domain, a method based on the modification of exemplar-based inpainting, which was originally proposed in [17], is introduced in this paper. In [17], Criminisi et al. proposed a method to fill holes that were removed previously. The method first assigns priorities to pixel locations ready to be filled. Second, according to the priority, the pixel or area is filled by referring to neighboring pixels or a macroblock. The method is used to inpaint the region or object removed an RGB image. In [18], another method based on the modification of exemplar-based inpainting was proposed. However, this method does not provide the optimal combination of parameters and an evaluation of performance, and ignores spatial filtering.
Our study, based on the method in [17], is similar to the concept of filling holes or outliers in depth images. Thus, the proposed method can be used to fill holes, increase the accuracy of depth values, and smooth temporal vibrations for enhancing the quality of depth images generated using RGB-D sensors.

2. Methodology

As mentioned in the previous section, depth maps generated using depth sensors show noise or outliers, inaccurately measured depth distances, and unstable depth values in the temporal domain. To overcome these problems, a method based on exemplar-based inpainting, which was presented in [17], is proposed. The proposed method includes a modified exemplar-based inpainting method and a temporal filter to pad outliers, correct inaccurate pixels, and stabilize the temporal variation in the pixel values in depth maps.
The system architecture is shown in Figure 1. There are five steps in the processing of a noise-containing depth sequence: (1) edge marking; (2) assigning edge priorities; (3) hole padding; (4) updating priority values; and (5) temporal filtering. Steps 1 to 4 are based on a modified version of the exemplar-based inpainting method, with the modification being performed for application to depth map filtering.
Figure 1. System architecture of the proposed method.
Figure 1. System architecture of the proposed method.
Sensors 15 18506 g001

2.1. System Architecture

In Figure 1, an RGB-D sensor generates depth sequences and color sequences, but only the depth sequences are input. In the edge marking step, the system marks the edges around the holes or outliers, and these marked edges are the target pixels chosen to be padded first, as shown in Figure 2a. In Figure 2a, ε denotes the marked edge (red line), ι denotes the target region (hole region), and γ denotes the source region (holeless regions).
Figure 2. (a) Edge marking; (b) search range in the hole-padding process; (c) patch pasting in the hole-padding process.
Figure 2. (a) Edge marking; (b) search range in the hole-padding process; (c) patch pasting in the hole-padding process.
Sensors 15 18506 g002
In the edge priority step, the pixels of the depth map, which are the edges marked in the edge marking step, are assigned priorities according to a certain rule introduced in Section 2.2. As shown in Figure 2a, the priorities are assigned to pixels on the marked edge ε.
In the hole-padding step, holes are padded on the basis of the priorities assigned to the pixels. The padding method involves a comparison of the target patch with a neighboring patch within the search range. The comparison begins with the highest priority pixel located at the center and the search range within [−n, +n] increased in the x and y directions. The similarity between the target patch and the reference patch is then evaluated and the target areas are replaced with the most similar reference patch, as shown in Figure 2b.
In Figure 2b, the red box denotes the target patch, p denotes the center of the patch, and k denotes the search range. Figure 2c shows the white and blue areas in the red macroblock of Figure 2b padded with a reference patch from the blue areas.
After the target areas are replaced with the reference patch, new edges and holes emerge. As shown in Figure 2c, the green edges are the newly created edges that have no priorities. Therefore, in the updating priority values step, the green edges are assigned priorities, and the hole-padding step is then executed repeatedly until all the hole areas (target regions) are padded with valid values. In the last temporal filtering step, pixels are filtered to eliminate temporal variation in the pixel base. Details of each step are provided in the following sections.

2.2. Edge Priorities

The edge marking process is the same as that in [17]. After edge marking, the edge priorities process assigns priorities to all the edges marked in the edge marking process. The priority assignment was modified on the basis of exemplar-based inpainting by using an additional weighting scheme to improve the depth image quality. The priority is computed and assigned for every patch on the boundary, and the priority function is shown in Equation (1).
Given a point p that is the center of patch Γp for some p∈ε (Figure 2b), the priority P(p) is defined as the product of three terms:
P(p) = C(p)D(p)R(p)
where C(p) denotes the confidence term, D(p) represents the data term, and R(p) denotes the right-first term. C(p) and D(p) are the same as those in [17]. R(p) is the weighting term, and it is based on the depth image IR shadow phenomenon. In this study, the setting of R(p) in Equation (2) is based on experiments. Noise typically appears in two parts in a scene: (1) in the body of the object and (2) around the right part of the object’s silhouette. One of these parts should be removed first. In R(p), (2) is processed first. The following functions describe how R(p) works:
R ( p ) = { 2 3 , i f L H ( p ) R H ( p ) 1 3 , o t h e r w i s e
L H ( x , y ) = i = 0 n j = 0 n 2 F ( x + j , y + i )      
R H ( x , y ) = i = 0 n j = n 2 n F ( x + j , y + i )      
F ( x , y ) = { 1 , i f I ( x , y ) = 0 0 , o t h e r w i s e
Equations (2)–(5) are explained from the last to the first as follows: I ( x ,   y ) is the intensity of position ( x ,   y ) , and in Equation (5), I(x,y) = 0 denotes that position ( x ,   y ) is a hole. In Equations (3) and (4), n is half of the length or width of patch Γp (usually the length is equal to the width); F ( x ,   y ) indicates whether position ( x ,   y ) is a hole (0 pixel intensity denotes holes). LH(p) refers to the number of holes on the left side.
Assigning higher weights to the area around the right part of the object’s silhouette influences the padding direction in R(p). In this process, in addition to the previous two weighting terms, C(p) and D(p), R(p) should control the padding flow to pad the area around the object’s silhouette. Because the noise around the object’s silhouette is usually considered as background noise, the background area should be padded instead of the objects. When the noise around the right part of the object’s silhouette is padded, for eliminating the noise in the body of the object, the background area is not considered as the reference; instead, the body area pixels are used as the reference.

2.3. Hole Padding

In this step, the holes on the depth map are filled patch by patch. In the edge priorities step, the edge pixels were assigned priorities. On the basis of these priorities, the edge pixel with a higher priority is chosen to start the hole-padding process. To start the process, pixel p is set to be the center of patch Γp and a search is made for the most similar areas in the source region γ, as shown in Figure 2b.
To search for the most similar areas for padding, the patch computes the sum of squared differences with its neighboring patches. This direct sampling source region approach avoids blurry fill-in, which causes blurring in depth maps [15]. The search process is valid in the source region, and it would not be valid in any similar patch that includes hole pixels. The comparing function is defined as:
Γ g = arg min Γ q γ d ( Γ p , Γ q )
where Γq denotes the patch centered at q. The function compares the target patch Γp with its neighbor Γq, and, depending on the comparison result, either chooses Γp as the candidate patch or discards it. The comparison process starts with a certain range within the search range. The search range begins from the center p and extends to a distance of k/2 pixel toward the top, left, right, and bottom of p. Different search methods provide different advantages in terms of speed or other evaluation metrics. The proposed method adopts a modified three-step search (TSS).
The TSS consists of three steps:
Step 1
An initial step size is chosen. Eight patches at a distance of the step size from the center are chosen for comparisons.
Step 2
The step size is half of the search range in Step 1. The center is moved to the point with the minimum distortion.
Step 3
Steps 1 and 2 are repeated until the step size is smaller than 1.
The process of the modified TSS is similar to that of the TSS, but it exhibits enhanced performance. A larger beginning search range for the modified TSS generates more comparisons. In Figure 3, all the blue points indicate the search points, and the search process starts from these points. The eight blue points around the center are extra search points, and such addition does not occur in the traditional TSS. A larger search range is associated with a larger number of search points. For example, in Figure 3, given a 32 × 32 search range, the beginning search range in the TSS is 16 × 16. The beginning search range in the modified TSS is the same as that in the TSS, and the first step of the modified TSS performs 8 × (k/16) + 1 comparisons. For a search range of 32 × 32, the modified TSS performs 8 × (32/16) + 1 = 17 comparisons, as shown in Figure 3. Steps 2 and 3 of the modified TSS are exactly the same as those of the TSS, with the beginning search range being half and a quarter of those of the TSS for Steps 2 and 3, respectively.
Figure 3. Modified three-step search.
Figure 3. Modified three-step search.
Sensors 15 18506 g003
The modified TSS was devised by adapting the TSS to our method; for example, in the modified method, when comparing patches with the target patch, any patch containing holes is ignored. If all the patches contain holes, then in Step 1, none of them can be a candidate for comparison with the target patch. Instead, the search range would be increased as the patch comparison restarts. If all the patches are ignored in Step 2, the new target point would be the same as that chosen in Step 1, and the patches would be compared in Step 3.
For updating the priority value, the priority computation is similar to that in [17]. R(p) is not recomputed to ensure the padding flows toward the padded areas but not around the background. The updating process proceeds until all the edges are considered and holes padded.

2.4. Temporal Filtering

The temporal filtering process is performed to prevent the temporal vibration of depth values. In a video sequence, as shown in Figure 1, the pixel values vary with the passage of time. In this step, by applying a temporal filter, the variation of pixel values at a given position is smoothed. The proposed temporal filter in design is also considered the spatial components so that the filter can reduce spatial noise again. The following functions provide details of the temporal filter:
I t ( x , y ) = { j = 0 m G S t ( x , y ) · G ( t + j ) · I t j ( x , y ) ω ,   i f   ( I t ( x , y ) I t 1 ( x , y ) ) T h I t ( x , y ) ,   o t h e r w i s e
G S t ( x , y ) = e x 2 + y 2 2 σ s 2
G ( t ) = 1 2 π σ t 2 e ( t 2 2 σ t 2 )
ω = j = 0 m G ( t + j )
where G ( t ) denotes a one-dimensional Gaussian filter, and G S t ( x , y ) denotes a two-dimensional Gaussian filter; in Equation (7), t denotes the current frame index, I t ( x , y ) denotes the current frame pixel intensity,   T h denotes the threshold for the intensity difference between a current frame and a previous frame, and ω denotes the sum of the Gaussian functions; in Equations (8) and (9), σ t and σ s are both the standard deviations.
The function Equation (7) calculates the difference between the current frame and previous frames. To observe whether a pixel value varies in the temporal domain, the threshold is set to a certain value to determine whether the pixel state is moving or static. If the pixel state is moving, the pixel value varies in a large range. Thus, if the range is larger than the threshold, the pixel value would not be replaced by a new value. However, if the pixel between frames is within a small range, it would be interpreted as being in a static state, and the value would be replaced with a value similar to the values of the previous frames. Thus, a new pixel value would be calculated on the basis of Equation (7).

3. Experimental Results

Our proposed method was tested on the following two sets of databases: (1) Tsukuba Stereo Dataset [19] and (2) depth maps of real-world scenes generated using Asus Xtion PRO LIVE, and Milani’s Kinect dataset [20]. Because the first dataset provides the ground truth for evaluating the padding results, its peak signal-to-noise ratio (PSNR), structural similarity (SSIM), and computational time can be calculated for comparison with those of the original unpadded depth maps with occlusion. For the second and third dataset, because the ground truth cannot be acquired for comparison with the original depth maps, only the computational time and padded depth maps can be shown for evaluating the performance of the proposed method. The third dataset is from Milani’s Kinect dataset [20]. Milani used two Kinects to perform the environment, the first Kinect generated the cross-talk noise to the second Kinect, and the second Kinect acquired the noisy depth maps. These noisy depth maps were obtained in different included angles (90°, 54°, 36°, 18°, 0°) of two Kinects in order to vary the level of cross-talk noise. The experimental results were compared with those of [7,21] to demonstrate the superiority of the proposed method.
All the experiments were conducted on an Intel(R) Core(TM) i7-3370 3.4 GHz CPU with 16.0 GB of DDR3 DRAM. The programs were implemented in C++ language. The search range and patch were set to different sizes for performance evaluation.

3.1. Experiments on the Tsukuba Stereo Dataset

The experiments on the Tsukuba Stereo Dataset were divided into two parts. First, ten different images (Figure 4) were chosen from 1800 images, and performance evaluation was performed for different patch sizes and search ranges. Second, comparisons of the experimental results obtained for the ten images were performed for different patch sizes and search ranges in the first step, and the patch size and search range corresponding to the most favorable performance were applied to all 1800 frames.
The image indices were 1, 509, 481, 214, 291, 347, 459, 525, 715 and 991. These ten images were reconstructed for greater similarity with the ground truth, except for the large hole areas to the right of the scene. All the images were computed in a patch size of 3 × 3, and the search range was 104 × 104. All the PSNR improvements are shown in Figure 4.
Figure 4. Ten different images from the Tsukuba Stereo Dataset.
Figure 4. Ten different images from the Tsukuba Stereo Dataset.
Sensors 15 18506 g004aSensors 15 18506 g004b
Table 1 shows the results obtained for the ten images for different patch sizes. The leftmost column shows different frame indices. The next four columns show the performance improvements in the PSNR for images with different patch sizes, and each value is the mean of PSNR improvements obtained with different search ranges (from 8 × 8 to 112 × 112). For each frame, the rightmost column shows the patch size corresponding to the most favorable result. Table 2 that has same experimental conditions as Table 1 shows the mean SSIM values after denosing versus patch size. And further, the most right columns of Table 1 and Table 2 can be respectively illustrated as Figure 5 and Figure 6. Figure 5 shows the curve of average of mean PSNR Improvements versus patch size. Figure 6 shows the curve of average of mean SSIMs after denoising versus patch size.
Table 1. Mean PSNR improvement vs. patch size.
Table 1. Mean PSNR improvement vs. patch size.
Index
Patch Size1509481214291347459525715991Average
3 × 34.0062.4747.2665.2529.3052.6886.2523.73913.8075.6526.044
5 × 54.3721.3327.2735.1189.8602.6705.4792.56815.4615.7875.992
7 × 72.8901.5957.6735.3448.8713.2094.0583.51616.0595.2755.849
9 × 92.8841.4687.3025.1859.6075.3804.5903.42316.1365.7056.168
11 × 112.8690.9257.3945.02410.0585.2625.0103.16113.8077.6016.111
13 × 132.5080.9947.5205.00210.8435.5735.1613.23114.5177.7746.312
15 × 152.8221.1037.7225.08410.7774.4614.7873.47313.8259.8126.387
17 × 172.4990.2287.8465.26210.5015.5594.2493.59018.11810.5436.840
19 × 192.6110.4617.6695.20411.4645.2244.7973.62316.40310.1006.756
21 × 212.7800.9418.3015.2139.9265.9874.8853.21018.39710.2956.994
23 × 233.0330.9847.7014.97210.8185.2774.2503.13316.27211.1216.756
25 × 252.9240.2708.5255.08010.4425.4175.8803.90016.70711.4067.055
27 × 272.4680.4337.1805.03210.6365.0375.9713.72117.39511.2856.916
29 × 292.825−0.4858.6515.10410.1055.7954.6903.41417.63810.0496.779
31 × 313.3340.5367.6245.1309.8645.0135.4672.99617.70510.6976.837
The Best5 × 53 × 329 × 297 × 719 × 1921 × 213 × 325 × 2521 × 2125 × 2525 × 25
Table 2. Mean SSIM after denoising vs. patch size.
Table 2. Mean SSIM after denoising vs. patch size.
Index
Patch Size1509481214291347459525715991Average
3 × 30.9500.9330.9700.9690.9700.9420.9770.9160.9930.9810.960
5 × 50.9480.9320.9690.9680.9700.9390.9750.9080.9950.9800.958
7 × 70.9480.9280.9700.9680.9670.9440.9710.9160.9950.9820.959
9 × 90.9440.9280.9710.9680.9690.9530.9720.9160.9950.9840.960
11 × 110.9440.9260.9710.9650.9700.9560.9720.9110.9940.9870.960
13 × 130.9420.9250.9710.9650.9740.9560.9720.9120.9940.9890.960
15 × 150.9440.9310.9710.9640.9740.9560.9720.9130.9940.9920.961
17 × 170.9400.9250.9720.9650.9720.9560.9690.9130.9960.9920.960
19 × 190.9380.9200.9710.9630.9770.9580.9700.9110.9940.9910.959
21 × 210.9410.9210.9730.9630.9750.9620.9710.9110.9950.9920.960
23 × 230.9420.9220.9710.9620.9740.9590.9680.9110.9940.9930.960
25 × 250.9420.9140.9750.9650.9740.9630.9730.9110.9940.9930.961
27 × 270.9360.9120.9680.9620.9720.9590.9720.9020.9940.9930.957
29 × 290.9410.9110.9740.9640.9720.9640.9710.9070.9950.9910.959
31 × 310.9420.9130.9690.9640.9720.9590.9720.9030.9940.9920.958
The Best3 × 33 × 325 × 253 × 319 × 1929 × 293 × 39 × 917 × 1727 × 2725 × 25
Figure 5. Curve of average of mean PSNR Improvements vs. patch size.
Figure 5. Curve of average of mean PSNR Improvements vs. patch size.
Sensors 15 18506 g005
Figure 6. Curve of average of mean SSIMs after denoising vs. patch size.
Figure 6. Curve of average of mean SSIMs after denoising vs. patch size.
Sensors 15 18506 g006
In Table 3 and Table 4, the mean computational time (in seconds) is listed for different search ranges. All the columns are arranged similarly to those of Table 1. Table 5 shows the results of comparisons between different search ranges. The leftmost column shows the search range (n × n). The next four columns show the mean PSNR improvement of the ten images for different patch sizes. The rightmost column shows the rank of the search ranges and the most favorable one is presented in boldface. Table 6 that has same experimental conditions as Table 5 shows the mean SSIM values after denosing versus search range.
Table 3. Mean computational time vs. small patch size.
Table 3. Mean computational time vs. small patch size.
Patch Size
Search Range3 × 35 × 57 × 79 × 911 × 1113 × 1315 × 1517 × 17
814.8947.2205.3694.4614.2154.2094.2334.367
1615.0347.3055.4264.5454.2744.2104.2084.292
2415.1667.3875.5224.5344.2924.2564.2554.340
3215.3037.4605.4734.5614.3744.3064.3014.387
4015.4257.5375.3674.5684.3974.3604.3524.438
4815.5967.6115.4174.6764.4864.4184.4104.492
5615.7677.6975.5064.6904.5104.4734.4714.553
6415.9377.7515.5964.8004.5694.5344.5264.610
7216.0947.8605.5904.8114.6264.5924.5874.671
8016.2687.9575.6894.9174.6824.6484.6514.733
8816.4317.9025.6534.9394.7444.7084.7114.791
9616.6367.9825.7975.0444.8084.7704.7644.857
10416.8128.0875.8345.0614.8614.8284.8274.914
11216.9708.0395.8535.1224.9224.8874.8904.978
Table 4. Mean computational time vs. bigger patch size.
Table 4. Mean computational time vs. bigger patch size.
Patch Size
Search Range19 × 1921 × 2123 × 2325 × 2527 × 2729 × 2931 × 31
84.4814.5854.7354.9645.1285.3525.468
164.3994.5124.6544.8815.0445.2625.387
244.4074.4694.5664.7044.8675.0785.209
324.4584.5154.6094.7474.8494.9785.025
404.5084.5664.6584.7944.8965.0225.068
484.5664.6224.7164.8544.9505.0765.120
564.6214.6844.7744.9125.0065.1335.174
644.6834.7404.8374.9755.0685.1945.233
724.7434.8004.8975.0405.1375.2605.300
804.7994.8654.9595.1015.1985.3255.364
884.8714.9235.0235.1705.2695.3935.434
964.9314.9925.0925.2335.3335.4635.503
1044.9935.0525.1565.3015.4065.5295.578
1125.0515.1145.2145.3695.4715.6025.643
According to Table 1, Table 2, Table 3, Table 4, Table 5 and Table 6, the patch size of 25 × 25 and the search range of 96 × 96 exhibited the optimal performance. In the experiments, the computational time did not increase with the search range because the number of patch comparisons did not change. Therefore, the 25 × 25 patch size and 96 × 96 search range were tested on the entire Tsukuba Stereo Dataset. The average PSNR improvement for the 1800 frames was 9.764 dB.
Table 5. Mean PSNR improvement vs. search ranges.
Table 5. Mean PSNR improvement vs. search ranges.
Search Range
Patch Size81624324048566472808896104112
3 × 35.0155.5185.7266.0116.3936.0106.0406.3046.3916.3726.1886.3216.2436.084
5 × 55.8195.6825.8965.8796.0835.9725.5865.6666.3236.2326.1736.2046.2336.140
7 × 75.2155.6035.6115.6985.8855.8525.8505.8716.1516.2676.1155.9935.6256.147
9 × 95.6385.5815.6436.0996.0856.2406.5325.9056.2606.6156.5576.5356.2236.436
11 × 115.6326.0165.9476.1265.7815.7415.8245.7266.1236.2246.4126.6846.5646.755
13 × 135.7505.9666.0605.9656.1286.4286.4056.1996.1756.5226.6286.5286.7156.901
15 × 156.0186.1336.1366.2536.4036.3626.3446.3476.2816.9356.5296.5926.7086.372
17 × 176.3966.3966.6916.5656.7156.7656.7806.9187.0027.1147.0437.1427.1287.097
19 × 196.5336.5336.5046.4836.4186.6886.6916.5396.9107.0246.9337.0677.2117.046
21 × 216.3866.3866.4996.7706.7386.6566.9076.8497.1457.6097.5847.5027.4487.430
23 × 236.2646.2646.2226.5436.6726.7216.7456.7496.8356.9216.9817.1277.1937.348
25 × 256.6126.6126.6126.7016.7607.1507.2167.2327.1357.1217.3437.3857.4267.466
27 × 276.7006.7006.7006.5416.7076.6966.8506.9747.1757.1387.0747.1507.1987.219
29 × 296.7956.7956.7956.6836.7946.5696.6736.6846.7156.8186.8397.0206.8676.851
31 × 316.7016.7016.7016.7106.7036.6236.7026.7697.0056.9827.0577.0167.0327.014
Mean6.0986.1926.2496.3356.4186.4326.4766.4496.6426.7936.7646.8186.7886.820
Table 6. Mean SSIM after denoising vs. search ranges.
Table 6. Mean SSIM after denoising vs. search ranges.
Search Range
Patch Size81624324048566472808896104112
3 × 30.9570.9590.9590.9600.9620.9610.9600.9610.9600.9620.9590.9620.9600.960
5 × 50.9580.9570.9580.9580.9580.9570.9580.9590.9600.9590.9580.9590.9590.959
7 × 70.9570.9570.9570.9580.9590.9580.9590.9590.9590.9610.9600.9600.9600.959
9 × 90.9560.9570.9570.9600.9600.9610.9610.9600.9610.9620.9610.9610.9600.961
11 × 110.9550.9580.9590.9600.9590.9590.9590.9590.9600.9610.9610.9610.9610.962
13 × 130.9570.9600.9600.9590.9600.9600.9600.9600.9610.9610.9610.9610.9610.961
15 × 150.9570.9580.9590.9610.9620.9620.9610.9610.9610.9630.9630.9630.9630.963
17 × 170.9570.9570.9580.9590.9600.9610.9610.9620.9610.9620.9600.9600.9620.961
19 × 190.9560.9560.9570.9580.9590.9580.9590.9580.9600.9620.9620.9620.9630.962
21 × 210.9560.9560.9570.9590.9590.9600.9610.9600.9620.9630.9640.9630.9630.963
23 × 230.9560.9560.9560.9580.9590.9590.9590.9600.9600.9620.9620.9620.9620.963
25 × 250.9560.9560.9560.9580.9590.9600.9610.9620.9620.9640.9630.9630.9630.964
27 × 270.9550.9550.9550.9560.9560.9560.9580.9580.9590.9590.9590.9590.9590.959
29 × 290.9570.9570.9570.9570.9580.9590.9590.9590.9590.9600.9610.9610.9610.961
31 × 310.9560.9560.9560.9560.9560.9570.9580.9590.9600.9600.9600.9600.9600.960
Mean0.9570.9580.9590.9590.9600.9600.9600.9600.9600.9610.9610.9610.9610.961

3.2. Experiments on a Real-World Scene

The real-world scene depth maps obtained using an Asus Xtion PRO LIVE depth camera and Milani’s Kinect dataset, the results of applying the proposed method and previously proposed methods are shown in Figure 7. The rows 7 to 12 of Figure 7 show the processed results of Milani’s Kinect dataset.
Figure 7. Real-world database and Milani’s Kinect dataset.
Figure 7. Real-world database and Milani’s Kinect dataset.
Sensors 15 18506 g007
In addition to the experimental results for the spatial domain, the experimental results for the temporal domain are shown in Figure 8 and Figure 9. In Figure 8, there are three columns; the leftmost column shows the RGB images, the middle column shows the depth images, and the rightmost column shows the temporally filtered depth images. The red dot (256,180) in the rightmost column is the observation point selected to examine the variation in 100 frames. The experiment was performed with a search range of 40 and a patch size of 3 × 3. The experimental result is shown in Figure 9; the red square line denotes the original pixel variations and the diamond blue line denotes the filtered pixel variations in 100 frames.
Figure 8. Temporally filtered images.
Figure 8. Temporally filtered images.
Sensors 15 18506 g008
Figure 9. Temporal filtering results for 100 frames.
Figure 9. Temporal filtering results for 100 frames.
Sensors 15 18506 g009

4. Discussion

The proposed method successfully solved the problems of depth holes (outliers), inaccurate depth values, and temporal variations in pixel values. The experimental results demonstrated the high performance of the proposed method not only for the Tsukuba Stereo Database but also for real-world scenes. In the previous section, the experiments showed different results in different patch sizes, search ranges, temporal filtering, and comparisons with competitors.
As shown in Figure 5, Table 3 and Table 4, the application of the bigger patch size (25 × 25) resulted in the highest PSNR. The mean computational time was also less than that for the other small patch sizes; because a smaller patch fills fewer holes in the hole-padding process, it was necessary to apply the patch many times to fill the holes in the entire image. Applying larger patches resulted in shorter computational times (almost half the computational time taken for the patch size of 3 × 3) but higher PSNR values.
Table 5 shows the PSNR performance for different search ranges. In the modified TSS, as the search range increases, the PSNR improves considerably; this is because for larger search ranges, a larger number of reference patches are considered and selected, leading to improved PSNR performance. The application of smaller search ranges deteriorates the PSNR performance. However, Table 3 and Table 4 show that the computational time is shorter for smaller search ranges and larger for larger search ranges.
Table 2 shows the SSIM performance for different patch sizes and Table 6 shows the SSIM performance for different search ranges. In these two tables, the most SSIM values after denoising are greater than 0.95; that means the denoised depth maps are very similar to the ground truth maps in the visual scene.
Figure 4 shows comparisons of the PSNR and computational time between the proposed method and previously proposed methods. For the method proposed in [7], the computational time is considerably long and blurring reduces the PSNR performance. The method proposed in [21] is strongly dependent on RGB images and nonadaptive thresholds; therefore, when the scene changes, the PSNR performance decreases. Moreover, the method requires considerable time for computing the weighting metric for every single pixel. In Figure 7, our proposed method also shows better performance than [7,21] in the visual scene.
The patch size and search range strongly affect the PSNR performance and computational time. Although the computational times for the patch sizes of 9 × 9, 11 × 11, 13 × 13, 15 × 15, 17 × 17, 19 × 19, 21 × 21, 23 × 23, and 25 × 25 are extremely similar, 25 × 25 exhibits enhanced performance compared with others. Even if the computational times for 9 × 9, 11 × 11, 13 × 13, 15 × 15, 17 × 17, 19 × 19, 21 × 21, and 23 × 23 are considerably a little shorter than that for 25 × 25. Nevertheless, from Figure 5 and Figure 6, the patch size 25 × 25 could be realized the best mean PSNR improvements and mean SSIM performance. And the mean PSNR improvement starts to dip before patch size 17 × 17, but mean SSIM performances are similar for any patch size. Therefore, the patch size of 25 × 25 is the most favorable choice for obtaining the optimal balance between the PSNR performance and the computational time. Additionally, the search range of approximately 96 corresponds to a short computational time and high PSNR performance for the image size of 640 × 480 pixels. Summary, the patch size of 25 × 25 and the search range of 96 × 96 performed the optimal performance.
In Figure 9, the temporal filtering result shows constant and smooth variations (blue and diamond lines), unlike the original maps and the maps to which previously proposed methods were applied. The pixel values showing the smooth variation were also close to the original pixel values. In the experiment, the threshold was set to ten. However, in an optimal situation, an adaptive threshold should be used for different scenes to enhance the quality of depth images. Setting an appropriate threshold for different scenes to maintain the variation constant is challenging.
The proposed method showed superior PSNR performance compared with previously proposed methods. However, the computational time remains a problem in real-time applications, and future work should focus on developing methods for simultaneously achieving high performance and a short computational time.

5. Conclusions

This study presented a method for spatial and temporal denoising, removing depth noise, providing accurate depth values, and eliminating temporal variation in depth maps generated using RGB-D cameras.
The proposed method was applied to the well-known Tsukuba Stereo Database and a real-world scene database generated using an Asus Xtion PRO LIVE, and resulted in considerable improvement in the PSNR and SSIM of both datasets. The experimental results showed that in addition to PSNR and SSIM improvements, filtered depth maps of the proposed method were produced. The proposed method is based on the exemplar-based inpainting method proposed in [17], which has not been used for padding depth maps generated using RGB-D cameras. The most critical function of the proposed method is selecting the filling order of pixels around holes. The weighting scheme used is based on the isophote of the depth values forming a linear structure. The experiment results for the Tsukuba Stereo Dataset showed an improvement of 9.764 dB in the PSNR.
Increasing the PSNR and SSIM improvements and reducing the computational time for both the Tsukuba Stereo Dataset and real-time applications to obtain an enhanced quality of depth images are the focus of a study that is currently underway.

Acknowledgments

This research was partly supported by the Ministry of Science and Technology in Taiwan, under grants MOST 103-2218-E-002-007, MOST 103-2218-E-305-001 and MOST 103-2218-E-305-003.

Author Contributions

Bor-Shing Lin conceived the study idea, designed the framework and experiments used in this study, and modified the manuscript. Mei-Ju Su and Po-Hsun Cheng provided technical supports. Po-Jui Tseng implemented the system, analyzed the collected data, and wrote the draft. Sao-Jie Chen provided conceptual advice.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. GrabCut + D. Available online: http://www.impa.br/~faprada/courses/procImagenes (accessed on 7 July 2015).
  2. Kinect Yourself a 3D Printed Mini-Me with Shapify. Available online: http://3dprintingindustry.com/2013/11/27/kinect-3d-printed-mini-shapify (accessed on 7 July 2015).
  3. Albiol, A.; Albiol, A.; Oliver, J.; Mossi, J.M. Who is Who at Different Cameras: People Re-Identification Using Depth Cameras. IET Comput. Vis. 2012, 6, 378–387. [Google Scholar] [CrossRef]
  4. Lai, K.; Bo, L.; Ren, X.; Fox, D. Detection-Based Object Labeling in 3D Scenes. In Proceedings of the 2012 IEEE International Conference on Robotics and Automation, Saint Paul, MN, USA, 14–18 May 2012; pp. 14–18.
  5. Koppula, H.S.; Anand, A.; Joachims, T.; Saxena, A. Semantic Labeling of 3D Point Clouds for Indoor Scenes. In Proceedings of the Advances in Neural Information Processing Systems, Granada, Spain, 12–15 December 2011; pp. 244–252.
  6. Cruz, L.; Lucio, D.; Velho, L. Kinect and RGBD Images: Challenges and Applications. In Proceedings of the 25th SIBGRAPI Conference on Graphics, Patterns and Image Tutorials, Ouro Preto, Brazil, 22–25 August 2012; pp. 36–49.
  7. Fu, J.J.; Miao, D.; Yu, W.R.; Wang, S.Q.; Lu, Y.; Li, S.P. Kinect-Like Depth Data Compression. IEEE Trans. Multimed. 2013, 15, 1340–1352. [Google Scholar] [CrossRef]
  8. Essmaeel, K.; Gallo, L.; Damiani, E.; de Pietro, G.; Dipanda, A. Temporal Denoising of Kinect Depth Data. In Proceedings of the 8th Interenational Conference on Signal Image Technology and Internet Based Systems (SITIS), Naples, Italy, 25–29 November 2012; pp. 47–52.
  9. Khoshelham, K. Accuracy Analysis of Kinect Depth Data. In Proceedings of the Interenational Archives of the Photogrammetry and Remote Sensing Information Science (ISPRS), Calgary, AB, Canada, 29–31 August 2011; pp. 133–138.
  10. Fleishman, S.; Drori, I.; Cohen-Or, D. Bilateral Mesh Denoising. In Proceedings of the ACM SIGGRAPH 2003, New York, NY, USA, 27–31 July 2003; pp. 950–953.
  11. Alvarez, L.; Deriche, R.; Sanchez, J.; Weickert, J. Dense Disparity Map Estimation Respecting Image Discontinuities: A PDE and Scale-Space Based Approach. J. Vis. Commun. Image Represent. 2002, 13, 3–21. [Google Scholar] [CrossRef]
  12. Khoshabeh, R.; Chan, S.H.; Nguyen, T.Q. Spatio-Temporal Consistency in Video Disparity Estimation. In Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Prague, Czech Republic, 22–27 May 2011; pp. 885–888.
  13. Maimone, A.; Fuchs, H. Enhanced Personal Autostereoscopic Telepresence System Using Commodity Depth Camera. Comput. Graph. 2012, 36, 791–807. [Google Scholar] [CrossRef]
  14. Qi, F.; Han, J.; Wang, P.; Shi, G.; Li, F. Structure Guided Fusion for Depth Map Inpainting. Pattern Recognit. Lett. 2013, 34, 70–76. [Google Scholar] [CrossRef]
  15. Fu, J.; Wang, S.; Lu, Y.; Li, S.; Zeng, W. Kinect-Like Depth Denoising. In Proceedings of the IEEE International Symposium on Circuits and Systems (ISCAS), Seoul, Korea, 20–23 May 2012; pp. 512–515.
  16. Camplani, M.; Mantecón, T.; Salgado, L. Depth-Color Fusion Strategy for 3-D Scene Modeling with Kinect. IEEE Trans. Cybern. 2013, 43, 1560–1571. [Google Scholar] [CrossRef] [PubMed]
  17. Criminisi, A.; Perez, P.; Toyama, K. Object Removal by Exemplar-Based Inpainting. In Proceedings of the IEEE Conference Computer Vision and Pattern Recognition (CVPR), Madison, WI, USA, 18–20 June 2003; pp. II-721–II-728.
  18. Viacheslav, V.; Alexander, F.; Vladimir, M.; Svetlana, T.; Oksana, L. Kinect Depth Map Restoration Using Modified Exemplar-Based Inpainting. In Proceedings of the 12th International Conference on Signal Processing (ICSP), Hangzhou, China, 19–23 October 2014; pp. 1175–1179.
  19. Tsukuba Stereo Database. Available online: http://www.cvlab.cs.tsukuba.ac.jp/dataset/tsukubastereo.php (accessed on 7 July 2015).
  20. Milani’s Kinect Dataset. Available online: http://www.dei.unipd.it/~sim1mil/materiale/kinect_data (accessed on 7 July 2015).
  21. Matyunin, S.; Vatolin, D.; Berdnikov, Y.; Smirnov, M. Temporal Filtering for Depth Maps Generated by Kinect Depth Camera. In Proceedings of the 3DTV Conference: The True Vision-Capture, Transmission and Display of 3D Video (3DTV-CON), Antalya, Turkey, 16–18 May 2011; pp. 1–4.

Share and Cite

MDPI and ACS Style

Lin, B.-S.; Su, M.-J.; Cheng, P.-H.; Tseng, P.-J.; Chen, S.-J. Temporal and Spatial Denoising of Depth Maps. Sensors 2015, 15, 18506-18525. https://doi.org/10.3390/s150818506

AMA Style

Lin B-S, Su M-J, Cheng P-H, Tseng P-J, Chen S-J. Temporal and Spatial Denoising of Depth Maps. Sensors. 2015; 15(8):18506-18525. https://doi.org/10.3390/s150818506

Chicago/Turabian Style

Lin, Bor-Shing, Mei-Ju Su, Po-Hsun Cheng, Po-Jui Tseng, and Sao-Jie Chen. 2015. "Temporal and Spatial Denoising of Depth Maps" Sensors 15, no. 8: 18506-18525. https://doi.org/10.3390/s150818506

Article Metrics

Back to TopTop