Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Xiyue-Wang/TransPath
https://github.com/Xiyue-Wang/TransPath
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/Xiyue-Wang/TransPath
- Owner: Xiyue-Wang
- License: gpl-3.0
- Created: 2021-07-07T01:43:12.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-30T16:54:20.000Z (8 months ago)
- Last Synced: 2024-10-22T09:49:35.187Z (2 months ago)
- Language: Python
- Size: 117 KB
- Stars: 259
- Watchers: 4
- Forks: 33
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-pathology - TransPath - Transformer-based unsupervised contrastive learning for histopathological image classification. (Software / Foundation Model)
README
## TransPath
## Transformer-based Unsupervised Contrastive Learning for Histopathological Image Classification (*Medical Image Analysis*)
The new better and stronger pre-trained transformers models [(**CTransPath**)](https://www.sciencedirect.com/science/article/abs/pii/S1361841522002043) has been released.[Journal Link](https://www.sciencedirect.com/science/article/abs/pii/S1361841522002043)
## Will update: CTransPath v2 coming soon (contains pre-training with over 100,000 WSIs) (Under Review).
It will be at least 5% better than **CtransPath**.#### Hardware
* 128GB of RAM
* 32*Nvidia V100 32G GPUs### Preparations
1.Download all [TCGA](https://portal.gdc.cancer.gov/projects?filters=%7B%22op%22%3A%22and%22%2C%22content%22%3A%5B%7B%22op%22%3A%22in%22%2C%22content%22%3A%7B%22field%22%3A%22projects.program.name%22%2C%22value%22%3A%5B%22TCGA%22%5D%7D%7D%5D%7D) WSIs.2.Download all [PAIP](http://wisepaip.org/paip) WSI
New: So, there will be about 15,000,000 images.
Old: We crop these WSIs into patch images.we randomly select 100 images from each WSI.Finally,So, there will be about 2,700,521 unlabeled histopathological
images.### Usage: Pre-Training Vision Transformers for histopathology images
It is recommended that you use **CTransPath** as the preferred histopathology images feature extractor
#### 1.CTransPath
##### Usage: Preparation
Install the modified [timm](https://drive.google.com/file/d/1JV7aj9rKqGedXY1TdDfi3dP07022hcgZ/view?usp=sharing) library
```
pip install timm-0.5.4.tar
```The pre-trained models can be [downloaded](https://drive.google.com/file/d/1DoDx_70_TLj98gTf6YTXnu4tFhsFocDX/view?usp=sharing)
##### Usage: Get frozen features
```
python get_features_CTransPath.py
```
It is recommended to first try to extract features at 1.0mpp, and then try other magnifications##### Usage: Linear Classification
For linear classification on frozen features/weights```
python ctrans_lincls.py
```
##### Usage: End-to-End Fine-tuningSimilar to Swin or ViT,please see the [instructions](https://github.com/microsoft/Swin-Transformer#swin-transformer) or [DEiT](https://github.com/facebookresearch/deit)
#### 2.MoCo v3
We also trained [MoCo v3](https://arxiv.org/abs/2104.02057) on these histopathological images.
The pre-trained models can be downloaded as following:[vit_small](https://drive.google.com/file/d/13d_SHy9t9JCwp_MsU2oOUZ5AvI6tsC-K/view?usp=sharing)
Undated the latest weights have been uploaded (1/10/2022)
##### Usage: Self-supervised Pre-Training
please see the [instructions](https://github.com/facebookresearch/moco-v3)##### Usage: Get frozen features
```
python get_features_mocov3.py \
-a vit_small
```
##### Usage: End-to-End Fine-tuning ViT
To perform end-to-end fine-tuning for ViT, use our script to convert the pre-trained ViT checkpoint to [DEiT](https://github.com/facebookresearch/deit) format:
```
python convert_to_deit.py \
--input [your checkpoint path]/[your checkpoint file].pth.tar \
--output [target checkpoint file].pth
```
Then run the training (in the DeiT repo) with the converted checkpoint:
```
python $DEIT_DIR/main.py \
--resume [target checkpoint file].pth \
--epochs 150
```#### 3.TransPath
The pre-trained models can be [downloaded](https://drive.google.com/file/d/1dhysqcv_Ct_A96qOF8i6COTK3jLb56vx/view?usp=sharing)
These codes are partly based on [byol](https://github.com/lucidrains/byol-pytorch) and [moco v2](https://github.com/facebookresearch/moco)
##### Usage: Self-supervised Pre-Training
```
python main_byol_transpath.py \
--lr 0.0001 \
--batch-size 256 \
--dist-url 'tcp://localhost:10001' --multiprocessing-distributed --world-size 1 --rank 0 --mlp --moco-t 0.2 --aug-plus --cos
```
##### Usage: Get frozen features
```
python get_feature_transpath.py
```##### Usage: End-to-End Fine-tuning
use our script to convert the pre-trained ViT checkpoint to Transformers format:
```
python convert_to_transpath.py
```## Reference
* [Google ViT](https://github.com/google-research/vision_transformer)
* [Pytorch Image Models(timm)](https://github.com/rwightman/pytorch-image-models)Please open new threads or address all questions to [email protected]
## LicenseTransPath is released under the GPLv3 License and is available for non-commercial academic purposes.
### Citation
Please use below to cite this [paper](https://www.sciencedirect.com/science/article/abs/pii/S1361841522002043) if you find our work useful in your research.```
@{wang2022,
title={Transformer-based Unsupervised Contrastive Learning for Histopathological Image Classification},
author={Wang, Xiyue and Yang, Sen and Zhang, Jun and Wang, Minghui and Zhang, Jing and Yang, Wei and Huang, Junzhou and Han, Xiao},
journal={Medical Image Analysis},
year={2022},
publisher={Elsevier}
}
``````
@inproceedings{wang2021transpath,
title={TransPath: Transformer-Based Self-supervised Learning for Histopathological Image Classification},
author={Wang, Xiyue and Yang, Sen and Zhang, Jun and Wang, Minghui and Zhang, Jing and Huang, Junzhou and Yang, Wei and Han, Xiao},
booktitle={International Conference on Medical Image Computing and Computer-Assisted Intervention},
pages={186--195},
year={2021},
organization={Springer}
}
```