Namkwangwoon / Rotation-Invariant-Tooth-Seg

3D Teeth Scan Segmentation via Rotation-Invariant Descriptor

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rotation Invariant Tooth Scan Segmentation

"3D Teeth Scan Segmentation via Rotation-Invariant Descriptor"

Overall Architecture

Overall

Prerequisites

  • PyTorch 1.8.0
  • Requirements
    pip install -r requirements.txt

Training

  • Before training, You can load pre-sampled dataset(.npy), or sample every epoch
    • For pre-sampling, see "./preprocessing.ipynb"
python main.py \
  [--resume "checkpoint path"]
  • You can choose one of three sampling methods.
    1. Farthest Point Sampling(FPS)
    2. Poisson Disk Sampling (Creating new vertices)
    3. Poisson Disk based Simplification (Keeping existing vertices, Using this sampling method)

Inference (Visualization)

python inference.py
  • Visualization using PyVista remehsing, and Open3D visualization

  • Color gingiva and each number of teeth a different color.

  • Example

Evaluation

python eval.py

TSA

  • Teeth Segmentation Accuracy, 'F1'

  • $precision={TP \over TP+FP},~~~~recall={TP \over TP+FN}$

    $$TSA = 2\times{precision\times recall \over precision+recall}$$

TIR

  • Teeth Identification Rate, 'ACC' $$TIR={TP+TN \over TP+TN+FP+FN}$$

IOU

  • Intersection over Union, 'IOU' $$IoU = {TP \over TP+FP+FN}$$

Results

Aligned Training

image image

Random Rotated Training

image image

Other Methods

PointNet

Qi, Charles R., et al. "Pointnet: Deep learning on point sets for 3d classification and segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.

Training

python main_pointnet.py \
  [--resume "checkpoint path"]

Inference

python inference.py --model pointnet

Evaluation

python eval.py --model pointnet

Point Transformer

Zhao, Hengshuang, et al. "Point transformer." Proceedings of the IEEE/CVF international conference on computer vision. 2021.

Training

python main_pointtransformer.py \
  [--resume "checkpoint path"]

Inference

python inference.py --model pointtransformer

Evaluation

python eval.py --model pointtransformer

Reference Codes

About

3D Teeth Scan Segmentation via Rotation-Invariant Descriptor

License:MIT License


Languages

Language:Jupyter Notebook 98.7%Language:Python 1.2%Language:C++ 0.1%Language:Cuda 0.0%Language:Shell 0.0%