Three-Filters-To-Normal:

An Accurate and Ultrafast Surface Normal Estimator

In this paper, we propose three-filters-to-normal (3F2N), an accurate and ultrafast surface normal estimator (SNE), which is designed for structured range sensor data, such as 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 (due to that disparity is in inverse proportion to depth). 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 surface normal ground truth 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.6 degrees, 5.6 degrees, and 15.3 degrees, respectively. Furthermore, our C++ and CUDA implementations achieve a processing speed of over 260 Hz and 21 kHz, respectively. We have also contributed our source code to the OpenCV repository. Our datasets and source code are publicly available at this webpage.