{"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/bonnet-an-open-source-training-and-deployment","title":"Bonnet: An Open-Source Training and Deployment Framework for Semantic Segmentation in Robotics using CNNs","arxiv_id":"1802.08960","date":"2018-02-25","proceeding":null,"authors":["Andres Milioto","Cyrill Stachniss"],"abstract":"The ability to interpret a scene is an important capability for a robot that\nis supposed to interact with its environment. The knowledge of what is in front\nof the robot is, for example, relevant for navigation, manipulation, or\nplanning. Semantic segmentation labels each pixel of an image with a class\nlabel and thus provides a detailed semantic annotation of the surroundings to\nthe robot. Convolutional neural networks (CNNs) are popular methods for\naddressing this type of problem. The available software for training and the\nintegration of CNNs for real robots, however, is quite fragmented and often\ndifficult to use for non-experts, despite the availability of several\nhigh-quality open-source frameworks for neural network implementation and\ntraining. In this paper, we propose a tool called Bonnet, which addresses this\nfragmentation problem by building a higher abstraction that is specific for the\nsemantic segmentation task. It provides a modular approach to simplify the\ntraining of a semantic segmentation CNN independently of the used dataset and\nthe intended task. Furthermore, we also address the deployment on a real\nrobotic platform. Thus, we do not propose a new CNN approach in this paper.\nInstead, we provide a stable and easy-to-use tool to make this technology more\napproachable in the context of autonomous systems. In this sense, we aim at\nclosing a gap between computer vision research and its use in robotics\nresearch. We provide an open-source codebase for training and deployment. The\ntraining interface is implemented in Python using TensorFlow and the deployment\ninterface provides a C++ library that can be easily integrated in an existing\nrobotics codebase, a ROS node, and two standalone applications for label\nprediction in images and videos.","url_abs":"http://arxiv.org/abs/1802.08960v2","url_pdf":"http://arxiv.org/pdf/1802.08960v2.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":"bonnet-an-open-source-training-and-deployment","repo_url":"https://github.com/PRBonn/bonnet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"GPL-3.0"}},{"paper_slug":"bonnet-an-open-source-training-and-deployment","repo_url":"https://github.com/PRBonn/bonnetal","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1802.08960","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1802.08960"}},"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/PRBonn/bonnet","reach":{"status":"ok","spdx":"GPL-3.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PRBonn/bonnetal","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"listed":{"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":0,"samples":[{"code_sha256_prefix":"5724dd4e1465917a","entry":"conv3x3","repo":"PRBonn/bonnetal","repo_kind":"listed","path":"train/backbones/resnet.py","file_url":"https://github.com/PRBonn/bonnetal/blob/HEAD/train/backbones/resnet.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":"5724dd4e1465917a"}},{"code_sha256_prefix":"3171c919d0c7b399","entry":"intersect","repo":"PRBonn/bonnetal","repo_kind":"listed","path":"train/common/boxmeter.py","file_url":"https://github.com/PRBonn/bonnetal/blob/HEAD/train/common/boxmeter.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":"3171c919d0c7b399"}},{"code_sha256_prefix":"aad5480970b2edde","entry":"is_image","repo":"PRBonn/bonnetal","repo_kind":"listed","path":"train/auxiliary/calculate_means_stds.py","file_url":"https://github.com/PRBonn/bonnetal/blob/HEAD/train/auxiliary/calculate_means_stds.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":"aad5480970b2edde"}},{"code_sha256_prefix":"dc69a32fd2d452c1","entry":"jaccard","repo":"PRBonn/bonnetal","repo_kind":"listed","path":"train/common/boxmeter.py","file_url":"https://github.com/PRBonn/bonnetal/blob/HEAD/train/common/boxmeter.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":"dc69a32fd2d452c1"}},{"code_sha256_prefix":"96fb76c9f118b2ec","entry":"to_one_hot","repo":"PRBonn/bonnetal","repo_kind":"listed","path":"train/common/onehot.py","file_url":"https://github.com/PRBonn/bonnetal/blob/HEAD/train/common/onehot.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":"96fb76c9f118b2ec"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}