点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

住宅户型的识别与重建在装修设计中是非常重要且有挑战的问题。我们提出了一种基于微分渲染的户型识别算法,能够准确识别建筑元素,房间类型,大小尺寸,最终输出准确的3D矢量化户型。

我们使用基于深度学习的分割和检测网络来进行建筑元素的识别,关键点检测与聚类用来做比例尺识别,基于微分渲染的迭代优化来进行矢量化。这是第一个从分割点阵图进行矢量化的户型识别方法,与已有方法比较,我们最终的计算结果具有更高的准确率和泛化性。

实现户型图的准确识别是非常有意义的,首先,户型图的准确识别可以显著降低用户在线手工标注的工作量,提升效率与体验;其次,相比于手工标注的户型库构建方法,使用微分渲染的户型识别方法节约成本90%以上,使得离线构建大规模户型库成为可能。大规模户型库的构建,实现了用户数据资产的积累,为用户在线看房,在线设计和在线装修提供了数据支持。

目前,基于微分渲染的户型图识别算法已经用于躺平设计家设计师户型在线导入识别,D端(设计师端)户型库的构建和手淘C端(用户端)标准户型库构建。躺平设计家D端户型库规模达到500W,手淘C端标准户型库标杆城市杭州户型覆盖率达到70%+。基于微分渲染的户型识别算法被 CVPR2021高分录取。

背景

户型图通常都是使用特殊的画图工具(例如 AutoCAD,HomeStyler等)生成的,用于帮助人们在买房或者装修过程中快速识别房屋结构。设计师在进行户型图制作过程中操作对象都是矢量化的素材。为了便于传阅和保存,矢量化的素材最终会转化生成点阵图,即我们平常看到的.jpg和.png 格式的图片,上述操作,我们通常称之为光栅化。

设计师在装修使用户型图的时候,需要将光栅化的户型图重新进行矢量化,然后设计。这一步矢量化的过程涉及大量的交互操作,费时费力,设计师需要描绘墙体、门窗结构,确定房间的类型和尺寸等。为了解决这个问题,有一些工作开始研究通过自动化方法来进行户型图矢量化的技术。

自动进行户型图矢量化的方法,总体分为两大类,一类是使用分割模型做户型元素识别,一类是使用检测模型做户型连接点(junction point)检测,然后整数规划方法恢复拓扑连接关系。 基于分割模型进行户型识别的优势在于能够获得户型元素的逐像素结果,精度比较高,但是无法恢复户型的矢量化结构。基于检测模型的方法能够重建户型的矢量化结构,但是泛化性能较差,一个连接点的误检测导致全图的重建失败,此外检测方法依赖于连接点的正交假设,无法处理斜墙的情况。

在户型图中,除了房间、墙、门、窗等户型元素之外,还包括比例尺、房间名称、装饰布局等元素(如图1 所示),这些元素对于户型图的准确重建也至关重要,已有的方法中都没有关注这些元素的识别。

图1) 户型点阵图(上)与矢量图(下)

总体来说,已有方法忽略了户型图中丰富的多模态信息,仅仅关注了最基础的墙门窗等结构。在墙门窗的矢量化转换过程中,有些方法无法处理正交元素,其余方法无法完成矢量化转换过程。我们希望找到一种能够准确识别户型各种元素信息(包括墙门窗等结构、房间类型、房间尺寸、房装饰布局元素等),并能够转换为矢量化表示的户型识别方法,解决上述问题。

方法

图2)集成了识别模块和重建模块的户型识别系统框架

我们的系统框架如图2所示,给定一张输入户型图,我们首先通过检测方法得到户型区域, 对于检测得到的户型区域我们会通过分割模型进行逐元素的分割,通过文本检测和符号检测来进一步得到准确的房间类型信息。比例尺模块会计算得到比例尺线段的端点和数字。重建模块会综合上述检测分割得到的元素来进行基于微分渲染的矢量化优化。最终,综合比例尺模块信息得到一个准确的3D重建结果。下面将详细介绍每一个模块使用的具体技术方法。

检测

一般情况下,一张户型图有效区域面积只占输入图像的50%,大部分空间可能被宣传文案占据。为了提取到准确的户型信息,我们使用检测模型来对户型区域进行检测。我们采用了一种被广泛使用的轻量级检测模型——YOLOv4作为我们的基础网络。检测得到的区域,在保持横纵比的情况下放缩到512 * 512分辨率,用于后续结构元素的提取。文本信息能够提供房间类型的额外信息。由于在不同户型图中,文本信息基本是一致的(例如,客餐厅、卧室、厨房等等标识),所以我们没有采用惯用的OCR技术,而是使用了一个检测技术用于检测不同的房间的类型。装饰符号检测与本文检测类似,其能够提供关于房间类型的额外信息,例如马桶与洗手台标识能够代表当前房间是卫生间。我们仍然使用了YOLOv4,与以往不同的是,我们使用了Mosaic增广技术,目的是让网络能够关注于装饰符号的每一个部分。

结构元素提取

结构元素提取是一个图像分割的过程。我们使用DeepLav3+作为基础网络,输入图片为512 *512分辨率的图片,输出的是一个512 * 512 * 15的特征。15维分别代表背景、墙、门、窗、门洞、客餐厅、卧室、厨房、卫生间、书房、阳台、其他房间和门、窗、门洞的端点热图。区别于经典的图像分割算法,我们对损失函数进行了特别的设计。共计包含四个损失函数,分别是交叉熵损失,近邻场损失,端点回归损失和多任务损失。

比例尺计算

已有方法并没有关注比例尺计算,但是比例尺对户型的三维重建至关重要,比例尺的微小误差都会导致户型套内面积的巨大差异。我们系统提出了一种比例尺识别方法,分为四个模块,分别是线段检测,数字识别,线段与数字的匹配与比例尺计算。

图3) 比例尺计算框架

线段检测是通过检测线段的端点来得到的。通常情况下,比例尺分布在户型图周围,所以我们将端点分为四类,分别是上下左右。损失函数的设计与结构元素提取中的回归损失一致,我们使用了一种变形的全卷积网络结构,使用Resnet50作为基础模块。数字识别模块我们没有使用传统OCR,而是直接使用了检测模型来检测数字区域,数字区域分为三类,分别是正常数字区域,顺时针90度数字区域,逆时针90度旋转区域。检测得到数字区域之后,我们使用了一个数字识别模块来识别每一个具体数字,并使用一个数字质量回归模块进行质量校验,最终得到准确的比例尺数字。数字与线段匹配,我们将其形式化为一个二部图匹配的问题,通过KM算法类进行求解。匹配之后,存在比较多的数字与线段匹配的对,每一个匹配对能够计算得到一个比例尺结果。我们通过K-means 方法来选择质量最高的那一类的比例尺作为最终结果。

矢量化

在结构元素提取的模块中,户型元素可以被分为两大类,一类是房间边界元素,包括墙、门、窗、门洞等;一类是房间类型元素,包括客餐厅、卫生间等等。矢量化的核心想法是从每个房间的类别元素中得到房间轮廓(房间内线墙)信息,然后从房间轮廓和房间边界元素得到房间中线墙信息。整体的流程框架如下图所示:

图4)矢量化流程框架

  • 房间轮廓优化

在我们见到的大部分户型中,由于建筑学和美学的原因,墙体都是水平或者垂直的。我们假设每一个房间的都可以用一个多边形来进行表示。我们首先使用Douglas-Peucker算法来得到一个初始的房间多边形数据,然后通过优化多边形的顶点坐标来得到一个准确的轮廓表示。我们使用房间轮廓顶点优化和房间轮廓顶点缩减两个步骤来迭代进行。

房间顶点坐标优化

多边形个顶点 ,条边,代表第个顶点,个线段,代表第个线段,代表从的矢量,房间区域的像素轮廓是,像素轮廓轮廓上的顶点坐标为

我们通过优化如下目标函数来优化顶点坐标:

其中,代表的是点距离线段的最短距离。代表多边形光栅化之后覆盖的区域。衡量的是优化得到的多边形与房间轮廓的匹配程度,衡量的是多边形区域与房间内部局域的匹配度,代表多边形边之间的正交约束,这代表的是求解的多边形是一个紧致的多边形。光栅化的操作是不可微的,我们使用可微渲染的框架来进行梯度传递。

房间轮廓顶点缩减

当如下两个条件满足的时候,我们将缩减多边形的顶点。

条件1:,当两个多边形顶点距离小于阈值,这两个顶点被合并成一个顶点。新合并的顶点的坐标是两个原始坐标的平均值。

条件2:,当三个相邻顶点几乎共线,则删掉中间顶点。

  • 中线优化

图5 ) 内线画墙(左)与中线画墙(右

表示通常情况下,有两种方法来进行户型表示,一种方式是内线画墙,沿着房间边缘来进行绘制,在房间轮廓优化部分求解即是房间内线;另一种方法是中线画墙,每一条线代表的是一堵墙,有厚度信息。两种方法表示的户型可以进行互相转换。下面我们用一种类似的方法来进行中线画墙方法的求解。我们使用墙连接点坐标优化和墙连接点数量缩减两个步骤来迭代进行。

墙连接点坐标优化

我们使用来代表之前优化的第个多边形,第个多边形有个顶点,使用来表示。我们的目标是优化得到一个图,图具有顶点和边图的顶点代表的是墙的连接点,边代表墙的中线。初始时候

我们通过优化如下目标来进行墙连接点坐标优化:

其中,代表映射函数,将初始点映射到当前的优化点代表水平和竖直的方向向量。衡量生成的墙与原始墙的像素点的匹配程度。约束顶点在原始多边形的附近。约束我们生成的边尽量保持水平或者竖直。

墙连接点数量缩减

当如下两个条件满足的时候,我们将缩减墙连接点。

条件1:当图中两个顶点的距离小于阈值,这两个顶点被合并成一 个顶点。

条件2:,当一个顶点距离边小于一定的阈值,我们将此顶点加入到边中,原始边,变成两条边

实验

定量评测

表1)与R2V和DFPR方法的对比定量评测

我们将我们的分割识别方法与已有的方法 Raster-to-Vector[1], Deep Floor Plan Recognition[2]进行了比较,我们简写为R2V和DFPR。对于R2V方法,由于其隐含曼哈顿假设,所以我们在标签生成的过程中,删除掉了斜墙的数据,然后使用启发式方法进行了连接点类型的确认。为了公平起见,我们对R2V和DFPR方法都使用了检测模块。最终的结果展示在表1中,从表中可以看出我们的方法几乎在所有类型,所有指标上优于已有的方法。

表2)矢量化结果的定量评测

我们对于矢量化重建结果进行了定量的评测, 表2展示了墙连接点和门窗端点的评测结果。我们没有对约束做消融实验,因为这两项是必备的。当我们使用全模型来进行实验的时候,准确率和召回率都是最高的。约束了多边形的不同边之间的角度关系,用以形成了一个最简的多边形。引入了细粒度的约束,用以提升墙的准确率。不加从数据指标上也得到了很有竞争力的结果,但是从可视化结果上,会引入更多的倾斜墙体,可视化效果比较差。

表3)比例尺结果的消融实验

表4)装饰符号检测的平均精确率

表5)文本检测的平均精确率

表3展示的是比例尺的识别结果评测,评测在两个维度上进行的,分别是阳性率和平均误差。正例代表的是与标注数据在某个误差范围下(2%,5%和10%)。所有样本的平均误差是4.6mm。Kmeans模块和数字数量回归模块带来了25%的提升。表4和表5展示的是装饰符号检测和文本检测的平均准确率。

定性评测

图6)户型识别与重建结果

图7)更多类型的户型识别重建结果

图6展示的是户型识别与重建结果,从左到右依次是原始户型图,图像识别结果,矢量化重建结果与最终的3D重建结果。第二列识别结果中不同颜色代表的是不同的户型元素。从第二行中,可以看到当前方法支持斜墙的重建。为了评测我们算法的泛化性,我们直接用开源数据集(rent3d[3]和 cubicasa5k[4])图片在未训练的情况下进行测试,仍然获得了高质量的重建结果。

图8) 在rent3d(前三行)和cubicasa5k(后两行)上的户型识别与重建结果

讨论与展望

在本文的方法中,我们假设房间是依靠门、窗、墙、门洞等元素来进行分割的,因此对于开放厨房类的元素无法进行准确的识别。此外,由于我们在比例尺检测模块中只分类了三种类别,无法检测斜墙上的比例尺元素。我们在矢量化模块中,我们假设房屋是由多边形构成的,因此对于曲线墙无法重建出曲线结果。

对于户型图识别中的结构元素提取,我们将其形式化为了一个语义分割问题。在我们实际业务使用中发现,线上户型图天然呈现一个长尾分布。很多地产开发商为了营销效果,会自己定义不同房间的铺贴纹理,甚至同一开发商同一时期在不同地域仍然有不同的纹理风格,而此种风格的户型图数量又非常少。在已有数据集训练的语义分割模型迁移到此类图片上的效果将大打折扣。对于此类开放集问题,当前尚无系统性方法进行解决,工程实践上可以用增量学习来得到一个阶段性可用方案。

致谢

感谢友闻、芯扬和乐田三位老师的指导。感谢躺平设计家、iHome兄弟团队的合作与支持。

Reference

  1. Liu, Chen, et al. "Raster-to-vector: Revisiting floorplan transformation." Proceedings of the IEEE International Conference on Computer Vision. 2017.

  2. Zeng, Zhiliang, et al. "Deep floor plan recognition using a multi-task network with room-boundary-guided attention." Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019.

  3. Liu, Chenxi, et al. "Rent3d: Floor-plan priors for monocular layout estimation." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015.

  4. Kalervo, Ahti, et al. "Cubicasa5k: A dataset and an improved multi-task model for floorplan image analysis." Scandinavian Conference on Image Analysis. Springer, Cham, 2019.

论文链接

论文正文:

https://openaccess.thecvf.com/content/CVPR2021/papers/Lv_Residential_Floor_Plan_Recognition_and_Reconstruction_CVPR_2021_paper.pdf

附件材料:

https://openaccess.thecvf.com/content/CVPR2021/supplemental/Lv_Residential_Floor_Plan_CVPR_2021_supplemental.pdf

作者 滟峻(吕晓磊)

编辑 | 橙子君

出品 | 阿里巴巴新零售淘系技术

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

CVPR 2021 | 超实用!住宅户型识别与重建技术来啦!相关推荐

  1. CVPR 2021 论文和开源项目合集(Papers with Code)

    摘自:https://github.com/amusi/CVPR2021-Papers-with-Code CVPR 2021 论文和开源项目合集 CVPR 2021 论文和开源项目合集(Papers ...

  2. 多视角3D重建技术市场现状研究分析报告-

    辰宇信息咨询市场调研公司最近发布-<2022-2028中国多视角3D重建技术市场现状研究分析与发展前景预测报告> 内容摘要 本文研究中国市场多视角3D重建技术现状及未来发展趋势,侧重分析在 ...

  3. CVPR 2021 | RfD-Net: 从点云中重建三维物体实例

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 基于点云的场景理解是目前特别具有挑战性的任务,本文作者提出了一种从三维场景点云中重建高精度物体网格的学 ...

  4. CVPR 2021 | 腾讯优图20篇论文入选,含人脸识别、时序动作定位、视频动作分割等领域...

    编辑丨腾讯优图AI开放平台 计算机视觉世界三大顶会之一的CVPR 2021论文接收结果出炉!本次大会收到来自全球共7015篇有效投稿,最终有1663篇突出重围被录取,录用率约为23.7%.本次,腾讯优 ...

  5. CVPR 2021 论文大盘点-人员重识别篇

    关注公众号,发现CV技术之美 本篇文章总结人员重识别相关论文,包含无监督人员重识别,基于视频.部分身体的行人重识别,可见光红外人员重识别,域泛化人员重识别,换装人员重识别,行人检索等等.共计 26篇. ...

  6. CVPR 2021 论文大盘点-人脸识别篇

    关注公众号,发现CV技术之美 本文总结CVPR 2021 人脸识别相关论文,包含极端姿态人脸识别.新数据集.跨年龄人脸识别等.共计 15 篇. 大家可以在: https://openaccess.th ...

  7. LIVE 预告 | CVPR 2021 预讲 · 美团专场,覆盖实例分割,图像分割,表情识别,特征选择和对齐...

    CVPR 2021 大会将于6月19日至 25日线上举行.为促进同行之间的交流与合作,智源社区近期举办了系列CVPR 2021预讲报告,其中实验室系列将汇聚国内顶尖高校和企业实验室的研究人员为大家分享 ...

  8. 行人识别,无需Anchor | CVPR 2021

    近年来,行人重识别(Person Re-Identification,简称ReID)在计算机视觉领域可谓火遍了"大江南北".脱胎于行人重识别,行人搜索(Person Search) ...

  9. CVPR 2021 | 利用时序差分进行动作识别的最新Backbone—TDN

    ©作者|童湛 学校|南京大学硕士生 研究方向|视频理解 转自:PaperWeekly 本文将介绍我们组 NJU-MCG 在行为识别(Action Recognition)领域被 CVPR 2021 接 ...

最新文章

  1. WCF系列(三) -- WCF配置文件注释 【转】
  2. 阿里巴巴硅谷 Istio 专家解读Istio 1.0 发布
  3. h264 裸流打包成mp4 注意事项
  4. exit()与_exit()的区别
  5. 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.19 使用bcp实施批量导出...
  6. gitee传入公钥以后每次push依然需要输入密码
  7. 一款简单实用的桌面电子邮件客户端
  8. linux mysql temp 设置_linux怎么修改mysql数据库临时表空间大小
  9. dev_t的主次编号
  10. Base64与文件(docx)流的加密和解密
  11. Linux源码包和脚本安装包的安装方法
  12. Windows 10 出现问题但您可以重试 MSA【closed】
  13. 网络安全专题报告:零信任安全,数字时代的主流安全架构
  14. [转贴]请珍惜你身边爱你的人
  15. poj1144 - tarjan求割点
  16. 刷了 1000 多道算法题,一点小小的心得!
  17. 一份非常完整的 MySQL 规范非原创(ps:我怕论坛会删掉 自己拿来用了)
  18. Zigbee HA 框架学习笔记
  19. 如何快速构建一套稳定、高效、可靠的网页无插件监控、直播、点播解决方案
  20. 修改COCO评价指标 maxDets=[10,15,20]

热门文章

  1. UltraEdit 使用技巧笔记(转)
  2. C# 手机号码归属地查询
  3. CodeForces 464E The Classic Problem | 呆克斯歘 主席树维护高精度
  4. 地理坐标系和投影坐标系
  5. BT-Panel Linux自动磁盘挂载工具
  6. 使用a标签时不用href=““调转页面
  7. 2010两个热点话题:物联网、低碳经济
  8. 使用命令行进行替换文件
  9. 月薪过万的程序员都培训的什么编程语言?
  10. 【 数据分析概述与职业操守】——CDA level1