--- license: apache-2.0 language: en tags: - image-classification - vision-transformer - pytorch - sem - materials-science - nffa-di base_model: google/vit-base-patch32-224-in21k pipeline_tag: image-classification --- # Vision Transformer for SEM Image Classification This is a fine-tuned **Vision Transformer (ViT-B/32)** model for classifying Scanning Electron Microscopy (SEM) images into 10 distinct categories of nanostructures [1]. This model was developed as part of the **NFFA-DI (Nano Foundries and Fine Analysis Digital Infrastructure)** project, funded by the European Union's NextGenerationEU program. ## Model Description The model is based on the `google/vit-base-patch32-224-in21k` checkpoint and has been fine-tuned for a 10-class image classification task on SEM images. The 10 categories cover a wide range of nanostructures: 1. Porous Sponge 2. Patterned Surface 3. Particles 4. Films and Coated Surface 5. Powder 6. Tips 7. Nanowires 8. Biological 9. MEMS devices and electrodes 10. Fibres ## How to Use The following Python code shows how to load the model and its processor from the Hub and use it to classify a local SEM image. ```python from transformers import AutoImageProcessor, AutoModelForImageClassification from PIL import Image import torch # Load the model and image processor from the Hub model_name = "t0m-R/vit-sem-classification" image_processor = AutoImageProcessor.from_pretrained(model_name) model = AutoModelForImageClassification.from_pretrained(model_name) # Load and preprocess the image image_path = "path/to/your/sem_image.jpg" try: image = Image.open(image_path).convert("RGB") # Prepare the image for the model inputs = image_processor(images=image, return_tensors="pt") # Run inference with torch.no_grad(): logits = model(**inputs).logits predicted_label_id = logits.argmax(-1).item() predicted_label = model.config.id2label[predicted_label_id] print(f"Predicted Label: {predicted_label}") except FileNotFoundError: print(f"Error: The file at {image_path} was not found.") ``` ## Training Data This model was fine-tuned on the SEM Majority dataset, the first annotated set of scanning electron microscopy images for nanoscience. The dataset consists of 25,537 SEM images manually classified into 10 categories. The classification labels were verified by a group of nanoscientists, and only images validated by the majority of the group were included in the dataset. The dataset is publicly available at: https://doi.org/10.23728/b2share.e344a8afef08463a855ada08aadbf352 [1] Aversa, Rossella, et al. "The first annotated set of scanning electron microscopy images for nanoscience." Scientific data 5.1 (2018): 1-10.