--- 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](https://datasets.simula.no/kvasir-seg/). 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 ```python 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 ```python 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](show_batch.png) #### Learner Create learner with Dice and JaccardCoeff metrics ```python learn = unet_learner(dls, resnet34, metrics=[Dice, JaccardCoeff]).to_fp16() ``` #### Learning rate Learning rate finder ![lr_find](lr_find.png) #### 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](loss_graph.png) #### Results Visualization of results Target/Prediction ![show_results](show_results.png) Top losses ![top_losses](top_losses.png) #### Libraries used: `huggingface_hub.__version__` `'0.8.1'` `fastai.__version__` `'2.6.3'`