Closed martinnormark closed 1 month ago
The FaceClassifier implementation compared to the description in the paper:
Initialization:
Forward method:
custom_knn_graph method:
Overall, the implementation appears to be in line with the paper's description of the Face Classifier. The main components described in the paper (k-nn graph construction, stacked TriConv layers, and final classification) are all present.
However, there are a few points to consider:
The paper mentions using barycenter distances for the k-nn graph, which is implicitly done here by using the mean of 3D positions. This could be made more explicit if needed.
The custom_knn_graph method doesn't use PyTorch Geometric's knn_graph function. While this is fine given that the tests pass, using PyTorch Geometric's implementation could potentially be more efficient and better optimized.
The paper doesn't specify the exact activation function used between TriConv layers. The implementation uses ReLU, which is a common choice and should work well.
The implementation includes batch handling, which is not mentioned in the paper but is a practical addition for efficient processing of multiple meshes.
In conclusion, while there are minor differences and additions, the implementation appears to be faithful to the paper's description of the Face Classifier. The changes and additions (like batch handling and graph symmetry) are practical improvements that don't fundamentally alter the described architecture.
Key components and breakdown:
knn_graph
function to construct the k-nn graph based on barycenter distances.