{"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/tame-a-wild-camera-in-the-wild-monocular-1","title":"Tame a Wild Camera: In-the-Wild Monocular Camera Calibration","arxiv_id":"2306.10988","date":"2023-06-19","proceeding":"NeurIPS 2023 11","authors":["Shengjie Zhu","Abhinav Kumar","Masa Hu","Xiaoming Liu"],"abstract":"3D sensing for monocular in-the-wild images, e.g., depth estimation and 3D object detection, has become increasingly important. However, the unknown intrinsic parameter hinders their development and deployment. Previous methods for the monocular camera calibration rely on specific 3D objects or strong geometry prior, such as using a checkerboard or imposing a Manhattan World assumption. This work solves the problem from the other perspective by exploiting the monocular 3D prior. Our method is assumption-free and calibrates the complete $4$ Degree-of-Freedom (DoF) intrinsic parameters. First, we demonstrate intrinsic is solved from two well-studied monocular priors, i.e., monocular depthmap, and surface normal map. However, this solution imposes a low-bias and low-variance requirement for depth estimation. Alternatively, we introduce a novel monocular 3D prior, the incidence field, defined as the incidence rays between points in 3D space and pixels in the 2D imaging plane. The incidence field is a pixel-wise parametrization of the intrinsic invariant to image cropping and resizing. With the estimated incidence field, a robust RANSAC algorithm recovers intrinsic. We demonstrate the effectiveness of our method by showing superior performance on synthetic and zero-shot testing datasets. Beyond calibration, we demonstrate downstream applications in image manipulation detection & restoration, uncalibrated two-view pose estimation, and 3D sensing. Codes, models, and data will be held in https://github.com/ShngJZ/WildCamera.","url_abs":"https://arxiv.org/abs/2306.10988v2","url_pdf":"https://arxiv.org/pdf/2306.10988v2.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":"tame-a-wild-camera-in-the-wild-monocular-1","repo_url":"https://github.com/shngjz/wildcamera","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"3d-object-detection","task_name":"3D Object Detection"},{"task_slug":"camera-calibration","task_name":"Camera Calibration"},{"task_slug":"depth-estimation","task_name":"Depth Estimation"},{"task_slug":"image-cropping","task_name":"Image Cropping"},{"task_slug":"image-manipulation","task_name":"Image Manipulation"},{"task_slug":"image-manipulation-detection","task_name":"Image Manipulation Detection"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2306.10988","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.10988"}},"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/shngjz/wildcamera","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_fixture":1,"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"official":{"samples":5,"ran":2,"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":"144d10b49baeb8a6","entry":"window_partition","repo":"shngjz/wildcamera","repo_kind":"official","path":"WildCamera/newcrfs/newcrf_layers.py","file_url":"https://github.com/shngjz/wildcamera/blob/HEAD/WildCamera/newcrfs/newcrf_layers.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":2,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"144d10b49baeb8a6"}},{"code_sha256_prefix":"61bf152e6a42a184","entry":"window_reverse","repo":"shngjz/wildcamera","repo_kind":"official","path":"WildCamera/newcrfs/newcrf_layers.py","file_url":"https://github.com/shngjz/wildcamera/blob/HEAD/WildCamera/newcrfs/newcrf_layers.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"61bf152e6a42a184"}},{"code_sha256_prefix":"2112b1bf7e1cb08e","entry":"acquire_bbox","repo":"shngjz/wildcamera","repo_kind":"official","path":"WildCamera/evaluation/evaluate_crop.py","file_url":"https://github.com/shngjz/wildcamera/blob/HEAD/WildCamera/evaluation/evaluate_crop.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2112b1bf7e1cb08e"}},{"code_sha256_prefix":"63514d8ff0b958ed","entry":"add_white_noise","repo":"shngjz/wildcamera","repo_kind":"official","path":"WildCamera/datasets/GenericDataset.py","file_url":"https://github.com/shngjz/wildcamera/blob/HEAD/WildCamera/datasets/GenericDataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"63514d8ff0b958ed"}},{"code_sha256_prefix":"4f6ddcff837c3f43","entry":"bbox_auc","repo":"shngjz/wildcamera","repo_kind":"official","path":"WildCamera/evaluation/evaluate_crop.py","file_url":"https://github.com/shngjz/wildcamera/blob/HEAD/WildCamera/evaluation/evaluate_crop.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4f6ddcff837c3f43"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}