Refined Plane Segmentation for Cuboid-Shaped Objects by Leveraging Edge Detection 详解

Markdown

Motivation

理解图像平面提取中有添加边缘提取的约束,让平面提取中的平面分割更加准确。从而能得到提取的平面能够更好的表示场景。

论文序列

4) Refined Plane Segmentation for Cuboid-Shaped Objects by Leveraging Edge Detection

论文目标

在这里插入图片描述
论文的主要目标是对单一的盒子状的物体,通过边缘提取来约束平面的分割。

为什么能够refined分割好的平面

这篇论文是可以主要是分三个部分组成,包括Plane-RCNN提取平面;边缘提取;线段提取。这三个部分能够约束,能够对类似Cuboid-Shaped对象的平面边缘分割的很好;refine 平面分割区域的的过程如下:
1)提取Cuboid-Shaped 的边缘
在这里插入图片描述
这是提取边缘的网络:DexiNed 如果想了解这个边缘提取的网络的细节,可以查看:Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection这篇网络。
2)平面分割提取,用PlaneRCNN网络架构,之前已经详细提过详细的过程查看论文:
https://blog.csdn.net/weixin_43851636/article/details/112546145
提取的平面分割的结果如下:
在这里插入图片描述
它能提取好的平面,但是它平面分割的区域边缘一般都不会太准确。

3)线段提取,这是用传统的线段提取。论文如下:A Combined Corner and Edge Detector。它能够提取图片的边缘线段。具体方法如下:
1:拓宽mask的宽度,这样会出现和线段交叉。
在这里插入图片描述

2:通过平面区域分割的mask和对应的拓宽的contour的图片,计算每个对应的平面的边界区域的bounding edges。有两种方法,其中是用DBSCAN的方法抽取对象的架构(参考论文Density-Based Spatial Clustering of Applications with Noise),用之前的先验的平面分割区域得到几个cluster。如下图,可以看到2个clusters.
在这里插入图片描述
因为是edge,所以需要线段表示,所以为了能够得到一个mask下的线段,论文先检测corners,然后获取去掉每个corner的顶点line segment,如下图:
在这里插入图片描述
在对每个线段进行ransac处理,从而得到ransac后的line。这样处理主要因为可能mask和edges有些地方没有overlap,导致一些线段丢失,所以用ransac重新生成线段。
在这里插入图片描述
方法如下:
在这里插入图片描述
对一个线段用ransac,同时这个虚线表示的就是ransac后的line,它和corner和一起,就称为box的一个边。
另一中方法,用Hough Transform 生成lines,然后通过lines的交叉点得到corner,同个判断corner的是否为真实有效的。需要判断它是否为在mask里面。得到的很多lines segment。可以详细查看Hough Transform,它能提取线段,非常抗噪声。
得到的结果为一个lines segments的集合。需要判断线段是否为一个线段等等:
用k-means 算法,将线段的分为start point 集合A和end point 集合 B。然后通过它是否fitting mask 的边缘。从而获取一组向量(start point 和end point),它的函数如下:
在这里插入图片描述
其中 P a , P b P_a,P_b Pa,Pb 分别表示start的顶点和end顶点。可以看出,它表示连线能够很好的拟合mask的edge。通过 I ( P a P b ) I(P_a P_b) I(PaPb) 可以看出来,它的像素的重合度。
总体总结如下:看到一个平面的bounding edges,因为需要表达为线段形式,所以通过conner 检测,这样讲bounding edges 破开成一个个线段,这样可以用线段表达这个polygon区域。如图b表示。因为这是一个个线段,需要对这些线段用RANSAC回归找到两个点的描述子来拟合出直线,用了两个端点表示。
上面拟合的线段后得到的直线,所以结果是一对对线段。所以 P a ∈ A , P b ∈ B P_a \in A,P_b \in B PaA,PbB,通过这些线段能够拟合边 e e e。这个cost function C C C表示拟合的质量:
C ( P a , P b ) = 0.5 ∗ I ( P a P b ‾ , m e ) + 0.5 ∗ ∣ ∣ P a − P b ∣ ∣ m a x k ∈ A , l ∈ B ( ∣ ∣ P k − P l ∣ ∣ ) (1) C(P_a,P_b)=0.5*I(\overline{P_aP_b}, m_e)+0.5*\frac{||P_a-P_b||}{max_{k\in A,l \in B}(||P_k-P_l||)} \tag{1} C(Pa,Pb)=0.5I(PaPb,me)+0.5maxkA,lB(PkPl)PaPb(1)
其中 I ( P a P b ‾ , m e ) I(\overline{P_aP_b}, m_e) I(PaPb,me)是法向量的交叉:
I ( P a P b ‾ , m e ) = P a P b ‾ ∩ m e P a P b ‾ (2) I(\overline{P_aP_b},m_e)=\frac{\overline{P_aP_b} \cap m_e}{\overline{P_aP_b}} \tag{2} I(PaPb,me)=PaPbPaPbme(2)
其中 P a P b ‾ \overline{P_aP_b} PaPb表示一个直线,它只有一个像素的厚度。

感想:

1)这个典型的算法是用edge和plane mask来做后续优化,从而提取人工像包围盒那种形状的面片,通过的都是传统的方法,表述很简单。
2)同时这个应用比较狭窄。
3)同时它是一个个平面处理,没有用对象这个概念,如果能够用对象,作为先验,然后再对对象中的平面进行处理,估计会更好。Object detection?
这是论文提供的算法。我自己的提供的算法,也是比较简单,需要重新考虑算法。这篇不是神经网络的算法。是一篇后期用传统的算法refine平面的算法。

总结:因此对我想从神经网络算法去处理plane segment 没有太多作用。

猜你喜欢

转载自blog.csdn.net/weixin_43851636/article/details/113139767