--- license: apache-2.0 tags: - image-segmentation - vision - fundus - optic disc - optic cup widget: - src: >- https://huggingface.co/pamixsun/swinv2_tiny_for_glaucoma_classification/resolve/main/example.jpg example_title: fundus image --- # Model Card for Model ID This SegFormer model has undergone specialized fine-tuning on the [REFUGE challenge dataset](https://refuge.grand-challenge.org/), a public benchmark for semantic segmentation of anatomical structures in retinal fundus images. The fine-tuning enables expert-level segmentation of the optic disc and optic cup, two critical structures for ophthalmological diagnosis. ## Model Details ### Model Description - **Developed by:** [Xu Sun](https://pamixsun.github.io) - **Shared by:** [Xu Sun](https://pamixsun.github.io) - **Model type:** Image segmentation - **License:** Apache-2.0 ## Uses This pretrained model enables semantic segmentation of key anatomical structures, namely, the optic disc and optic cup, in retinal fundus images. It takes fundus images as input and outputs the segmentation results. ## Bias, Risks, and Limitations The model has undergone specialized training and fine-tuning exclusively using retinal fundus images, with the objective to perform semantic segmentation of anatomical structures including the optic disc and optic cup. Therefore, in order to derive optimal segmentation performance, it is imperative to ensure that only fundus images are entered as inputs to this model. ## How to Get Started with the Model Use the code below to get started with the model. ```python import cv2 import torch import numpy as np from torch import nn from transformers import AutoImageProcessor, SegformerForSemanticSegmentation image = cv2.imread('./example.jpg') image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) processor = AutoImageProcessor.from_pretrained("pamixsun/segformer_for_optic_disc_cup_segmentation") model = SegformerForSemanticSegmentation.from_pretrained("pamixsun/segformer_for_optic_disc_cup_segmentation") inputs = processor(image, return_tensors="pt") with torch.no_grad(): outputs = model(**inputs) logits = outputs.logits.cpu() upsampled_logits = nn.functional.interpolate( logits, size=image.shape[:2], mode="bilinear", align_corners=False, ) pred_disc_cup = upsampled_logits.argmax(dim=1)[0].numpy().astype(np.uint8) ``` ## Citation [optional] **BibTeX:** [More Information Needed] **APA:** [More Information Needed] ## Model Card Contact - pamixsun@gmail.com