# Outlier Rejection with Tensor Voting

## Project Summary

Given a 3D point cloud the task is to filter out the noisy points. In the project we use the ‘Tensor Voting Method’ [1,2] for outlier detection.

## Acknowledgement

This project is a part of the Computer Vision course (COMP 5421) during spring 2014. The project partners were Manohar Kuse (myself) and Sunil Jaiswal. The course instructor was Prof. C. K. Tang.
I further acknowledge that the part of text and images presented here are borrowed from the course webpage.

## Method

We use the close-form solution as derived by  in implementing the tensor voting from the neighbors. The 3D tensor voting consists of voting with the stick voting fieldplate voting field , and ball voting field.
For this project we choose the ball field, which represents uncertainty in all the 3-dimensions. The voting is done of each of the point in the dataset (represented with index ‘i’). The tensor ‘K’ is initialized as a
identity matrix (since we choose to use the ball field). Note that, index ‘j’ represents the neighbors of current point x_i.  The structure aware tensor K is calculated as sum of voting by each of the neighbors. To reduce the complexity, we choose to use only the nearest 100 neighbors. Note that, Sij is a 3×3 matrix. Also, each point x_i will
have an associated tensor K.

Finally, to detect outlier saliency is evaluated for data-point tensor. Points having high saliency are declared as inliers. To understand the theory behind this, refer to the two references below [1,2]. Saliency is defined as the difference of top two Eigen values of the tensor K_j.

## References

 Tang, Chi-Keung, Gérard Medioni, and Mi-Suen Lee. “N-dimensional tensor voting and application to epipolar geometry estimation.” Pattern Analysis and Machine Intelligence, IEEE Transactions on 23.8 (2001): 829-844.

 Wu, Tai-Pang, et al. “A closed-form solution to tensor voting: Theory and applications.” Pattern Analysis and Machine Intelligence, IEEE Transactions on 34.8 (2012): 1482-1495.