陈一帆 (南京大学建筑与城市规划学院,江苏 南京 210093)
分类行为是人类认识事物的一种方式。人们对事物进行抽象和归纳,便有了不同的类型,认识的过程本身就是分类的过程。分类的思想在建筑学中由来已久,关于“原型”“类型”的探讨在建筑学中长盛不息,这不仅仅可以帮助我们归纳总结已有的设计知识,还能更好更快地设计出不同的作品。建筑形体特征包括了形体、空间和人的各种活动[1],具象的形体则是其中最重要的表现形式。传统的研究方法在建筑的形体大小、比例、占地面积、高度等进行了定量研究,但是在形体类型的量化指标一直是研究的空白。
深度学习作为机器学习的重要的一个分支,近年来得到了巨大的发展。在建筑设计领域,深度学习技术也得到了广泛地应用。大数据驱动的建筑图像分类,广泛的应用于不同的对象和不同的尺度,涵盖了城市、乡村、单体建筑等。例如,OCHOA S[2]在2020年利用t-SNE和CNN的技术完成了对城市不同区域的卫星图的分类工作,并与人的活动轨迹相联系。张钦[3]在2019年利用VGG的技术完成了街景中目标类型建筑物的识别。覃巧华等人[4]在2020年利用CNN的技术完成了传统村落的分类工作。大数据驱动的研究大多局限于样本数据的不规范、样本种类缺少变化等。但Chenyi Cai[5]在2020年利用基于特定规则生成的平面图数据库,再利用CNN完成了建筑平面图的识别分类工作。这一做法一定程度上避免了因为数据集收集整理不足带来的问题,但却带来了另一问题,就是训练的神经网络的泛化能力会因为数据集样本的影响而一定程度上降低。
同时可以看到当前图像分类技术在三维形态上的研究目前还比较缺乏,主要难点在于建筑的三维形态如何处理为深度学习能够处理的图像数据和三维建筑形体数据库的缺乏。Jinmo Rhee[6]在2021年将Open Street Map上世界主要城市的三维建筑模型,经过分层切片处理后,输入给以卷积神经网络组成的变分自编码器中(VAE),获得了14种类型的高层数据。但这种方式存在一定的不足,其中一点就是无监督学习得到的样本类别取决于隐空间中的数据分布特征。
本文通过预先设定好的建筑形体类别和相应的规则,生成相对应的形体,由此组成训练的数据集。再通过形体切片的方式获取分层图像,将建筑形体信息转化为卷积神经网络能够识别的图像数据,由此来训练神经网络识别建筑形体的种类,也为建筑形体的计算机识别和分类提供量化支撑,由此也可以展开形体优化生成的后续研究。
在传统的建筑形态分类方式中,通常认为建筑形态包括建筑的体量、立面、内部空间、外部空间等,形态则是场所环境、内外活动、内部功能和材料建造多种因素作用下的结果。例如,《建筑:形式空间和秩序》[7]一书中将平面形态划分为中心的、线性的、放射性的、组团的、网格的;《建筑空间组合论》[8]则强调了体量组合的主从和有机、对比和变化、稳定和均衡三种类型。本文不讨论抽象的三维建筑形态分类方式,只结合笔者的实际经验,将建筑形体概括为五种常见的类型:基本型、中庭型、U型、L型和并列型。基本型建筑形体常较方正,常见于博物馆等不需要采光的建筑或者小型建筑等;中庭型作为常用的组织形体的方法,增加建筑的采光通风,也丰富了内部空间;U型、L型建筑形体则常用于处理入口广场、集散场地,同时提高了室内环境的舒适度;并列型建筑常用于群体建筑。
卷积神经网络与基本的多层全连接神经网络最重要的区别就是应用了卷积层,避免了全连接层带来的过大数据运算量。由于图像数据具有局部相关性,在局部数据上进行全连接运算,并且权值矩阵共享到整个图像,这就是卷积的原理。
通过堆叠卷积层,卷积神经网络模型能够获得更好的表达能力,但是模型却会因此变得难以训练。这是因为在反向传播运算的过程中,神经网络层会出现梯度消失或者梯度爆炸的现象。2015年,微软亚洲研究院何凯明发表了基于SkipConnection的深度残差网络(ResNet)。通过添加 skipconnection实现层数的回退,很好地解决了这些问题。本文采用ResNet-18作为多分类神经网络的框架。
参照Cai[5]提出的基于规则生成特定的二维平面数据库的方法,笔者在Rhinoceros(参数化建模软件,以下简称rhino)按照预定的规则生成带有形体类别标签的三维建筑形体数据库。
基本型建筑的形体满足的必需条件:建筑的长宽大于2个柱跨;建筑与周边场地的距离大于1个柱跨。中庭型建筑满足的必需条件:建筑的长宽大于3个柱跨;建筑与周边场地的距离大于1个柱跨;建筑中庭的尺寸大于1个柱跨;建筑最窄处的进深大于1个柱跨。L型建筑满足的必需条件:建筑的长宽大于3个柱跨;建筑与周边场地的距离大于1个柱跨;建筑围合的场地大于1个柱跨;建筑最窄处的进深大于1个柱跨。U型建筑满足的必需条件:建筑的长宽大于3个柱跨;建筑与周边场地的距离大于1个柱跨;建筑围合的场地大于1个柱跨;建筑最窄处的进深大于1个柱跨。并列型建筑满足的必需条件:各个建筑的进深和面宽大于1个柱跨;建筑与周边场地的距离大于1个柱跨;建筑间距大于1个柱跨(如图1)。
图1 五种类型的建筑形体的生成规则示意图(图片来源:作者自绘)
同时通过数据增强的技术,在参数中加入了随机函数,例如平面的长宽、开洞的尺寸、建筑的高度、建筑上下层偏移的尺寸等。因此样本虽然在拓扑关系上大致相同,但是细节形态却不相同,从而一定程度上保证了训练的质量。
如何将Rhino中的三维建筑形体转化为神经网络能够识别的多通道图像数据,笔者采用的方法是先在物体的中心位置的正上方创建预先设定好视野大小和焦距的摄像机物体,再创建不同高度的截平面与原建筑形体相交获得相交平面,最后通过摄像机捕捉各层平面输出为图像,即可获得固定大小和比例的建筑分层平面图像(如图2)。同时,笔者将建筑各层平面轮廓图处理成为黑白二值图像,以方便神经网络的训练(如图3)。
图2 Rhino中获取物件的各层平面轮廓的方法示意(图片来源:作者自绘)
图3 五种类型的建筑形体分层图像数据库(图片来源:作者自绘)
笔者选用ResNet18作为网络的基本框架,输入的张量的维度统一为4*96*96。对于只有1~3层的建筑形体,获得的建筑平面图像只有1~3张,那么需要对数据进行填充处理。笔者在此选用数值0填充,最终获得的数据库可如图4中左图所示,每一列为一个样本数据。对于神经网络的倒数第二层,笔者选用神经元个数为5的全连接神经网络,再通过最后一层softmax层获得样本各个类别的可能性值,例如(0.2,0.2,0.5,0.05,0.05),如图4右图。最后通过样本预测的类别(例如张量(0.2,0.2,0.5,0.05,0.05))与样本的真实的类别(例如张量(1.0,0.0,0.0,0.0,0.0))的交叉熵作为模型的损失函数来优化模型。
图4 神经网络模型结构示意图(图片来源:作者自绘)
通过设定好生成规则的建筑形体生成器和分层图像采样操作,共获得了基本型形体、中庭型形体、U型形体、L型形体和并列型形体各4000个,其中每种形体的一层、二层、三层、四层建筑各1000个。通过9:1的比例划分训练集和测试集。经过200代的训练,神经网络的训练集和测试机的准确率均可以达到95%以上。
可以看到,训练好的神经网络模型对于特定规则下生成的建筑形体,能够很好地识别。为了验证模型的泛化能力,验证集选用了一批其他规则生成的建筑形体,例如拥有多个中庭的中庭型形体、发生偏转的L型形体、多个建筑形体的U型形体、分散布置的并列型形体(如图5)。
图5 验证集测试结果(图片来源:作者自绘)
如图5所示,神经网络模型对于只有一种形体特征的建筑形体识别比较准确,但是对于具有多个特征组合的建筑形体并不能很好地识别。在图5倒数三个形体中,形体具有两个特征,但是神经网络输出的特征值只捕捉到了一个特征,而且是前两层。可能是训练样本中通过填充空白数据的操作使得模型对层数越低的建筑平面越敏感,也可能是模型训练的程度过高,过于拟合训练集的数据。这一问题可以通过分层标记的方法解决,例如图5最后一个形体,可以将样本标记为基本型、基本型、并列型、并列型,通过训练多个分类器来实现对形体的更精确的识别。
当前在城市建设的过程中,缺乏一套可以对建筑三维形态特征的内在规律进行解读的有效工具。通过影响视线、光照、通风等,建筑形体不但直接决定了建筑外部空间的舒适,也决定了建筑内部空间的合理性。城市数据模型不断完善,但是对建筑形体进行描述的相关数据仍是一块空白。
可以看到,通过训练好卷积神经网络来识别建筑三维形体特征这一方法是可行的。采用基于规则生成的形体作为训练得到数据库,通过在Rhino中分层切片的操作,完成对三维形体的二维图像转换,再通过训练一个多分类的卷积神经网络,就能得到一个分类模型。通过这个模型,可以对城市中的三维建筑形态进行定量分析,也可以作为建筑师分析形体的辅助手段。通过对不同形体的量化分析,可以完善城市建筑的数字化信息联合,为后续的研究提供可靠的支撑。
但是,本实验还存在一些不足。首先,模型的可靠程度取决于数据库的多样性,而本次数据库的样本种类目前还比较简单,以整体空间内较少的样本训练的模型去预测其他样本的类别,存在风险。其次就是实际建筑的形体往往复杂多变,目前实验的建筑形体生成和描述的方式还比较简单,对于复杂形体生成和描述的规则仍值得考虑。最后就是多通道多卷积核的方式对通道之间的数据并不敏感,每次发生关联的地方只在卷积操作时通道之间的拼接,可以考虑将二维卷积核换成三维卷积核。