UNet with a pretrained ResNet-34 encoder for pixel-wise segmentation of Scanning Electron Microscopy (SEM) images of additively manufactured Ni-WC metal matrix composites. Trained to identify five microstructural...
Model source
Source description
UNet with a pretrained ResNet-34 encoder for pixel-wise segmentation of Scanning Electron Microscopy (SEM) images of additively manufactured Ni-WC metal matrix composites. Trained to identify five microstructural phases at pixel level.
Sources
1 sourceVerified Sep 27
Model artifacts
2 artifactsSource excerpts
2 excerpts| Property | Detail |
|---|
| Architecture | UNet + ResNet-34 encoder |
| Encoder weights | ImageNet pretrained |
| Input channels | 1 (grayscale SEM image) |
| Output classes | 5 (pixel-wise segmentation) |
| Framework | PyTorch + segmentation_models_pytorch |
| Training device | Apple MPS (M-series) |
| ID | Phase |
|---|---|
| 0 | Matrix |
| 1 | Carbide |
| 2 | Void |
| 3 | Reprecipitate |
| 4 | Dilution Zone |
Evaluated on 54 held-out test images, scored at image level to avoid batch-size bias.
| Metric | Mean | Std | Min | Max |
|---|---|---|---|---|
| mIoU | 0.872 | 0.088 | 0.723 | 0.958 |
| mDice | 0.912 | 0.079 | 0.759 | 0.978 |
| mBF1 | 0.728 | 0.027 | 0.678 | 0.773 |
| Class | IoU | Dice |
|---|---|---|
| Matrix | 0.939 | 0.969 |
| Carbide | 0.753 | 0.859 |
| Void | 0.976 | 0.988 |
| Reprecipitate | 0.891 | 0.942 |
| Dilution Zone | 0.881 | 0.937 |
| File | Description |
|---|---|
best_model.pth | Best pretrained encoder checkpoint |
ScratchUNet_best_unet.pth | Best scratch-built UNet checkpoint |
pip install torch segmentation-models-pytorch huggingface_hub
import torch
from huggingface_hub import hf_hub_download
import segmentation_models_pytorch as smp
# Download checkpoint
ckpt_path = hf_hub_download(
repo_id="imranlabs/sem-microstructure-segmentation",
filename="best_model.pth"
)
# Rebuild architecture
model = smp.Unet(
encoder_name = "resnet34",
encoder_weights = None, # weights loaded from checkpoint
in_channels = 1,
classes = 5,
activation = None,
)
# Load weights
ckpt = torch.load(ckpt_path, map_location="cpu")
model.load_state_dict(ckpt["model_state"])
model.eval()
# Inference — input: (1, 1, H, W) float32 tensor normalised to [0, 1]
with torch.no_grad():
logits = model(image_tensor) # (1, 5, H, W)
preds = torch.argmax(logits, dim=1) # (1, H, W) class labels
Safdar, M. (2025). Scanning Electron Microscopy (SEM) Dataset of Additively Manufactured Ni-WC Metal Matrix Composites for Semantic Segmentation (Version 1). Zenodo. https://doi.org/10.5281/zenodo.17315241
Imran Khan — Physics PhD · SEM Metrology Engineer · Computer Vision / AI
--- license: mit language: - en tags: - semantic-segmentation - pytorch - unet - resnet34 - materials-science - microscopy - sem - computer-vision - segmentation-models-pytorch datasets: - safdar/sem-ni-wc-metal-matrix-composites metrics: - mean_iou - dice library_name: segmentation_models_pytorch pipeline_tag: image-segmentation --- # SEM Microstructure Semantic Segmentation UNet with a pretrained ResNet-34 encoder for pixel-wise segmentation of Scanning Electron Microscopy (SEM) images of additively manufactured Ni-WC metal matrix composites. Trained to identify five microstructural phases at pixel level. ## Model Details | Property | Detail | |------------------|---------------------------------------------| | Architecture | UNet + ResNet-34 encoder | | Encoder weights | ImageNet pretrained | | Input channels | 1 (grayscale SEM image) | | Output classes | 5 (pixel-wise segmentation) | | Framework | PyTorch + segmentation_models_pytorch | | Training device | Apple MPS (M-series) | ## Classes | ID | Phase | |----|----------------| | 0 | Matrix | | 1 | Carbide | | 2 | Void | | 3 | Reprecipitate | | 4 | Dilution Zone | ## Test Performance Evaluated on 54 held-out test images, scored at image level to avoid batch-size bias. | Metric | Mean | Std | Min | Max | |--------|-------|-------|-------|-------| | mIoU | 0.872 | 0.088 | 0.723 | 0.958 | | mDice | 0.912 | 0.079 | 0.759 | 0.978 | | mBF1 | 0.728 | 0.027 | 0.678 | 0.773 | ### Per-Class Performance | Class | IoU | Dice | |---------------|-------|-------| | Matrix | 0.939 | 0.969 | | Carbide | 0.753 | 0.859 | | Void | 0.976 | 0.988 | | Reprecipitate | 0.891 | 0.942 | | Dilution Zone | 0.881 | 0.937 | ## Files | File | Description | |----------------------------|------------------------------------| | `best_model.pth` | Best pretrained encoder checkpoint | | `ScratchUNet_best_unet.pth`| Best scratch-built UNet checkpoint | ## How to Use ### Install dependencies ```bash pip install torch segmentation-models-pytorch huggingface_hub ``` ### Load and run inference ```python import torch from huggingface_hub import hf_hub_download import segmentation_models_pytorch as smp # Download checkpoint ckpt_path = hf_hub_download( repo_id="imranlabs/sem-microstructure-segmentation", filename="best_model.pth" ) # Rebuild architecture model = smp.Unet( encoder_name = "resnet34", encoder_wei...
Source context: 0 downloads · 0 likes · Pipeline image-segmentation · Library segmentation_models_pytorch · Repo imranlabs/sem-microstructure-segmentation