{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/scribbleprompt-fast-and-flexible-interactive","title":"ScribblePrompt: Fast and Flexible Interactive Segmentation for Any Biomedical Image","arxiv_id":"2312.07381","date":"2023-12-12","proceeding":null,"authors":["Hallee E. Wong","Marianne Rakic","John Guttag","Adrian V. Dalca"],"abstract":"Biomedical image segmentation is a crucial part of both scientific research and clinical care. With enough labelled data, deep learning models can be trained to accurately automate specific biomedical image segmentation tasks. However, manually segmenting images to create training data is highly labor intensive and requires domain expertise. We present \\emph{ScribblePrompt}, a flexible neural network based interactive segmentation tool for biomedical imaging that enables human annotators to segment previously unseen structures using scribbles, clicks, and bounding boxes. Through rigorous quantitative experiments, we demonstrate that given comparable amounts of interaction, ScribblePrompt produces more accurate segmentations than previous methods on datasets unseen during training. In a user study with domain experts, ScribblePrompt reduced annotation time by 28% while improving Dice by 15% compared to the next best method. ScribblePrompt's success rests on a set of careful design decisions. These include a training strategy that incorporates both a highly diverse set of images and tasks, novel algorithms for simulated user interactions and labels, and a network that enables fast inference. We showcase ScribblePrompt in an interactive demo, provide code, and release a dataset of scribble annotations at https://scribbleprompt.csail.mit.edu","url_abs":"https://arxiv.org/abs/2312.07381v3","url_pdf":"https://arxiv.org/pdf/2312.07381v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"scribbleprompt-fast-and-flexible-interactive","repo_url":"https://github.com/halleewong/ScribblePrompt","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"image-segmentation","task_name":"Image Segmentation"},{"task_slug":"interactive-segmentation","task_name":"Interactive Segmentation"},{"task_slug":"medical-image-segmentation","task_name":"Medical Image Segmentation"},{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[{"method_slug":"focus","method_name":"Focus"},{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2312.07381","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.07381"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/halleewong/ScribblePrompt","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":3,"unverified":6},"by_repo_kind":{"official":{"samples":9,"ran":3,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"4c201fecc5928f5f","entry":"binary_focal_cross_entropy","repo":"halleewong/ScribblePrompt","repo_kind":"official","path":"scribbleprompt/loss/focal_dice.py","file_url":"https://github.com/halleewong/ScribblePrompt/blob/HEAD/scribbleprompt/loss/focal_dice.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4c201fecc5928f5f"}},{"code_sha256_prefix":"ec185b4c4929868b","entry":"rescale_inputs","repo":"halleewong/ScribblePrompt","repo_kind":"official","path":"scribbleprompt/models/unet.py","file_url":"https://github.com/halleewong/ScribblePrompt/blob/HEAD/scribbleprompt/models/unet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ec185b4c4929868b"}},{"code_sha256_prefix":"29421035d6d0e780","entry":"scribbles_to_clicks","repo":"halleewong/ScribblePrompt","repo_kind":"official","path":"scribbleprompt/models/sam.py","file_url":"https://github.com/halleewong/ScribblePrompt/blob/HEAD/scribbleprompt/models/sam.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"29421035d6d0e780"}},{"code_sha256_prefix":"76f4ba705e24fc08","entry":"RandomScale","repo":"halleewong/ScribblePrompt","repo_kind":"official","path":"scribbleprompt/augmentation/geometry.py","file_url":"https://github.com/halleewong/ScribblePrompt/blob/HEAD/scribbleprompt/augmentation/geometry.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"76f4ba705e24fc08"}},{"code_sha256_prefix":"c1f2516b575d2e1d","entry":"RandomShear","repo":"halleewong/ScribblePrompt","repo_kind":"official","path":"scribbleprompt/augmentation/geometry.py","file_url":"https://github.com/halleewong/ScribblePrompt/blob/HEAD/scribbleprompt/augmentation/geometry.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c1f2516b575d2e1d"}},{"code_sha256_prefix":"8eb62c25a8d9519d","entry":"RandomTranslate","repo":"halleewong/ScribblePrompt","repo_kind":"official","path":"scribbleprompt/augmentation/geometry.py","file_url":"https://github.com/halleewong/ScribblePrompt/blob/HEAD/scribbleprompt/augmentation/geometry.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8eb62c25a8d9519d"}},{"code_sha256_prefix":"73ca67530aed024c","entry":"augmentations_from_config","repo":"halleewong/ScribblePrompt","repo_kind":"official","path":"scribbleprompt/augmentation/containers.py","file_url":"https://github.com/halleewong/ScribblePrompt/blob/HEAD/scribbleprompt/augmentation/containers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"73ca67530aed024c"}},{"code_sha256_prefix":"b3e2d469d9e7fae8","entry":"click_onehot","repo":"halleewong/ScribblePrompt","repo_kind":"official","path":"scribbleprompt/models/unet.py","file_url":"https://github.com/halleewong/ScribblePrompt/blob/HEAD/scribbleprompt/models/unet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b3e2d469d9e7fae8"}},{"code_sha256_prefix":"a2294a98b783fc03","entry":"prepare_inputs","repo":"halleewong/ScribblePrompt","repo_kind":"official","path":"scribbleprompt/models/unet.py","file_url":"https://github.com/halleewong/ScribblePrompt/blob/HEAD/scribbleprompt/models/unet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a2294a98b783fc03"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}