# Three-Filters-to-Normal: An Accurate and Ultrafast Surface Normal Estimator

arXiv: https://arxiv.org/abs/2005.08165 · HTML: https://mlsanity.com/paper/2005.08165/

## Key facts

- Cited by 14 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 17 May 2020.

## Built on by (most cited first, 14 of 14)

- [DepthFM: Fast Monocular Depth Estimation with Flow Matching](https://mlsanity.com/paper/2403.13788/) (2024)
- [ORFD: A Dataset and Benchmark for Off-Road Freespace Detection](https://mlsanity.com/paper/2206.09907/) (2022)
- [Understanding 3D Object Interaction from a Single Image](https://mlsanity.com/paper/2305.09664/) (2023)
- [SNE-RoadSeg+: Rethinking Depth-Normal Translation and Deep Supervision for Freespace Detection](https://mlsanity.com/paper/2107.14599/) (2021)
- [LightDepth: Single-View Depth Self-Supervision from Illumination Decline](https://mlsanity.com/paper/2308.10525/) (2023)
- [GLaD: Geometric Latent Distillation for Vision-Language-Action Models](https://mlsanity.com/paper/2512.09619/) (2025)
- [D2NT: A High-Performing Depth-to-Normal Translator](https://mlsanity.com/paper/2304.12031/) (2023)
- [SDA-SNE: Spatial Discontinuity-Aware Surface Normal Estimation via Multi-Directional Dynamic Programming](https://mlsanity.com/paper/2208.08667/) (2022)
- [Computer-Aided Road Inspection: Systems and Algorithms](https://mlsanity.com/paper/2203.02355/) (2022)
- [Normal Transformer: Extracting Surface Geometry from LiDAR Points Enhanced by Visual Semantics](https://mlsanity.com/paper/2211.10580/) (2022)
- [Three-Filters-to-Normal+: Revisiting Discontinuity Discrimination in Depth-to-Normal Translation](https://mlsanity.com/paper/2312.07964/) (2023)
- [Robust and Real-time Surface Normal Estimation from Stereo Disparities using Affine Transformations](https://mlsanity.com/paper/2504.15121/) (2025)
- [Robust Edge-Direct Visual Odometry based on CNN edge detection and Shi-Tomasi corner optimization](https://mlsanity.com/paper/2110.11064/) (2021)
- [Fast, Accurate and Object Boundary-Aware Surface Normal Estimation from Depth Maps](https://mlsanity.com/paper/2209.08241/) (2022)

## Abstract (arXiv)

This paper proposes three-filters-to-normal (3F2N), an accurate and ultrafast surface normal estimator (SNE), which is designed for structured range sensor data, e.g., depth/disparity images. 3F2N SNE computes surface normals by simply performing three filtering operations (two image gradient filters in horizontal and vertical directions, respectively, and a mean/median filter) on an inverse depth image or a disparity image. Despite the simplicity of 3F2N SNE, no similar method already exists in the literature. To evaluate the performance of our proposed SNE, we created three large-scale synthetic datasets (easy, medium and hard) using 24 3D mesh models, each of which is used to generate 1800--2500 pairs of depth images (resolution: 480X640 pixels) and the corresponding ground-truth surface normal maps from different views. 3F2N SNE demonstrates the state-of-the-art performance, outperforming all other existing geometry-based SNEs, where the average angular errors with respect to the easy, medium and hard datasets are 1.66 degrees, 5.69 degrees and 15.31 degrees, respectively. Furthermore, our C++ and CUDA implementations achieve a processing speed of over 260 Hz and 21 kHz, respectively. Our datasets and source code are publicly available at sites.google.com/view/3f2n.
