如何将多目标检测用于建筑平面图? | MixLab智能建筑
在建筑平面图的分析中,一些复杂的平面图总是会让人感到头晕脑胀,不同的标注方式以及不同的图形符号更难以让普通人去解读。
5种不同图形符号的浴缸以及真实场景中具有的遮挡,标注等信息
有时,图形符号又会极其简单,对于人类来说对此的解读会显得十分容易,但对机器来说又会变得毫无特征进而无法分析。
信息量较少的图形:入口门,壁橱门,冰箱和洗碗机
在本文中,作者通过利用前沿的深度学习技术,并改编基于YOLOv2架构的对象监测框架来解决上述所有问题。
-- workflow
输入图像->图像分块->YOLOv2处理->阈值处理->图像整合
是不是看起来很简单,但事实并非如此
- 数据集
首先是数据集的准备,带注释的图纸数据集很难获得,网上很少有公开的,对于建筑平面图而言尤其如此,这是因为知识产权经常会限制其使用和发布。
想尽一切办法解决数据集的问题后,面临的是数据拆分与数据清洗。因为图像识别是无法直接检测pdf类型的图纸的,所以首先需要将pdf转换成DPI图像,并针对建筑的符号类型进行标注,例如浴室、水槽、窗户、以及电器。
浴室水槽,进门,单折叠门,双折叠门,浴缸,淋浴等
- 预处理
在处理建筑平面图图像时,我们会面临几个问题。
首先,平均一张平面图的尺寸为5400×3600像素,而单个物体符号非常小(可能只有70x 80像素)。若对模型直接投喂一整张图片的话,很多符号可能都会在CNN的输出特征图中消失。
此外,平面图图像具有不同的长宽比,若按照CNN架构的要求将其调整为固定大小,将会极大地改变了符号形态,从而降低了分类性能。
那么,我们可以通过图像切片与平铺进行处理数据集,可解决上述问题。并且还可以有效的扩充数据集。
通过图像平铺策略进行数据增强。会发现符号出现在图块内的各个位置,同时其中还包括其他各种符号。
- 训练网络
对比YOLOv3和YOLOv2,虽然YOLOv3能够更好的预测和特征提取,但相对来说会使模型变的缓慢。而YOLOv2相比YOLO有着更好的召回与精度,在这样的监测中可以保证精度的同时,不会让模型运行变得太慢。
最后,对于重叠检测,我们比较所有对边界框。如果它们的重叠大于阈值(较小边框的大小的百分比),则保留具有最高分类分数的边框。如果分数接近,则选择较大的边界框,并删除较小的边界框。
重叠检测,选取10%阈值的结果
在实际数据集中检测到的各种级别的遮挡和重叠:
实际的建筑平面图检测结果
让小白也能看得懂的建筑图
本文所涉及的技术资料
欢迎加入星球获取~