{"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/cleargrasp-3d-shape-estimation-of-transparent","title":"ClearGrasp: 3D Shape Estimation of Transparent Objects for Manipulation","arxiv_id":"1910.02550","date":"2019-10-06","proceeding":null,"authors":["Shreeyak S. Sajjan","Matthew Moore","Mike Pan","Ganesh Nagaraja","Johnny Lee","Andy Zeng","Shuran Song"],"abstract":"Transparent objects are a common part of everyday life, yet they possess unique visual properties that make them incredibly difficult for standard 3D sensors to produce accurate depth estimates for. In many cases, they often appear as noisy or distorted approximations of the surfaces that lie behind them. To address these challenges, we present ClearGrasp -- a deep learning approach for estimating accurate 3D geometry of transparent objects from a single RGB-D image for robotic manipulation. Given a single RGB-D image of transparent objects, ClearGrasp uses deep convolutional networks to infer surface normals, masks of transparent surfaces, and occlusion boundaries. It then uses these outputs to refine the initial depth estimates for all transparent surfaces in the scene. To train and test ClearGrasp, we construct a large-scale synthetic dataset of over 50,000 RGB-D images, as well as a real-world test benchmark with 286 RGB-D images of transparent objects and their ground truth geometries. The experiments demonstrate that ClearGrasp is substantially better than monocular depth estimation baselines and is capable of generalizing to real-world images and novel objects. We also demonstrate that ClearGrasp can be applied out-of-the-box to improve grasping algorithms' performance on transparent objects. Code, data, and benchmarks will be released. Supplementary materials available on the project website: https://sites.google.com/view/cleargrasp","url_abs":"https://arxiv.org/abs/1910.02550v2","url_pdf":"https://arxiv.org/pdf/1910.02550v2.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":"cleargrasp-3d-shape-estimation-of-transparent","repo_url":"https://github.com/Shreeyak/cleargrasp","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"3d-geometry","task_name":"3D geometry"},{"task_slug":"depth-completion","task_name":"Depth Completion"},{"task_slug":"depth-estimation","task_name":"Depth Estimation"},{"task_slug":"monocular-depth-estimation","task_name":"Monocular Depth Estimation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"surface-normals-estimation","task_name":"Surface Normals Estimation"},{"task_slug":"transparent-object-depth-estimation","task_name":"Transparent Object Depth Estimation"},{"task_slug":"transparent-object-detection","task_name":"Transparent Object Detection"},{"task_slug":"transparent-objects","task_name":"Transparent objects"}],"methods":[{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/semantic-segmentation-on-cleargrasp-novel","task":"Semantic Segmentation","dataset":"Cleargrasp (Novel)","model":"Cleargrasp","rank_in_archive_order":1,"of":2,"metrics":{"Mean IoU":"58"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1910.02550","atlas_url":"https://app.syntology.ai/?focus=1910.02550","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1910.02550"}},"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/Shreeyak/cleargrasp","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"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":0,"samples":[{"code_sha256_prefix":"ff26fc2e0556ca72","entry":"blend_2_images","repo":"Shreeyak/cleargrasp","repo_kind":"official","path":"dataset_capture_gui/capture_image.py","file_url":"https://github.com/Shreeyak/cleargrasp/blob/HEAD/dataset_capture_gui/capture_image.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":"ff26fc2e0556ca72"}},{"code_sha256_prefix":"02f07d7390433817","entry":"build_aspp","repo":"Shreeyak/cleargrasp","repo_kind":"official","path":"api/modeling/aspp.py","file_url":"https://github.com/Shreeyak/cleargrasp/blob/HEAD/api/modeling/aspp.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":"02f07d7390433817"}},{"code_sha256_prefix":"fca9cc83c0d4bb38","entry":"build_decoder","repo":"Shreeyak/cleargrasp","repo_kind":"official","path":"api/modeling/decoder.py","file_url":"https://github.com/Shreeyak/cleargrasp/blob/HEAD/api/modeling/decoder.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":"fca9cc83c0d4bb38"}},{"code_sha256_prefix":"3a0df7487d037785","entry":"build_decoder","repo":"Shreeyak/cleargrasp","repo_kind":"official","path":"api/modeling/decoder_masks.py","file_url":"https://github.com/Shreeyak/cleargrasp/blob/HEAD/api/modeling/decoder_masks.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":"3a0df7487d037785"}},{"code_sha256_prefix":"bda7db167fbb3824","entry":"depth2rgb","repo":"Shreeyak/cleargrasp","repo_kind":"official","path":"api/utils.py","file_url":"https://github.com/Shreeyak/cleargrasp/blob/HEAD/api/utils.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":"bda7db167fbb3824"}},{"code_sha256_prefix":"5905d8e45b03578e","entry":"get_release_scans","repo":"Shreeyak/cleargrasp","repo_kind":"official","path":"z-ignore-scripts-helper/download-scannet.py","file_url":"https://github.com/Shreeyak/cleargrasp/blob/HEAD/z-ignore-scripts-helper/download-scannet.py","link_basis":"plan_row","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":"5905d8e45b03578e"}},{"code_sha256_prefix":"8fa4a903aa57678d","entry":"run_bash_cmd","repo":"Shreeyak/cleargrasp","repo_kind":"official","path":"z-ignore-scripts-helper/extract_scannet_sens_file.py","file_url":"https://github.com/Shreeyak/cleargrasp/blob/HEAD/z-ignore-scripts-helper/extract_scannet_sens_file.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":"8fa4a903aa57678d"}},{"code_sha256_prefix":"c926f1221e84d21d","entry":"scale_depth","repo":"Shreeyak/cleargrasp","repo_kind":"official","path":"api/utils.py","file_url":"https://github.com/Shreeyak/cleargrasp/blob/HEAD/api/utils.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":"c926f1221e84d21d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}