NeurIPS | 3D-BoNet:3D 点云实例分割的新框架

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达5a70c6a08d60a22405942217564531eb.png

本文对牛津大学、DeepMind 等单位合作完成的论文《Learning Object Bounding Boxes for 3D Instance Segmentation on Point Clouds》进行解读,该论文发表在NeurIPS 2019上,目前代码已公开。

c819f6c3b3ae18c4d1814b780292ce9b.png

链接: arxiv.org/abs/1906.0114

代码: https://github.com/Yang7879/3D-BoNet

论文第一作者为牛津大学博士生杨波,本文作者为这项工作的作者之一 Qingyong Hu。

该论文提出了一种新型的 3D 点云实例分割的框架——3D-BoNet。这是一种基于边界框回归的高效点云实例分割算法,通过最小化匹配代价函数来实现大致的边界框回归,并通过point mask预测来实现最终的实例分割。3D-BoNet 在 ScanNet 和 S3DIS 数据集上都达到了SOTA的效果,且更加高效。

先上图:

b1b491a331a5e3745cbe38aa25d11aa4.gif

9a329c747a97609a540a53ffc281a5ed.gif

实现有效的三维场景理解(3D scene understanding)是计算机视觉和人工智能领域的关键问题之一。近年来,针对三维点云理解的研究取得了显著的进展,在诸如点云目标检测,语义分割等任务上都展现出了很不错的效果。然而,针对于点云实例分割的研究还处于较为初级的阶段。

当前主流的点云实例分割算法可以分为以下两类,如下图所示:

4fb53e290ad73f0c6f6e31549a389ffd.png

图1. 当前主流的点云实例分割算法对比

1)基于候选目标框(Proposal-based methods)的算法,例如3D-SIS[1],GSPN[2],这类方法通常依赖于两阶段的训练(two-stage training)和昂贵的非极大值抑制(non-maximum suppression, NMS)等操作来对密集的proposal进行选择。

2)无候选目标框的算法(Proposal-free methods),例如SGPN[3], ASIS[4], JSIS3D[5], MASC[6], 3D-BEVIS[7]等。这类算法的核心思想是为每个点学习一个discriminative feature embedding,然后再通过诸如mean-shift等聚类(clustering)方法来将同一个instance的点聚集(group)到一起。这类方法的问题在于最终聚类到一起的instance目标性(objectness)比较差。此外,此类方法后处理步骤(post-processing)的时间成本通常较高。

不同于上述两类方法,我们提出了一个single stage, anchor free并且end-to-end的基于边界框回归的实例分割算法(3D-BoNet)。该算法具有如下优势:

  • 相比于proposal-free的方法,3D-BoNet显式地去预测目标的边界框,因此最终学到的instance具有更好的目标性(high objectness).

  • 相比于proposal-based的方法,3D-BoNet并不需要复杂耗时的region proposal network以及ROIAlign等操作,因此也不需要NMS等post-processing步骤。

  • 3D-BoNet由非常高效的shared MLP组成,并且不需要诸如非极大值抑制,特征采样(feature sampling),聚类(clustering)或者投票(voting)等后处理步骤,因此非常高效。

Reference

[1] J. Hou, A. Dai, and M. Nießner. 3D-SIS: 3D Semantic Instance Segmentation of RGB-D Scans. CVPR, 2019

[2] L. Yi, W. Zhao, H. Wang, M. Sung, and L. Guibas. GSPN: Generative Shape Proposal Network for 3D Instance Segmentation in Point Cloud. CVPR, 2019.

[3] W. Wang, R. Yu, Q. Huang, and U. Neumann. SGPN: Similarity Group Proposal Network for 3D Point Cloud Instance Segmentation. CVPR, 2018.

[4] X. Wang, S. Liu, X. Shen, C. Shen, and J. Jia. Associatively Segmenting Instances and Semantics in Point Clouds. CVPR, 2019.

[5] Q.-H. Pham, D. T. Nguyen, B.-S. Hua, G. Roig, and S.-K. Yeung. JSIS3D: Joint Semantic-Instance Segmentation of 3D Point Clouds with Multi-Task Pointwise Networks and Multi-Value Conditional Random Fields. CVPR, 2019.

[6] C. Liu and Y. Furukawa. MASC: Multi-scale Affinity with Sparse Convolution for 3D Instance Segmentation. arXiv, 2019.

[7] C. Elich, F. Engelmann, J. Schult, T. Kontogianni, and B. Leibe. 3D-BEVIS: Birds-Eye-View Instance Segmentation. GCPR, 2019.

[8] H. W. Kuhn. The Hungarian Method for the assignment problem. Naval Research Logistics Quarterly, 2(1-2):83–97, 1955.

[9] H. W. Kuhn. Variants of the hungarian method for assignment problems.Naval Research LogisticsQuarterly, 3(4):253–258, 1956

[10] T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollar. Focal Loss for Dense Object Detection. ICCV, 2017.

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

79d6d8e2bf4fe78aae0d0bd236736b7b.png

b9d19812a74db1dbe2b2052033e27234.png

3D-BoNet 是一个用于三维物体检测的深度学习模型,可以使用自己的数据集进行训练。下面是一个大致的步骤来训练自己的数据集: 1. 数据准备: - 收集或制作带有标注的三维物体数据集。每个物体应包含其在三维空间中的边界框(bounding box)和类别标签。 - 将数据集划分为训练集和验证集,通常按照一定比例划分,以便在训练过程中评估模型的性能。 2. 数据预处理: - 对输入数据进行预处理,例如将点云数据转换为模型所需的输入格式,如 3D 网格或体素表示。 - 标准化数据,以便均值为零并具有相似的尺度。 - 可选地对数据进行增强,如旋转、平移、缩放、翻转等操作,以扩充数据集。 3. 模型配置: - 根据你的任务需求,配置 3D-BoNet 模型的网络结构、损失函数、优化器和超参数。 - 确保模型结构和输入输出尺寸与你的数据集和物体类别数目相匹配。 4. 训练模型: - 使用训练集数据进行模型训练。将输入数据送入模型,计算出模型的输出,并与标签进行比较以计算损失。 - 使用反向传播算法模型的权重,以最小化损失函数。 - 重复上述步骤直到达到指定的迭代次数或其他停止准则。 5. 模型评估: - 使用验证集数据评估训练好的模型的性能。计算预测结果与标签之间的准确率、精确率、召回率等指标,以评估模型在未见过的数据上的表现。 6. 调优和迭代: - 根据评估结果,调整模型的超参数、网络结构或其他配置,以改进模型性能。 - 可选地,使用更多的数据进行训练,或尝试其他数据增强技术,以进一步提高模型的泛化能力。 以上是一个大致的训练流程。具体实现时,你需要根据数据集和任务需求进行调整和优化。此外,还可以参考 3D-BoNet 的论文和代码库中的说明来了解更多细节和实践技巧。 希望这些信息能对你有所帮助!如果你有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值