3

[paper_reading]-"PointGroup"

 2 years ago
source link: https://leijiezhang001.github.io/paper-reading-PointGroup/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

[paper_reading]-"PointGroup"

Posted on 2020-09-28   |   Updated on 2020-09-29

| In Segmentation

, Instance Segmentation

| 本文总阅读量 103次

Words count in article: 1k 字

|

Reading time ≈ 4 分钟

  之前一直提到,以 Semantic Segmentation 为基础作目标检测,可以有较高的召回率,而在最终出目标框或目标 Polygon 之前,还需要作 Instance Segmentation。本文[1] 介绍一种 Instance Segmentation 方法。

1. Framework

  如图 1. 所示,整个网络由三部分构成:Backbone,Clustering Part,ScoreNet。Backbone 我们已经很熟悉了,输入为点云以及点云的其它属性比如 rgb 信息,输出为每个点提取的局部-全局特征 F={Fi}∈RN×K,这里不作展开。然后用提取的特征 F 通过两个分支分别作 Semantic Segmentation 以及预测每个点与该点对应的目标重心点的 Offset,得到每个点的类别 si 以及 oi=(Δxi,Δyi,Δzi)。然后经过 Clustering Part 作 Instance 聚类。最后用 ScoreNet 预测 Instance 的分数,用于 NMS 去除重合的 Instance。

2. Backbone

  对于 Semantic Segmentation Branch,在 F 之后加入 MLP 网络输出语义类别分数 SC={sc1,...,scN}∈RN×Nclass。最终的类别 si=argmax(sci)。
  对于 Offset Prediction Branch,输出 N 个点的 O={o1,...,oN}∈RN×3。采用 L1 Loss: Loreg=1∑imi∑i‖oi−(ˆci−pi)‖⋅mi 其中 m={mi,...,mN} 是一个二进制 mask,mi=1 表示第 i 个点属于一个 Instance。ˆci 为 Instance 的重心: ˆci=1NIg(i)∑j∈Ig(i)pj 其中 NIg(i) 表示 Instance Ig(i) 中点的个数。此外,考虑到尺寸大的目标其边缘点的 offset 较难回归,所以加入方向约束的 loss: Lodir=−1∑imi∑ioi‖oi‖2⋅ˆci−pi‖ˆci−pi‖2⋅mi

3. Clustering Part

  有了点云的语义标签以及每个点相对目标物体重心的 offset 后,接下来将点云聚类成对应的 Instance。设点云原始坐标为 P={pi},经过 offset 变换后坐标为 Q={qi=pi+oi∈R3}。根据 Q 来作聚类,能更容易的区分相邻的同类别的物体;但是对于目标的边缘点,offset 容易预测错误,所以再加上根据 P 来作聚类。最终获得的聚类 Instance 为 C=Cp∪Cq={Cp1,...,CpMp}∪{Cq1,...,CqMq}。   如图 2. 所示,聚类算法就是一个基于点集的 BFS 搜索,这里需要设定 ball query 的半径 r。

4. ScoreNet

  经过基于坐标 P,Q 聚类后,总共得到 C={C1,...,CM}。因为这里面会有重叠的 Instance,所以 ScoreNet 用来评价这些 Instance 的质量,然后作 NMS 操作,从而达到综合两者聚类优势的效果。   如图 3. 所示,对于每个 Cluster,将其点特征加上点坐标作为点特征输入到网络。然后采用 Backbone 相似的结构,最终得到 Clustering 分数:Sc={sc1,...,scM}。
  对于评价 cluster 质量的标签,可以直接用 0/1,但是本文使用了 soft 形式: ˆsci={0ioui<θl1ioui<θh1θh−θt⋅(ioui−θl)otherwise 其中 θl,θh 分别设为 0.25,0.75。然后用 binary cross-entropy 作为 Loss: Lcscore=−1MM∑i=1(ˆscilog(sci)+(1−ˆsci)log(1−sci))

5. Experiments

  如图 4. 所示,用 P,Q 作聚类,效果提升还是比较明显的,能同时综合二者的聚类优势。

6. Reference

[1] Li.Jiang, PointGroup: Dual-Set Point Grouping for 3D Instance Segmentation

----------------- END -----------------
坚持原创技术分享!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK