kvasir-seg / README.md
miwojc's picture
Update README.md
7d4846a
metadata
tags:
  - fastai

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)
)

An sample of training images: show_batch

Learner

Create learner with Dice and JaccardCoeff metrics

learn = unet_learner(dls, resnet34, metrics=[Dice, JaccardCoeff]).to_fp16()

Learning rate

Learning rate finder lr_find

Fine tuning

Fine tuning for 12 epochs
learn.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

loss_graph

Results

Visualization of results
Target/Prediction show_results

Top losses top_losses

Libraries used:

huggingface_hub.__version__
'0.8.1'

fastai.__version__
'2.6.3'