| # SAM3 Blood Vessel Segmentation | |
| Fine-tuned SAM3 model for blood vessel angiography segmentation. | |
| ## Model Performance | |
| | Model | Dice | IoU | Recall | | |
| |-------|------|-----|--------| | |
| | Original SAM3 | 0.00 | 0.00 | 0.00 | | |
| | Baseline (5 epochs) | 0.79 | 0.66 | 0.73 | | |
| | **Dice Optimized (10 epochs)** | **0.82** | **0.69** | **0.77** | | |
| | Dice Optimized + Post-processing | **0.83** | **0.70** | **0.78** | | |
| ## Files | |
| - `checkpoint_dice_optimized.pt` - **Recommended** - Dice optimized model | |
| - `checkpoint_baseline.pt` - Baseline fine-tuned model | |
| - `sam3_original.pt` - Original SAM3 weights | |
| ## Usage | |
| ```python | |
| from huggingface_hub import hf_hub_download | |
| import torch | |
| from sam3.model_builder import build_sam3_image_model | |
| from sam3.model.sam3_image_processor import Sam3Processor | |
| # Download weights | |
| checkpoint = hf_hub_download( | |
| repo_id="qimingfan10/sam3-vessel-segmentation", | |
| filename="checkpoint_dice_optimized.pt" | |
| ) | |
| # Load model | |
| model = build_sam3_image_model( | |
| checkpoint_path="path/to/sam3_original.pt", | |
| enable_segmentation=True, | |
| device="cuda" | |
| ) | |
| # Load fine-tuned weights | |
| ckpt = torch.load(checkpoint, map_location="cuda") | |
| state_dict = {k.replace('module.', ''): v for k, v in ckpt['model'].items()} | |
| model.load_state_dict(state_dict, strict=False) | |
| model.eval() | |
| # Inference | |
| processor = Sam3Processor(model) | |
| state = processor.set_image(image) | |
| output = processor.set_text_prompt(state=state, prompt="blood vessel") | |
| masks = output["masks"] | |
| ``` | |
| ## Training | |
| See [VESSEL_SEGMENTATION_GUIDE.md](https://github.com/qimingfan10/Sam3/blob/main/VESSEL_SEGMENTATION_GUIDE.md) for training details. | |
| ## Citation | |
| Please cite SAM3 if you use this model. | |