{"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/learning-a-spiking-neural-network-for","title":"Learning A Spiking Neural Network for Efficient Image Deraining","arxiv_id":"2405.06277","date":"2024-05-10","proceeding":null,"authors":["Tianyu Song","Guiyue Jin","Pengpeng Li","Kui Jiang","Xiang Chen","JIYU JIN"],"abstract":"Recently, spiking neural networks (SNNs) have demonstrated substantial potential in computer vision tasks. In this paper, we present an Efficient Spiking Deraining Network, called ESDNet. Our work is motivated by the observation that rain pixel values will lead to a more pronounced intensity of spike signals in SNNs. However, directly applying deep SNNs to image deraining task still remains a significant challenge. This is attributed to the information loss and training difficulties that arise from discrete binary activation and complex spatio-temporal dynamics. To this end, we develop a spiking residual block to convert the input into spike signals, then adaptively optimize the membrane potential by introducing attention weights to adjust spike responses in a data-driven manner, alleviating information loss caused by discrete binary activation. By this way, our ESDNet can effectively detect and analyze the characteristics of rain streaks by learning their fluctuations. This also enables better guidance for the deraining process and facilitates high-quality image reconstruction. Instead of relying on the ANN-SNN conversion strategy, we introduce a gradient proxy strategy to directly train the model for overcoming the challenge of training. Experimental results show that our approach gains comparable performance against ANN-based methods while reducing energy consumption by 54%. The code source is available at https://github.com/MingTian99/ESDNet.","url_abs":"https://arxiv.org/abs/2405.06277v1","url_pdf":"https://arxiv.org/pdf/2405.06277v1.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":"learning-a-spiking-neural-network-for","repo_url":"https://github.com/mingtian99/esdnet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"image-reconstruction","task_name":"Image Reconstruction"},{"task_slug":"rain-removal","task_name":"Rain Removal"}],"methods":[{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.06277","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.06277"}},"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/mingtian99/esdnet","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/MingTian99/ESDNet","reach":{"status":"ok"}}],"summary":{"ran":10,"ran_honours":1},"by_repo_kind":{"official":{"samples":11,"ran":11,"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":11,"samples":[{"code_sha256_prefix":"9394ff2c25b8a988","entry":"calculate_psnr","repo":"MingTian99/ESDNet","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/evaluation.py","link_basis":"harvester_set","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":"9394ff2c25b8a988"}},{"code_sha256_prefix":"8a5dcb2e25772e72","entry":"calculate_rgb_psnr","repo":"MingTian99/ESDNet","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/evaluation.py","link_basis":"harvester_set","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":"8a5dcb2e25772e72"}},{"code_sha256_prefix":"c56b7ef16f309a45","entry":"gaussian","repo":"MingTian99/ESDNet","repo_kind":"official","path":"utils/image_utils.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/utils/image_utils.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c56b7ef16f309a45"}},{"code_sha256_prefix":"930cddf0a4d80ab1","entry":"is_frozen","repo":"MingTian99/ESDNet","repo_kind":"official","path":"utils/model_utils.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/utils/model_utils.py","link_basis":"harvester_set","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":"930cddf0a4d80ab1"}},{"code_sha256_prefix":"c3bea8c4ee6bef4a","entry":"load_start_epoch","repo":"MingTian99/ESDNet","repo_kind":"official","path":"utils/model_utils.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/utils/model_utils.py","link_basis":"harvester_set","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":"c3bea8c4ee6bef4a"}},{"code_sha256_prefix":"92bb8e7c6d06af3f","entry":"numpyPSNR","repo":"MingTian99/ESDNet","repo_kind":"official","path":"utils/image_utils.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/utils/image_utils.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":"92bb8e7c6d06af3f"}},{"code_sha256_prefix":"2387e49d92c846d7","entry":"reduce_loss","repo":"MingTian99/ESDNet","repo_kind":"official","path":"losses.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/losses.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":"2387e49d92c846d7"}},{"code_sha256_prefix":"ba721aeacc165234","entry":"ssim","repo":"MingTian99/ESDNet","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/evaluation.py","link_basis":"harvester_set","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":"ba721aeacc165234"}},{"code_sha256_prefix":"deaed84dcb1ccde1","entry":"torchPSNR","repo":"MingTian99/ESDNet","repo_kind":"official","path":"utils/image_utils.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/utils/image_utils.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":"deaed84dcb1ccde1"}},{"code_sha256_prefix":"91101566c8adc964","entry":"weight_reduce_loss","repo":"MingTian99/ESDNet","repo_kind":"official","path":"losses.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/losses.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":"91101566c8adc964"}},{"code_sha256_prefix":"67ac1ed0c8d15554","entry":"weighted_loss","repo":"MingTian99/ESDNet","repo_kind":"official","path":"losses.py","file_url":"https://github.com/MingTian99/ESDNet/blob/HEAD/losses.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":"67ac1ed0c8d15554"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}