Instructions to use GleghornLab/lymph_node_segmentation with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use GleghornLab/lymph_node_segmentation with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-segmentation", model="GleghornLab/lymph_node_segmentation")# Load model directly from transformers import UNetForSegmentation model = UNetForSegmentation.from_pretrained("GleghornLab/lymph_node_segmentation", dtype="auto") - Notebooks
- Google Colab
- Kaggle
| license: mit | |
| tags: | |
| - image-segmentation | |
| - multilabel | |
| - unet | |
| - pytorch | |
| - medical-imaging | |
| library_name: transformers | |
| pipeline_tag: image-segmentation | |
| # LN_segmentation_sweep | |
| A unet model for multilabel image segmentation trained with sliding window approach. | |
| ## Model Description | |
| - **Architecture:** unet | |
| - **Input Channels:** 3 | |
| - **Output Classes:** 4 | |
| - **Base Filters:** 128 | |
| - **Window Size:** 128 | |
| - **Downsample Factor:** 1.0 | |
| ### Model-Specific Parameters | |
| ## Training Configuration | |
| | Parameter | Value | | |
| |-----------|-------| | |
| | Batch Size | 8 | | |
| | Learning Rate | 7.77451918775676e-06 | | |
| | Weight Decay | 0.00164040349077736 | | |
| | Epochs | 100 | | |
| | Patience | 10 | | |
| | Dataset | GleghornLab/Semi-Automated_LN_Segmentation_10_11_2025 | | |
| ## Test Performance Metrics | |
| | Metric | Mean | Class 0 | Class 1 | Class 2 | Class 3 | | |
| |--------|------|--------|--------|--------|--------| | |
| | Dice | 0.7781 | 0.7197 | 0.7614 | 0.7271 | 0.9040 | | |
| | IoU | 0.6524 | 0.5708 | 0.6199 | 0.5929 | 0.8261 | | |
| | F1 | 0.7781 | 0.7197 | 0.7614 | 0.7271 | 0.9040 | | |
| | MCC | 0.7832 | 0.7308 | 0.7730 | 0.7440 | 0.8850 | | |
| | ROC AUC | 0.9945 | 0.9945 | 0.9975 | 0.9917 | 0.9943 | | |
| | PR AUC | 0.9076 | 0.8357 | 0.9108 | 0.9095 | 0.9743 | | |
| ## Usage | |
| ```python | |
| import numpy as np | |
| from model import MODEL_REGISTRY, SegmentationConfig | |
| # Load model | |
| config = SegmentationConfig.from_pretrained("aholk/LN_segmentation_sweep") | |
| model = MODEL_REGISTRY["unet"].from_pretrained("aholk/LN_segmentation_sweep") | |
| model.eval() | |
| # Run inference on a full image with sliding window | |
| image = np.random.rand(2048, 2048, 3).astype(np.float32) # Your image here | |
| probs = model.predict_full_image( | |
| image, | |
| dim=128, | |
| batch_size=16, | |
| device="cuda" # or "cpu" | |
| ) | |
| # probs shape: (num_classes, H, W) with values in [0, 1] | |
| # Threshold to get binary masks | |
| masks = (probs > 0.5).astype(np.uint8) | |
| ``` | |
| ## Citation | |
| If you use this model, please cite: | |
| ```bibtex | |
| @software{windowz_segmentation, | |
| title={Multilabel Image Segmentation with Sliding Window U-Net}, | |
| author={Gleghorn Lab}, | |
| year={2025}, | |
| url={https://github.com/GleghornLab/ComputerVision2} | |
| } | |
| ``` | |