{"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/deep-vanishing-point-detection-geometric","title":"Deep vanishing point detection: Geometric priors make dataset variations vanish","arxiv_id":"2203.08586","date":"2022-03-16","proceeding":"CVPR 2022 1","authors":["Yancong Lin","Ruben Wiersma","Silvia L. Pintea","Klaus Hildebrandt","Elmar Eisemann","Jan C. van Gemert"],"abstract":"Deep learning has improved vanishing point detection in images. Yet, deep networks require expensive annotated datasets trained on costly hardware and do not generalize to even slightly different domains, and minor problem variants. Here, we address these issues by injecting deep vanishing point detection networks with prior knowledge. This prior knowledge no longer needs to be learned from data, saving valuable annotation efforts and compute, unlocking realistic few-sample scenarios, and reducing the impact of domain changes. Moreover, the interpretability of the priors allows to adapt deep networks to minor problem variations such as switching between Manhattan and non-Manhattan worlds. We seamlessly incorporate two geometric priors: (i) Hough Transform -- mapping image pixels to straight lines, and (ii) Gaussian sphere -- mapping lines to great circles whose intersections denote vanishing points. Experimentally, we ablate our choices and show comparable accuracy to existing models in the large-data setting. We validate our model's improved data efficiency, robustness to domain changes, adaptability to non-Manhattan settings.","url_abs":"https://arxiv.org/abs/2203.08586v1","url_pdf":"https://arxiv.org/pdf/2203.08586v1.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":"deep-vanishing-point-detection-geometric","repo_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2203.08586","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.08586"}},"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/yanconglin/vanishingpoint_houghtransform_gaussiansphere","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_violates":1,"unverified":16},"by_repo_kind":{"official":{"samples":17,"ran":1,"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":"eb7801586aa2560a","entry":"rgb2gray","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"dataset/nyu_process.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/dataset/nyu_process.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"eb7801586aa2560a"}},{"code_sha256_prefix":"e9cd554cae456073","entry":"AA","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"eval_manhattan.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/eval_manhattan.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":"e9cd554cae456073"}},{"code_sha256_prefix":"5c8d2e6ae1329291","entry":"MLP","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"vpd/models/dgcn.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/vpd/models/dgcn.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":"5c8d2e6ae1329291"}},{"code_sha256_prefix":"52bdb37b8c80883e","entry":"calc_auc","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"cluster_nyu.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/cluster_nyu.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":"52bdb37b8c80883e"}},{"code_sha256_prefix":"deee09d09b6a5086","entry":"catersian_to_sphere","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"parameterization.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/parameterization.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":"deee09d09b6a5086"}},{"code_sha256_prefix":"6125c3a4aaf2b8b3","entry":"compute_error","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"eval_manhattan.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/eval_manhattan.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":"6125c3a4aaf2b8b3"}},{"code_sha256_prefix":"cb8ab53d2a62789f","entry":"cos_cdis","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"parameterization.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/parameterization.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":"cb8ab53d2a62789f"}},{"code_sha256_prefix":"08fa3af6222de022","entry":"gold_spiral_sampling_patch","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"misc/find-radius.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/misc/find-radius.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":"08fa3af6222de022"}},{"code_sha256_prefix":"4ec6861f58a7539c","entry":"line_vp_distances","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"dataset/yud_process.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/dataset/yud_process.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":"4ec6861f58a7539c"}},{"code_sha256_prefix":"20101849e7104ea6","entry":"make_conv1d_block","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"vpd/models/convs.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/vpd/models/convs.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":"20101849e7104ea6"}},{"code_sha256_prefix":"d977e87d61e39ae2","entry":"make_conv2d_block","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"vpd/models/convs.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/vpd/models/convs.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":"d977e87d61e39ae2"}},{"code_sha256_prefix":"b6cf865210ac7f8c","entry":"orth","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"misc/find-radius.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/misc/find-radius.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":"b6cf865210ac7f8c"}},{"code_sha256_prefix":"20597725bc4f8ab6","entry":"single_eval_nyu","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"cluster_nyu.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/cluster_nyu.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":"20597725bc4f8ab6"}},{"code_sha256_prefix":"b54f63482cf3c0fc","entry":"sphere_to_catesian","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"parameterization.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/parameterization.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":"b54f63482cf3c0fc"}},{"code_sha256_prefix":"ca6ab07fef75b6fb","entry":"to_pixel","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"dataset/nyu_process.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/dataset/nyu_process.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":"ca6ab07fef75b6fb"}},{"code_sha256_prefix":"b6054b5cbf636a16","entry":"topk_orthogonal_vps","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"eval_manhattan.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/eval_manhattan.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":"b6054b5cbf636a16"}},{"code_sha256_prefix":"0afe3afc1f40f8df","entry":"vps_clustering","repo":"yanconglin/vanishingpoint_houghtransform_gaussiansphere","repo_kind":"official","path":"cluster_nyu.py","file_url":"https://github.com/yanconglin/vanishingpoint_houghtransform_gaussiansphere/blob/HEAD/cluster_nyu.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":"0afe3afc1f40f8df"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}