论文笔记:PanoContext(ECCV 2014)
PanoContext: A Whole-room 3D Context Model for Panoramic Scene Understanding(ECCV 2014)
pdf下载 项目地址
PanoContext构建了一个模型,输入是全景图,输出是房间的3D bbox,此外它还能输出房间内主要物体的3D bbox,以及它们的语义类别。FOV=360的全景图的上下文特征信息(主要是位置信息)对于物体检测其效果不逊于物体的外观特征信息。然而正常相机拍摄图片FOV<60,导致上下文信息不足。另外,本论文被多次引用其一原因是标注了PanoContext数据集,在后续全景图恢复房间结构任务中都有使用该数据集。
Introduction
本文方法有2步组成:
-
产生布局假设,由Vanishing point estimation for panoramas、Room layout hypothesis generation、3D object hypotheses generation得出。最后进行Whole-room scene hypotheses generation得到整体三维场景假设。
-
整体假设排名
利用SVM对1.中的整体假设进行排序,选择最好的整体三维场景假设。将每个假设与训练集中的3D房间进行比对,判断其是否有效。然后根据假设可以得到3D模型,通过判断3D模型好坏来得到假设排名。最后得到最好假设生成房间布局。
最后,通过进一步最大化支持向量机的得分,局部细化场景假设。SVM利用了图像外观特征信息也利用了标注的布局信息(物体bbox标注和房间结构bbox)
PanoContext: A whole-room 3D context model
Vanishing point estimation for panoramas
需要预先了解的知识:
【1】A GREAT CIRCLE ARC DETECTOR IN EQUIRECTANGULAR IMAGES
【2】Vanishing Point Estimation in Equirectangular Images
【3】球面菱形离散格网正二十面体剖分法
全景图消失点检测分为3个步骤:线段检测、基于检测线段的消失点表示、消失点投票。
线段检测:
这篇论文使用的方法是把全景图转换为多张透视图,使用LSD进行线段检测,在【1】中实现了在全景图中进行LSD检测。其提出全景图中线段使用great circle arc (GCA) 表示:
主要算法是GCA Region growing,借鉴LSD思想,区域里组成的线段有近似的法向量,得到GCA-support region
再对GCA-support region进行近似求线段。
基于检测线段的消失点表示:
定义向量
n
\mathbf{n}
n表示GCA所在平面的法向量。消失点会与法向量
n
\mathbf{n}
n垂直。
法向量的表示:
消失点应与法向量垂直,就以红点方向为例,红点大多数有个共同垂直的点在右方中间(0, -1),即消失点。
消失点投票:
对投影球面进行剖分【3】:
均匀剖分后,一个剖分区域
b
b
b的中心(到圆心)的向量表示为
n
b
\mathbf{n}_{b}
nb,当一个法向量满足
n
b
⋅
n
=
0
\mathbf{n}_{b} \cdot \mathbf{n}=0
nb⋅n=0,则为这个区域
b
b
b投票数+1。选取最多投票的3个区域就是3个消失点方向。
另外,在【2】中使用RANSAC算法替换投票过程。
如果拍摄的全景图pitch和roll不是为0,这可以在得到3个消失点后,将消失点对齐xyz坐标轴。以此矫正pitch和roll。
Room layout hypothesis generation
对前一步得到的线段进行分类,利用和消失点关系,分为上/下,左/右,前/后3类线段。这样会产生多个布局,利用布局的表面法向量和像素表面法向量一致性来选择排序,选择TOP50个布局。
像素表面法向量获得:将全景图转换成几张部分重叠的透视图,应用 OM 和 GC算法,但是GC和OM侧重不一样,所以作者在下半部分使用GC,上半部分使用OM这种组合方式。
对于恢复房间结构任务,这里取布局中最好的一个,就已经达到目的,完全使用几何方法。
3D object hypotheses generation
物体检测为了获得比较高recall,使用2种互补的方法:
- Detection-based cuboid generation:
把全景图投影到6个面上(没有重叠部分),利用矩形检测器(类似DPM Deformable Part Model)但是没有spring-like 约束。将检测到矩形转化和坐标轴对齐。 - Segmentation-based cuboid generation:
一些边缘不明显的物体,就利用基于selective search的分割算法得到segment,由于segment不是矩形,所以利用已知的消失点,随机采样6条射线,其交点组成一个多边形,和segment相交最多的作为拟合的矩形。
Whole-room scene hypotheses generation
为了得到有限数量且高recall的布局,需要对检测到的物体分类:
- Semantic label:
训练一个分类器,根据长方体的大小、长方体的长径比和长方体在房间中的相对位置来估计其语义类型。 - Pairwise constraint:
结合根据配对位置关系进一步提高物体分类准确度,比如床的对面往往是电视机。
整体产生布局过程:
- 随机选择一个房间布局(Room layout hypothesis generation得出,GC和OM的一致性越高,选择概率越大)
- 对房间物体进行逐个确定类别,由于需要进行两两配对,根据先验知识确定物体数量和次序,比如:床、画、床头柜、桌。
- 通过rectangle detection score, semantic classifier score评估bottom up score
- Pairwise constraint + bottom up score
- 继续选择物体,直到所有物体都确定了类别
Data-driven holistic ranking
训练一个SVM二分类器判断假设布局
y
\mathbf{y}
y是不是足够靠近真实的标注布局
y
∗
\mathbf{y}^{*}
y∗
输入:
f
(
x
,
y
)
\mathbf{f}(\mathbf{x}, \mathbf{y})
f(x,y),全景图
x
\mathbf{x}
x和假设布局
y
\mathbf{y}
y
输出:
l
l
l,表示
l
=
[
Δ
(
y
,
y
∗
)
<
ϵ
]
l=\left[\Delta\left(\mathbf{y}, \mathbf{y}^{*}\right)<\epsilon\right]
l=[Δ(y,y∗)<ϵ]
Conclusion
使用几何方法就可以得到房间结构,利用语义分割和上下文信息检测室内物体。
本文主要部分是证明全景图带的360FOV,带来更为丰富的上下文信息,只使用3D上下文信息能与使用外观特征信息的物体检测器达到相当水平。