Welcome to the world of advanced deep learning architecture with SO-Net, a Self-Organizing Network designed to perform point cloud analysis. Whether you are looking to classify, retrieve shapes, segment, or reconstruct point clouds, SO-Net paves the path for you! In this article, we’ll guide you step-by-step through the installation, usage, and troubleshooting of SO-Net.
Introduction to SO-Net
SO-Net is an innovative architecture that processes both 2D and 3D point cloud data. Inspired by the Self-Organizing Map (SOM), it effectively reduces dimensions and extracts important features from point clouds while ensuring that the order of points does not affect the results.
Getting Started: Installation Requirements
Before diving into the functionalities of SO-Net, ensure you have the following prerequisites:
- Python 3
- PyTorch 0.4 or higher
- Faiss
- Visdom
- Compile customized CUDA code with the command:
cd models/index_max_ext; python3 setup.py install
For GPU support, you may also want to install Faiss GPU support, as it is required for the auto-encoder functionality.
Setting Up the Datasets
SO-Net operates on various datasets, including ModelNet4010 and ShapeNetPart. You can access the pre-processed datasets provided by PointNet++ by Charles R. Qi. Additionally, we’ll be using MATLAB codes for point sampling.
To simplify your experience, we recommend downloading our prepared datasets from Google Drive.
Usage: Running SO-Net Applications
SO-Net supports four primary applications:
- Classification
- Shape Retrieval
- Part Segmentation
- Auto-encoder
Configuration
Each application contains its respective folder (e.g., modelnet, part-seg), complete with configuration options stored in options.py and scripts for training and testing. To run tasks, adjust the dataset type and path in options.py by changing the values for --dataset and --dataroot.
Visualization with Visdom
For real-time visualization of losses and reconstructed point clouds during training, you should start the visdom server with the command:
python3 -m visdom.server
Access the visualization in your browser at: http://localhost:8097.
Application Procedures
1. Classification
To classify point clouds, use the following command after setting the dataset and data root:
cd modelnet; python3 train.py
2. Shape Retrieval
Like classification, but in the testing phase, we leverage a feature vector for score calculations:
cd shrec16; python3 train.py
3. Part Segmentation
Formulate segmentation as a per-point classification problem:
cd part-seg; python3 train.py
4. Auto-encoder
Compress input point clouds into feature vectors and reconstruct them using the following command:
cd autoencoder; python3 train.py
Troubleshooting Tips
If you encounter issues while setting up or running SO-Net, here are some common troubleshooting tips:
- Ensure all dependencies are correctly installed.
- Check for any version mismatches with PyTorch or other libraries.
- Make sure to specify the correct dataset paths in
options.py. - If visualization fails, confirm that the visdom server is running.
- Should problems persist, consulting the [GitHub Issues page](https://github.com/yourGitHubRepo) for SO-Net might provide solutions.
For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
Conclusion
At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

