Model card
Model description
Fastai unet
created with unet_learner
using resnet34
Intended uses & limitations
This is only used for demonstration of fine tuning capabilities with fastai. It may be useful for further research. This model should not be used for gastrointestinal polyp diagnosis.
Training and evaluation data
The model was trained on Kvasir SEG dataset. Kvasir SEG is an open-access dataset of gastrointestinal polyp images and corresponding segmentation masks, manually annotated and verified by an experienced gastroenterologist.
20% of the data set were used as validation set and 80% as training set.
Model training details:
Data pre-processing
Masks were converted to 1 bit images: 0 for background and 1 for mask using
Path('/notebooks/Kvasir-SEG/masks1b-binary').mkdir(parents=True, exist_ok=True)
for img_path in tqdm(get_image_files(path/'masks')):
img = Image.open(img_path)
thresh = 127
fn = lambda x : 1 if x > thresh else 0
img1b = img.convert('L').point(fn)
img1b.save(path/'masks1b-binary'/f'{img_path.stem}.png')
Data loaders
SegmentationDataloaders
were used to create fastai data loaders
def label_func(fn): return path/'masks1b-binary'/f'{fn.stem}.png'
dls = SegmentationDataLoaders.from_label_func(
path, bs=24, fnames = get_image_files(path/'images'),
label_func = label_func,
codes = list(range(2)),
item_tfms=Resize(320),
batch_tfms=aug_transforms(size=224, flip_vert=True)
)
Learner
Create learner with Dice and JaccardCoeff metrics
learn = unet_learner(dls, resnet34, metrics=[Dice, JaccardCoeff]).to_fp16()
Learning rate
Fine tuning
Fine tuning for 12 epochslearn.fine_tune(12, 1e-4)
epoch train_loss valid_loss dice jaccard_coeff time
0 0.582160 0.433768 0.593044 0.421508 00:38
epoch train_loss valid_loss dice jaccard_coeff time
0 0.307588 0.261374 0.712569 0.553481 00:38
1 0.261775 0.232007 0.714458 0.555764 00:38
2 0.246054 0.227708 0.781048 0.640754 00:38
3 0.224612 0.185920 0.796701 0.662097 00:39
4 0.208768 0.179064 0.821945 0.697714 00:39
5 0.192531 0.171336 0.816464 0.689851 00:39
6 0.177166 0.167357 0.820771 0.696023 00:39
7 0.168222 0.158182 0.838388 0.721745 00:39
8 0.155157 0.161950 0.829525 0.708709 00:39
9 0.148792 0.164533 0.828383 0.707043 00:38
10 0.143541 0.158669 0.833519 0.714559 00:39
11 0.140083 0.159437 0.832745 0.713422 00:38
Results
Visualization of results
Target/Prediction
Libraries used:
huggingface_hub.__version__
'0.8.1'
fastai.__version__
'2.6.3'