"3D Teeth Scan Segmentation via Rotation-Invariant Descriptor"
- PyTorch 1.8.0
- Requirements
pip install -r requirements.txt
- Before training, You can load pre-sampled dataset(.npy), or sample every epoch
- For pre-sampling, see
"./preprocessing.ipynb"
- For pre-sampling, see
python main.py \
[--resume "checkpoint path"]
- You can choose one of three sampling methods.
- Farthest Point Sampling(FPS)
- Poisson Disk Sampling (Creating new vertices)
- Poisson Disk based Simplification (Keeping existing vertices, Using this sampling method)
python inference.py
-
Visualization using
PyVista
remehsing, andOpen3D
visualization -
Color gingiva and each number of teeth a different color.
-
Example
python eval.py
-
Teeth Segmentation Accuracy,
'F1'
-
$precision={TP \over TP+FP},~~~~recall={TP \over TP+FN}$ $$TSA = 2\times{precision\times recall \over precision+recall}$$
- Teeth Identification Rate,
'ACC'
$$TIR={TP+TN \over TP+TN+FP+FN}$$
- Intersection over Union,
'IOU'
$$IoU = {TP \over TP+FP+FN}$$
![image](https://private-user-images.githubusercontent.com/19163372/301493715-0b72d6c2-9907-4c46-94ba-70022d340556.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ4NTE4OTksIm5iZiI6MTcyNDg1MTU5OSwicGF0aCI6Ii8xOTE2MzM3Mi8zMDE0OTM3MTUtMGI3MmQ2YzItOTkwNy00YzQ2LTk0YmEtNzAwMjJkMzQwNTU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI4VDEzMjYzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThlY2U2YWFhZWM4ZTkyOTI2ODExYjNlZWVmN2VmZDJlOTE1Y2FhOTc2NDY2YTkzOWMwODUyZDMzMTJjZDJhNzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.TEhO_Fpksie8xiFS89eKTMfMWlP3X9GerWoitvId9_g)
![image](https://private-user-images.githubusercontent.com/19163372/301496413-511ca95a-f3ea-4313-a0b2-aeb32a836934.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ4NTE4OTksIm5iZiI6MTcyNDg1MTU5OSwicGF0aCI6Ii8xOTE2MzM3Mi8zMDE0OTY0MTMtNTExY2E5NWEtZjNlYS00MzEzLWEwYjItYWViMzJhODM2OTM0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI4VDEzMjYzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc5NDBkZWRhY2YzNWYwN2Q3MjI0MmViODBhMmMzZjNkMjRlNzU0Mzc0OGMwMDdmMzA3MzUwNDhkZDMwNmNlMDMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.XisTMa2hjieV-MHYJGrCqY38XwWGv97eu4SsLw-IjgU)
![image](https://private-user-images.githubusercontent.com/19163372/301493752-4b0890b0-72a3-4c73-9391-269fea0c3381.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ4NTE4OTksIm5iZiI6MTcyNDg1MTU5OSwicGF0aCI6Ii8xOTE2MzM3Mi8zMDE0OTM3NTItNGIwODkwYjAtNzJhMy00YzczLTkzOTEtMjY5ZmVhMGMzMzgxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI4VDEzMjYzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThhMzY5MzRmZTY3M2RhZDlkOGE2MWUxNTE5MzhjZWY4MGJlZTRiMjE3MThiNWVjZWJhNTExYmMyYmEyYWM0NmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Jh-qs_ngVl8cZrCfNlgGRz3F7oi6aDMU8ijmDeB_FRI)
![image](https://private-user-images.githubusercontent.com/19163372/301496460-6fc9df28-c6a2-46af-9a81-3c801016cd65.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ4NTE4OTksIm5iZiI6MTcyNDg1MTU5OSwicGF0aCI6Ii8xOTE2MzM3Mi8zMDE0OTY0NjAtNmZjOWRmMjgtYzZhMi00NmFmLTlhODEtM2M4MDEwMTZjZDY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI4VDEzMjYzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVhMjA5ZTAwNjcxMTcyM2ViZTUyN2MyMGU0YTg1MDRiZTMxZjc2NWIyYWE5YTFhMTgzZTMzM2VlNzRiZjg0ZjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.hITKF8npaBdVetD10IccpJcuD2gdIUO7r64aijpfKWk)
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.
python main_pointnet.py \
[--resume "checkpoint path"]
python inference.py --model pointnet
python eval.py --model pointnet
Zhao, Hengshuang, et al. "Point transformer." Proceedings of the IEEE/CVF international conference on computer vision. 2021.
python main_pointtransformer.py \
[--resume "checkpoint path"]
python inference.py --model pointtransformer
python eval.py --model pointtransformer