[Paper Review] In Defense of Classical Image Processing: Fast Depth Completion on the CPU
This paper proposes a fast, non-learning, CPU-based depth completion algorithm using classical image processing techniques—such as dilation, hole filling, and Gaussian blurring—on sparse LIDAR depth maps. It achieves state-of-the-art performance on the KITTI benchmark, ranking first with an RMSE of 1350.93 mm, outperforming deep learning-based methods while running at 90 Hz without training data or GPU dependency.
With the rise of data driven deep neural networks as a realization of universal function approximators, most research on computer vision problems has moved away from hand crafted classical image processing algorithms. This paper shows that with a well designed algorithm, we are capable of outperforming neural network based methods on the task of depth completion. The proposed algorithm is simple and fast, runs on the CPU, and relies only on basic image processing operations to perform depth completion of sparse LIDAR depth data. We evaluate our algorithm on the challenging KITTI depth completion benchmark, and at the time of submission, our method ranks first on the KITTI test server among all published methods. Furthermore, our algorithm is data independent, requiring no training data to perform the task at hand. The code written in Python will be made publicly available at https://github.com/kujason/ip_basic.
Motivation & Objective
- To demonstrate that well-designed classical image processing algorithms can outperform deep learning-based methods in depth completion.
- To develop a fast, real-time depth completion algorithm that runs efficiently on CPU without requiring GPU acceleration.
- To create a data-independent method that requires no training data, avoiding overfitting and improving robustness.
- To provide a strong, interpretable baseline for depth completion that is simpler and more efficient than complex neural networks.
- To validate the effectiveness of traditional image processing in modern computer vision tasks like depth completion.
Proposed method
- The algorithm begins with inversion and dilation of the sparse depth map to expand depth regions and fill small holes.
- Small holes are closed using morphological operations, followed by extension of depth values to the top of the image frame to reduce artifacts.
- Large holes are filled using a combination of morphological dilation and Gaussian blur to propagate depth values while preserving structure.
- A two-stage blurring process applies median and Gaussian filters to reduce noise and smooth depth planes without distorting object edges.
- The final output is obtained by inverting the processed depth map to restore original depth values.
- The method relies solely on standard image processing operations—no neural networks, no training data, and no image guidance.

Experimental results
Research questions
- RQ1Can classical image processing techniques outperform deep learning-based methods in depth completion?
- RQ2Is it possible to achieve state-of-the-art performance on the KITTI depth completion benchmark using only CPU-based, non-learning algorithms?
- RQ3How does the choice of morphological kernel shape and size affect the performance of a classical depth completion pipeline?
- RQ4What is the optimal combination of blurring techniques (e.g., median, Gaussian, bilateral) for minimizing depth error in sparse input scenarios?
- RQ5Can a data-independent, non-trainable algorithm achieve real-time performance (90 Hz) on CPU while maintaining high accuracy?
Key findings
- The proposed algorithm achieved an RMSE of 1350.93 mm and MAE of 305.35 mm on the KITTI depth completion benchmark, ranking first among all published methods at the time of submission.
- The algorithm runs at 90 Hz on CPU, demonstrating real-time performance without requiring GPU acceleration or model inference hardware.
- Using a combination of median and Gaussian blur reduced RMSE by 150+ mm compared to no blur, with minimal runtime overhead (0.011 seconds).
- The Gaussian blur variant achieved the lowest RMSE (1350.93 mm), while the bilateral blur version preserved object structure better and is recommended for practical applications.
- The algorithm outperformed a custom sparsity-invariant convolutional neural network (SIC-Net) by a significant margin, despite being non-learning and non-trainable.
- The method is robust to image quality and calibration errors since it does not rely on color images or synchronized sensors, making it suitable for embedded deployment.

Better researchstarts right now
From paper design to paper writing, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.