Press "Enter" to skip to content

基于pix2pix模型的绿化区域生成方法

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

本文作者蔡春兵是贝壳2021级的ADC。实习期间,在贝壳3D楼书项目制作中,发现在对城市大场景绿化区域还原时,存在依靠人工绘制效率低下的问题,于是提出了一种基于pix2pix模型的绿化区域生成方法。该方法在实际应用中,大幅提高了3D楼书项目制作的效率。目前相应论文已经被「微型电脑应用」期刊收录。以下是论文原文,欢迎阅读。

 

基于pix2pix模型的绿化区域生成方法

 

摘  要: 针对室外大范围三维场景还原建模时,绿化区域的绘制需要大量人工参与、效率低下的问题,提出一种基于pix2pix模型自动生成绿化区域的方法。该方法首先利用计算机视觉库OpenCV,对地图图像进行自动切分,并使用切分后的图像进行数据集的制作和模型推理。实验表明,通过使用成对的数据集,对pix2pix模型进行训练,训练后的模型可以生成满足需求的绿化区域图像,在实际应用中大幅提高工作效率。

 

Green area generation method based on pix2pix model

 

CAI Chunbing

 

Bei Ke, Frontend Foundation R&D Center, Beijing 100089, China

 

Abstract: Aiming at the problem of large number of manual participation and low efficiency in the rendering of green areas in the restoration modeling of outdoor 3d scenes, a method for automatically generating green areas based on pix2pix model was proposed. In this method, the computer vision library OpenCV is first used for automatic segmentation of map images, and the segmented images are used for data set production and model inference. The experiment shows that by using paired data sets to train pix2pix model, the trained model can generate images of green areas that meet the requirements, and greatly improve the work efficiency in practical application.

 

0 引言

 

如今对于真实世界的三维展示在各个行业的需求不断增大,很多三维制作软件都能制作出非常逼真的场景,但要实现高精度场景的制作,需要的人工成本和时间成本都很高。

 

如何能通过程序自动处理模型生成过程中的一些环节,提高场景制作效率显得尤为重要。

 

对于一个城市目标区域的三维建模,其周边的道路、建筑、水系、山脉等都是基于GIS数据,进行一定程度的从二维到三维的还原重建。但像绿化之类没有数据依据又必不可少的部分,都是由美术人员进行人工设计来绘制绿化区域,再进行树木等的生成,此过程通常需要大量美术人员参与,效率低下。

 

近年来人工智能在工业生产、金融、医疗、教育等领域大放异彩。而生成对抗网络(Generative Adversarial Networks, GAN)[1]的出现,使得一直被奉为不可替代的艺术创作,也无处可逃地受到人工智能的冲击。

 

2016年,微软、代尔夫特理工大学、莫瑞泰斯皇家美术馆以及阿姆斯特丹伦勃朗博物馆利用人工智能技术历时18个月完成的“The Next Rembrandt”项目,成功的复制了伦勃朗的画作;

 

2017年,由罗格斯大学艺术与人工智能实验室发明的创造性对抗网络(Creative Adversarial Networks, CAN)生成[2]的艺术作品《Edmond de Belamy》在佳士得艺术品拍卖会上以35万美元的高价成交。

 

2020年,谷歌公司[3]提出的联合双边实时风格迁移算法,使得可对图像进行快速艺术化迁移。

 

可见,利用深度学习方法进行艺术创作,已是大势所趋。对于本文绿化区域的绘制,依靠美术人员进行人工创作太过低效,考虑到GAN模型强大的学习创作的能力,因此使用预训练的pix2pix[4]模型来自动生成绿化区域。

 

1 基本原理

 

1.1 GAN

 

2014年,Goodfellow等人[1]受博弈论的启发,提出了生成对抗网络。如图1所示,其模型由生成器 G 和判别器 D 组成,其中G 的目的是学习真实样本的分布,以生成和真实样本逼近的样本,而判别器 D 则是努力区分生成样本和真实样本。

 

 

图1 GAN网络模型结构示意图

 

生成器G和判别器D通过不断的对抗训练,以使D能最大概率地正确判别训练样本来源,同时使G生成的生成数据与真实数据的相似度最大化。

 

在训练优化D时,当D的输入为真实样本x时,希望 D(x) 趋于1;当输入为生成样本G(z) 时,则希望 D(G(z)) 趋于0,即希望1 – D(G(z))趋于1,故需极大化模型D。在训练优化G时,输入只有噪声 z ,此时希望生成样本 G(z) 通过D后的概率值为1,即希望 D(G(z)) 趋于 1,也就是说希望 1 – D(G(z)) 趋于0,故需极小化模型G。这个优化过程可以归结为一个“二元极小极大博弈”问题,式(1)为其优化函数。

 

 

在训练模型G和D时,先固定判别模型D,调整G的参数;再固定生成模型G,调整D的参数;以此交替迭代,最终达到模型稳定。

 

原始GAN对于生成器没有任何约束,无法指导图像的生成。CGAN(conditional GAN)[5]在原始GAN的基础上增加了约束条件,控制了GAN过于自由的问题,使网络朝着既定的方向生成样本。而DCGAN(deep convolutional GAN)的提出又将卷积神经网络和GAN结合起来,使得生成的图片质量和多样性得到了保证。而后更多的生成对抗网络,如pix2pix、CycleGAN、BigGAN、StackGAN等如雨后春笋般涌现出来。

 

1.2 pix2pix

 

1.2.1 网络模型

 

pix2pix 实质是一个 CGAN 框架,用于图像到图像的翻译。其与原始GAN的主要区别在于生成假图像时,将随机变量z和图片x一同作为生成器G的输入,来生成一张由图片x翻译后的假图G(x,z)。

 

训练大致过程如图2所示。图片 x 作为此cGAN的条件,需要输入到G和D中。G的输入是{x, z}(其中,z 是随机噪声,x 是需要转换的图片),输出是生成的图片G(x, z)。D则需要分辨出{x, G(x, z)}和{x, y}。

 

 

图2 pix2pix网络模型结构示意图

 

1.2.2 优化目标函数

 

pix2pix的优化目标包含2个部分。一部分是cGAN的优化目标,如式(2)所示;

 

 

另一部分是L1距离,如式(3)所示。

 

增加L1距离目的是用来约束生成图像G(x, z)和真实图像y之间的差异,减少生成图像的模糊。所以结合条件对抗损失和L1距离约束,pix2pix最终的优化目标函数如式(4)所示。

 

1.2.3 生成器结构

 

在pix2pix模型中,生成器的结构并未使用传统的Encoder-decoder(编解码器)的模式,而是使用了U-Net[6]。U-Net网络结构如图3所示。

 

 

图3 U-Net网络图像

 

U-Net是德国Freiburg大学提出的一种全卷积网络结构。其与常见的先降采样到低维度,再升采样到原始分辨率的编解码结构的网络相比,区别是加入了跳层连接,其将同样大小的降采样的特征图和升采样的特征图按通道拼一起,用来保留不同分辨率下像素级的细节信息。U-Net能够充分融合特征,达到更好的分割效果,因此U-Net是在图像分割领域应用非常广泛的网络结构。

 

1.2.4 判别器结构

 

pix2pix使用L1损失来让生成的图片与真实图片尽量相似,用GAN来构建高频部分的细节。既然GAN只用于构建细节,那幺就不需要判别器对整张图片进行判断,只需让判别器对图像的每个大小为N×N的patch做出真假判别。因此pix2pix使用一种叫做patchGAN的结构来作为判别器。

 

patchGAN在进行判别时,将对一张图片切割成不同的N×N大小的patch,并对每一个patch做真假判别,最后将所有patch的结果取平均作为最终的判别器输出。这样不仅D的输入变小,使得计算量小,训练速度快;并且因为G是全卷积的,对图像尺度没有限制,而D按照patch去处理图像,也对图像大小没有限制。这样就使得整个pix2pix框架对输入图像大小没有限制,使得pix2pix可以处理不同大小的输入图像,增加了其框架的可扩展性。

 

2 本文方法

 

2.1 绿化区域绘制要求

 

对于室外某一10公里直径范围内的场景构建,通过访问开源地图OSM(Open Street Map)获得的地图图像,对其进行预处理生成的8000×8000像素的二值图像,如图4所示。其中黑色像素区域为道路、河流和建筑等不能绿化的区域,白色像素区域为可绿化的区域。

 

 

图4 二值地图图像

 

目前,对于绿化区域的确定,还是依靠美术人员,按照美术要求对可绿化的区域进行绘制,以使绿化后的图像具有一定的美观性。绿化区域的绘制需遵循以下三个原则:

 

1)必须避开道路楼栋等建筑区域;

 

2)绿化区域要具有美工效果,而不是生硬的直线连接;

 

3)绿化区域尽量连成片,以保证后续在三维空间中植树后的美观性。

 

如图5(a)所示,其中B图,为根据图4中的crop3,由美术人员进行人工绘制的绿化区域。

 

2.2 图像翻译生成绿化区域

 

容易发现对绿化区域的绘制,也是一个图像翻译的过程。如图5(a)所示,即从包括道路、建筑等的二值图像A,翻译为自动避开黑色像素,在白色像素区域内生成具有美术效果的绿化区域图像C。

 

本文的目标在于学习一个映射使得可以从原图像A生成目标图像C。如图5(b)所示,本文通过训练pix2pix模型,学习从A到B的映射,再通过A加上B来得到C,而不是直接学习A到C的映射,简化了学习任务,使得生成的绿化区域效果更好。

 

 

图5 图像翻译任务

 

2.3 区域划分

 

虽然pix2pix模型对于输入的图像大小没有限制,但是若直接对一副具有8000×8000像素大小的图像进行推理会导致内存占用过大,并且目标生成图像的效果较差,其既不能满足硬件条件限制,也达不到美术要求。

 

观察到图4中的二值地图图像,明显被道路,河流等划分成了许多独立的区域,可以对这些独立区域单独进行图像翻译,最后在融合各个单独区域生成的绿化区域,以达到对整个地图翻译的目的。

 

基于此,本文通过使用计算机视觉库OpenCV对二值地图图像的轮廓边缘进行检测,实现了独立区域的划分,图4中的crop1~3就是划分后提取出的图像。独立区域的划分为后续训练数据集的建立和对单个独立区域进行快速推理,奠定基础。

 

3 实验及结果分析

 

3.1 数据集

 

可靠的数据集对于模型的训练至关重要,对于本文所要解决的任务,并没有公开数据集可供使用。因此本文数据集依靠美术人员人工创建。

 

由于在地图图像中,各独立区域大小不一,因此为了在推理时,让网络适应不同大小的区域,将制作不同大小的数据对模型进行训练。本文由人工制作了像素范围在[256,1024]之间,包括了1000幅训练图像,200幅验证图像和300幅测试图像的数据集。部分数据集示例,如图7所示,其中A为源图像,B为目标图像。

 

 

图6 数据集示例

 

3.2 评价指标

 

虽然GAN的衍生模型有很多,但其生成样本的质量一直难以被评估,其常用的评价指标分为客观评价和主观评价。

 

常用的客观评价指标包括Inception Score(IS)和Fréchet Inception Distance (FID)[7]。其基本原理是对生成样本与真实样本提取特征,然后在特征空间做距离度量,来综合评价图片的质量以及多样性。

 

主观评价采用的则是人为评价方法,通过人去直接对生成的图像进行质量评分,简单、实用而有效。针对本文所生成绿化区域的特殊性,采用主观评价法对生成图像进行评价。主观评价满意度指标用公式,如式(5)所示。

 

 

其中 A 代表参加评价的人数, B为测试图像数量, N 为用户评价的对应满意度指标的数量。

 

3.3 实验设置

 

本文基于python编程语言和Pytorch深度学习框架,将pix2pix模型部署到Windows 10系统和显卡NVIDIA GeForce RTX2080Ti GPU上进行训练。训练时,权重初始化为均值为0,标准差为0.02的高斯分布,学习率设为0.001,并使用Adam优化器进行权值更新。

 

为了适应不同大小像素的独立区域图像,制作了大小不一的数据集;又因,在模型训练时同一batch的数据大小必须相同,因此本文将网络训练的batch设置为1。

 

3.4 生成结果对比分析

 

为验证生成模型的可靠性,使用300张测试图像对预训练模型进行测试,测试示例如图8所示,其中A为源图像,B为美术人员设计的目标图像,fakeB为由pix2pix模型翻译生成的绿化区域图像。

 

为了对图像翻译的结果进行评价,由专业美术人员、普通员工和学生组成的50人团队,对300张测试图像的翻译结果进行了评价。评价标准如表1所示。

 

 

图7 合成结果对比

 

 

如表2所示的评价结果表明,本文通过训练pix2pix,所生成的绿化区域,其合格率已达到93.8%,已能较好满足实际应用需求。

 

对于生成的结果,将采用计算机视觉库OpenCV对其进行平滑化处理后将绿化区域数据存储为json文件,并将对json文件进一步处理,生成可在3DS Max软件中导入的fbx类型数据。通过3DS Max软件中的插件工具在绿化区域内随机生成树木,达到了室外场景建模中,绿化区域的自动还原重建。

 

 

4. 总结

 

绿化区域的构建是大范围室外三维场景展示中不可或缺的一部分,通过利用深度学习算法强大的学习能力,生成了以往需美术人员手动绘制的绿化区域,实现了对人工的替代。在实际工作中,将美术人员从烦琐、机械的绘图工作中解放出来,提高了工作的质量和效率。

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。