{"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/d3feat-joint-learning-of-dense-detection-and","title":"D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features","arxiv_id":"2003.03164","date":"2020-03-06","proceeding":"CVPR 2020 6","authors":["Xuyang Bai","Zixin Luo","Lei Zhou","Hongbo Fu","Long Quan","Chiew-Lan Tai"],"abstract":"A successful point cloud registration often lies on robust establishment of sparse matches through discriminative 3D local features. Despite the fast evolution of learning-based 3D feature descriptors, little attention has been drawn to the learning of 3D feature detectors, even less for a joint learning of the two tasks. In this paper, we leverage a 3D fully convolutional network for 3D point clouds, and propose a novel and practical learning mechanism that densely predicts both a detection score and a description feature for each 3D point. In particular, we propose a keypoint selection strategy that overcomes the inherent density variations of 3D point clouds, and further propose a self-supervised detector loss guided by the on-the-fly feature matching results during training. Finally, our method achieves state-of-the-art results in both indoor and outdoor scenarios, evaluated on 3DMatch and KITTI datasets, and shows its strong generalization ability on the ETH dataset. Towards practical use, we show that by adopting a reliable feature detector, sampling a smaller number of features is sufficient to achieve accurate and fast point cloud alignment.[code release](https://github.com/XuyangBai/D3Feat)","url_abs":"https://arxiv.org/abs/2003.03164v1","url_pdf":"https://arxiv.org/pdf/2003.03164v1.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":"d3feat-joint-learning-of-dense-detection-and","repo_url":"https://github.com/XuyangBai/D3Feat","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"d3feat-joint-learning-of-dense-detection-and","repo_url":"https://github.com/XuyangBai/D3Feat.pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"point-cloud-registration","task_name":"Point Cloud Registration"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/point-cloud-registration-on-3dlomatch-10-30","task":"Point Cloud Registration","dataset":"3DLoMatch (10-30% overlap)","model":"D3Feat (reported in PREDATOR)","rank_in_archive_order":10,"of":13,"metrics":{"Recall ( correspondence RMSE below 0.2)":"37.2"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-3dmatch-at-least-2","task":"Point Cloud Registration","dataset":"3DMatch (at least 30% overlapped - sample 5k interest points)","model":"D3Feat (reported in PREDATOR)","rank_in_archive_order":8,"of":11,"metrics":{"Recall ( correspondence RMSE below 0.2)":"81.6"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-3dmatch-trained","task":"Point Cloud Registration","dataset":"3DMatch (trained on KITTI)","model":"D3Feat-pred","rank_in_archive_order":3,"of":5,"metrics":{"Recall":"0.627"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-3dmatch-benchmark","task":"Point Cloud Registration","dataset":"3DMatch Benchmark","model":"D3Feat-Pred","rank_in_archive_order":7,"of":15,"metrics":{"Feature Matching Recall":"95.8"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-3dmatch-benchmark","task":"Point Cloud Registration","dataset":"3DMatch Benchmark","model":"D3Feat-rand","rank_in_archive_order":8,"of":15,"metrics":{"Feature Matching Recall":"95.3"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-eth-trained-on","task":"Point Cloud Registration","dataset":"ETH (trained on 3DMatch)","model":"D3Feat-pred","rank_in_archive_order":7,"of":20,"metrics":{"Feature Matching Recall":"0.563"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-kitti","task":"Point Cloud Registration","dataset":"KITTI","model":"D3Feat-pred","rank_in_archive_order":2,"of":6,"metrics":{"Success Rate":"99.81"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-kitti-trained-on","task":"Point Cloud Registration","dataset":"KITTI (trained on 3DMatch)","model":"D3Feat-pred","rank_in_archive_order":13,"of":14,"metrics":{"Success Rate":"36.76"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2003.03164","atlas_url":"https://app.syntology.ai/?focus=2003.03164","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.03164"}},"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/XuyangBai/D3Feat","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/XuyangBai/D3Feat.pytorch","reach":{"status":"ok"}}],"summary":{"ran":5,"unverified":3},"by_repo_kind":{"official":{"samples":8,"ran":5,"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":"8427c7e156becb53","entry":"all_diffs","repo":"XuyangBai/D3Feat","repo_kind":"official","path":"utils/loss.py","file_url":"https://github.com/XuyangBai/D3Feat/blob/HEAD/utils/loss.py","link_basis":"first_harvest_node","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":"8427c7e156becb53"}},{"code_sha256_prefix":"3dbcae6ca6415ede","entry":"cdist","repo":"XuyangBai/D3Feat","repo_kind":"official","path":"utils/loss.py","file_url":"https://github.com/XuyangBai/D3Feat/blob/HEAD/utils/loss.py","link_basis":"first_harvest_node","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":"3dbcae6ca6415ede"}},{"code_sha256_prefix":"f6fa452e61831f1d","entry":"get_at_indices","repo":"XuyangBai/D3Feat","repo_kind":"official","path":"utils/loss.py","file_url":"https://github.com/XuyangBai/D3Feat/blob/HEAD/utils/loss.py","link_basis":"first_harvest_node","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":"f6fa452e61831f1d"}},{"code_sha256_prefix":"8d97dff7e23e80ea","entry":"rotate","repo":"XuyangBai/D3Feat","repo_kind":"official","path":"datasets/ThreeDMatch.py","file_url":"https://github.com/XuyangBai/D3Feat/blob/HEAD/datasets/ThreeDMatch.py","link_basis":"first_harvest_node","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":"8d97dff7e23e80ea"}},{"code_sha256_prefix":"5af2ecb7d64ab693","entry":"rotate","repo":"XuyangBai/D3Feat","repo_kind":"official","path":"datasets/ThreeDMatch_back.py","file_url":"https://github.com/XuyangBai/D3Feat/blob/HEAD/datasets/ThreeDMatch_back.py","link_basis":"first_harvest_node","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":"5af2ecb7d64ab693"}},{"code_sha256_prefix":"6a88f1ae24fa26b2","entry":"bias_variable","repo":"XuyangBai/D3Feat","repo_kind":"official","path":"models/network_blocks.py","file_url":"https://github.com/XuyangBai/D3Feat/blob/HEAD/models/network_blocks.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":"6a88f1ae24fa26b2"}},{"code_sha256_prefix":"4383ecd8cc0719fa","entry":"ind_max_pool","repo":"XuyangBai/D3Feat","repo_kind":"official","path":"models/network_blocks.py","file_url":"https://github.com/XuyangBai/D3Feat/blob/HEAD/models/network_blocks.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":"4383ecd8cc0719fa"}},{"code_sha256_prefix":"5a6188c7d118c3fc","entry":"weight_variable","repo":"XuyangBai/D3Feat","repo_kind":"official","path":"models/network_blocks.py","file_url":"https://github.com/XuyangBai/D3Feat/blob/HEAD/models/network_blocks.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":"5a6188c7d118c3fc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}