This zip contains a supplementary document and source codes for the ICCV2023 paper
L. Hajder, L. Lóczi, D. Barath. Fast Globally Optimal Surface Normal Estimation from an Affine Correspondence

-------

ICCV2023_ID10102_Supp.pdf
The supplementary document, describing missing details about the algorithms.

Mathematica_proof.pdf
The document for the deviation of the proposed rapid algorithm, extracted from Wolfram's Mathematica.

------

Normal_MATLAB.zip
It contains the source code of the whole synthetic testing system for normal estimators, including the normal estimators.
The most important files are:
FNE1.m  -- Fast Normal Estimator (FNE)
FNESuper.m -- FNE-SUPER method
NormalFromHomography.m - Raposo method
OPT.m - Optimal estimation via quartic polynomial
CubicNormalOPT.m Optimal estimation via cubic polynomial
RapidOpt.m - Proposed rapid estimator

The whole synthetic testing system can be run by test_noise_affine.m and test_noise_pts.m if affine parameters or point coordinates are contaminated, respectively.

-----

Normal_CPP.zip

The C++ version of the applied methods, including the proposed rapid normal estimator


HajderTriangulation.cpp HajderTriangulation.h --- Linear triangulation method, aka. triangluation by DLT.
HartleySturm.cpp HartleySturm.h ---  Optimal triangulation algoritm proposed by Richard I. Hartley, Peter F. Sturm: Triangulation. Comput. Vis. Image Underst. 68(2): 146-157 (1997)
NormalEstimation.cpp NormalEstimation.h ---  The code for different normal estimators, including the proposed ones. The methods name are the same as in the MATLAB source. See the list above.
PolyUtility.cpp PolyUtility.h ---  Helper function to construct polinomials. Root solving via Eigen Library also included.
test.cpp --- A single method to test the code for normal estimators.




Raposo_symbolic.m
Deviation of the coefficients for Raposo method. You can find the details in the supplementary document.
