{"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/shape-robust-text-detection-with-progressive","title":"Shape Robust Text Detection with Progressive Scale Expansion Network","arxiv_id":"1806.02559","date":"2018-06-07","proceeding":null,"authors":["Xiang Li","Wenhai Wang","Wenbo Hou","Ruo-Ze Liu","Tong Lu","Jian Yang"],"abstract":"The challenges of shape robust text detection lie in two aspects: 1) most\nexisting quadrangular bounding box based detectors are difficult to locate\ntexts with arbitrary shapes, which are hard to be enclosed perfectly in a\nrectangle; 2) most pixel-wise segmentation-based detectors may not separate the\ntext instances that are very close to each other. To address these problems, we\npropose a novel Progressive Scale Expansion Network (PSENet), designed as a\nsegmentation-based detector with multiple predictions for each text instance.\nThese predictions correspond to different `kernels' produced by shrinking the\noriginal text instance into various scales. Consequently, the final detection\ncan be conducted through our progressive scale expansion algorithm which\ngradually expands the kernels with minimal scales to the text instances with\nmaximal and complete shapes. Due to the fact that there are large geometrical\nmargins among these minimal kernels, our method is effective to distinguish the\nadjacent text instances and is robust to arbitrary shapes. The state-of-the-art\nresults on ICDAR 2015 and ICDAR 2017 MLT benchmarks further confirm the great\neffectiveness of PSENet. Notably, PSENet outperforms the previous best record\nby absolute 6.37\\% on the curve text dataset SCUT-CTW1500. Code will be\navailable in https://github.com/whai362/PSENet.","url_abs":"http://arxiv.org/abs/1806.02559v1","url_pdf":"http://arxiv.org/pdf/1806.02559v1.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":"shape-robust-text-detection-with-progressive","repo_url":"https://github.com/whai362/PSENet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"shape-robust-text-detection-with-progressive","repo_url":"https://github.com/A-ZHANG1/PSENet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"shape-robust-text-detection-with-progressive","repo_url":"https://github.com/DePengW/PSENet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"shape-robust-text-detection-with-progressive","repo_url":"https://github.com/JiaquanYe/TableMASTER-mmocr","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"shape-robust-text-detection-with-progressive","repo_url":"https://github.com/Mael-zys/PSENet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"shape-robust-text-detection-with-progressive","repo_url":"https://github.com/SimonWang00/psenet.tf2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"shape-robust-text-detection-with-progressive","repo_url":"https://github.com/li10141110/PSENet-tf2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"shape-robust-text-detection-with-progressive","repo_url":"https://github.com/liuheng92/tensorflow_PSENet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"shape-robust-text-detection-with-progressive","repo_url":"https://github.com/PaddleEdu/OCR-models-PaddlePaddle/tree/main/PSENet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"curved-text-detection","task_name":"Curved Text Detection"},{"task_slug":"scene-text-detection","task_name":"Scene Text Detection"},{"task_slug":"text-detection","task_name":"Text Detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/scene-text-detection-on-icdar-2015","task":"Scene Text Detection","dataset":"ICDAR 2015","model":"PSENet-1s","rank_in_archive_order":17,"of":43,"metrics":{"F-Measure":"87.1","Precision":"88.7","Recall":"85.5"},"uses_additional_data":false},{"leaderboard":"/sota/scene-text-detection-on-icdar-2017-mlt-1","task":"Scene Text Detection","dataset":"ICDAR 2017 MLT","model":"PSENet-1s","rank_in_archive_order":12,"of":14,"metrics":{"F-Measure":"72.45%","Precision":"77.01","Recall":"68.4"},"uses_additional_data":false},{"leaderboard":"/sota/scene-text-detection-on-scut-ctw1500","task":"Scene Text Detection","dataset":"SCUT-CTW1500","model":"PSENet-1s","rank_in_archive_order":15,"of":17,"metrics":{"F-Measure":"81.17","Precision":"82.5","Recall":"79.89"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1806.02559","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1806.02559"}},"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/DePengW/PSENet","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/A-ZHANG1/PSENet","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/li10141110/PSENet-tf2","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PaddleEdu/OCR-models-PaddlePaddle/tree/main/PSENet","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/SimonWang00/psenet.tf2","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/whai362/PSENet","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/JiaquanYe/TableMASTER-mmocr","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Mael-zys/PSENet","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/liuheng92/tensorflow_PSENet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"ran_violates":3,"ran_fixture":1,"unverified":19},"by_repo_kind":{"listed":{"samples":24,"ran":5,"repositories":6}},"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":2,"samples":[{"code_sha256_prefix":"fac5364e2f53c6db","entry":"conv3x3","repo":"A-ZHANG1/PSENet","repo_kind":"listed","path":"models/fpn_resnet.py","file_url":"https://github.com/A-ZHANG1/PSENet/blob/HEAD/models/fpn_resnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fac5364e2f53c6db"}},{"code_sha256_prefix":"ef327e5c61768306","entry":"dice_loss","repo":"DePengW/PSENet","repo_kind":"listed","path":"train_ic15.py","file_url":"https://github.com/DePengW/PSENet/blob/HEAD/train_ic15.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ef327e5c61768306"}},{"code_sha256_prefix":"81635961fe760852","entry":"extend_3c","repo":"Mael-zys/PSENet","repo_kind":"listed","path":"test_ic15.py","file_url":"https://github.com/Mael-zys/PSENet/blob/HEAD/test_ic15.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"81635961fe760852"}},{"code_sha256_prefix":"46a8caf20987d0ed","entry":"ohem_batch","repo":"DePengW/PSENet","repo_kind":"listed","path":"train_ic15.py","file_url":"https://github.com/DePengW/PSENet/blob/HEAD/train_ic15.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"46a8caf20987d0ed"}},{"code_sha256_prefix":"abc5d78bef2217cc","entry":"ohem_single","repo":"DePengW/PSENet","repo_kind":"listed","path":"train_ic15.py","file_url":"https://github.com/DePengW/PSENet/blob/HEAD/train_ic15.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"abc5d78bef2217cc"}},{"code_sha256_prefix":"4a0dff2bd619eb72","entry":"MobileNetv2","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"MobileNetV2/mobilenet_v2.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/MobileNetV2/mobilenet_v2.py","link_basis":"harvester_set","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":"4a0dff2bd619eb72"}},{"code_sha256_prefix":"7c2df8af7f5531c4","entry":"conv3x3","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"models/fpn_resnet.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/models/fpn_resnet.py","link_basis":"harvester_set","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":"7c2df8af7f5531c4"}},{"code_sha256_prefix":"58bb50d6bc6f6f8f","entry":"dice_loss","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"train_ctw1500.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/train_ctw1500.py","link_basis":"harvester_set","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":"58bb50d6bc6f6f8f"}},{"code_sha256_prefix":"73f41956a0cd9ce5","entry":"get_img","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"dataset/ctw1500_loader.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/dataset/ctw1500_loader.py","link_basis":"harvester_set","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":"73f41956a0cd9ce5"}},{"code_sha256_prefix":"9172cf3729410434","entry":"h_sigmoid","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"models/mobilenet_v3_block.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/models/mobilenet_v3_block.py","link_basis":"harvester_set","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":"9172cf3729410434"}},{"code_sha256_prefix":"49d4334289825356","entry":"h_swish","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"models/mobilenet_v3_block.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/models/mobilenet_v3_block.py","link_basis":"harvester_set","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":"49d4334289825356"}},{"code_sha256_prefix":"f539910065f78fcb","entry":"load_annoataion","repo":"liuheng92/tensorflow_PSENet","repo_kind":"listed","path":"utils/data_provider/data_provider.py","file_url":"https://github.com/liuheng92/tensorflow_PSENet/blob/HEAD/utils/data_provider/data_provider.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":"f539910065f78fcb"}},{"code_sha256_prefix":"9bfc6628f89669e9","entry":"mean_image_subtraction","repo":"liuheng92/tensorflow_PSENet","repo_kind":"listed","path":"nets/model.py","file_url":"https://github.com/liuheng92/tensorflow_PSENet/blob/HEAD/nets/model.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":"9bfc6628f89669e9"}},{"code_sha256_prefix":"54822bc5ab637521","entry":"mobilenetv2","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"models/fpn_resnet.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/models/fpn_resnet.py","link_basis":"harvester_set","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":"54822bc5ab637521"}},{"code_sha256_prefix":"61c1a6deb519c1b4","entry":"ohem_batch","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"train_ctw1500.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/train_ctw1500.py","link_basis":"harvester_set","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":"61c1a6deb519c1b4"}},{"code_sha256_prefix":"16900bc2a138ef61","entry":"polygon_from_points","repo":"Mael-zys/PSENet","repo_kind":"listed","path":"test_ic15.py","file_url":"https://github.com/Mael-zys/PSENet/blob/HEAD/test_ic15.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"16900bc2a138ef61"}},{"code_sha256_prefix":"960fcfbe3f86f157","entry":"pse","repo":"PaddleEdu/OCR-models-PaddlePaddle","repo_kind":"listed","path":"PSENet/models/pypse.py","file_url":"https://github.com/PaddleEdu/OCR-models-PaddlePaddle/blob/HEAD/PSENet/models/pypse.py","link_basis":"harvester_set","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":"960fcfbe3f86f157"}},{"code_sha256_prefix":"2473fba7e2d2183a","entry":"pse","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"pypse.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/pypse.py","link_basis":"harvester_set","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":"2473fba7e2d2183a"}},{"code_sha256_prefix":"eab615268dca3a00","entry":"random_horizontal_flip","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"dataset/ctw1500_loader.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/dataset/ctw1500_loader.py","link_basis":"harvester_set","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":"eab615268dca3a00"}},{"code_sha256_prefix":"d51adc9e749c6f92","entry":"relu6","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"MobileNetV2/mobilenet_v2.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/MobileNetV2/mobilenet_v2.py","link_basis":"harvester_set","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":"d51adc9e749c6f92"}},{"code_sha256_prefix":"06056d532c6d3ff8","entry":"resnet18","repo":"A-ZHANG1/PSENet","repo_kind":"listed","path":"models/fpn_resnet.py","file_url":"https://github.com/A-ZHANG1/PSENet/blob/HEAD/models/fpn_resnet.py","link_basis":"harvester_set","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":"06056d532c6d3ff8"}},{"code_sha256_prefix":"99c7b9e9359a3aa9","entry":"resnet34","repo":"A-ZHANG1/PSENet","repo_kind":"listed","path":"models/fpn_resnet.py","file_url":"https://github.com/A-ZHANG1/PSENet/blob/HEAD/models/fpn_resnet.py","link_basis":"harvester_set","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":"99c7b9e9359a3aa9"}},{"code_sha256_prefix":"aff0e449324bf982","entry":"scale","repo":"li10141110/PSENet-tf2","repo_kind":"listed","path":"dataset/ctw1500_test_loader.py","file_url":"https://github.com/li10141110/PSENet-tf2/blob/HEAD/dataset/ctw1500_test_loader.py","link_basis":"harvester_set","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":"aff0e449324bf982"}},{"code_sha256_prefix":"b6b0d40667b0f177","entry":"unpool","repo":"liuheng92/tensorflow_PSENet","repo_kind":"listed","path":"nets/model.py","file_url":"https://github.com/liuheng92/tensorflow_PSENet/blob/HEAD/nets/model.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":"b6b0d40667b0f177"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}