"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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ1ODY3MzQsIm5iZiI6MTcyNDU4NjQzNCwicGF0aCI6Ii8xOTE2MzM3Mi8zMDE0OTM3MTUtMGI3MmQ2YzItOTkwNy00YzQ2LTk0YmEtNzAwMjJkMzQwNTU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI1VDExNDcxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYzZjI4MTdiYzc5ZTVhYjhlNGE2ZDgxYWExOTg4MDhkNzE0OTc4NzU2MzM2NDczOGY4OGU4ZmExZTcwOWVlMjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.PGKvwZcQPsem_tL5jPEisxW1LIrcGuH4RXNkEWZJbQ4)
![image](https://private-user-images.githubusercontent.com/19163372/301496413-511ca95a-f3ea-4313-a0b2-aeb32a836934.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ1ODY3MzQsIm5iZiI6MTcyNDU4NjQzNCwicGF0aCI6Ii8xOTE2MzM3Mi8zMDE0OTY0MTMtNTExY2E5NWEtZjNlYS00MzEzLWEwYjItYWViMzJhODM2OTM0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI1VDExNDcxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYyMTk4NzMzOTQyODg2N2RiZWM5OGI5MTM3MjUyMWIyNTZlODAyOTQ1MTM4Mzg4NjZjMzRiYTdhZTg3MTA4YmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.MAKhT8WXKueliAkpPJ0nFlQNyF0OeA4MXtbOc48OOCo)
![image](https://private-user-images.githubusercontent.com/19163372/301493752-4b0890b0-72a3-4c73-9391-269fea0c3381.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ1ODY3MzQsIm5iZiI6MTcyNDU4NjQzNCwicGF0aCI6Ii8xOTE2MzM3Mi8zMDE0OTM3NTItNGIwODkwYjAtNzJhMy00YzczLTkzOTEtMjY5ZmVhMGMzMzgxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI1VDExNDcxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNkNmE4YWJmNTNhMTc1MzQwZTk2N2YzOTAyODU5NTA3MTE4YmZhNzNjYWI4NmZjOGRjN2ZmOTAyODMyMTQwOTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.61m_69OmHTeRcRWr9i9Yuz5Qs_iAlcWRnwbp91Nib3c)
![image](https://private-user-images.githubusercontent.com/19163372/301496460-6fc9df28-c6a2-46af-9a81-3c801016cd65.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ1ODY3MzQsIm5iZiI6MTcyNDU4NjQzNCwicGF0aCI6Ii8xOTE2MzM3Mi8zMDE0OTY0NjAtNmZjOWRmMjgtYzZhMi00NmFmLTlhODEtM2M4MDEwMTZjZDY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI1VDExNDcxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM3NGE5NGQ0YjczYTIyMjNiMzczY2U3NWEzNTVmNjY3ZjcxM2M1YzYxN2IxNDczMGFmMGY4MmY2ZWQ4YTU5ODUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.7-OwLDnjaUwnnURSzbh61wdQwl6UDqaKJnnC_hGGcz8)
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