{"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/kbnet-kernel-basis-network-for-image","title":"KBNet: Kernel Basis Network for Image Restoration","arxiv_id":"2303.02881","date":"2023-03-06","proceeding":null,"authors":["Yi Zhang","Dasong Li","Xiaoyu Shi","Dailan He","Kangning Song","Xiaogang Wang","Hongwei Qin","Hongsheng Li"],"abstract":"How to aggregate spatial information plays an essential role in learning-based image restoration. Most existing CNN-based networks adopt static convolutional kernels to encode spatial information, which cannot aggregate spatial information adaptively. Recent transformer-based architectures achieve adaptive spatial aggregation. But they lack desirable inductive biases of convolutions and require heavy computational costs. In this paper, we propose a kernel basis attention (KBA) module, which introduces learnable kernel bases to model representative image patterns for spatial information aggregation. Different kernel bases are trained to model different local structures. At each spatial location, they are linearly and adaptively fused by predicted pixel-wise coefficients to obtain aggregation weights. Based on the KBA module, we further design a multi-axis feature fusion (MFF) block to encode and fuse channel-wise, spatial-invariant, and pixel-adaptive features for image restoration. Our model, named kernel basis network (KBNet), achieves state-of-the-art performances on more than ten benchmarks over image denoising, deraining, and deblurring tasks while requiring less computational cost than previous SOTA methods.","url_abs":"https://arxiv.org/abs/2303.02881v1","url_pdf":"https://arxiv.org/pdf/2303.02881v1.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":"kbnet-kernel-basis-network-for-image","repo_url":"https://github.com/zhangyi-3/kbnet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"color-image-denoising","task_name":"Color Image Denoising"},{"task_slug":"deblurring","task_name":"Deblurring"},{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"grayscale-image-denoising","task_name":"Grayscale Image Denoising"},{"task_slug":"image-denoising","task_name":"Image Denoising"},{"task_slug":"image-restoration","task_name":"Image Restoration"},{"task_slug":"rain-removal","task_name":"Rain Removal"},{"task_slug":"single-image-deraining","task_name":"Single Image Deraining"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/color-image-denoising-on-cbsd68-sigma15","task":"Color Image Denoising","dataset":"CBSD68 sigma15","model":"KBNet","rank_in_archive_order":4,"of":10,"metrics":{"PSNR":"34.41"},"uses_additional_data":false},{"leaderboard":"/sota/color-image-denoising-on-cbsd68-sigma25","task":"Color Image Denoising","dataset":"CBSD68 sigma25","model":"KBNet","rank_in_archive_order":3,"of":9,"metrics":{"PSNR":"31.80"},"uses_additional_data":false},{"leaderboard":"/sota/color-image-denoising-on-kodak24-sigma50","task":"Color Image Denoising","dataset":"Kodak24 sigma50","model":"KBNet","rank_in_archive_order":3,"of":9,"metrics":{"PSNR":"30.04"},"uses_additional_data":false},{"leaderboard":"/sota/color-image-denoising-on-mcmaster-sigma50","task":"Color Image Denoising","dataset":"McMaster sigma50","model":"KBNet","rank_in_archive_order":4,"of":7,"metrics":{"PSNR":"30.27"},"uses_additional_data":false},{"leaderboard":"/sota/color-image-denoising-on-urban100-sigma25","task":"Color Image Denoising","dataset":"Urban100 sigma25","model":"KBNet","rank_in_archive_order":4,"of":6,"metrics":{"PSNR":"32.96"},"uses_additional_data":false},{"leaderboard":"/sota/color-image-denoising-on-urban100-sigma50","task":"Color Image Denoising","dataset":"Urban100 sigma50","model":"KBNet","rank_in_archive_order":4,"of":9,"metrics":{"PSNR":"30.04"},"uses_additional_data":false},{"leaderboard":"/sota/color-image-denoising-on-urban100-sigma15-1","task":"Color Image Denoising","dataset":"urban100 sigma15","model":"KBNet","rank_in_archive_order":3,"of":8,"metrics":{"Average PSNR":"35.15"},"uses_additional_data":false},{"leaderboard":"/sota/grayscale-image-denoising-on-bsd68-sigma15","task":"Grayscale Image Denoising","dataset":"BSD68 sigma15","model":"KBNet","rank_in_archive_order":2,"of":16,"metrics":{"PSNR":"31.98"},"uses_additional_data":false},{"leaderboard":"/sota/grayscale-image-denoising-on-bsd68-sigma25","task":"Grayscale Image Denoising","dataset":"BSD68 sigma25","model":"KBNet","rank_in_archive_order":1,"of":16,"metrics":{"PSNR":"29.54"},"uses_additional_data":false},{"leaderboard":"/sota/grayscale-image-denoising-on-bsd68-sigma50","task":"Grayscale Image Denoising","dataset":"BSD68 sigma50","model":"KBNet","rank_in_archive_order":2,"of":15,"metrics":{"PSNR":"26.65"},"uses_additional_data":false},{"leaderboard":"/sota/grayscale-image-denoising-on-set12-sigma15","task":"Grayscale Image Denoising","dataset":"Set12 sigma15","model":"KBNet","rank_in_archive_order":2,"of":8,"metrics":{"PSNR":"33.40"},"uses_additional_data":false},{"leaderboard":"/sota/grayscale-image-denoising-on-set12-sigma25","task":"Grayscale Image Denoising","dataset":"Set12 sigma25","model":"KBNet","rank_in_archive_order":2,"of":6,"metrics":{"PSNR":"31.08"},"uses_additional_data":false},{"leaderboard":"/sota/grayscale-image-denoising-on-set12-sigma50","task":"Grayscale Image Denoising","dataset":"Set12 sigma50","model":"KBNet","rank_in_archive_order":2,"of":8,"metrics":{"PSNR":"28.04"},"uses_additional_data":false},{"leaderboard":"/sota/grayscale-image-denoising-on-urban100-sigma25","task":"Grayscale Image Denoising","dataset":"Urban100 sigma25","model":"KBNet","rank_in_archive_order":4,"of":10,"metrics":{"PSNR":"31.45"},"uses_additional_data":false},{"leaderboard":"/sota/grayscale-image-denoising-on-urban100-sigma50","task":"Grayscale Image Denoising","dataset":"Urban100 sigma50","model":"KBNet","rank_in_archive_order":3,"of":10,"metrics":{"PSNR":"28.33"},"uses_additional_data":false},{"leaderboard":"/sota/grayscale-image-denoising-on-urban100-sigma15-1","task":"Grayscale Image Denoising","dataset":"urban100 sigma15","model":"KBNet","rank_in_archive_order":3,"of":3,"metrics":{"PSNR":"33.77"},"uses_additional_data":false},{"leaderboard":"/sota/image-denoising-on-sidd","task":"Image Denoising","dataset":"SIDD","model":"KBNet","rank_in_archive_order":2,"of":22,"metrics":{"PSNR (sRGB)":"40.35","SSIM (sRGB)":"0.972"},"uses_additional_data":false},{"leaderboard":"/sota/single-image-deraining-on-test1200","task":"Single Image Deraining","dataset":"Test1200","model":"KBNet","rank_in_archive_order":2,"of":14,"metrics":{"PSNR":"33.82","SSIM":"0.931"},"uses_additional_data":false},{"leaderboard":"/sota/single-image-deraining-on-test2800","task":"Single Image Deraining","dataset":"Test2800","model":"KBNet","rank_in_archive_order":1,"of":12,"metrics":{"PSNR":"34.19","SSIM":"0.944"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2303.02881","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2303.02881"}},"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/zhangyi-3/kbnet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"unverified":3},"by_repo_kind":{"official":{"samples":9,"ran":6,"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":"1d7ce6d6dd7ff5c1","entry":"calculate_fid","repo":"zhangyi-3/kbnet","repo_kind":"official","path":"basicsr/metrics/fid.py","file_url":"https://github.com/zhangyi-3/kbnet/blob/HEAD/basicsr/metrics/fid.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1d7ce6d6dd7ff5c1"}},{"code_sha256_prefix":"d292dd965ab59629","entry":"calculate_psnr","repo":"zhangyi-3/kbnet","repo_kind":"official","path":"Denoising/utils_tool.py","file_url":"https://github.com/zhangyi-3/kbnet/blob/HEAD/Denoising/utils_tool.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d292dd965ab59629"}},{"code_sha256_prefix":"a05b184dc6c264a0","entry":"calculate_ssim","repo":"zhangyi-3/kbnet","repo_kind":"official","path":"Denoising/utils_tool.py","file_url":"https://github.com/zhangyi-3/kbnet/blob/HEAD/Denoising/utils_tool.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a05b184dc6c264a0"}},{"code_sha256_prefix":"c9fb213c957dc82d","entry":"extract_inception_features","repo":"zhangyi-3/kbnet","repo_kind":"official","path":"basicsr/metrics/fid.py","file_url":"https://github.com/zhangyi-3/kbnet/blob/HEAD/basicsr/metrics/fid.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c9fb213c957dc82d"}},{"code_sha256_prefix":"cd569444547de84f","entry":"get_position_from_periods","repo":"zhangyi-3/kbnet","repo_kind":"official","path":"basicsr/models/lr_scheduler.py","file_url":"https://github.com/zhangyi-3/kbnet/blob/HEAD/basicsr/models/lr_scheduler.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cd569444547de84f"}},{"code_sha256_prefix":"ba721aeacc165234","entry":"ssim","repo":"zhangyi-3/kbnet","repo_kind":"official","path":"Denoising/utils_tool.py","file_url":"https://github.com/zhangyi-3/kbnet/blob/HEAD/Denoising/utils_tool.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ba721aeacc165234"}},{"code_sha256_prefix":"5590b75db4c828a0","entry":"MAE","repo":"zhangyi-3/kbnet","repo_kind":"official","path":"Defocus_Deblurring/utils.py","file_url":"https://github.com/zhangyi-3/kbnet/blob/HEAD/Defocus_Deblurring/utils.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":"5590b75db4c828a0"}},{"code_sha256_prefix":"8eccacd101833667","entry":"PSNR","repo":"zhangyi-3/kbnet","repo_kind":"official","path":"Defocus_Deblurring/utils.py","file_url":"https://github.com/zhangyi-3/kbnet/blob/HEAD/Defocus_Deblurring/utils.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":"8eccacd101833667"}},{"code_sha256_prefix":"80d62faa4ff31b49","entry":"SSIM","repo":"zhangyi-3/kbnet","repo_kind":"official","path":"Defocus_Deblurring/utils.py","file_url":"https://github.com/zhangyi-3/kbnet/blob/HEAD/Defocus_Deblurring/utils.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":"80d62faa4ff31b49"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}