一、研究背景
此方法主要关注室内框架估计(indoor estimation layout estimation)任务,任务输入2D图片,输出图片所描述场景的三维模型。考虑到直接输出三维模型的复杂性,该任务一般被拆解为输出2D图像中的墙线、天花板线、地线三种线的信息,再根据线的信息通过后处理操作重建房间的三维模型。该三维模型可在后期进一步用于室内场景复刻、VR看房等具体应用场景。区别于深度估计方法,该方法基于对室内墙线的估计来恢复空间几何结构,优势在于可使墙面的几何结构较为平整;劣势则在于无法恢复室内场景沙发、椅子等细节物品的几何信息。
根据输入图像的不同,一般可分为基于透视图和基于全景图的方法,相较于透视图,全景图具有视角较大、图像信息丰富的特点。由于全景采集设备的普及,全景数据日益丰富,因此目前基于全景图进行室内框架估计的算法被广泛研究。
相关算法主要包括LayoutNet、HorizonNet、HohoNet及Led2-Net等,这些方法大多基于卷积神经网络,在结构复杂的位置墙线预测效果较差,如有噪声干扰、自遮挡等位置会出现墙线不连续、墙线位置错误等预测结果。在墙线位置估计任务中,仅关注局部特征信息会导致该类错误的发生,需利用全景图中的全局信息考虑整条墙线的位置分布来估计。CNN方法在提取局部特征任务中表现更优,Transformer方法更擅长捕捉全局信息,因此可将Transformer方法应用于室内框架估计任务以提升任务表现。
由于训练数据依赖性,单独应用基于透视图预训练的Transformer估计全景图室内框架效果并不理想。PanoViT模型预先将全景图映射到的特征空间,使用Transformer学习全景图在特征空间的全局信息,同时考虑全景图的表观结构信息完成室内框架估计任务。
二、方法介绍与结果展示
1、PanoViT
网络结构框架包含4个模块,分别是Backbone,vision transformer解码器,框架预测模块,边界增强模块。Backbone模块将全景图映射至特征空间,vison transformer编码器在特征空间中学习全局关联,框架预测模块将特征转化为墙线、天花板线、地线信息,后处理可进一步得到房间的三维模型,边界增强模块突出全景图中边界信息对于室内框架估计的作用。
① Backbone模块
由于直接使用transformer提取全景图特征效果不佳,基于CNN的方法的有效性已经证明CNN特征可用于预测房屋框架。因此,使用CNN的backbone提取全景图不同尺度feature map并在feature map中学习全景图像的全局信息。实验结果表明在特征空间中使用transformer的表现大大优于直接在全景图上应用。
② Vision transformer encoder模块
Transformer主体架构可主要分为三个模块,包括patch sampling、patch embedding和transformer的multi-head attention。输入同时考虑全景图像特征图与原始图像并针对不同输入采用不同patch sampling方法。原图使用均匀采样方法,特征图采用水平采样方法。来自HorizonNet的结论认为在墙线估计任务中水平方向特征具有更高重要性,参考此结论,embedding过程中对于特征图特征进行竖直方向压缩。采用Recurrent PE方法组合不同尺度的特征并在multi-head attention的transformer模型中进行学习,得到与原图水平方向等长的特征向量,通过不同的decoder head可获得对应的墙线分布。
随机循环位置编码(Recurrent Position Embedding)考虑到全景图沿水平方向位移不改变图像视觉信息的特征,因此每次训练时沿着水平轴方向随机选取初始位置,使得训练过程更关注不同patch之间的相对位置而非绝对位置。
③ 全景图的几何信息
全景图中几何信息的充分利用可有助于室内框架估计任务表现的提升。PanoViT模型中的边界增强模块强调如何使用全景图中的边界信息,3D Loss则帮助减少全景图畸变影响。
边界增强模块考虑到墙线检测任务中墙线的线状特征,图像中的线条信息重要性突出,因此需要突出边界信息使得网络了解图像中线的分布。使用频域中边界增强方法突出全景图边界信息,基于快速傅里叶变换得到图像频域表示,使用掩膜在频域空间中进行采样,基于傅里叶反变换变换回边界信息被突出的图像。模块核心在于掩膜设计,考虑到边界对应高频信息,掩膜首先选用高通滤波器;并根据不同线的不同走向方向采样不同的频域方向。该方法相对传统LSD方法实施简单且效率更高。
之前工作在全景图上计算像素距离作为估计误差,由于全景图畸变,图片上的像素距离并不正比于3D世界的真实距离。PanoViT使用3D损失函数,直接在3D空间中计算估计误差。
2、模型结果
使用Martroport3D、PanoContext公共数据集进行实验,使用2DIoU和3DIoU作为评价指标,并与SOTA方法进行对比。结果显示PanoViT在两个数据集中的模型评价指标基本达到最优,在特定指标中略逊于LED2。模型可视化结果与Hohonet比较可发现,PanoViT可正确识别复杂场景下的墙线走向。在消融实验中两两对比Recurrent PE、边界增强与3D Loss模块,可验证模块有效性。
为了达到更好的模型数据集,收集十万多张室内全景图像自建全景图像数据集,包含各类复杂室内场景,并基于自定规则进行标注,从中选取5053张图像作为测试数据集。在自建数据集上测试PanoViT模型与SOTA模型方法表现,发现随着数据量增大,PanoViT模型性能提升显著。
三、如何在ModelScope中使用
- 打开modelscope官网:https://modelscope.cn/home。
- 搜索“全景图室内框架估计”。
- 点击快速使用-在线环境使用-快速体验,打开notebook。
- 输入主页示例代码,上传1024*512的全景图片,修改图片加载路径,运行输出墙线预测结果。