论文笔记:DuLa-Net(CVPR 2019)
DuLa-Net: A Dual-Projection Network for Estimating Room Layouts from a Single RGB Panorama (CVPR 2019)
pdf下载 项目地址
使用等距全景图和透视天花板图,各自一个encode-decoder分支,提出新颖的2分支特征融合方法。对于多角度复杂布局的房间效果较好。
2021 4.1 update
原作者没提供训练代码,借鉴layout训练代码,为dula-net增加了训练代码
fork地址:https://github.com/zhigangjiang/DuLa-Net
主要贡献
- 提出在2个视图上进行2分支端到端学习,最后2分支进行特征融合。
- NN直接输出二维平面图的概率图。后处理比较少。
- 引入Realtor360数据集,包含多角点的复杂房间布局。
相关
这个研究方向分为3个不同点:
- 假设房间布局是曼哈顿世界,即房间的墙都是垂直于全局坐标系。更强的约束是房间时4个墙角的盒子。本论文支持多角点,但还是基于曼哈顿世界假设,即墙角都是直角。
- 输入图片类型,根据Fov的设置,有Fov为360的全景图和正常拍摄的透视图。还有是否带深度信息。
- 方法上很大程度取决于输入图片的类型,其中单帧的RGB图像是很难处理。有使用几何方法:寻找墙性和墙角,使用语义分割,最后通过优化在众多假设中选择合理。而最近使用基于NN的方法取得很大进步。本论文通过概率图+曲线拟合就能得到结果。
除了LayoutNet之外,大多数方法都依赖于利用现有的技术,在从输入全景图中提取的样本上获取单视角图像。这是LayoutNet具有优越性能的一个主要原因,因为它对全景图进行了整体预测,从而提取了更多的全局信息,使输入的全景图可能包含这些信息。
本文一个核心思想是使用天花板视图具有更少杂音。和全景视图进行联合学习。
网络结构
输入图片是等距柱状投影图(Equirectangular projection),预处理使用PanoContext进行垂直矫正。主要思想就是搜索直线,使其对齐全局坐标系。
天花板视图:摄像机看向上方,Fov取160,包含天花板墙线
地板视图:摄像机看向下方,Fov取160,包含地板板墙线
全局视图:摄像机看前看Fov取360,包含天花板墙线和地板墙线
E2P得到的就是天花板视图,2个分支:
- 全景图分支预测floor-ceiling proba- bility map和height
- 天花板视图得到天花板墙线,但是作为floor plan probability map
- 融合:floor-ceiling proba- bility map + floor plan probability map,在2D上曼哈顿假设,3个概率图进行加权平均。最后通过预测的房间高度恢复3D布局。
E2P(类似得到6面图的顶面)
UV坐标表示:
( p x ′ , p y ′ ) , − 1 ≤ p x ′ ≤ 1 , − 1 ≤ p y ′ ≤ 1 \left(p_{x}^{\prime}, p_{y}^{\prime}\right),-1 \leq p_{x}^{\prime} \leq 1,-1 \leq p_{y}^{\prime} \leq 1 (px′,py′),−1≤px′≤1,−1≤py′≤1
和球面坐标对应关系:
( p x ′ , p y ′ ) = ( arctan 2 ( s x s z ) π , arcsin ( s y ) 0.5 π ) \left(p_{x}^{\prime}, p_{y}^{\prime}\right)=\left(\frac{\arctan _{2}\left(\frac{s_{x}}{s_{z}}\right)}{\pi}, \frac{\arcsin \left(s_{y}\right)}{0.5 \pi}\right) (px′,py′)=⎝⎛πarctan2(szsx),0.5πarcsin(sy)⎠⎞
这是右手坐标系,y轴查下,z+轴对应全景图左边x=-1和右边x=1,z-轴对应全景图中间x=0处
如果要取天花板视图,在y=-1处截取。
网络结构
Encoder
基于ResNet-18的两个分支:
E B P E_{B_{P}} EBP输入:全景图 512 × 1024 × 3 512 \times 1024 \times 3 512×1024×3, 输出 16 × 32 × 512 16 \times 32 \times 512 16×32×512
E B C E_{B_{C}} EBC输入:天花板透视图(使用E2P,Fov=160) 512 × 512 × 3 512 \times 512 \times 3 512×512×3,输出: 16 × 16 × 512 16 \times 16 \times 512 16×16×512
作者尝试ResNet-50,效果没有改善。
Decoder
由6个卷积层,前5个是 3 × 3 resize convolutions,最后一个是 3 × 3 regular convolution。为了推理高度,在 B P B_P BP的中间特征出添加3个全连接层。 E B P E_{B_{P}} EBP的输出是 16 × 32 × 512 16 \times 32 \times 512 16×32×512,应用verage pooling得到512维输入全连接。为了增加robust,全连接后2层使用了dropout。最后输出的就是 M F C M_{F C} MFC,floor-ceiling proba- bility map。 B C B_C BC输出 M F P M_{F P} MFP,floor plan probability map 。
需要注意的是 B P B_P BP也输出了height,通过 M F C M_{F C} MFC可以估算平均高度。
Feature fusion
使用特征融合可以提升准确度,作者认为对于 B C B_C BC分支,再靠近边缘的地方扭曲会非常严重,影响精度。特征融合时在 B P B_P BP和 B C B_C BC的前5个卷积层:
f B C ∗ = f B C + α β i × f B P , i ∈ { 0 , 1 , 2 , 3 , 4 } f_{B_{C}}^{*}=f_{B_{C}}+\frac{\alpha}{\beta^{i}} \times f_{B_{P}}, i \in\{0,1,2,3,4\} fBC∗=fBC+βiα×fBP,i∈{0,1,2,3,4}
其中, f B C f_{B_{C}} fBC是 B P B_P BP特征做了E2P后输出。 α \alpha α 和 β \beta β是衰减系数。
Loss function
L = E b ( M F C , M F C ∗ ) + E b ( M F P , M F P ∗ ) + γ E L 1 ( H , H ∗ ) L=E_{b}\left(M_{F C}, M_{F C}^{*}\right)+E_{b}\left(M_{F P}, M_{F P}^{*}\right)+\gamma E_{L 1}\left(H, H^{*}\right) L=Eb(MFC,MFC∗)+Eb(MFP,MFP∗)+γEL1(H,H∗)
其中,带星号是真实值。
概率图使用二分类交叉熵损失:
E b ( x , x ∗ ) = − ∑ i x i ∗ log ( x i ) + ( 1 − x i ∗ ) log ( 1 − x i ) E_{b}\left(x, x^{*}\right)=-\sum_{i} x_{i}^{*} \log \left(x_{i}\right)+\left(1-x_{i}^{*}\right) \log \left(1-x_{i}\right) Eb(x,x∗)=−i∑xi∗log(xi)+(1−xi∗)log(1−xi)
高度使用L1损失:
E L 1 ( x , x ∗ ) = ∑ i ∣ x i − x i ∗ ∣ E_{L 1}\left(x, x^{*}\right)=\sum_{i}\left|x_{i}-x_{i}^{*}\right| EL1(x,x∗)=i∑∣xi−xi∗∣
布局估计
主要分为2步骤
- 使用概率图估计2D曼哈顿平面图
假设相机到地面高度固定为1.6m,那么相机到天花板的距离为 H − 1.6 H-1.6 H−1.6,由此可以得到 M F C F M_{F C}^{F} MFCF和 M F C C M_{F C}^{C} MFCC的比例为: 1.6 / ( H − 1.6 ) 1.6 /(H-1.6) 1.6/(H−1.6)
最终融合3个概率图:
M F P f u s e = 0.5 ∗ M F P + 0.25 ∗ M F C C + 0.25 ∗ M F C F M_{F P}^{f u s e}=0.5 * M_{F P}+0.25 * M_{F C}^{C}+0.25 * M_{F C}^{F} MFPfuse=0.5∗MFP+0.25∗MFCC+0.25∗MFCF
融合后的概率图进行二值化,阈值取0.5,取最大连通分量。
取连通分量的外轮廓使用 Douglas-Peucker 算法简化轮廓,得到简化边界后的二值图像b。
我们对边缘进行回归分析,并将它们聚成轴对齐的水平和垂直直线。这些直线划分成网格,图像c,单单元格的填充面积>0.5时合并到平面图形状里,图像d。
- 根据布局高度,沿着其法线得到3D布局
对于标注数据,作者专门开发了标注工具,先是使用已有方法故居深度图和线段,个人认为一种主动学习方法。然后利用这些数据初始化一个3D的曼哈顿世界布局。标注工具基于此进行调整。
实验结果
可以看见对于多角点的房间布局也可以进行估计,对于遮挡部分也能进行估计。
LayoutNet,只能预测4个点。
和LayoutNet相比,在多角点情况下提升明显。分支联合学习和特征融合都提升了准确度。
时间上,主要费时在垂直矫正阶段。
总结
本文的方法和以往相比确实进步很大,但是作者也提出限制:
- 会误认镜像和大物体遮挡
- 引入一些假设比如曼哈顿世界
作者提出发展建议:
- 进行语义分割,忽略遮挡物
- 移除曼哈顿世界假设,甚至考虑曲面墙
个人测试结果:
使用作者提供resnet18权重测试:
误差比较大情况:
而HorizonNet会更robust的多
论文笔记:DuLa-Net(CVPR 2019)相关推荐
- CVPR 2019 爆款论文作者现场解读:视觉语言导航、运动视频深度预测、6D姿态估计...
2019年计算机视觉顶会CVPR前不久刚在美国长滩闭幕.Robin.ly在大会现场独家采访20多位热点论文作者,为大家解读论文干货.本期三篇爆款文章包括: 1. CVPR满分文章.最佳学生论文奖.结合 ...
- CVPR 2019 Oral 论文精选汇总,值得一看的 CV 论文都在这里(持续更新中)
CVPR 2019 即将于 6 月在美国长滩召开.今年有超过 5165 篇的大会论文投稿,最终录取 1299 篇,其中 Oral 论文近 300 篇.为了方便社区开发者和学术青年查找和阅读高价值论文, ...
- 告别低分辨率网络,微软提出高分辨率深度神经网络HRNet | CVPR 2019
来源 | 微软研究院AI头条(ID:MSRAsia) 作者简介:孙可,中国科学技术大学信息学院在读博士生,目前在微软亚洲研究院视觉计算组实习,导师是王井东和肖斌老师.他的研究兴趣包括人体姿态估计.语义 ...
- CVPR 2019 | 告别低分辨率网络,微软提出高分辨率深度神经网络HRNet
我爱计算机视觉曾经两次报道HRNet: 1. CVPR2019 | 微软.中科大开源基于深度高分辨表示学习的姿态估计算法 (论文出来第二天就向大家推送解读了) 2. 分割.检测与定位,高分辨率网络显神 ...
- Google CVPR 2019最新成果!用神经架构搜索实现更好的目标检测
图灵TOPIA 作者:Golnaz Ghaisi等 编译:刘静 图灵联邦编辑部出品 4月16日,arXiv公布了一篇谷歌大脑的最新成果论文,已被CVPR 2019接收. 研究人员采用神经网络架构搜索, ...
- 论文笔记:SPADE(CVPR 2019)-Semantic Image Synthesis with Spatially-Adaptive Normalization
论文笔记:SPADE(CVPR 2019)-Semantic Image Synthesis with Spatially-Adaptive Normalization SPADE DEMO 前言 语 ...
- 论文笔记 Feature Selective Anchor-Free Module for Single-Shot Object Detection - CVPR 2019
2019 FSAF Feature Selective Anchor-Free Module for Single-Shot Object Detection Chenchen Zhu, Yihui ...
- 《繁凡的论文精读》(一)CVPR 2019 基于决策的高效人脸识别黑盒对抗攻击(清华朱军)
点我一文弄懂深度学习所有基础和各大主流研究方向! <繁凡的深度学习笔记>,包含深度学习基础和 TensorFlow2.0,PyTorch 详解,以及 CNN,RNN,GNN,AE,GAN, ...
- 商汤62篇论文入选CVPR 2019,一览五大方向最新研究进展
(图源自视觉中国) 作为与ICCV.ECCV并称为计算机视觉领域三大国际会议之一,本届CVPR大会共收到5265篇有效投稿,接收论文1300篇,接收率为25.2%. 商汤科技CVPR 2019录取论文 ...
最新文章
- 直播活动丨BMMeetup第2期:大模型计算加速技术,2场特邀和7位青年学者技术报告联袂上演...
- 一点历史--Python
- 2003 resource kit之Robocopy 高效文件复制工具
- 如何在PySide中使用qrc资源文件
- Leaflet中原生方式实现测量面积
- 设计模式- 策略模式
- R学习之——R用于文本挖掘(tm包)
- php符号 set,PHP 符号大全
- 国防科技大学计算机学院教授陈书民,国防科技大学刘新旺教授做客信息学院
- python shell 运行时不打印日志_shell编程
- Tampermonkey 油猴脚本,chrome插件
- libCef退出流程整理
- 关于自动量程万用表和自动档位万用表使用
- uniapp使用阿里云OSS直接上传文件
- 笔记 | Java 虚拟机
- win10系统电脑声音图标正常,但没有声音
- 永磁同步电机PMSM直接转矩滞环控制 采用三闭环控制:转速外环采用PI调节器,转矩环和磁链环经过滞环后得到PWM脉冲
- 用于图像质量评价的LIVE数据库 百度网盘地址附解压密码
- qt for android开发百度地图(一步步带图详解)
- Python的制表符和运算符