A deep learning algorithm for automatic detection and classification of acute intracranial hemorrhages in head CT scans
This is the source code for the first place solution to the RSNA2019 Intracranial Hemorrhage Detection Challenge.
Solution write up: Link.
- opencv-python==3.4.2
- scikit-image==0.14.0
- scikit-learn==0.19.1
- scipy==1.1.0
- torch==1.1.0
- torchvision==0.2.1
- 2DNet
- 3DNet
- SequenceModel
- seresnext101_256*256 [seresnext101]
- densenet169_256*256 [densenet169]
- densenet121_512*512 [densenet121]
Prepare csv file:
download data.zip: https://drive.google.com/open?id=1buISR_b3HQDU4KeNc_DmvKTYJ1gvj5-3
- convert dcm to png
python3 prepare_data.py -dcm_path stage_1_train_images -png_path train_png
python3 prepare_data.py -dcm_path stage_1_test_images -png_path train_png
python3 prepare_data.py -dcm_path stage_2_test_images -png_path test_png
- train
python3 train_model.py -backbone DenseNet121_change_avg -img_size 256 -tbs 256 -vbs 128 -save_path DenseNet121_change_avg_256
python3 train_model.py -backbone DenseNet169_change_avg -img_size 256 -tbs 256 -vbs 128 -save_path DenseNet169_change_avg_256
python3 train_model.py -backbone se_resnext101_32x4d -img_size 256 -tbs 80 -vbs 40 -save_path se_resnext101_32x4d_256
- predict
python3 predict.py -backbone DenseNet121_change_avg -img_size 256 -tbs 4 -vbs 4 -spth DenseNet121_change_avg_256
python3 predict.py -backbone DenseNet169_change_avg -img_size 256 -tbs 4 -vbs 4 -spth DenseNet169_change_avg_256
python3 predict.py -backbone se_resnext101_32x4d -img_size 256 -tbs 4 -vbs 4 -spth se_resnext101_32x4d_256
After single models training, the oof files will be saved in ./SingleModelOutput(three folders for three pipelines).
After training the sequence model, the final submission will be ./FinalSubmission/final_version/submission_tta.csv
Set data path in ./setting.py
download [csv.zip]
download [feature samples]
CUDA_VISIBLE_DEVICES=0 python main.py
The final submissions are in the folder ../FinalSubmission/version2/submission_tta.csv
- 0.04383
If you find our work useful in your research or if you use parts of this code please consider citing our paper:
title={A deep learning algorithm for automatic detection and classification of acute intracranial hemorrhages in head CT scans},
author={Wang, Xiyue and Shen, Tao and Yang, Sen and Lan, Jun and Xu, Yanming and Wang, Minghui and Zhang, Jing and Han, Xiao},
journal={NeuroImage: Clinical},
volume={32},
pages={102785},
year={2021},
publisher={Elsevier}
}
- Pre-trained models
- 2DCNN + SeqModel end-to-end training
- 3DCNN training