SimSAM: Zero-shot Medical Image Segmentation via Simulated Interaction
<|reference_start|>SimSAM: Zero-shot Medical Image Segmentation via Simulated Interaction: The recently released Segment Anything Model (SAM) has shown powerful zero-shot segmentation capabilities through a semi-automatic annotation setup in which the user can provide a prompt in the form of clicks or bounding boxes. There is growing interest around applying this to medical imaging, where the cost of obtaining expert annotations is high, privacy restrictions may limit sharing of patient data, and model generalisation is often poor. However, there are large amounts of inherent uncertainty in medical images, due to unclear object boundaries, low-contrast media, and differences in expert labelling style. Currently, SAM is known to struggle in a zero-shot setting to adequately annotate the contours of the structure of interest in medical images, where the uncertainty is often greatest, thus requiring significant manual correction. To mitigate this, we introduce \textbf{Sim}ulated Interaction for \textbf{S}egment \textbf{A}nything \textbf{M}odel (\textsc{\textbf{SimSAM}}), an approach that leverages simulated user interaction to generate an arbitrary number of candidate masks, and uses a novel aggregation approach to output the most compatible mask. Crucially, our method can be used during inference directly on top of SAM, without any additional training requirement. Quantitatively, we evaluate our method across three publicly available medical imaging datasets, and find that our approach leads to up to a 15.5\% improvement in contour segmentation accuracy compared to zero-shot SAM. Our code is available at \url{https://github.com/BenjaminTowle/SimSAM}.<|reference_end|>
@article{towle2024simsam:,
    title={SimSAM: Zero-shot Medical Image Segmentation via Simulated Interaction},
    author={Benjamin Towle, Xin Chen and Ke Zhou},
    journal={arXiv preprint arXiv:2406.00663},
    year={2024},
    archivePrefix={arXiv},
    eprint={2406.00663},
    primaryClass={cs.CV cs.AI cs.LG}
}