人工智能辅助设计:基于深度学习的风景园林平面识别与渲染
2021-03-04周怀宇
周怀宇
刘海龙*
随着人工智能技术的进步,基于设计图像数据的机器学习(Machine Learning)使人工智能辅助设计(Artificial Intelligence Aided Design,AIAD)成为可能,其中,深度学习(Deep Learning)已在设计图像分析和生成方面展现出极大的应用潜力。近几年,在建筑及平面设计领域,专业的图片数据集及深度学习应用不断涌现[1-2],设计师依托跨学科合作开发AIAD场景,提升设计分析及制图效率。而风景园林学科开展这类研究的限制主要来自跨学科的合作和数据集的缺失[3]。
图像是呈现设计方案的重要载体,风景园林设计平面图是设计师案例借鉴、概念呈现及方案沟通的主要表现形式,平面图的规范表达和高质量渲染对设计呈现至关重要[4]。因此,设计师往往花费大量时间收集可借鉴的平面案例,并使用多种软件渲染平面图。目前,计算机视觉(Computer Vision)领域的图像识别、生成技术已较为成熟,使AI识别案例平面并渲染制图成为可能。而实现这一自动化分析和制图的前提是高质量的风景园林平面图训练集。与常见的人脸或物体图像数据库不同[5-6],风景园林平面数据库具有突出的专业性:1)用地类型多样;2)图纸表达兼具规范性、艺术性;3)获取门槛高,需要专业人员进行细致筛选和数据标注(Data Labeling)。
本文采用风景园林和计算机的跨学科研究方式,展开一项将生成对抗网络(Generative Adversarial Networks,GAN)[7]用于风景园林平面用地类型识别和渲染的试验(图1)。GAN对平面图的用地识别就好比设计师对案例平面的功能分类统计,而GAN学习平面肌理图后可基于输入条件一键生成渲染结果,这就类似于设计师在各类软件上的制图过程。简要来说,深度训练使得GAN能够完成以往只有设计师才能实现的平面分析和渲染,而识别-渲染的自动化有潜力提升设计师的工作效率。
选取的循环生成对抗网络(CycleGAN)[8]模型需要300轮的训练,便可同时完成平面图用地性质识别和自动渲染任务。而训练模型的实践应用途径可具体描述为:1)辅助案例分析:当设计师拿到一张平面案例时,可快速利用该模型初步了解各种用地类型的面积比例,根据项目的尺度定量分析项目的空间分配情况(图1-1);2)辅助平面制图:设计师不需要在制图软件(如Photoshop)上渲染肌理,只需要提供一个色块填图,就可以快速获取一个质量可观的渲染结果用于方案沟通(图1-2)。在方案设计阶段,尤其是大量方案分析整理及多方案制图的工作场景下,该模型有助于提升风景园林师的工作效率,节省制图时间。
图1 基于GAN的风景园林平面用地识别与自动渲染(方案引自ASPECT Studios)
图2 GAN的图像生成原理(2-1 GAN;2-2 条件GAN)
1 GAN用于设计图像识别生成的相关研究
图像识别与生成(Image Recogniton and Generation)是当前人工智能领域的研究前沿与热点,深度卷积神经网络(Convolutional Neural Network,CNN)具有优秀的图像表达能力。在风景园林及建筑学领域,深度模型应用仍处于起步阶段,已有研究可分为设计图像分类和设计图片生成两大领域。在图像识别用于数据分类方面:Kim等[9]尝试使用CNN识别建筑室内照片中的沙发、餐桌、椅子和柜子等要素并提取其颜色和材质肌理;Ng等[10]利用CNN模型分类大量建筑平、立、剖面图纸,分类准确性可达约80%;陈家骜[11]、曹建芳等[12]则提出了多种基于CNN的风景画要素分类提取方式。而在设计图片生成方面,GAN模型得到初步应用,建筑师已开始尝试选取用Pix2Pix[13]及Pix2PixHD[14]等典型的图片到图片(Image to Image)GAN模型用于住宅平面图的合成。Huang等[1]利用公寓平面图片作为数据集,尝试利用Pix2PixHD模型识别和生成公寓建筑平面;Chaillou[15]则利用多个Pix2Pix模型,实现“建筑平面轮廓-轮廓内布局-添加家具”的公寓平面设计流程。
不难发现,自2014年GAN被首次提出以来,设计领域开始逐步选用GAN开发新设计工具,其多种改进模型展现出对抗训练方式的独特优越性,已广泛用于图片分类、图片风格迁移和图片修复等场景[16-19]。与传统用于图像识别的CNN模型相比,GAN的识别与生成训练可在一个模型中完成,模型训练过后既能分类,也能生成新的图像,这就类似于人类设计师的“学以致用”。这种训练方式需要2个神经网络同时训练,互相“对抗”:GAN由一个生成网络(Generator,简称G)和一个判别网络(Discriminator,简称D)构成。生成器G尝试从随机噪声合成图片使判别器D无法分辨真假,D尝试判别随机合成的图像是真是假并将结果反馈给G,在一定次数的对抗训练中,逐步提升G的图片合成能力和D的判别能力(图2-1)。
在设计学科的场景中,自动化的图形识别与生成往往需要利用到有输入条件的GAN模型。条件GAN(ConditionalGAN)[20]进一步将输入给G的随机图片噪声转变为既定图片,并将目标图片(Ground Truth)或数据标签输入给D用于判别,形成了典型的图片到图片的识别与生成场景(图2-2)。上文提到的Pix2Pix和Pix2PixHD这2类条件GAN模型(图3-1)便是采用成对数据(Paired Data)训练的方式解决了图片到图片的生成问题,Pix2PixHD甚至能够生成真假莫辨的高清人物头像或街景图。本研究选取的CycleGAN模型[8]则进一步采用非成对数据集(Unpaired Data)进行训练,成对训练的方式需要进行识别和渲染2个方向的训练,而本文选取的CycleGAN则可同时完成上述方向的训练,在效率上具有一定优势(图3-2)。
图3 Pix2Pix、Pix2PixHD(3-1)及CycleGAN(3-2)的应用[8,16-17]
图4 数据集列举及标签RGB规则(4-1方案引自HM White事务所Tribeca Penthouse花园;4-2方案引自Stimson事务所Pulaski Park;4-3方案引自Starr Whitehouse事务所St. Mary's Park)
图5 CycleGAN识别风景园林平面用地信息结果(5-1方案引自Gillespies事务所;5-2方案引自Caddown网站;5-3方案引自GGN事务所;5-4方案引自ASPECT Studios事务所)
2 试验设计
2.1 数据集及标签制作
类。标签由3名风景园林师完成矢量化标注并导出为图片,严格保证了标签及原图的对位关系,具体用地类型及RGB选色如图4所示。为方便未来数据集的开源工作,笔者利用像素统计的方式,统计了325张平面图中各类连续相同RGB色块的数量,并列入表1。经统计,共标注了约58 000个用地色块,具体统计过程在此不做赘述。
2.2 预试验
预试验的主要目的为模型筛选,本文基于Pytorch平台,使用GPU加速运算,基于Pix2Pix、CycleGAN的开源模型进行预测试。该阶段选取300张数据集,首先进行了100轮(epoch100)的训练,发现非成对训练的CycleGAN模型能够清晰地表达出风景园林平
共收集了325张风景园林平面图,包括广场、市政公园、居住区和滨水公园等多种绿地类型,分为300张训练集和25张验证集(验证集不参与训练),均为2 000×2 000px,JPEG格式。需要强调的是,为提高数据标注的准确性、保证模型能够较好地学习到平面像素肌理,选择小于15hm2的中小尺度项目平面作为训练样本,这类图片比例尺较大,图像肌理相对更清晰(图4)。方案主要来源于国内外知名事务所及获奖方案,以保证平面图表达兼具规范性和艺术性。
采用RGB颜色区分的方式进行平面图用地地块的标注,标签均为2 000×2 000px,PNG格式。标签根据风景园林平面图常见的表达方式,标注软质和硬质景观要素并细化至11个小面图的细节,相比之下,尽管Pix2pix模型结果颜色十分丰富,但出现了明显的像素感、纹理模糊、边界不清晰等问题,因此,最终选择利用CycleGAN进行正式的300轮(Epoch300)训练。
表1 平面图数据集中各类用地地块的数量统计
2.3 训练过程算法原理及训练方法概述
正式训练过程包含构建生成器G、构建鉴别器D和定义损失函数(Loss Function)等[21],具体解释如下。
1)本研究CycleGAN中包含2对生成对抗网络:识别生成器G1关注x→y过程,平面图渲染生成器G2关注y→x过程;还需要D1和D2分别判断真实性。进一步定义G1、G2卷积层中要提取出的特征数量为32,并将输入给生成器的图片分割为256×256px的小图。
2)单个生成器由编码器、解码器和转换器3个部分组成,分别完成特征提取、相近特征组合、特征还原生成的任务(编码器中会识别和提取图像特征;转换器组合图像的相近特征,形成一定数量的特征向量;解码器利用反卷积层从特征向量中还原出低级特征),最终合成1 024×1 024px的输出图像。
3)单个判别器也是典型的卷积网络,判别后返还给G一张比原来输入小16倍、通道数为1的特征图,特征图的每个像素点值1表示真,0表示假。
4)损失函数被用来评价模型生成值和真实值的不一致程度(非负的实值函数),值越小表示模型的拟合效果越好。CycleGAN的损失函数由三部分组成。首先,模型包含2对生成和判别器,对应2个损失函数,分别标记为LG(G1,D1,x,y)和LG(G2,D2,x,y)。由于存在识别、渲染2个过程,单纯依赖上述2个损失函数是无法进行训练的:以x→y过程为例,G1完全可以将所有x都映射为y空间中的同一张图片,使得判别器DY永远判断为真,无法与原图形成对应关系,造成损失无效化。因此CycleGAN要求2个生成器的损失函数具有循环一致的特性(cycle consistency),即G1[G2(y)]≈y,G2[G1(x)]≈x,需额外定义循环一致性函数Lcycle(G1,G2,x,y)来做限定。因此最终的损失函数L表达式包含3个部分:
3 试验结果评价
3.1 平面图识别结果评价
图5 选取了验证集结果展示Cyle GAN识别风景园林用地类型的训练过程,并分析CycleGAN最终输出(Epoch300)在识别用地类型的表现。目前,人工目视解译仍是评价识别结果的最有效方式[22]。首先,随着训练次数的增加,CycleGAN识别的准确性也逐步提升,色块分割也由50代(Epoch50)的较为分散逐步转变到最终输出(Epoch300)较为完整的图像分割。总体来说,CycleGAN能够较为准确地识别风景园林平面图中的道路、铺装节点及绿地等类型,可以完成案例平面用地比例的提取任务。
需要强调的是,模型识别结果与人工标注的差别并不一定代表是模型的错误。实际操作中,人工标注的错误及适当简化不可避免,深度模型的优势体现在识别的细致和全面性上,较易发现人工标注的疏漏:如图5中红框3所示,标注人员在制作标签时简化了树团的标注,树团的范围有一定误差,但CycleGAN模型能够完成较为准确的树团识别。
当然,识别结果也存在一定的不足:1)当识别的平面图有大面积硬质景观且图像肌理复杂时,模型将道路广场识别为运动场、水面等类型用地的错误偶有发生(图5中红框1),同时也存在模型将建筑物识别为广场或空白区域的错误(图5中红框2、4);2)试验在标签标注及数据清洗时忽略了对图片中文字的处理和标注,这也导致模型识别平面图文字时产生干扰,有待在后续研究中改善(图5中红框5);3)训练中忽视了风景园林平面图中常见的半透明树木表达对识别的影响,导致模型识别结果中树木图案较为破碎(图5中红框1、5),初步考虑在后续研究中采用有树/无树2种标签的方式将一个方案拆分为2个进行重复训练。综合分析以上问题的主要原因:风景园林平面表达的艺术风格非常多样,设计师在电脑渲染时会特别注意增加细节、半透明和渐变效果,这就给CycleGAN的用地识别带来了挑战。
图6 CycleGAN风景园林平面生成训练过程50~300代(方案引自Ayers Saint Gross事务所)
图7 CycleGAN验证集50代(Epoch50)、最终输出(Epoch300)的训练结果(7-1方案引自AUworkshop事务所;7-2方案引自Caddown网站;7-3方案引自Opengabric事务所)
图8 CycleGAN风景园林平面生成结果的直方图分析(8-1方案引自Gillespies事务所;8-2方案引自Site Design Group事务所)
3.2 平面图渲染结果评价
图6选取了验证集编号303的各个训练代结果用于展示CycleGAN整个训练过程中渲染细节的深化。总体来说,随着训练次数的增加,模型的渲染笔触逐步加深,细节逐步增多。通过放大细节可以看到,在第50代(Epoch50)时,模型展示了一种扁平化的渲染方式,笔触感弱,但能够清晰展示空间的属性;而在训练次数达到300代以后,平面图渲染的细节更加丰富,形成了一种渐变、混合的渲染笔触。
图7 进一步选取了部分验证集5 0 代(Epoch50)、最终输出(Epoch300)的训练结果,从图片质量、规范表达和色彩艺术性3个方面,定性与定量相结合地分析渲染结果。
3.2.1 图片质量
CycleGAN的平面生成结果为1 024×1 024px,在常见的1 080p分辨率的显示器上能够清晰显示,基本满足风景园林师在方案沟通、汇报时图片的展示需求。生成图片(Epoch300)的质量问题主要体现在:部分图片呈现出明显的像素方格肌理(图7中放大的红框细节2),但与此同时,较早的Epoch50则没有这个问题。可见,在训练次数增加、渲染笔触增多的同时,像素化问题也明显增多,反映了CycleGAN这类生成模型固有的细节添加过度问题。计算学科当前正利用改进损失函数、训练模式和超分辨率等方法改进这一类图像质量问题。但从简化程序的角度分析,笔者构想改善这一缺陷的对策主要是在模型结果的基础上进行高斯模糊(半径2.0)处理,并叠加用地边线区分边界,这能够很好地解决生成的平面图像素感过强的问题。
3.2.2 规范表达
CycleGAN的最终输出结果(Epoch300)能够准确反映用地类型,模型也在训练过程中形成了一定的渲染范式(图7):1)在表达广场及道路时以白色、灰色为主,用地边缘处较深;2)铺装及空间节点表达的色彩主要为棕色,并带有部分肌理;3)在表达建筑物时主要选取灰色,建筑边缘较深;4)能够清晰地区分出草地及乔木,肌理最为丰富;5)能够用蓝色准确地表达水面。模型表达平面图的缺陷主要集中在构筑物这一用地类型,训练后CycleGAN模型倾向于用白灰色表达构筑物,因此模型在表达道路及广场附近的构筑物时易导致用户识图困难。图7中放大的红框细节2明显地反映了这一问题,经过源数据分析发现,标签中标注了大量用灰白色表达的景观雕塑、墙体和围栏,而其他颜色的构筑物图片较少。笔者构想,应对这一缺陷的有效对策是在应用模型时,将道路及广场附近的构筑物标注为建筑或节点的颜色进行区分。
3.2.3 色彩表达
采用像素分布分析的方式比较输出画面的色彩与真实图片色彩之间的差异,灰度直方图(Gray-scale Histogram)能够准确表达灰度值0~255的像素数量占比,灰度值从小到大可粗略对应为常规图片的暗部、中间调和亮部。在分析时应注意去掉图片生成结果的白色背景,因为背景往往占到全图的30%~40%,对直方图干扰明显。
图8展示了部分CycleGAN验证集结果(Epoch50、Epoch300)与原图片的灰度直方图对比,可以分析得出:CycleGAN渲染的平面色彩分布趋势与人工渲染图极为相似,但丰富度与原图相比有一定差距。灰度直方图的参差波动与不平滑反映出图片存在一定色彩缺失,即色彩过渡不够平滑。而这种像素缺失主要集中在中间调,也带来了视觉感受上的色彩单调感。因此,CycleGAN渲染结果的色彩表达质量仍有待进一步提高,需要设计师的后期调整。
小结该模型的平面图渲染能力:1)CycleGAN渲染的平面图质量满足清晰展示的需要;2)Epoch50渲染更为扁平化,Epoch300细节丰富但有一定几率产生像素化的细节;3)渲染用地性质表达准确,但构筑物渲染不够突出,需要人工进一步强调;4)渲染图色彩的中间过渡调有一定缺失。
4 总结与展望
人工智能的大背景下,风景园林师主动寻求跨学科合作以提升设计效率已是大势所趋。本文的创新点在于首次建立了风景园林平面图数据集,开发了将GAN应用于风景园林设计分析与制图的新场景:1)基于GAN的风景园林平面图识别能够帮助设计师高效整理、分析案例,快速提取用地特征、获取相应比例;2)平面图渲染重点实现了从色块图到肌理图的一键生成,结果规范正确且具有一定的艺术性。总体来说,研究成果具有较大的潜力用于提升设计师的案例分析及制图效率。
作为风景园林学领域中较少的跨学科人工智能研究,本研究仍有较多不足,这些不足也是未来研究的优化方向,简要总结如下:1)需改进数据集的标注方法,进一步解决模型对风景园林平面图中半透明树木的识别问题;2)需要编写加工程序,进一步解决部分渲染图像像素化的问题;3)需要补充多尺度的训练集,以解决平面生成的色彩单一及过渡性差的问题;4)与计算机学科研究相比,本文的主要创新点是提出了新的GAN应用场景和新的数据集,同时验证了已有模型的可行性,但并未修改模型结构和训练方式,有一定的局限性;5)在形成可推广的软件前,仍需采用图灵测试或问卷调查等方式对模型结果进行用户调研。