Statistical Estimation of Differential Properties of Surfaces


Download SGP Paper (10.1 MB)

Keywords: robust curvature, statistical estimation of surface derivatives, maximum likelihood estimates of curvature, normal correction, robust suggestive contour drawing, noisy meshes
A robust statistics approach to curvature estimation on discretely sampled surfaces, namely polygon meshes and point clouds, is presented. The method exhibits accuracy, stability and consistency even for noisy, non-uniformly sampled surfaces with irregular configurations. Within an M-estimation framework, the algorithm is able to reject noise and structured outliers by sampling normal variations in an adaptively reweighted neighborhood around each point. The algorithm can be used to reliably derive higher order differential attributes and even correct noisy surface normals while preserving the fine features of the normal and curvature field. The approach is compared with state-of-the-art curvature estimation methods and shown to improve accuracy by up to an order of magnitude across ground truth test surfaces under varying tessellation densities and types as well as increasing degrees of noise. Finally, the benefits of a robust statistical estimation of curvature are illustrated by applying it to the popular applications of mesh segmentation and suggestive contour rendering

Download Windows Executable (118KB)

Important Note: This windows demo executable program supports OFF files only. It is based on the CGAL library. If you need any help, write "CurvatureX3 -?". Quick example of use: "CurvatureX4 -dc -v" (will also compute derivative of curvature tensors with verbose output, results are written in curv.txt". If the mesh is completely noiseless, you may want to execute the mimimum region method "CurvatureX3 -n" for quicker results.

Frequently Asked Questions:
- Question: I want to correct the mesh normals and principal curvature directions. How can I do it?
- Answer: Try "CurvatureX3 -r [other parameters you want]". The corrected normals can be taken by performing the cross product of the principal curvature directions.

- Question: How do I compute the derivatives of curvatures?
- Answer: Include the -dc parameter (it's not used by default)

- Question: Where are the results?
- Answer: If you have not specified another output file name, it's in the curv.txt (in the same directory)

- Question: The method does not seem to produce very accurate results in non-noisy meshes.
- Answer: Try "CurvatureX3 -n"

- Question: Why is it so slow?
- Answer: It is because of the local optimization nature of the algorithm and some data structure overheads of the current beta version of the executable. If it is too slow for you, and you don't care very much about accuracy, you can limit the number of iterations (e.g use -i=10 or -i=5). Also try to use light (edge-based) sampling (use parameter -l).

- Question: The curvature field seem oversmoothed. Why?
- Answer: Try parameters -h=2 or -h=1 or -n.

- Question: The curvature field still seem noisy. Why?
- Answer: Your mesh may be extremely noisy. Try -h=4, -h=5 etc

-Question: Is there any way to automatically select the parameter -h?
- Answer: We are working on this. It will be probably relased on future versions/papers.

-Question: It says "Loaded mesh is empty or file format is not supported".
- Answer: Make sure your loaded mesh is text OFF format. Make sure your mesh is manifold.

-Question: How does the method work?
- Answer: You can take a look on the paper.

- Question: Does your method correct surface outliers? Can you use it for for surface smoothing/reconstruction?
- Answer: This is part of ongoing/future work.

- Question: Does your method have any statistical assumptions?
- Answer: Yes, gaussian noise on points and normals.

- Question: Does it work with other types of noise?
- Answer: Well, try it. For laplacian noise, I saw again good behavior.

- Question: What about point clouds?
- Answer: Sorry, I am not releasing that part of the method yet.

- Question: The program crashed. I found a bug. Something is wrong. I am puzzled by something.
- Answer: The program is based on academic code and is for demonstrative purposes. Please contact the main author:

- Question: I am not satisfied by the results of your method.
- Answer: The executable is beta version, may be still buggy. Also, try CurvatureX3 -? for help.

- Question: I really liked the results of your method and I want to use them for my algorithm.
- Answer: You could cite the paper as well: "Evangelos Kalogerakis, Patricio Simari, Derek Nowrouzezahrai, Karan Singh. "Robust statistical estimation of curvature on discretized surfaces" Proceedings of the Eurographics/ACM Siggraph Symposium on Geometry Processing (SGP '07), pp. 13-22, Barcelona, Spain, July 4-6 2007"

- Question: You seem very nice and your method is sexy. Can I meet you?
- Answer: Sure, I am fully available. I can also cook, clean, wash and work for you. I am 100% faithful and loyal (note: I prefer Eastern European females).