MCPcopy Index your code
hub / github.com/eliphatfs/SkeletonMerger

github.com/eliphatfs/SkeletonMerger @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
104 symbols 222 edges 17 files 9 documented · 9%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Skeleton Merger

Skeleton Merger, an Unsupervised Aligned Keypoint Detector. The paper is available at https://arxiv.org/abs/2103.10814.

Intro pic

Update Aug. 6th: The point cloud visualizer is now released! See https://github.com/eliphatfs/PointCloudVisualizer.

A map of the repository

  • The merger/pointnetpp folder contains the Pytorch Implementation of PointNet and PointNet++ repository with some minor changes. It is adapted to make compatible relative imports.
  • The merger/composed_chamfer.py file contains an efficient implementation of proposed Composite Chamfer Distance (CCD).
  • The merger/data_flower.py file is for data loading and preprocessing.
  • The merger/merger_net.py file contains the Skeleton Merger implementation.
  • The root folder contains several scripts for training and testing.

You can find a pre-trained model on chairs from ShapeNetCore here. Notice that axis order (e.g., gravity axis may be either y or z) and scaling may vary between datasets, so it is recommended to train a model locally from scratch if you need to use Skeleton Merger. It's fast! Skeleton Merger usually gives reasonable results within 5-10 epochs, which only takes minutes on ShapeNetCore-scale datasets with a GTX 1080. (For full power of the model you still need to train for 50-100 epochs and do some epoch selection by validation error or by the downstream task.)

Usage of script files

Usage of the script files, together with a brief description of data format, are available through the -h command line option.

Dataset

The ShapeNetCore.v2 dataset used in the paper is available from the Point Cloud Datasets repository.

Core symbols most depended-on inside this repo

index_points
called by 7
merger/pointnetpp/pointnet_util.py
feature_transform_reguliarzer
called by 3
merger/pointnetpp/pointnet.py
feed
called by 2
train.py
all_h5
called by 2
merger/data_flower.py
walk_files
called by 2
merger/data_flower.py
last_dirname
called by 2
merger/data_flower.py
square_distance
called by 2
merger/pointnetpp/pointnet_util.py
farthest_point_sample
called by 2
merger/pointnetpp/pointnet_util.py

Shape

Method 54
Class 27
Function 23

Languages

Python100%

Modules by API surface

merger/pointnetpp/pointnet_util.py17 symbols
merger/pointnetpp/pointnet.py10 symbols
merger/merger_net.py9 symbols
merger/pointnetpp/pointnet_sem_seg.py6 symbols
merger/pointnetpp/pointnet_part_seg.py6 symbols
merger/pointnetpp/pointnet_cls.py6 symbols
merger/pointnetpp/pointnet2_sem_seg_msg.py6 symbols
merger/pointnetpp/pointnet2_sem_seg.py6 symbols
merger/pointnetpp/pointnet2_part_seg_ssg.py6 symbols
merger/pointnetpp/pointnet2_part_seg_msg.py6 symbols
merger/pointnetpp/pointnet2_cls_ssg.py6 symbols
merger/pointnetpp/pointnet2_cls_msg.py6 symbols

For agents

$ claude mcp add SkeletonMerger \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact