{"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/ffa-net-feature-fusion-attention-network-for","title":"FFA-Net: Feature Fusion Attention Network for Single Image Dehazing","arxiv_id":"1911.07559","date":"2019-11-18","proceeding":null,"authors":["Xu Qin","Zhilin Wang","Yuanchao Bai","Xiaodong Xie","Huizhu Jia"],"abstract":"In this paper, we propose an end-to-end feature fusion at-tention network (FFA-Net) to directly restore the haze-free image. The FFA-Net architecture consists of three key components: 1) A novel Feature Attention (FA) module combines Channel Attention with Pixel Attention mechanism, considering that different channel-wise features contain totally different weighted information and haze distribution is uneven on the different image pixels. FA treats different features and pixels unequally, which provides additional flexibility in dealing with different types of information, expanding the representational ability of CNNs. 2) A basic block structure consists of Local Residual Learning and Feature Attention, Local Residual Learning allowing the less important information such as thin haze region or low-frequency to be bypassed through multiple local residual connections, let main network architecture focus on more effective information. 3) An Attention-based different levels Feature Fusion (FFA) structure, the feature weights are adaptively learned from the Feature Attention (FA) module, giving more weight to important features. This structure can also retain the information of shallow layers and pass it into deep layers. The experimental results demonstrate that our proposed FFA-Net surpasses previous state-of-the-art single image dehazing methods by a very large margin both quantitatively and qualitatively, boosting the best published PSNR metric from 30.23db to 36.39db on the SOTS indoor test dataset. Code has been made available at GitHub.","url_abs":"https://arxiv.org/abs/1911.07559v2","url_pdf":"https://arxiv.org/pdf/1911.07559v2.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":"ffa-net-feature-fusion-attention-network-for","repo_url":"https://github.com/zhilin007/FFA-Net","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"ffa-net-feature-fusion-attention-network-for","repo_url":"https://github.com/manncodes/dehazing-openvino","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"ffa-net-feature-fusion-attention-network-for","repo_url":"https://github.com/youreternity1997/Image-dehazing-FFA-Net","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"ffa-net-feature-fusion-attention-network-for","repo_url":"https://github.com/bitcjm/PaddleVideo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"image-dehazing","task_name":"Image Dehazing"},{"task_slug":"single-image-dehazing","task_name":"Single Image Dehazing"}],"methods":[{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-dehazing-on-haze4k","task":"Image Dehazing","dataset":"Haze4k","model":"FFA-Net","rank_in_archive_order":9,"of":11,"metrics":{"PSNR":"26.96","SSIM":"0.95"},"uses_additional_data":false},{"leaderboard":"/sota/image-dehazing-on-kitti","task":"Image Dehazing","dataset":"KITTI","model":"FFA-Net","rank_in_archive_order":1,"of":3,"metrics":{"PSNR":"27.45"},"uses_additional_data":false},{"leaderboard":"/sota/image-dehazing-on-reside-6k","task":"Image Dehazing","dataset":"RESIDE-6K","model":"FFA-Net","rank_in_archive_order":4,"of":6,"metrics":{"PSNR":"29.96","SSIM":"0.973"},"uses_additional_data":false},{"leaderboard":"/sota/image-dehazing-on-rs-haze","task":"Image Dehazing","dataset":"RS-Haze","model":"FFA-Net","rank_in_archive_order":3,"of":7,"metrics":{"PSNR":"39.39","SSIM":"0.969"},"uses_additional_data":false},{"leaderboard":"/sota/image-dehazing-on-sots-indoor","task":"Image Dehazing","dataset":"SOTS Indoor","model":"FFA-Net","rank_in_archive_order":22,"of":34,"metrics":{"PSNR":"36.39","SSIM":"0.989"},"uses_additional_data":false},{"leaderboard":"/sota/image-dehazing-on-sots-outdoor","task":"Image Dehazing","dataset":"SOTS Outdoor","model":"FFA-Net","rank_in_archive_order":21,"of":31,"metrics":{"PSNR":"33.57","SSIM":"0.9804"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1911.07559","atlas_url":"https://app.syntology.ai/?focus=1911.07559","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1911.07559"}},"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/bitcjm/PaddleVideo","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zhilin007/FFA-Net","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/manncodes/dehazing-openvino","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/youreternity1997/Image-dehazing-FFA-Net","reach":{"status":"ok"}}],"summary":{"unverified":11},"by_repo_kind":{"listed":{"samples":11,"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":"53a344650c2ae128","entry":"build_assigner","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/modeling/builder.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/modeling/builder.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":"53a344650c2ae128"}},{"code_sha256_prefix":"bd2c60c19da90ad9","entry":"build_backbone","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/modeling/builder.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/modeling/builder.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":"bd2c60c19da90ad9"}},{"code_sha256_prefix":"5dfa351278eb7273","entry":"build_batch_pipeline","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/loader/builder.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/loader/builder.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":"5dfa351278eb7273"}},{"code_sha256_prefix":"c5410bba5ff1d47e","entry":"build_dataset","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/loader/builder.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/loader/builder.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":"c5410bba5ff1d47e"}},{"code_sha256_prefix":"47873a8759273c0e","entry":"build_pipeline","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/loader/builder.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/loader/builder.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":"47873a8759273c0e"}},{"code_sha256_prefix":"3dc760b0bc6bfea5","entry":"build_roi_extractor","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/modeling/builder.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/modeling/builder.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":"3dc760b0bc6bfea5"}},{"code_sha256_prefix":"1e52fb40ae4513b2","entry":"create_scene_based_summaries","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/metrics/transnetv2_metric.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/metrics/transnetv2_metric.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":"1e52fb40ae4513b2"}},{"code_sha256_prefix":"5f86f604143de119","entry":"evaluate_scenes","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/metrics/transnetv2_metric.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/metrics/transnetv2_metric.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":"5f86f604143de119"}},{"code_sha256_prefix":"c434ee22884ca564","entry":"expand_bbox","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/modeling/bbox_utils.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/modeling/bbox_utils.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":"c434ee22884ca564"}},{"code_sha256_prefix":"bdec6fff71733f82","entry":"make_image_key","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/metrics/ava_utils.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/metrics/ava_utils.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":"bdec6fff71733f82"}},{"code_sha256_prefix":"3da0df168740c1aa","entry":"predictions_to_scenes","repo":"bitcjm/PaddleVideo","repo_kind":"listed","path":"paddlevideo/metrics/transnetv2_metric.py","file_url":"https://github.com/bitcjm/PaddleVideo/blob/HEAD/paddlevideo/metrics/transnetv2_metric.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":"3da0df168740c1aa"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}