37
37
"id" : " oWi4McPs_NuY"
38
38
},
39
39
"source" : [
40
- " !pip install -qq SimpleITK"
40
+ " !pip install -qq SimpleITK nnunetv2 "
41
41
],
42
42
"execution_count" : null ,
43
43
"outputs" : []
44
44
},
45
+ {
46
+ "cell_type" : " code" ,
47
+ "source" : [
48
+ " %cd /content\n " ,
49
+ " !git clone https://github.com/woctezuma/playing-with-simpleitk.git"
50
+ ],
51
+ "metadata" : {
52
+ "id" : " vL5WJI3NVxIe"
53
+ },
54
+ "execution_count" : null ,
55
+ "outputs" : []
56
+ },
45
57
{
46
58
"cell_type" : " markdown" ,
47
59
"metadata" : {
163
175
"execution_count" : null ,
164
176
"outputs" : []
165
177
},
166
- {
167
- "cell_type" : " code" ,
168
- "source" : [
169
- " %cd /content\n " ,
170
- " !git clone https://github.com/woctezuma/playing-with-simpleitk.git\n "
171
- ],
172
- "metadata" : {
173
- "id" : " h2Jbh5kO7Z9v"
174
- },
175
- "execution_count" : null ,
176
- "outputs" : []
177
- },
178
178
{
179
179
"cell_type" : " code" ,
180
180
"source" : [
204
204
"id" : " HbPo9F8kB31W"
205
205
},
206
206
"source" : [
207
- " %mkdir -p /content/data \n " ,
208
- " %mv /content/playing-with-simpleitk/data/output/* /content/data /"
207
+ " %mkdir -p /content/nnUNet_base/Dataset000_MY_DATASET \n " ,
208
+ " %mv /content/playing-with-simpleitk/data/output/* /content/nnUNet_base/Dataset000_MY_DATASET /"
209
209
],
210
210
"execution_count" : null ,
211
211
"outputs" : []
545
545
" \n " ,
546
546
" output_image_name = input_image_name\n " ,
547
547
" sitk.WriteImage(output_image, output_image_name)\n " ,
548
- " print('Image size: {}'.format(output_image.GetSize()))\n " ,
549
- " "
548
+ " print('Image size: {}'.format(output_image.GetSize()))\n "
550
549
],
551
550
"execution_count" : null ,
552
551
"outputs" : []
572
571
{
573
572
"cell_type" : " code" ,
574
573
"source" : [
575
- " %cd /content\n " ,
576
- " !git clone https://github.com/MIC-DKFZ/nnUNet.git\n " ,
577
- " %cd nnUNet\n " ,
578
- " %pip install -e ."
574
+ " %env nnUNet_raw=/content/nnUNet_base/\n " ,
575
+ " %env nnUNet_preprocessed=/content/nnUNet_preprocessed/\n " ,
576
+ " %env nnUNet_results=/content/RESULTS_FOLDER/"
579
577
],
580
578
"metadata" : {
581
579
"id" : " l3OXi7a40T5b"
582
580
},
583
581
"execution_count" : null ,
584
582
"outputs" : []
585
583
},
586
- {
587
- "cell_type" : " markdown" ,
588
- "metadata" : {
589
- "id" : " lOP7FXOdLP4G"
590
- },
591
- "source" : [
592
- " ### Copy data to the right folder"
593
- ]
594
- },
595
- {
596
- "cell_type" : " code" ,
597
- "metadata" : {
598
- "id" : " 8EHGKR_uKTNA"
599
- },
600
- "source" : [
601
- " %mkdir -p /content/nnUNet_base/nnUNet_raw_splitted/\n " ,
602
- " %mv /content/data /content/nnUNet_base/nnUNet_raw_splitted/Dataset000_MY_DATASET"
603
- ],
604
- "execution_count" : null ,
605
- "outputs" : []
606
- },
607
584
{
608
585
"cell_type" : " markdown" ,
609
586
"metadata" : {
610
587
"id" : " 9jdfq0ZASGDX"
611
588
},
612
589
"source" : [
613
- " ## Edit dataset.json at the root of Task00_MY_DATASET /\n " ,
590
+ " ## Edit dataset.json at the root of Dataset000_MY_DATASET /\n " ,
614
591
" \n " ,
615
- " Reference: https://github.com/MIC-DKFZ/nnUNet/blob /master/nnunet /dataset_conversion/LiverTumorSegmentationChallenge.py "
592
+ " Reference: https://github.com/MIC-DKFZ/nnUNet/tree /master/nnunetv2 /dataset_conversion"
616
593
]
617
594
},
618
- {
619
- "cell_type" : " code" ,
620
- "metadata" : {
621
- "id" : " yrd4WM8CsFLB"
622
- },
623
- "source" : [
624
- " output_folder = \" /content/nnUNet_base/nnUNet_raw_splitted/Dataset000_MY_DATASET/\"\n " ,
625
- " \n " ,
626
- " train_ids = [\n " ,
627
- " 'patientID{}'.format(patient_no)\n " ,
628
- " for patient_no in get_patient_indices()\n " ,
629
- " ]"
630
- ],
631
- "execution_count" : null ,
632
- "outputs" : []
633
- },
634
595
{
635
596
"cell_type" : " code" ,
636
597
"metadata" : {
641
602
" import json\n " ,
642
603
" from collections import OrderedDict\n " ,
643
604
" \n " ,
605
+ " output_folder = \" /content/nnUNet_base/Dataset000_MY_DATASET/\"\n " ,
606
+ " \n " ,
644
607
" json_dict = OrderedDict()\n " ,
645
608
" \n " ,
646
609
" json_dict['channel_names'] = {\n " ,
652
615
" \" liver\" : 1,\n " ,
653
616
" }\n " ,
654
617
" \n " ,
655
- " json_dict['numTraining'] = len(train_ids)\n " ,
618
+ " num_patients = len(get_patient_indices())\n " ,
619
+ " json_dict['numTraining'] = num_patients\n " ,
656
620
" json_dict['file_ending'] = \" .nii.gz\"\n " ,
657
621
" \n " ,
658
- " # json_dict['training'] = [{'image': \" ./imagesTr/%s.nii.gz\" % i, \" label\" : \" ./labelsTr/%s.nii.gz\" % i} for i in train_ids]\n " ,
659
- " # json_dict['test'] = [\" ./imagesTs/%s.nii.gz\" % i for i in test_ids]\n " ,
660
- " \n " ,
661
622
" with open(os.path.join(output_folder, \" dataset.json\" ), 'w') as f:\n " ,
662
623
" json.dump(json_dict, f, indent=4, sort_keys=True)"
663
624
],
664
625
"execution_count" : null ,
665
626
"outputs" : []
666
627
},
667
- {
668
- "cell_type" : " markdown" ,
669
- "metadata" : {
670
- "id" : " IhKCU_jl0gIU"
671
- },
672
- "source" : [
673
- " ## How many processes (pl, pf) on Google Colab?\n " ,
674
- " \n " ,
675
- " Apparently, 2.\n "
676
- ]
677
- },
678
- {
679
- "cell_type" : " code" ,
680
- "metadata" : {
681
- "id" : " Tj-lOLy26lJt"
682
- },
683
- "source" : [
684
- " !cat /proc/cpuinfo"
685
- ],
686
- "execution_count" : null ,
687
- "outputs" : []
688
- },
689
628
{
690
629
"cell_type" : " markdown" ,
691
630
"metadata" : {
698
637
{
699
638
"cell_type" : " code" ,
700
639
"source" : [
701
- " %cd /content/nnUNet/nnunetv2"
702
- ],
703
- "metadata" : {
704
- "id" : " FO53PI9-23v1"
705
- },
706
- "execution_count" : null ,
707
- "outputs" : []
708
- },
709
- {
710
- "cell_type" : " code" ,
711
- "source" : [
712
- " %env nnUNet_raw=/content/nnUNet_base/nnUNet_raw_splitted/\n " ,
713
- " %env nnUNet_preprocessed=/content/nnUNet_preprocessed/\n " ,
714
- " %env nnUNet_results=/content/RESULTS_FOLDER/"
715
- ],
716
- "metadata" : {
717
- "id" : " 0v4Ty7Vi9Uzh"
718
- },
719
- "execution_count" : null ,
720
- "outputs" : []
721
- },
722
- {
723
- "cell_type" : " code" ,
724
- "source" : [
725
- " !nnUNetv2_plan_and_preprocess -d 0 --verify_dataset_integrity"
640
+ " !nnUNetv2_plan_and_preprocess -d 000 --verify_dataset_integrity"
726
641
],
727
642
"metadata" : {
728
643
"id" : " JrqUAqQH3GQ8"
750
665
" ## Training"
751
666
]
752
667
},
753
- {
754
- "cell_type" : " code" ,
755
- "metadata" : {
756
- "id" : " Ns26aJUi2O1V"
757
- },
758
- "source" : [
759
- " !python run/run_training.py -h"
760
- ],
761
- "execution_count" : null ,
762
- "outputs" : []
763
- },
764
668
{
765
669
"cell_type" : " code" ,
766
670
"metadata" : {
767
671
"id" : " WC_sIpdZ2E8I"
768
672
},
769
673
"source" : [
770
- " !OMP_NUM_THREADS=1 python run/run_training.py Dataset000_MY_DATASET 3d_fullres all"
674
+ " !nnUNetv2_train Dataset000_MY_DATASET 3d_fullres all\n " ,
675
+ " \n " ,
676
+ " # To continue training, add --c as follows:\n " ,
677
+ " # !nnUNetv2_train Dataset000_MY_DATASET 3d_fullres all --c"
771
678
],
772
679
"execution_count" : null ,
773
680
"outputs" : []
781
688
" ## Inference"
782
689
]
783
690
},
784
- {
785
- "cell_type" : " code" ,
786
- "metadata" : {
787
- "id" : " cNDhwjmSsrCe"
788
- },
789
- "source" : [
790
- " !OMP_NUM_THREADS=1 python inference/predict_from_raw_data.py -h"
791
- ],
792
- "execution_count" : null ,
793
- "outputs" : []
794
- },
795
691
{
796
692
"cell_type" : " code" ,
797
693
"metadata" : {
798
694
"id" : " NujgNKHarzLw"
799
695
},
800
696
"source" : [
801
- " INPUT_FOLDER='/content/nnUNet_base/nnUNet_raw_splitted/ Dataset000_MY_DATASET/imagesTr/'"
697
+ " INPUT_FOLDER='/content/nnUNet_base/Dataset000_MY_DATASET/imagesTr/'"
802
698
],
803
699
"execution_count" : null ,
804
700
"outputs" : []
837
733
"execution_count" : null ,
838
734
"outputs" : []
839
735
},
840
- {
841
- "cell_type" : " code" ,
842
- "source" : [
843
- " %pip install nnunetv2"
844
- ],
845
- "metadata" : {
846
- "id" : " HcvYQtXfDssP"
847
- },
848
- "execution_count" : null ,
849
- "outputs" : []
850
- },
851
736
{
852
737
"cell_type" : " code" ,
853
738
"metadata" : {
854
739
"id" : " zf9hZKqCrNph"
855
740
},
856
741
"source" : [
857
- " !nnUNetv2_predict -i $INPUT_FOLDER -o $OUTPUT_FOLDER -d Dataset000_MY_DATASET -f all -c 3d_fullres"
742
+ " for fname in [\" 2d\" , \" 3d_fullres\" ]\n " ,
743
+ " %cd /content/RESULTS_FOLDER/Dataset000_MY_DATASET/nnUNetTrainer__nnUNetPlans__{fname}/fold_all\n " ,
744
+ " %cp checkpoint_best.pth checkpoint_final.pth\n " ,
745
+ " \n " ,
746
+ " # !nnUNetv2_predict -i $INPUT_FOLDER -o $OUTPUT_FOLDER -d Dataset000_MY_DATASET -f all -c 3d_fullres\n " ,
747
+ " !nnUNetv2_predict -i $INPUT_FOLDER -o $OUTPUT_FOLDER -d Dataset000_MY_DATASET -f all -c 2d"
858
748
],
859
749
"execution_count" : null ,
860
750
"outputs" : []
878
768
" import SimpleITK as sitk\n " ,
879
769
" \n " ,
880
770
" dice_scores = []\n " ,
881
- " original_data_folder = '/content/nnUNet_base/nnUNet_raw_splitted/ Dataset000_MY_DATASET/'\n " ,
771
+ " original_data_folder = '/content/nnUNet_base/Dataset000_MY_DATASET/'\n " ,
882
772
" downsampled_data_folder = '/content/data/'\n " ,
883
773
" \n " ,
884
774
" for patient_no in get_patient_indices():\n " ,
913
803
],
914
804
"execution_count" : null ,
915
805
"outputs" : []
916
- },
917
- {
918
- "cell_type" : " markdown" ,
919
- "metadata" : {
920
- "id" : " mNWntxcMtOpx"
921
- },
922
- "source" : [
923
- " [DONE] Download data and display segmentation overlayed on CT images with ITK-SNAP."
924
- ]
925
806
}
926
807
]
927
808
}
0 commit comments