{"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/focalclick-towards-practical-interactive","title":"FocalClick: Towards Practical Interactive Image Segmentation","arxiv_id":"2204.02574","date":"2022-04-06","proceeding":"CVPR 2022 1","authors":["Xi Chen","Zhiyan Zhao","Yilei Zhang","Manni Duan","Donglian Qi","Hengshuang Zhao"],"abstract":"Interactive segmentation allows users to extract target masks by making positive/negative clicks. Although explored by many previous works, there is still a gap between academic approaches and industrial needs: first, existing models are not efficient enough to work on low power devices; second, they perform poorly when used to refine preexisting masks as they could not avoid destroying the correct part. FocalClick solves both issues at once by predicting and updating the mask in localized areas. For higher efficiency, we decompose the slow prediction on the entire image into two fast inferences on small crops: a coarse segmentation on the Target Crop, and a local refinement on the Focus Crop. To make the model work with preexisting masks, we formulate a sub-task termed Interactive Mask Correction, and propose Progressive Merge as the solution. Progressive Merge exploits morphological information to decide where to preserve and where to update, enabling users to refine any preexisting mask effectively. FocalClick achieves competitive results against SOTA methods with significantly smaller FLOPs. It also shows significant superiority when making corrections on preexisting masks. Code and data will be released at github.com/XavierCHEN34/ClickSEG","url_abs":"https://arxiv.org/abs/2204.02574v2","url_pdf":"https://arxiv.org/pdf/2204.02574v2.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":"focalclick-towards-practical-interactive","repo_url":"https://github.com/XavierCHEN34/ClickSEG","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-segmentation","task_name":"Image Segmentation"},{"task_slug":"interactive-segmentation","task_name":"Interactive Segmentation"},{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[],"datasets_introduced":[{"slug":"davis-585","name":"DAVIS-585","full_name":"DAVIS-585"}],"methods_introduced":[],"results":[{"leaderboard":"/sota/interactive-segmentation-on-berkeley","task":"Interactive Segmentation","dataset":"Berkeley","model":"FocalClick-B3-S2","rank_in_archive_order":2,"of":14,"metrics":{"NoC@90":"1.48"},"uses_additional_data":true},{"leaderboard":"/sota/interactive-segmentation-on-davis","task":"Interactive Segmentation","dataset":"DAVIS","model":"FocalClick-B3-S2","rank_in_archive_order":2,"of":15,"metrics":{"NoC@85":"2.92","NoC@90":"4.52"},"uses_additional_data":true},{"leaderboard":"/sota/interactive-segmentation-on-davis-585","task":"Interactive Segmentation","dataset":"DAVIS-585","model":"FocalClick-B3-S2","rank_in_archive_order":2,"of":2,"metrics":{"NoC@90":"2.76"},"uses_additional_data":true},{"leaderboard":"/sota/interactive-segmentation-on-sbd","task":"Interactive Segmentation","dataset":"SBD","model":"FocalClick","rank_in_archive_order":7,"of":14,"metrics":{"NoC@85":"3.53","NoC@90":"5.59"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2204.02574","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2204.02574"}},"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":"deterministic:regex_extraction","url":"https://github.com/XavierCHEN34/ClickSEG","reach":null}],"summary":{"ran":9,"ran_draft_wrong":2,"ran_fixture":1,"unverified":9},"by_repo_kind":{"official":{"samples":20,"ran":12,"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":1,"samples":[{"code_sha256_prefix":"339f5051599196e6","entry":"BatchImageNormalize","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"339f5051599196e6"}},{"code_sha256_prefix":"d040bbf8b42c1853","entry":"BottleneckV1b","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d040bbf8b42c1853"}},{"code_sha256_prefix":"36ecf3e15546035e","entry":"ConvModule","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"36ecf3e15546035e"}},{"code_sha256_prefix":"e0f1a4750642d91b","entry":"ObjectAttentionBlock2D","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e0f1a4750642d91b"}},{"code_sha256_prefix":"7c22256846b5a788","entry":"ScaleLayer","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"7c22256846b5a788"}},{"code_sha256_prefix":"fc329aee6357b551","entry":"SpatialGather_Module","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fc329aee6357b551"}},{"code_sha256_prefix":"7936d6a591621025","entry":"SpatialOCR_Module","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"7936d6a591621025"}},{"code_sha256_prefix":"44f751550a0af371","entry":"XConvBnRelu","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"44f751550a0af371"}},{"code_sha256_prefix":"532fac016c7c896a","entry":"get_classname","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"532fac016c7c896a"}},{"code_sha256_prefix":"93ae2e1088f964ad","entry":"get_default_params","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"93ae2e1088f964ad"}},{"code_sha256_prefix":"55bc02c6846634c4","entry":"resize","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"55bc02c6846634c4"}},{"code_sha256_prefix":"a4cd31544f3ea2b5","entry":"serialize","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"a4cd31544f3ea2b5"}},{"code_sha256_prefix":"7e0099013f714d0b","entry":"BasicBlockV1b","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"7e0099013f714d0b"}},{"code_sha256_prefix":"524aba093ebca5b5","entry":"DistMaps","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"524aba093ebca5b5"}},{"code_sha256_prefix":"5eac58acde5ed053","entry":"HRNetModel","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"5eac58acde5ed053"}},{"code_sha256_prefix":"c3e49580d712bb6f","entry":"HighResolutionModule","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"c3e49580d712bb6f"}},{"code_sha256_prefix":"79f5c9927f655378","entry":"HighResolutionNet","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"79f5c9927f655378"}},{"code_sha256_prefix":"0467c4cb28e2a662","entry":"ISModel","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"0467c4cb28e2a662"}},{"code_sha256_prefix":"2028862f40603cc7","entry":"LRMult","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"2028862f40603cc7"}},{"code_sha256_prefix":"f8c13074d5a56e32","entry":"RefineLayer","repo":"XavierCHEN34/ClickSEG","repo_kind":"official","path":"isegm/model/is_hrnet_model.py","file_url":"https://github.com/XavierCHEN34/ClickSEG/blob/HEAD/isegm/model/is_hrnet_model.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":"f8c13074d5a56e32"}},{"code_sha256_prefix":"8bb23b71c17a0a25","entry":"split_points_by_order","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"8bb23b71c17a0a25"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}