{"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/pranet-parallel-reverse-attention-network-for","title":"PraNet: Parallel Reverse Attention Network for Polyp Segmentation","arxiv_id":"2006.11392","date":"2020-06-13","proceeding":null,"authors":["Deng-Ping Fan","Ge-Peng Ji","Tao Zhou","Geng Chen","Huazhu Fu","Jianbing Shen","Ling Shao"],"abstract":"Colonoscopy is an effective technique for detecting colorectal polyps, which are highly related to colorectal cancer. In clinical practice, segmenting polyps from colonoscopy images is of great importance since it provides valuable information for diagnosis and surgery. However, accurate polyp segmentation is a challenging task, for two major reasons: (i) the same type of polyps has a diversity of size, color and texture; and (ii) the boundary between a polyp and its surrounding mucosa is not sharp. To address these challenges, we propose a parallel reverse attention network (PraNet) for accurate polyp segmentation in colonoscopy images. Specifically, we first aggregate the features in high-level layers using a parallel partial decoder (PPD). Based on the combined feature, we then generate a global map as the initial guidance area for the following components. In addition, we mine the boundary cues using a reverse attention (RA) module, which is able to establish the relationship between areas and boundary cues. Thanks to the recurrent cooperation mechanism between areas and boundaries, our PraNet is capable of calibrating any misaligned predictions, improving the segmentation accuracy. Quantitative and qualitative evaluations on five challenging datasets across six metrics show that our PraNet improves the segmentation accuracy significantly, and presents a number of advantages in terms of generalizability, and real-time segmentation efficiency.","url_abs":"https://arxiv.org/abs/2006.11392v4","url_pdf":"https://arxiv.org/pdf/2006.11392v4.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":"pranet-parallel-reverse-attention-network-for","repo_url":"https://github.com/DengPingFan/PraNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"pranet-parallel-reverse-attention-network-for","repo_url":"https://github.com/GewelsJI/PNS-Net","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"pranet-parallel-reverse-attention-network-for","repo_url":"https://github.com/Thehunk1206/PRANet-Polyps-Segmentation","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"pranet-parallel-reverse-attention-network-for","repo_url":"https://github.com/yuwenlo/hardnet-dfus","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"camouflage-segmentation","task_name":"Camouflage Segmentation"},{"task_slug":"camouflaged-object-segmentation","task_name":"Camouflaged Object Segmentation"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"medical-image-segmentation","task_name":"Medical Image Segmentation"},{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"video-polyp-segmentation","task_name":"Video Polyp Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/camouflaged-object-segmentation-on-camo","task":"Camouflaged Object Segmentation","dataset":"CAMO","model":"PraNet","rank_in_archive_order":10,"of":14,"metrics":{"MAE":"0.094","S-Measure":"0.769","Weighted F-Measure":"0.663"},"uses_additional_data":true},{"leaderboard":"/sota/camouflaged-object-segmentation-on-pcod-1200","task":"Camouflaged Object Segmentation","dataset":"PCOD_1200","model":"PraNet","rank_in_archive_order":3,"of":16,"metrics":{"S-Measure":"0.904"},"uses_additional_data":false},{"leaderboard":"/sota/medical-image-segmentation-on-cvc-clinicdb","task":"Medical Image Segmentation","dataset":"CVC-ClinicDB","model":"PraNet","rank_in_archive_order":44,"of":48,"metrics":{"mean Dice":"0.8990"},"uses_additional_data":false},{"leaderboard":"/sota/medical-image-segmentation-on-cvc-colondb","task":"Medical Image Segmentation","dataset":"CVC-ColonDB","model":"PraNet","rank_in_archive_order":25,"of":25,"metrics":{"Average MAE":"0.045","S-Measure":"0.819","mIoU":"0.649","max E-Measure":"0.869","mean Dice":"0.709"},"uses_additional_data":false},{"leaderboard":"/sota/medical-image-segmentation-on-etis","task":"Medical Image Segmentation","dataset":"ETIS-LARIBPOLYPDB","model":"PraNet","rank_in_archive_order":24,"of":25,"metrics":{"Average MAE":"0.031","S-Measure":"0.794","mIoU":"0.5670","max E-Measure":"0.841","mean Dice":"0.6280"},"uses_additional_data":false},{"leaderboard":"/sota/medical-image-segmentation-on-kvasir-seg","task":"Medical Image Segmentation","dataset":"Kvasir-SEG","model":"PraNet","rank_in_archive_order":44,"of":58,"metrics":{"Average MAE":"0.030","S-Measure":"0.915","mIoU":"0.849","max E-Measure":"0.948","mean Dice":"0.898"},"uses_additional_data":false},{"leaderboard":"/sota/video-polyp-segmentation-on-sun-seg-easy","task":"Video Polyp Segmentation","dataset":"SUN-SEG-Easy (Unseen)","model":"PraNet","rank_in_archive_order":12,"of":18,"metrics":{"Dice":"0.621","S measure":"0.733","Sensitivity":"0.524","mean E-measure":"0.753","mean F-measure":"0.632","weighted F-measure":"0.572"},"uses_additional_data":false},{"leaderboard":"/sota/video-polyp-segmentation-on-sun-seg-hard","task":"Video Polyp Segmentation","dataset":"SUN-SEG-Hard (Unseen)","model":"PraNet","rank_in_archive_order":12,"of":18,"metrics":{"Dice":"0.598","S-Measure":"0.717","Sensitivity":"0.512","mean E-measure":"0.735","mean F-measure":"0.607","weighted F-measure":"0.544"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2006.11392","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.11392"}},"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/Thehunk1206/PRANet-Polyps-Segmentation","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/GewelsJI/PNS-Net","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/DengPingFan/PraNet","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yuwenlo/hardnet-dfus","reach":{"status":"ok"}}],"summary":{"unverified":9},"by_repo_kind":{"listed":{"samples":9,"ran":0,"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":"5f19cb59109dcf70","entry":"MAE","repo":"Thehunk1206/PRANet-Polyps-Segmentation","repo_kind":"listed","path":"utils/segmentation_metric.py","file_url":"https://github.com/Thehunk1206/PRANet-Polyps-Segmentation/blob/HEAD/utils/segmentation_metric.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5f19cb59109dcf70"}},{"code_sha256_prefix":"9552f127ab03fa34","entry":"dice_coef","repo":"Thehunk1206/PRANet-Polyps-Segmentation","repo_kind":"listed","path":"utils/segmentation_metric.py","file_url":"https://github.com/Thehunk1206/PRANet-Polyps-Segmentation/blob/HEAD/utils/segmentation_metric.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9552f127ab03fa34"}},{"code_sha256_prefix":"bc51eaabbba19a1c","entry":"get_model","repo":"Thehunk1206/PRANet-Polyps-Segmentation","repo_kind":"listed","path":"polyps_seg_image.py","file_url":"https://github.com/Thehunk1206/PRANet-Polyps-Segmentation/blob/HEAD/polyps_seg_image.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bc51eaabbba19a1c"}},{"code_sha256_prefix":"4c598561b0fdb5cf","entry":"get_weights","repo":"Thehunk1206/PRANet-Polyps-Segmentation","repo_kind":"listed","path":"utils/visualize_bce_iou_loss_weigth.py","file_url":"https://github.com/Thehunk1206/PRANet-Polyps-Segmentation/blob/HEAD/utils/visualize_bce_iou_loss_weigth.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4c598561b0fdb5cf"}},{"code_sha256_prefix":"653839c46c4ad30d","entry":"iou_metric","repo":"Thehunk1206/PRANet-Polyps-Segmentation","repo_kind":"listed","path":"utils/segmentation_metric.py","file_url":"https://github.com/Thehunk1206/PRANet-Polyps-Segmentation/blob/HEAD/utils/segmentation_metric.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"653839c46c4ad30d"}},{"code_sha256_prefix":"77cacc9801b27be9","entry":"preprocess_input","repo":"Thehunk1206/PRANet-Polyps-Segmentation","repo_kind":"listed","path":"polyps_seg_video.py","file_url":"https://github.com/Thehunk1206/PRANet-Polyps-Segmentation/blob/HEAD/polyps_seg_video.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"77cacc9801b27be9"}},{"code_sha256_prefix":"ed2b923957eea909","entry":"process_output","repo":"Thehunk1206/PRANet-Polyps-Segmentation","repo_kind":"listed","path":"train_pranet.py","file_url":"https://github.com/Thehunk1206/PRANet-Polyps-Segmentation/blob/HEAD/train_pranet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ed2b923957eea909"}},{"code_sha256_prefix":"cc515a5c9eee8242","entry":"read_image","repo":"Thehunk1206/PRANet-Polyps-Segmentation","repo_kind":"listed","path":"polyps_seg_image.py","file_url":"https://github.com/Thehunk1206/PRANet-Polyps-Segmentation/blob/HEAD/polyps_seg_image.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cc515a5c9eee8242"}},{"code_sha256_prefix":"c328287dda0da3e4","entry":"read_mask","repo":"Thehunk1206/PRANet-Polyps-Segmentation","repo_kind":"listed","path":"utils/visualize_bce_iou_loss_weigth.py","file_url":"https://github.com/Thehunk1206/PRANet-Polyps-Segmentation/blob/HEAD/utils/visualize_bce_iou_loss_weigth.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c328287dda0da3e4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}