{"id":13440472,"url":"https://github.com/halostorm/PCAT_open_source","last_synced_at":"2025-03-20T09:33:19.488Z","repository":{"id":45309203,"uuid":"146898749","full_name":"halostorm/PCAT_open_source","owner":"halostorm","description":"PointCloud Annotation Tools, support to label object bound box, ground, lane and kerb ","archived":false,"fork":false,"pushed_at":"2024-10-21T13:34:47.000Z","size":15661,"stargazers_count":415,"open_issues_count":18,"forks_count":127,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-10-28T02:21:09.251Z","etag":null,"topics":["annotation","pointcloud"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/halostorm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-31T13:55:41.000Z","updated_at":"2024-10-21T13:34:53.000Z","dependencies_parsed_at":"2024-10-27T23:46:39.840Z","dependency_job_id":"56cb5dd5-8e6a-477b-9eb1-2c7f644a3d69","html_url":"https://github.com/halostorm/PCAT_open_source","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halostorm%2FPCAT_open_source","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halostorm%2FPCAT_open_source/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halostorm%2FPCAT_open_source/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halostorm%2FPCAT_open_source/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/halostorm","download_url":"https://codeload.github.com/halostorm/PCAT_open_source/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244586065,"owners_count":20476875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotation","pointcloud"],"created_at":"2024-07-31T03:01:23.059Z","updated_at":"2025-03-20T09:33:18.877Z","avatar_url":"https://github.com/halostorm.png","language":"C++","readme":"PCAT点云标注工具-使用手册\n---------------------\n\n- Demo项目，请自行魔改\n\n- This is the open source version:\n\n     `Author:  WenwenDu`\n     `TEL:     18355180339`\n     `E-mail:  1455112695@qq.com`\n\n- Video tutorial: \n1. `https://v.youku.com/v_show/id_XNDYxNjY4MDExMg==.html?spm=a2h0k.11417342.soresults.dtitle`\n\n2. `https://v.youku.com/v_show/id_XNDYxNjY4MDI5Mg==.html?spm=a2hzp.8244740.0.0`\n\n## **I. 配置使用环境及安装**\n\n- `配置要求：ubuntu16.04 + ROS Kinetic full`\n- `注意：请务必保证系统使用原生python2.7，在使用Anaconda2的情况下，请在~/.bashrc环境变量中临时关闭Anaconda2,避免冲突。（如果你长期使用ROS，强烈建议在虚拟环境下使用anaconda，避免冲突。）`\n\n### 1. 安装ROS-Kinetic\n参考[ROS WiKi-安装说明](http://http://wiki.ros.org/kinetic/Installation/Ubuntu), 安装步骤如下：\n```\n添加ROS源：\nsudo sh -c 'echo \"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main\" \u003e /etc/apt/sources.list.d/ros-latest.list'\n添加ROS源秘钥：\nsudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116\n更新源\nsudo apt-get update\n```\n```\n安装ROS完整版：（由于使用Rviz，PCL等模块，请务必安装完整版）\nsudo apt-get install ros-kinetic-desktop-full\nsudo apt-cache search ros-kinetic\n初始化ROS：\nsudo rosdep init\nrosdep update\n```\n\n```\n添加环境变量\necho \"source /opt/ros/kinetic/setup.bash\" \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n更新ROS环境变量\nsource /opt/ros/kinetic/setup.bash\n```\n\n```\n测试ROS是否成功安装:\n开启一个新的Teminnal，输入：\nroscore\n测试Rviz\n开启一个新的Teminnal，输入：\nrviz\n```\n成功显示rviz界面如下：\n![图片](https://github.com/halostorm/PCAT/blob/master/image/s1.png)\n\n### 2. 安装PCAT标注工具\n```\n(1) 进入文件夹PCAT\n(2) 开启终端，运行安装命令： sh install.sh\n(3) 显示 install successful 后，home文件夹下出现lidar_annotation文件夹，安装成功\n```\n-------------------------\n## **II. 导入pcd文件**\n1. **导入待标注点云pcd文件**\n```\nCopy 待标注的点云.pcd格式文件到 lidar_annotation/pcd/ 文件夹下\n\n注意：标注工具默认支持激光雷达pcd格式点云，Field为[x,y,z,intensity],如果使用XYZRGB等其他pcd format，请在src/rviz_cloud_annotation/launch/annotation.launch中更改pcd_type参数的value.\n\n常见issue\n\n[1] 如何支持其他类型pcd或其他3Dpoints？ 修改以下code...\n// src/rviz_cloud_annotation/src/rviz_cloud_annotation_class.cpp\nvoid RVizCloudAnnotation::LoadCloud(const std::string \u0026filename,\n                                    const std::string \u0026normal_source,\n                                    PointXYZRGBNormalCloud \u0026cloud);\n\n```\n\n2. **开始标注**\n```\n打开 Teminnal, 运行: sh run.sh\n```\n显示标注界面如下：\n![图片](https://github.com/halostorm/PCAT/blob/master/image/s2.png)\n\n-------------------------------\n## **III. 标注手册正篇** \n`首次使用请务必仔细阅读`\n### 1. 标注面板详解\n**下面就上图中 A, B, C, D, E 5个模块做详细说明：**\n - [ ] **A. 标注菜单栏** \n\n```\n标注菜单栏由 [文件]， [编辑]，[视图]，[标记]，[选择] 5部分组成\n文件：(1)切换新文件，(2)清除当前帧标记，(3)保存\n编辑：(1)取消，(2)恢复\n视图：(1)增加点的尺寸，(2)减小点的尺寸，(3)重置点的尺寸\n标记：(1)清除当前物体的标记，(2)切换颜色，(3)设置障碍物BBox遮挡系数，(4)调节障碍物BBox方位，(5)调节障碍物BBox尺寸\n选择：(1)跳转至下一物体，(2)跳转至上一物体\n```\n```\n特别说明：\n1.切换新文件会自动保存当前文件的标注信息\n2.取消/恢复开销较大，尽量避免使用\n3.标记完成一个物体后，需要切换到下一个物体进行标注，否则会覆盖当前标记；选择新的颜色会自动切换到下一物体；物体ID显示在面板上\n4.标记障碍物时，颜色 1～5，6~10，11~15，16~20 分别对应标签： 小车，大车，行人，骑行；\n5.标记障碍物时，需要设置方位角和遮挡系数，请以实际为准标注，0--不遮挡，1--完全遮挡\n尽量使用简洁的方式完成标注，熟练使用快捷键可以有效提高标注速度。\n```\n![图片](https://github.com/halostorm/PCAT/blob/master/image/s3.png)\n特别说明\n1.点云被重复标记为 障碍物，路沿，车道线，地面时，标签优先级为 （障碍物 \u003e 路沿/车道线 \u003e 地面）\n\n### 2.标注步骤\n`在看标注说明之前请务必观看视频教程`\n- [ ] 标注请按照: 【障碍物--\u003e 路沿--\u003e车道线--\u003e地面】 的顺序。\n\n```\n(1) 障碍物\n障碍物包括 小车（轿车），大车（卡车、有轨电车等），行人，骑行（电动车）4类。\n在该数据集中主要包含 小车和行人，及少量的大车和骑行。请在标注`颜色面板`选择不同的按钮，对应不同的障碍物。\n颜色面板分为4大块，颜色 1～5，6~10，11~15，16~20 分别对应： 小车，大车，行人，骑行，代表不同的障碍物。\n对每一帧的点云，障碍物存在则标注，不存在则不标注；每标注完一个障碍物，需要==切换至下一个障碍物进行新的标注。\n(比如：标完第一辆小车，需要按`Shitf+N` 切换至下一小车，或者按`Shift+P`切换至上一障碍物进行修改)。\n选择新的颜色会自动切换至新的下一障碍物。\n每个障碍物，需要标注人员自己判断大致的朝向，并进行方位调节（R、F键）。\n受到遮挡的障碍物请设置`遮挡系数`，默认为 0，即不遮挡，大多数障碍物不存在遮挡。\n```\n![图片](https://github.com/halostorm/PCAT/blob/master/image/s4.png)\n\n```\n(2)  路沿\n 路沿指道路中地面的边界，如上图显示；标记路沿只能使用点选的方式标注（具体操作可以参考标注视频教程）\n 一般一帧点云中有多条路沿，每标记一条，需要切换至下一路沿进行标注，切换方式与障碍物切换相同。\n(3)  车道线\n 车道线指道路中颜色明显突出的线段，一般出现的频率比较低，没有出现或者看不清楚则不用标注；车道线的标注方式与路沿完全相同。\n(4)  地面\n 地面是一帧点云中比较关键的部分，一般选择使用多边形进行选择标注，边界为之前标注的路沿。\n 地面可以分多次标注，拼接生成；如果一次选点过多，地面生成时间会较长。\n *在2.4.0版本之后，标注工具增加了地面辅助标记功能：用户每次选择`地面(F2)`按钮时，系统会自动生成95%的地面，用户在此基础上进行细节修改，\n 得到最终的地面标注。\n```\n\n### 3.标注结果\n#### Result路径说明\n![图片](https://github.com/halostorm/PCAT/blob/master/image/s6.png)\n#### 3D框label\n![图片](https://github.com/halostorm/PCAT/blob/master/image/s5.png)\n\n------------------------\n\n**IV、注意事项**\n-----------------------\n    1. 标注工具使用过程中如果遇见问题，或者代码部分有疑问，编辑需要，联系 @杜文文(18355180339 / 1455112695@qq.com)\n    2. 视频教程:\n       A`https://v.youku.com/v_show/id_XNDYxNjY4MDExMg==.html?spm=a2h0k.11417342.soresults.dtitle`\n       B`https://v.youku.com/v_show/id_XNDYxNjY4MDI5Mg==.html?spm=a2hzp.8244740.0.0`\n\n-----------------------\n\n**V、版权说明**\n-----------------------\n1. **软件版权** \n本标注工具的版权归WenwenDu所有\n 2. **其他版权** \n本标注工具在 RIMLab 开源标注工具 rviz_cloud_annotation 上改进完成：\n`https://github.com/RMonica/rviz_cloud_annotation`\n\n```\n原始版权说明：\nOriginal Copyright:\n/*\n * Copyright (c) 2016-2017, Riccardo Monica\n *   RIMLab, Department of Engineering and Architecture\n *   University of Parma, Italy\n *   http://www.rimlab.ce.unipr.it/\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n *    this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n *    this list of conditions and the following disclaimer in the documentation\n *    and/or other materials provided with the distribution.\n *\n * 3. Neither the name of the copyright holder nor the names of its\n *    contributors may be used to endorse or promote products derived from this\n *    software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n```\n\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalostorm%2FPCAT_open_source","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhalostorm%2FPCAT_open_source","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalostorm%2FPCAT_open_source/lists"}