{"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/towards-end-to-end-unified-scene-text","title":"Towards End-to-End Unified Scene Text Detection and Layout Analysis","arxiv_id":"2203.15143","date":"2022-03-28","proceeding":"CVPR 2022 1","authors":["Shangbang Long","Siyang Qin","Dmitry Panteleev","Alessandro Bissacco","Yasuhisa Fujii","Michalis Raptis"],"abstract":"Scene text detection and document layout analysis have long been treated as two separate tasks in different image domains. In this paper, we bring them together and introduce the task of unified scene text detection and layout analysis. The first hierarchical scene text dataset is introduced to enable this novel research task. We also propose a novel method that is able to simultaneously detect scene text and form text clusters in a unified way. Comprehensive experiments show that our unified model achieves better performance than multiple well-designed baseline methods. Additionally, this model achieves state-of-the-art results on multiple scene text detection datasets without the need of complex post-processing. Dataset and code: https://github.com/google-research-datasets/hiertext and https://github.com/tensorflow/models/tree/master/official/projects/unified_detector.","url_abs":"https://arxiv.org/abs/2203.15143v2","url_pdf":"https://arxiv.org/pdf/2203.15143v2.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":"towards-end-to-end-unified-scene-text","repo_url":"https://github.com/google-research-datasets/hiertext","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"towards-end-to-end-unified-scene-text","repo_url":"https://github.com/tensorflow/models","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":null},{"paper_slug":"towards-end-to-end-unified-scene-text","repo_url":"https://github.com/chend-vl/instructocr","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"document-layout-analysis","task_name":"Document Layout Analysis"},{"task_slug":"scene-text-detection","task_name":"Scene Text Detection"},{"task_slug":"text-detection","task_name":"Text Detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2203.15143","atlas_url":"https://app.syntology.ai/?focus=2203.15143","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.15143"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/tensorflow/models","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/google-research-datasets/hiertext","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chend-vl/instructocr","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/google-researchdatasets/hiertext","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}}],"summary":{"ran":7,"ran_violates":1,"unverified":7},"by_repo_kind":{"official":{"samples":5,"ran":1,"repositories":1},"listed":{"samples":10,"ran":7,"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":15,"samples":[{"code_sha256_prefix":"7b0e484fdafe12db","entry":"DecoderEmbeddings","repo":"chend-vl/instructocr","repo_kind":"listed","path":"models/transformer_decoder.py","file_url":"https://github.com/chend-vl/instructocr/blob/HEAD/models/transformer_decoder.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7b0e484fdafe12db"}},{"code_sha256_prefix":"24b45bd0f169c2a9","entry":"MLP","repo":"chend-vl/instructocr","repo_kind":"listed","path":"models/transformer_decoder.py","file_url":"https://github.com/chend-vl/instructocr/blob/HEAD/models/transformer_decoder.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"24b45bd0f169c2a9"}},{"code_sha256_prefix":"09da1c616b7f5b6f","entry":"SortOrder","repo":"google-research-datasets/hiertext","repo_kind":"official","path":"evaluator/np_box_list_ops.py","file_url":"https://github.com/google-research-datasets/hiertext/blob/HEAD/evaluator/np_box_list_ops.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-SA-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"09da1c616b7f5b6f"}},{"code_sha256_prefix":"8f0e5371248c5e63","entry":"TransformerDecoder","repo":"chend-vl/instructocr","repo_kind":"listed","path":"models/transformer_decoder.py","file_url":"https://github.com/chend-vl/instructocr/blob/HEAD/models/transformer_decoder.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8f0e5371248c5e63"}},{"code_sha256_prefix":"1f69a16dd91f7b3e","entry":"TransformerDecoderLayer","repo":"chend-vl/instructocr","repo_kind":"listed","path":"models/transformer_decoder.py","file_url":"https://github.com/chend-vl/instructocr/blob/HEAD/models/transformer_decoder.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1f69a16dd91f7b3e"}},{"code_sha256_prefix":"1c53f4721f4378fc","entry":"TransformerEncoder","repo":"chend-vl/instructocr","repo_kind":"listed","path":"models/transformer_decoder.py","file_url":"https://github.com/chend-vl/instructocr/blob/HEAD/models/transformer_decoder.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1c53f4721f4378fc"}},{"code_sha256_prefix":"3150b099aa49e716","entry":"TransformerEncoderLayer","repo":"chend-vl/instructocr","repo_kind":"listed","path":"models/transformer_decoder.py","file_url":"https://github.com/chend-vl/instructocr/blob/HEAD/models/transformer_decoder.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3150b099aa49e716"}},{"code_sha256_prefix":"894b253f35765276","entry":"generate_square_subsequent_mask","repo":"chend-vl/instructocr","repo_kind":"listed","path":"models/transformer_decoder.py","file_url":"https://github.com/chend-vl/instructocr/blob/HEAD/models/transformer_decoder.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"894b253f35765276"}},{"code_sha256_prefix":"e8285f80f88ab6c8","entry":"BiAttentionBlock","repo":"chend-vl/instructocr","repo_kind":"listed","path":"models/transformer_decoder.py","file_url":"https://github.com/chend-vl/instructocr/blob/HEAD/models/transformer_decoder.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":"e8285f80f88ab6c8"}},{"code_sha256_prefix":"f145d757ece0ece2","entry":"BiMultiHeadAttention","repo":"chend-vl/instructocr","repo_kind":"listed","path":"models/transformer_decoder.py","file_url":"https://github.com/chend-vl/instructocr/blob/HEAD/models/transformer_decoder.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":"f145d757ece0ece2"}},{"code_sha256_prefix":"b03777f5c2e03b4a","entry":"TransformerSPTS","repo":"chend-vl/instructocr","repo_kind":"listed","path":"models/transformer_decoder.py","file_url":"https://github.com/chend-vl/instructocr/blob/HEAD/models/transformer_decoder.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":"b03777f5c2e03b4a"}},{"code_sha256_prefix":"285fd36da9203c83","entry":"filter_scores_greater_than","repo":"google-research-datasets/hiertext","repo_kind":"official","path":"evaluator/np_box_list_ops.py","file_url":"https://github.com/google-research-datasets/hiertext/blob/HEAD/evaluator/np_box_list_ops.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-SA-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"285fd36da9203c83"}},{"code_sha256_prefix":"3cbdd09583615484","entry":"gather","repo":"google-research-datasets/hiertext","repo_kind":"official","path":"evaluator/np_box_list_ops.py","file_url":"https://github.com/google-research-datasets/hiertext/blob/HEAD/evaluator/np_box_list_ops.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-SA-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"3cbdd09583615484"}},{"code_sha256_prefix":"586a4c95ddc2595d","entry":"non_max_suppression","repo":"google-research-datasets/hiertext","repo_kind":"official","path":"evaluator/np_box_list_ops.py","file_url":"https://github.com/google-research-datasets/hiertext/blob/HEAD/evaluator/np_box_list_ops.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-SA-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"586a4c95ddc2595d"}},{"code_sha256_prefix":"cedc106a4fe5f073","entry":"sort_by_field","repo":"google-research-datasets/hiertext","repo_kind":"official","path":"evaluator/np_box_list_ops.py","file_url":"https://github.com/google-research-datasets/hiertext/blob/HEAD/evaluator/np_box_list_ops.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC-BY-SA-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"cedc106a4fe5f073"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}