深度剖析floor planaicomputer vision

用 AI 把平面图变成数字孪生:即将推出什么,今天又该怎么做

AI 平面图识别工具 AI Map 即将推出,可从平面图提议房间、墙和门,目前还不能使用。今天,你可以用 Areas 和 Magic walls 描绘平面图,得到同样的结果。本文介绍具体做法。

阅读约 8 分钟发布于 更新于 作者 Spatial Map team
3D 视角下的演示仓库 Acme Warehouse:在平面图上描绘出的墙体、办公室、货架和装卸口,以及实时库存、员工和消防设备标记

简要概述

AI Map 目前进展如何

大多数数字孪生项目都卡在同一步:得有人把建筑重新画一遍。建筑师的图纸是现成的,但要把它变成可以挂接数据的房间和墙,一直以来都意味着手工描图。让 AI 替你描图是最显而易见的捷径,也正是我们在做的事。

在编辑器中打开 Draw 菜单,你会在工具栏末尾看到 AI Map 按钮:呈灰色,带一个小小的 SOON 徽标。点击后打开的是「AI Map — coming soon」提示,而不是工具本身。这就是真实情况:功能正在积极开发中,目前还不能用;与其演示一个你试不了的东西,我们宁愿实话实说。

从平面图文件到数字孪生上传 PDF、DWG 或图片;平面图获得真实比例并放到地图上;你描绘房间和墙;楼层和实时数据完成数字孪生。用虚线表示的 AI Map 草稿上线后,将位于描图和成品孪生之间。

AI Map 将要做什么

AI Map 的目标是加快描图,而不是取代描图。你照常放好平面图,然后让 AI Map 读取整层,或者在某一翼上拖出一个矩形。它会提议四类草稿形状:

  • 通道和墙段:细长的要素,例如仓库平面图上界定通道的货架排。
  • 区域:封闭的房间和分区;如果能识别其中印刷的房间名,就用它来命名。
  • 门:放在两侧门框之间的开口处。
  • 楼梯:以直跑楼梯放置,之后可以再调整形状。

设计以审核为先。每条识别结果都显示类型、从图上读到的标签和置信度,每行都有 Accept 和 Reject,还可以一键接受高于某个置信度阈值的全部结果。你接受的内容会变成普通形状:可以像手绘的任何东西一样移动、改样式、撤销或删除。你拒绝的内容永远不会出现在地图上。

为什么用计算机视觉流水线,而不是对话式模型

我们的第一个原型把图片发给通用的视觉语言模型,让它给出房间、门和坐标。做起来很快,结果却难以信任:在真实的仓库平面图上,坐标会漂移,内门经常漏检,通道的识别率不到三分之一。通用模型擅长描述一张图,但要准确说出门洞在哪里,就差得多了。

因此,AI Map 被做成一条流水线,每个环节只做一件事:分割模型把图片切分成区域,几何清理把每个区域变成简单多边形,形状规则判断它是墙、房间、门还是楼梯,OCR 读取房间名,最后用编辑器绘制已放置平面图时同样的数学方法换算成地图坐标。每个环节都可以单独评估和改进,每一次接受或拒绝都告诉我们规则该在哪里调整。

今天怎么做:先画 Areas,再用 Magic walls

在 AI Map 上线之前,可靠的方法就是描图。它比听起来快,因为平面图已经按真实尺寸放在地图上,两个工具就能完成大部分工作。我们的演示仓库 Acme Warehouse 的墙体、办公室、货架和月台门就是这样做出来的。

  1. 1
    导入并放置平面图

    在编辑器中按 I,拖入 PDF、DWG 或图片。PDF 从图幅获得比例,DWG 从自身单位获得比例;把它拖到地图上并旋转,直到与建筑重合。我们的 CAD 转 3D 指南有详细步骤。

  2. 2
    用 Area (P) 描绘每个房间

    依次点击房间的各个角并闭合形状。用现场的叫法给它命名(「Office 1」「QC-03」),并选择一个角色,例如 Room。名称很重要:以后按房间接入的数据就靠它来匹配。

  3. 3
    用 Magic walls (W) 生成墙体

    设置好想要的墙高和墙厚,打开 Magic walls (from areas),点击要包含的区域,再点 Generate walls。每个区域都会沿轮廓外侧生成一圈闭合墙体。此后这些墙就是普通的通道形状。

  4. 4
    打开通行口

    Magic walls 生成的是封闭房间,所以凡是有人通行的地方,都要加一扇 Door (D)。门会在墙上开出缺口,室内导航也正是靠它才能从中穿过。

  5. 5
    完成这一层

    添加 Stairs & lifts (S),用 Rack (G) 画货架,用 Text (T) 写房间名。在编辑器中按 ? 可查看全部快捷键。

从图纸到数字孪生

建筑的 3D 模型仍然只是一张图;数字孪生则是叠加了建筑数据的同一个模型。你描绘的每个区域、货架或门,都可以成为数据链接的目标。数据可以来自按计划定时拉取的 REST API、上传的 CSV、XLSX、JSON 或 GeoJSON 文件,或者由你自己的系统通过 API 写入的数据表。可以显示为实时位置标记、数值徽标、着色房间、热力图或移动轨迹,并且无需刷新页面就会更新。

叠加实时数据后的仓库
3D 预览中的 Acme Warehouse:描绘好的墙体、办公室和货架,货位按库位状态着色,另有叉车、停靠在月台门的卡车和灭火器标记
3D 预览中的 Acme Warehouse:描绘好的墙体、办公室和货架,货位按库位状态着色,另有叉车、停靠在月台门的卡车和灭火器标记

在 Acme Warehouse 演示中,描绘好的货位由 Rack Inventory 数据表着色,每一行按库位编码匹配到对应货位。房间也是同样的道理:带状态字段的房间表按描图时输入的区域名称来匹配。所以认真给形状命名是值得的。

现在就为 AI Map 准备好图纸

今天让描图更快的习惯,也正是将来让 AI Map 得到干净输入的习惯:

  • 从最干净的源文件开始。 DWG 或矢量 PDF 会渲染出清晰的黑色线稿;用手机拍的疏散图就不行。
  • 导入 DWG 时取消勾选标注图层。 尺寸标注、填充和图签在识别器眼里像墙和房间,描图时也碍事。
  • 把平面图裁剪到建筑范围,使用平面图的 Crop 设置,把图例和图签排除在外。
  • 先放好并缩放平面图。 形状的位置是通过平面图的摆放换算出来的,平面图放得准,形状才放得准。

让数据落到该在的平台上。

Spatial Map 把电子表格、传感器数据流和 CAD 图纸融合成一张实时的 3D 场地视图 —— 无需安装,七天免费试用。

继续阅读