{"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/pressurevision-estimating-hand-pressure-from","title":"PressureVision: Estimating Hand Pressure from a Single RGB Image","arxiv_id":"2203.10385","date":"2022-03-19","proceeding":null,"authors":["Patrick Grady","Chengcheng Tang","Samarth Brahmbhatt","Christopher D. Twigg","Chengde Wan","James Hays","Charles C. Kemp"],"abstract":"People often interact with their surroundings by applying pressure with their hands. While hand pressure can be measured by placing pressure sensors between the hand and the environment, doing so can alter contact mechanics, interfere with human tactile perception, require costly sensors, and scale poorly to large environments. We explore the possibility of using a conventional RGB camera to infer hand pressure, enabling machine perception of hand pressure from uninstrumented hands and surfaces. The central insight is that the application of pressure by a hand results in informative appearance changes. Hands share biomechanical properties that result in similar observable phenomena, such as soft-tissue deformation, blood distribution, hand pose, and cast shadows. We collected videos of 36 participants with diverse skin tone applying pressure to an instrumented planar surface. We then trained a deep model (PressureVisionNet) to infer a pressure image from a single RGB image. Our model infers pressure for participants outside of the training data and outperforms baselines. We also show that the output of our model depends on the appearance of the hand and cast shadows near contact regions. Overall, our results suggest the appearance of a previously unobserved human hand can be used to accurately infer applied pressure. Data, code, and models are available online.","url_abs":"https://arxiv.org/abs/2203.10385v3","url_pdf":"https://arxiv.org/pdf/2203.10385v3.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":"pressurevision-estimating-hand-pressure-from","repo_url":"https://github.com/facebookresearch/pressurevision","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"contact-mechanics","task_name":"Contact mechanics"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2203.10385","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.10385"}},"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/facebookresearch/pressurevision","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"official":{"samples":5,"ran":0,"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":5,"samples":[{"code_sha256_prefix":"66fbdf125a145344","entry":"classes_to_scalar","repo":"facebookresearch/pressurevision","repo_kind":"official","path":"recording/util.py","file_url":"https://github.com/facebookresearch/pressurevision/blob/HEAD/recording/util.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":false,"mcp_get_code":{"code_sha256":"66fbdf125a145344"}},{"code_sha256_prefix":"533874f4636fedbf","entry":"crop_and_resize","repo":"facebookresearch/pressurevision","repo_kind":"official","path":"prediction/webcam_demo.py","file_url":"https://github.com/facebookresearch/pressurevision/blob/HEAD/prediction/webcam_demo.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":false,"mcp_get_code":{"code_sha256":"533874f4636fedbf"}},{"code_sha256_prefix":"1e9688a7ddef9094","entry":"load_config","repo":"facebookresearch/pressurevision","repo_kind":"official","path":"recording/util.py","file_url":"https://github.com/facebookresearch/pressurevision/blob/HEAD/recording/util.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":false,"mcp_get_code":{"code_sha256":"1e9688a7ddef9094"}},{"code_sha256_prefix":"f410d66d9a7bb0dc","entry":"scalar_to_classes","repo":"facebookresearch/pressurevision","repo_kind":"official","path":"recording/util.py","file_url":"https://github.com/facebookresearch/pressurevision/blob/HEAD/recording/util.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":false,"mcp_get_code":{"code_sha256":"f410d66d9a7bb0dc"}},{"code_sha256_prefix":"a869879a6431dee5","entry":"setup_metrics","repo":"facebookresearch/pressurevision","repo_kind":"official","path":"prediction/evaluator.py","file_url":"https://github.com/facebookresearch/pressurevision/blob/HEAD/prediction/evaluator.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":false,"mcp_get_code":{"code_sha256":"a869879a6431dee5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}