{"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/patch-craft-video-denoising-by-deep-modeling","title":"Patch Craft: Video Denoising by Deep Modeling and Patch Matching","arxiv_id":"2103.13767","date":"2021-03-25","proceeding":"ICCV 2021 10","authors":["Gregory Vaksman","Michael Elad","Peyman Milanfar"],"abstract":"The non-local self-similarity property of natural images has been exploited extensively for solving various image processing problems. When it comes to video sequences, harnessing this force is even more beneficial due to the temporal redundancy. In the context of image and video denoising, many classically-oriented algorithms employ self-similarity, splitting the data into overlapping patches, gathering groups of similar ones and processing these together somehow. With the emergence of convolutional neural networks (CNN), the patch-based framework has been abandoned. Most CNN denoisers operate on the whole image, leveraging non-local relations only implicitly by using a large receptive field. This work proposes a novel approach for leveraging self-similarity in the context of video denoising, while still relying on a regular convolutional architecture. We introduce a concept of patch-craft frames - artificial frames that are similar to the real ones, built by tiling matched patches. Our algorithm augments video sequences with patch-craft frames and feeds them to a CNN. We demonstrate the substantial boost in denoising performance obtained with the proposed approach.","url_abs":"https://arxiv.org/abs/2103.13767v2","url_pdf":"https://arxiv.org/pdf/2103.13767v2.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":"patch-craft-video-denoising-by-deep-modeling","repo_url":"https://github.com/grishavak/PaCNet-denoiser","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"color-image-denoising","task_name":"Color Image Denoising"},{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"patch-matching","task_name":"Patch Matching"},{"task_slug":"video-denoising","task_name":"Video Denoising"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/color-image-denoising-on-cbsd68-sigma15","task":"Color Image Denoising","dataset":"CBSD68 sigma15","model":"PaCNet","rank_in_archive_order":7,"of":10,"metrics":{"PSNR":"33.95"},"uses_additional_data":false},{"leaderboard":"/sota/color-image-denoising-on-cbsd68-sigma25","task":"Color Image Denoising","dataset":"CBSD68 sigma25","model":"PaCNet","rank_in_archive_order":6,"of":9,"metrics":{"PSNR":"31.22"},"uses_additional_data":false},{"leaderboard":"/sota/color-image-denoising-on-cbsd68-sigma50","task":"Color Image Denoising","dataset":"CBSD68 sigma50","model":"PaCNet","rank_in_archive_order":13,"of":18,"metrics":{"PSNR":"27.93"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-davis-sigma10","task":"Video Denoising","dataset":"DAVIS sigma10","model":"PaCNet","rank_in_archive_order":4,"of":6,"metrics":{"PSNR":"39.97"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-davis-sigma20","task":"Video Denoising","dataset":"DAVIS sigma20","model":"PaCNet","rank_in_archive_order":4,"of":7,"metrics":{"PSNR":"36.82"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-davis-sigma30","task":"Video Denoising","dataset":"DAVIS sigma30","model":"PaCNet","rank_in_archive_order":4,"of":7,"metrics":{"PSNR":"34.79"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-davis-sigma40","task":"Video Denoising","dataset":"DAVIS sigma40","model":"PaCNet","rank_in_archive_order":5,"of":8,"metrics":{"PSNR":"33.34"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-davis-sigma50","task":"Video Denoising","dataset":"DAVIS sigma50","model":"PaCNet","rank_in_archive_order":5,"of":8,"metrics":{"PSNR":"32.2"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-set8-sigma10","task":"Video Denoising","dataset":"Set8 sigma10","model":"PaCNet","rank_in_archive_order":4,"of":6,"metrics":{"PSNR":"37.06"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-set8-sigma20","task":"Video Denoising","dataset":"Set8 sigma20","model":"PaCNet","rank_in_archive_order":4,"of":7,"metrics":{"PSNR":"33.94"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-set8-sigma30","task":"Video Denoising","dataset":"Set8 sigma30","model":"PaCNet","rank_in_archive_order":4,"of":7,"metrics":{"PSNR":"32.05"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-set8-sigma40","task":"Video Denoising","dataset":"Set8 sigma40","model":"PaCNet","rank_in_archive_order":6,"of":8,"metrics":{"PSNR":"30.7"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-set8-sigma50","task":"Video Denoising","dataset":"Set8 sigma50","model":"PaCNet","rank_in_archive_order":7,"of":9,"metrics":{"PSNR":"29.66"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2103.13767","atlas_url":"https://app.syntology.ai/?focus=2103.13767","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.13767"}},"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/grishavak/PaCNet-denoiser","reach":null}],"summary":{"ran":4,"unverified":4},"by_repo_kind":{"official":{"samples":8,"ran":4,"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":8,"samples":[{"code_sha256_prefix":"1fd4e79013b2e149","entry":"SepConvBnReM2D","repo":"grishavak/PaCNet-denoiser","repo_kind":"official","path":"code/modules.py","file_url":"https://github.com/grishavak/PaCNet-denoiser/blob/HEAD/code/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1fd4e79013b2e149"}},{"code_sha256_prefix":"7108e332e3a3a819","entry":"SepConvFM2D","repo":"grishavak/PaCNet-denoiser","repo_kind":"official","path":"code/modules.py","file_url":"https://github.com/grishavak/PaCNet-denoiser/blob/HEAD/code/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7108e332e3a3a819"}},{"code_sha256_prefix":"c147a5a5ed83c3f0","entry":"SepConvOut2D","repo":"grishavak/PaCNet-denoiser","repo_kind":"official","path":"code/modules.py","file_url":"https://github.com/grishavak/PaCNet-denoiser/blob/HEAD/code/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c147a5a5ed83c3f0"}},{"code_sha256_prefix":"1217c27913e87f5c","entry":"SepConvOutB2D","repo":"grishavak/PaCNet-denoiser","repo_kind":"official","path":"code/modules.py","file_url":"https://github.com/grishavak/PaCNet-denoiser/blob/HEAD/code/modules.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":"1217c27913e87f5c"}},{"code_sha256_prefix":"c0fc554703db7da4","entry":"ResNn","repo":"grishavak/PaCNet-denoiser","repo_kind":"official","path":"code/modules.py","file_url":"https://github.com/grishavak/PaCNet-denoiser/blob/HEAD/code/modules.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":"c0fc554703db7da4"}},{"code_sha256_prefix":"e4c5330a01499f3f","entry":"SepConvNet2D","repo":"grishavak/PaCNet-denoiser","repo_kind":"official","path":"code/modules.py","file_url":"https://github.com/grishavak/PaCNet-denoiser/blob/HEAD/code/modules.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":"e4c5330a01499f3f"}},{"code_sha256_prefix":"efb53401376f2faa","entry":"SepConvReF2D","repo":"grishavak/PaCNet-denoiser","repo_kind":"official","path":"code/modules.py","file_url":"https://github.com/grishavak/PaCNet-denoiser/blob/HEAD/code/modules.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":"efb53401376f2faa"}},{"code_sha256_prefix":"7a302576e2324c3e","entry":"VidCnn","repo":"grishavak/PaCNet-denoiser","repo_kind":"official","path":"code/modules.py","file_url":"https://github.com/grishavak/PaCNet-denoiser/blob/HEAD/code/modules.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":"7a302576e2324c3e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}