本帖最后由 耶稣泡观音 于 2019-8-25 07:47 编辑
注:本文非教程,目的仅在介绍一种可能用于涂装制作的人工智能技术——深度卷积神经网络的原理、及在涂装制作过程中的实验性应用。
基础知识——位图与矢量图
今天你在游戏中看到的大多数物体,本质上是由一个三维模型和覆盖在其上的贴图所组成的。模拟飞行也不例外。除了定义飞机形状的模型文件(*.mdl)外,便是定义涂装样貌的贴图文件(*.dds/*.bmp)。制作涂装的本质其实就是制作/修改贴图文件。贴图文件,不管是dds也好,bmp也好,其本质都是点阵图像,即位图。是用像素阵列来表示图像的一种格式。像素点越多,图像分辨率越大,也就越清晰。一条曲线也就越平滑。但无论如何,不断放大位图,你总能看到像素点,曲线也就不是真正的曲线。因此,位图在拉伸、放大后都会有一定程度的失真,放大倍数越大,失真越严重。
矢量图,则是通过点、直线或者多边形等基于数学方程的几何图元表示图像,因此矢量图的优点在于任意放大矢量图形,不会丢失细节或影响清晰度,因为矢量图形是与分辨率无关的。无限地放大一条曲线,它将依旧平滑如初。
贴图的性质决定了图像必然有一个分辨率,如1024*1024,早期的Aerosoft A320涂装用的就是此分辨率的贴图,在后来的版本更新后,贴图分辨率变为了4096*4096,也就是放大了4倍,而早先的涂装若想安装于其上,则必然要放大4倍,于是就会严重失真,出现贴图模糊的情况。
//以下为选看内容
卷积神经网络[1]
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。
卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网络能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网络在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。
基于深度卷积神经网络(DCNN)的单幅图像超分辨率重建(SISR)技术[2]
1. SRCNN 模型
SRCNN 模型首次成功将 DCNN 应用于 SISR,该模型主要技术点如下:
(1)特征提取——非线性映射——重构的网络架构。后续基于 DCNN 的 SISR 网络大多沿用这种架构方式。
(2)解释了基于 DCNN 的 SISR 模型和基于稀疏编码的 SISR 模型之间的关联。SRCNN 模型仅有 3 层。特征提取阶段采用 9*9 大小的卷积核,在重构最终图像时采用5*5 的卷积核。而用于学习非线性映射的卷积层,论文中提供了 1*1、3*3、5*5 三种尺度的卷积核,实验结果显示 5*5 尺寸的卷积核更胜一筹。
2. FSRCNN 模型
FSRCNN 模型[44]对 SRCNN 模型进行了改进,主要技术点如下:
(1)直接将 LR 图像作为网络的输入,而在 SRCNN 模型中,输入图像需先经过 Bicubic插值。同时,特征提取阶段的卷积核大小也从 9*9 降低到了 5*5。
(2)在特征提取后,增加缩小(Shrink)层,采用 1*1 的卷积核减少输入深度及随后的参数量。并且在非线性映射模块后增加放大(Expand)层恢复深度,利于最后的重建。
(3)在学习映射阶段,采用 4 层卷积核大小为 3*3 的卷积层。
(4)使用反卷积层完成最终的重构。
图1. SRCNN 模型和 FSRCNN 模型结构图
图1 展示了 SRCNN 模型和 FSRCNN 模型结构,并标注了各层在模型中的作用,也反映了 SRCNN 模型和 FSRCNN 模型之间的关系。其中 Conv.M(M=1,2,……,7)表示第 M 层卷积层。Deconv.1 表示第一层反卷积层。
3. VDSR 模型
VDSR 模型是 SISR 模型在网络模型深度上的一次重大突破,主要技术点如下:
(1)受 ResNet 模型启发,引入残差学习,将网络模型深度提升至 20 层。网络深度的增加也提升了卷积核的感受野,重构图像的分辨率远超以往。
(2)采用不同尺寸的图像作为输入,使 VDSR 模型可以重构多种放大倍数的 HR 图像。与之相比,SRCNN 模型及 FSRCNN 模型只能放大固定倍数。
(3)采用可调整的梯度裁剪(Adjustable Gradient Clipping)策略。使用较大的初始学习率,并在训练过程中降低学习率,在提升模型收敛速度的同时保证模型的性能。
//以上为选看内容
深度卷积神经网络在贴图制作上的应用
利用上述超分辨率重建技术,我们可以对低分辨率图像进行重建,以得到我们需要的高分辨率图像。
图2. 原始图像,1024*1024分辨率
图3. 利用SRCNN模型经过 4 倍放大重建后的图像,4096*4096分辨率
图4. 左侧机身为放大重建后的4096*4096分辨率贴图,右侧为原始贴图
通过图4. 可以看到基于DCNN的SISR技术能够很好的将图案进行放大,并且由于采用了基于深度学习的SRCNN模型,图像边缘几乎没有出现任何失真、毛糙现象,而右侧是通过将图像直接放大,无任何插值方法,因而图像质量很低,不清晰。而右图则是现在最广泛使用的处理方法,因此基于DCNN的SISR技术已经证明比传统方式效果更好,更高效。
基于SRCNN模型的SISR技术只能对原始图像成固定倍数放大,如2倍,4倍,8倍等,未来基于VDSR模型的SISR技术成熟后,可以不限定倍数进行放大,制作更灵活。并且放大倍数理论没有上限,实际上限取决于计算机性能,通过将神经网络托管在高性能服务器上,甚至可以对图像进行32倍、64倍无损放大。
但此技术并非没有缺陷。由于该技术是基于原始图像进行双三次插值以放大图像,再通过三层卷积网络做非线性映射,对于一些小的色块,如机身上的警告文字,由于原始分辨率过低,该技术没有办法做到完全重建,达不到模拟飞行所要求的精度。
第二,重建后的贴图无法保留 Alpha 通道。Alpha 通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,需要重新绘制与其匹配的4K分辨率 Alpha通道。目前还未对灰度图进行放大重建测试,用通常插值方法放大的 Alpha 通道达不到模拟飞行所要求的精度。
第三,由于算法原因,对贴图文件直接进行放大重建的效果可能并不尽如人意。例如复杂图案边缘可能会出现模糊。
图5. 对于分辨率过低的图像,放大重建后的效果
总结
基于深度卷积神经网络对贴图直接进行放大重建不失为一个直接制作4K涂装的方法,但此方法存在缺陷,在没有进行算法及模型优化的前提下,目前并不能制作高精度的4K涂装,对于图案复杂的彩绘贴图尤其如此。
但对于涂装制作者来说,此技术可以对一些平面风格素材进行较好的放大重建,在初步制作过程中,可以免去涂装素材清晰度低的困扰。本人已经在之前发布的 QW787-9 吉祥航空“炫彩花瓣”B-20D1 彩绘上使用了这一技术,并且已经证明其比传统方法更为高效。
对于某些低质量图像,可能需要引申到基于DCNN的图像去噪方法,在此不表。
图6. 上方为使用PS插值放大的图像,下方为使用SRCNN技术放大的图像
该技术所使用的算法、模型、以及通过该技术制作涂装的详细教程我将考虑多方面因素后自行决定是否发布,本人并非专业的人工智能研究者,如文章出现纰漏请多包涵。
参考文献
[1]维基百科.Convolutional Neural Network[DB/OL]. https://en.wikipedia.org/wiki/Convolutional_neural_network
[2]郭晓. 基于深度卷积神经网络的单幅图像超分辨率重建研究 [D]. 南京:南京航天航空大学,2018.
|