{"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/ctnerf-cross-time-transformer-for-dynamic","title":"CTNeRF: Cross-Time Transformer for Dynamic Neural Radiance Field from Monocular Video","arxiv_id":"2401.04861","date":"2024-01-10","proceeding":null,"authors":["Xingyu Miao","Yang Bai","Haoran Duan","Yawen Huang","Fan Wan","Yang Long","Yefeng Zheng"],"abstract":"The goal of our work is to generate high-quality novel views from monocular videos of complex and dynamic scenes. Prior methods, such as DynamicNeRF, have shown impressive performance by leveraging time-varying dynamic radiation fields. However, these methods have limitations when it comes to accurately modeling the motion of complex objects, which can lead to inaccurate and blurry renderings of details. To address this limitation, we propose a novel approach that builds upon a recent generalization NeRF, which aggregates nearby views onto new viewpoints. However, such methods are typically only effective for static scenes. To overcome this challenge, we introduce a module that operates in both the time and frequency domains to aggregate the features of object motion. This allows us to learn the relationship between frames and generate higher-quality images. Our experiments demonstrate significant improvements over state-of-the-art methods on dynamic scene datasets. Specifically, our approach outperforms existing methods in terms of both the accuracy and visual quality of the synthesized views. Our code is available on https://github.com/xingy038/CTNeRF.","url_abs":"https://arxiv.org/abs/2401.04861v2","url_pdf":"https://arxiv.org/pdf/2401.04861v2.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":"ctnerf-cross-time-transformer-for-dynamic","repo_url":"https://github.com/xingy038/ctnerf","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"nerf","task_name":"NeRF"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2401.04861","atlas_url":"https://app.syntology.ai/?focus=2401.04861","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2401.04861"}},"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/xingy038/ctnerf","reach":{"status":"ok"}}],"summary":{"ran":12,"ran_fixture":3,"ran_violates":1,"ran_draft_wrong":1,"ran_honours":1,"unverified":6},"by_repo_kind":{"official":{"samples":24,"ran":18,"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":24,"samples":[{"code_sha256_prefix":"a257c13a0310003d","entry":"CharbonnierLoss","repo":"xingy038/ctnerf","repo_kind":"official","path":"run_nerf_helpers.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/run_nerf_helpers.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":"a257c13a0310003d"}},{"code_sha256_prefix":"d42c9ddd0cc88b91","entry":"calculate_metrics","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/evaluation.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/evaluation.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":"d42c9ddd0cc88b91"}},{"code_sha256_prefix":"abcbf43ad9fe6129","entry":"compute_color","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/flow_utils.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/flow_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":"abcbf43ad9fe6129"}},{"code_sha256_prefix":"968a61f94601670e","entry":"compute_fwdbwd_mask","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/generate_flow.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/generate_flow.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":"968a61f94601670e"}},{"code_sha256_prefix":"6808e0a37cb268bb","entry":"extract_poses","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/generate_motion_mask.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/generate_motion_mask.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":"6808e0a37cb268bb"}},{"code_sha256_prefix":"db5c3dfae65db044","entry":"flow_to_image","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/flow_utils.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/flow_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":"db5c3dfae65db044"}},{"code_sha256_prefix":"168ec16785d462f0","entry":"im2tensor","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/evaluation.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/evaluation.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"168ec16785d462f0"}},{"code_sha256_prefix":"e5c5b0ee2a381aac","entry":"img2mae","repo":"xingy038/ctnerf","repo_kind":"official","path":"run_nerf_helpers.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/run_nerf_helpers.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":"e5c5b0ee2a381aac"}},{"code_sha256_prefix":"60f431e2284d4f9b","entry":"img2mse","repo":"xingy038/ctnerf","repo_kind":"official","path":"run_nerf_helpers.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/run_nerf_helpers.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":"60f431e2284d4f9b"}},{"code_sha256_prefix":"6c521de8b851930a","entry":"load_image","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/generate_flow.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/generate_flow.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6c521de8b851930a"}},{"code_sha256_prefix":"1d6f8390d799f055","entry":"normalize","repo":"xingy038/ctnerf","repo_kind":"official","path":"load_llff.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/load_llff.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1d6f8390d799f055"}},{"code_sha256_prefix":"8a38e306ff4c5b42","entry":"read_cameras_text","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/colmap_utils.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/colmap_utils.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8a38e306ff4c5b42"}},{"code_sha256_prefix":"fa28021adde0f186","entry":"read_image","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/generate_depth.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/generate_depth.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":"fa28021adde0f186"}},{"code_sha256_prefix":"56858e04e6fdb2ff","entry":"read_next_bytes","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/colmap_utils.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/colmap_utils.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"56858e04e6fdb2ff"}},{"code_sha256_prefix":"911ab74288e108d0","entry":"readimage","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/evaluation.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/evaluation.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":"911ab74288e108d0"}},{"code_sha256_prefix":"f18790b7a5ed1cdb","entry":"resize_flow","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/flow_utils.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/flow_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":"f18790b7a5ed1cdb"}},{"code_sha256_prefix":"aa52acee18f54d38","entry":"viewmatrix","repo":"xingy038/ctnerf","repo_kind":"official","path":"load_llff.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/load_llff.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"aa52acee18f54d38"}},{"code_sha256_prefix":"9c5cea6bfeb98971","entry":"warp_flow","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/generate_flow.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/generate_flow.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":"9c5cea6bfeb98971"}},{"code_sha256_prefix":"bfba43d73c1ec132","entry":"batchify_rays","repo":"xingy038/ctnerf","repo_kind":"official","path":"render_utils.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/render_utils.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":"bfba43d73c1ec132"}},{"code_sha256_prefix":"c6325f95a745322f","entry":"poses_avg","repo":"xingy038/ctnerf","repo_kind":"official","path":"load_llff.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/load_llff.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":"c6325f95a745322f"}},{"code_sha256_prefix":"3d7e294ff8567d46","entry":"read_cameras_binary","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/colmap_utils.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/colmap_utils.py","link_basis":"harvester_set","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":"3d7e294ff8567d46"}},{"code_sha256_prefix":"f55518fe2d733dfd","entry":"render","repo":"xingy038/ctnerf","repo_kind":"official","path":"render_utils.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/render_utils.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":"f55518fe2d733dfd"}},{"code_sha256_prefix":"83254ee1dcf586e7","entry":"render_path_batch","repo":"xingy038/ctnerf","repo_kind":"official","path":"render_utils.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/render_utils.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":"83254ee1dcf586e7"}},{"code_sha256_prefix":"206d4e4896607f52","entry":"run_maskrcnn","repo":"xingy038/ctnerf","repo_kind":"official","path":"utils/generate_motion_mask.py","file_url":"https://github.com/xingy038/ctnerf/blob/HEAD/utils/generate_motion_mask.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":"206d4e4896607f52"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}