{"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-robust-scene-text-image-super","title":"Towards Robust Scene Text Image Super-resolution via Explicit Location Enhancement","arxiv_id":"2307.09749","date":"2023-07-19","proceeding":null,"authors":["Hang Guo","Tao Dai","Guanghao Meng","Shu-Tao Xia"],"abstract":"Scene text image super-resolution (STISR), aiming to improve image quality while boosting downstream scene text recognition accuracy, has recently achieved great success. However, most existing methods treat the foreground (character regions) and background (non-character regions) equally in the forward process, and neglect the disturbance from the complex background, thus limiting the performance. To address these issues, in this paper, we propose a novel method LEMMA that explicitly models character regions to produce high-level text-specific guidance for super-resolution. To model the location of characters effectively, we propose the location enhancement module to extract character region features based on the attention map sequence. Besides, we propose the multi-modal alignment module to perform bidirectional visual-semantic alignment to generate high-quality prior guidance, which is then incorporated into the super-resolution branch in an adaptive manner using the proposed adaptive fusion module. Experiments on TextZoom and four scene text recognition benchmarks demonstrate the superiority of our method over other state-of-the-art methods. Code is available at https://github.com/csguoh/LEMMA.","url_abs":"https://arxiv.org/abs/2307.09749v2","url_pdf":"https://arxiv.org/pdf/2307.09749v2.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-robust-scene-text-image-super","repo_url":"https://github.com/csguoh/lemma","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"image-super-resolution","task_name":"Image Super-Resolution"},{"task_slug":"lemma","task_name":"LEMMA"},{"task_slug":"scene-text-recognition","task_name":"Scene Text Recognition"},{"task_slug":"super-resolution","task_name":"Super-Resolution"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2307.09749","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2307.09749"}},"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/csguoh/LEMMA","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":7,"ran_draft_wrong":5,"ran_fixture":1,"ran_violates":1,"unverified":2},"by_repo_kind":{"official":{"samples":16,"ran":14,"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":"0e7558f55e4382d4","entry":"buf2PIL","repo":"csguoh/LEMMA","repo_kind":"official","path":"dataset/dataset.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/dataset/dataset.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":"0e7558f55e4382d4"}},{"code_sha256_prefix":"c639f82b23c93b90","entry":"build_output_control_points","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/tps_spatial_transformer.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/tps_spatial_transformer.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":"c639f82b23c93b90"}},{"code_sha256_prefix":"5145b55a583f368b","entry":"central_crop","repo":"csguoh/LEMMA","repo_kind":"official","path":"dataset/dataset.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/dataset/dataset.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":"5145b55a583f368b"}},{"code_sha256_prefix":"84ee72bc513b03f8","entry":"clones","repo":"csguoh/LEMMA","repo_kind":"official","path":"loss/text_focus_loss.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/loss/text_focus_loss.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":"84ee72bc513b03f8"}},{"code_sha256_prefix":"e1814689377a5c82","entry":"compute_partial_repr","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/tps_spatial_transformer.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/tps_spatial_transformer.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e1814689377a5c82"}},{"code_sha256_prefix":"6ef392f365cc5703","entry":"conv1x1","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/resnet.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/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":"6ef392f365cc5703"}},{"code_sha256_prefix":"fac5364e2f53c6db","entry":"conv3x3","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/resnet.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/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":"b59cd9ce9c63bd48","entry":"conv3x3_block","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/stn_head.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/stn_head.py","link_basis":"plan_row","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":"b59cd9ce9c63bd48"}},{"code_sha256_prefix":"138752fa9826a05c","entry":"decoder_layer","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/attention.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/attention.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":"138752fa9826a05c"}},{"code_sha256_prefix":"6d0a2c5e1e8c4121","entry":"encoder_layer","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/attention.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/attention.py","link_basis":"plan_row","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":"6d0a2c5e1e8c4121"}},{"code_sha256_prefix":"47ad53774f24d324","entry":"grid_sample","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/tps_spatial_transformer.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/tps_spatial_transformer.py","link_basis":"plan_row","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":"47ad53774f24d324"}},{"code_sha256_prefix":"0ca1572c9755ffd9","entry":"multi_head_attention_forward","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/transformer.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/transformer.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":"0ca1572c9755ffd9"}},{"code_sha256_prefix":"9a57c2af22605595","entry":"rand_crop","repo":"csguoh/LEMMA","repo_kind":"official","path":"dataset/dataset.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/dataset/dataset.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":"9a57c2af22605595"}},{"code_sha256_prefix":"dd03765c7da9ca51","entry":"subsequent_mask","repo":"csguoh/LEMMA","repo_kind":"official","path":"loss/text_focus_loss.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/loss/text_focus_loss.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dd03765c7da9ca51"}},{"code_sha256_prefix":"fe870f1e0bb99261","entry":"decoder_layer","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/Position_aware_module.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/Position_aware_module.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":"fe870f1e0bb99261"}},{"code_sha256_prefix":"f9c8307f0bce54a3","entry":"encoder_layer","repo":"csguoh/LEMMA","repo_kind":"official","path":"model/Position_aware_module.py","file_url":"https://github.com/csguoh/LEMMA/blob/HEAD/model/Position_aware_module.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":"f9c8307f0bce54a3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}