Files in the root directory are used for the experiments in the paper.
-
main.py
– main function for training. -
usage: main.py [-h] [--dataset {1,2,3}] [--architecture {ResNet50,DenseNet201}] [--pretrain {0,1}] [--fold {1,2,3}] [--index INDEX] [--mode {train,test}] [--savefile {0,1}] Framework for training and evaluation. optional arguments: -h, --help show this help message and exit --dataset {1,2,3}, -d {1,2,3} 1 -- smear baseline, 2 -- smear pipeline, 3 -- LBC pipeline --architecture {ResNet50,DenseNet201}, -a {ResNet50,DenseNet201} choose a network architecture --pretrain {0,1}, -p {0,1} use pre-trained weights on ImageNet --fold {1,2,3}, -f {1,2,3} Dataset 1&2: 3 folds; Dataset 3: 2 folds. --index INDEX, -i INDEX index for multiple training to get STD --mode {train,test}, -m {train,test} train or test --savefile {0,1}, -s {0,1} if save results to csv files
-
collect_results.sh
– bash script to run the experiments. -
make_results.py
– make results table in the paper, and table for the plots in the paper.
In each dataset, the ResNet_aug{1-3}.hdf5
in each ./logs{1-{2|3}}/
represent 3 models trained for 2 or 3 folds.
Here are some common files exists in all 3 datasets' directory.
data_split.sh
– to split data from../Patches/Z_focused/
into../Patches/data_train{1-3}/
and../Patches/data_test{1-3}/
, should be adjusted to each dataset before using.randomfilerenamer.py
– rename files in a directory randomly. This should be used on the training data before training. It is called in thedata_split.sh
.
Dataset 1 is relatively small. It can be trained and evaluated fast on local laptops. Here contains the code to use locally and also for some attempts:
./slide_mosaic1_oldsmear/
– mosaics consists of 10 * 10 patches from each glass, in order to give an overview of the dataset.
Dataset 2 is specifically used for evaluating the impact of
- focus level
- color channel
on the classification results. Here contains several files:
focus_augmentation.py
– to generate out-of-focus patches in separate folders like./Z_focused_n/
.data_split_focusaug_train.sh
– to copy data at several focus levels into training folder, and rename the data randomly by callingrandomfilerenamer.py
.data_split_focusaug_test.sh
– to split data in./Z_focused_n/
s into different testing folders like./FocusAugEvaluation/data_test_n/
.focusaug_evaluate.py
– to evaluate the performance of a trained model on test sets at different focus levels and write the results into./focus_results_data2fold1.csv
.extractG.py
– to exact Green channel of the data, and save the original RGB data to backup folders../slide_mosaic2_newsmear/
– mosaics consists of 16 * 16 patches from each glass, in order to give an overview of the dataset.
./slide_mosaic3_LBC/
– mosaics consists of 16 * 16 patches from each glass, in order to give an overview of the dataset.