找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4938|回复: 22

[求助与交流] 【实验性技术】基于深度卷积神经网络制作4K涂装

  [复制链接]
 楼主| 发表于 2019-8-25 17:35:11 | 显示全部楼层 |阅读模式
本帖最后由 耶稣泡观音 于 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.



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

参与人数 2威望 +5 金币 +100 支持 +2 收起 理由
DreamBird + 1 支持技术贴!
TeCHiScy + 5 + 100 + 1 支持技术讨论。

查看全部评分

发表于 2019-8-25 17:53:49 | 显示全部楼层
有点难懂,不过感觉用photozoom似乎也能达到相应的增加分辨率同时尽量清晰的效果。。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

点评

太高级 搞不懂了 开始旁观= =  发表于 2019-8-25 19:19
photozoom最多就到插值这一层,接下来的卷积网络深度学习对噪点和边缘的修补是任何所谓放大软件都做不到的  发表于 2019-8-25 18:00
回复

使用道具 举报

发表于 2019-8-25 18:07:50 | 显示全部楼层
哇,虽然不做涂装,还是来支持一下,辛苦了辛苦了
回复

使用道具 举报

发表于 2019-8-25 18:07:53 | 显示全部楼层
之前有用过类似方法刷过几个N年前的航司涂装,对于放大较清晰的简单图形效果不错,对着线描几下就能用了。。。上古画质的图的放大后依然没法看。。。

估计我墨水不够或者没用对工具吧,期待LZ的详细教程。。。
回复

使用道具 举报

发表于 2019-8-25 18:25:34 | 显示全部楼层
像LOGO之类的素材通过各种各样的算法放大作为做涂装的依据还不错,文字什么的确实无解

点评

或者用矢量图栅格化……  发表于 2019-8-25 19:40
有一个解决办法是整体用神经网络放大重建,一些小的文字部分可以用原生高清素材局部替换  发表于 2019-8-25 19:40
回复

使用道具 举报

发表于 2019-8-25 18:56:42 | 显示全部楼层
楼主有没有考虑过用类似光场的方法来根据多角度图片直接对飞机建模呢?光场本身也比较成熟了,不过不同拍摄条件下的图像进行融合可能还有一定问题。如果能实现的话,未来可能只需要足够的图片数量就可以一键完成涂装制作了

点评

sofar我搞不动 再过几年学习学习再试试,哈哈  发表于 2019-8-25 23:01
好主意,交给你了  发表于 2019-8-25 18:59
回复

使用道具 举报

发表于 2019-8-25 19:14:10 | 显示全部楼层
技术党...看不懂 支持一下楼主qwq
回复

使用道具 举报

发表于 2019-8-25 19:25:40 | 显示全部楼层
论如何正确利用AI
这对显卡有需求咩?既然要跑这种计算

点评

只是这种程度的深度学习对硬件要求不高  发表于 2019-8-25 19:30
回复

使用道具 举报

发表于 2019-8-25 19:41:40 | 显示全部楼层
4K涂装FSX可用嘛(

点评

FSX开始的都支持。。。  发表于 2019-8-25 23:09
回复

使用道具 举报

发表于 2019-8-25 22:27:57 | 显示全部楼层
一度怀疑自己进到了AI或者DL论坛233
回复

使用道具 举报

发表于 2019-8-26 07:33:41 | 显示全部楼层
厉害的说,希望好涂装诞生!
回复

使用道具 举报

发表于 2020-1-2 10:47:44 | 显示全部楼层
SRCNN超分辨率好评,大佬愿意的话还可以尝试一下更新的超分辨率技术
我在想有没可能写一个脚本把现有涂装高清化?直接把涂装png文件丢去超分辨率出来的东西可能因为对齐问题无法被机模识别...
(不过感觉对复杂的彩绘做超分辨率效果不一定会好(而那种反而对细节而要求高) 普通涂装这么操作效果倒是应该不错)

点评

啊我看错了 楼主已经用了VDSR了  发表于 2020-1-2 10:51
回复

使用道具 举报

发表于 2020-1-20 16:25:56 | 显示全部楼层
哈哈哈我之前那个华彬涂装就上了超分辨率,效果还不错
不过并没有做成4K的,超分辨率是因为公司logo能找到的素材都是位图而且质量实在是太差了
回复

使用道具 举报

发表于 2020-3-2 01:52:14 | 显示全部楼层
waifu2x?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表