CN117911554A - 一种基于循环生成对抗网络的逼真阴影生成方法 - Google Patents
一种基于循环生成对抗网络的逼真阴影生成方法 Download PDFInfo
- Publication number
- CN117911554A CN117911554A CN202311774809.5A CN202311774809A CN117911554A CN 117911554 A CN117911554 A CN 117911554A CN 202311774809 A CN202311774809 A CN 202311774809A CN 117911554 A CN117911554 A CN 117911554A
- Authority
- CN
- China
- Prior art keywords
- picture
- shadow
- layer
- target object
- generation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 125000004122 cyclic group Chemical group 0.000 title claims abstract description 14
- 239000013598 vector Substances 0.000 claims abstract description 272
- 239000011159 matrix material Substances 0.000 claims abstract description 90
- 238000007781 pre-processing Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 60
- 230000008569 process Effects 0.000 claims description 31
- 238000010606 normalization Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 22
- 238000012549 training Methods 0.000 claims description 22
- 238000000605 extraction Methods 0.000 claims description 16
- 230000004913 activation Effects 0.000 claims description 15
- 238000009826 distribution Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 10
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 9
- 230000009467 reduction Effects 0.000 claims description 9
- 238000012360 testing method Methods 0.000 claims description 9
- 241000282414 Homo sapiens Species 0.000 claims description 8
- 238000011176 pooling Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000011218 segmentation Effects 0.000 claims description 5
- 238000005520 cutting process Methods 0.000 claims description 4
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims description 3
- 239000002131 composite material Substances 0.000 claims description 3
- 230000004927 fusion Effects 0.000 claims description 3
- 230000002265 prevention Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 238000005286 illumination Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000002310 reflectometry Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- LQERIDTXQFOHKA-UHFFFAOYSA-N nonadecane Chemical compound CCCCCCCCCCCCCCCCCCC LQERIDTXQFOHKA-UHFFFAOYSA-N 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0475—Generative networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/094—Adversarial learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于循环生成对抗网络的逼真阴影生成方法,包括:获取需要进行阴影生成的背景图片It、以及有待插入背景图片进行阴影生成的目标物体图片w,对获取的背景图片It进行预处理,以得到其中背景物体的掩码Mb及其阴影部分的掩码Mbs,以及背景图片It的图像向量矩阵;并对获取的目标物体图片w进行预处理,以得到其中目标物体的阴影掩码Mfs和目标物体图片w的图像向量矩阵;对背景图片It的向量矩阵进行切分裁剪处理,并根据背景物体的掩码Mb及其阴影部分的掩码Mbs、目标物体的阴影掩码Mfs、以及目标物体图片w构建多个K‑V键值对。本发明能够解决现有室外真实环境时复杂的背景不能生成高质量阴影形状、从而影响整体阴影生成的准确度的技术问题。
Description
技术领域
本发明属于工业图像生成领域,更具体地,涉及一种基于循环生成对抗网络的逼真阴影生成方法和系统。
背景技术
在图像生成任务中,为了达到生成图片真实不易区分的目的,一个重要的影响因素就是图片中物体阴影的生成。阴影在大多数光线情况下非常重要,让图片不能分离出一个独立的物体。有阴影的场景更难处理和分析,逼真阴影生成是图像编辑的重要组成部分,可以极大地提高各种计算机视觉任务的性能,也对于人类来说有更好的视觉效果。近年来受到越来越多的关注。在动画影视等行业,使用基于渲染的方法是主流。然而不仅费时费力,花费也是巨大的。随着深度学习技术的发展,这一领域逐渐有了更好的解决方法。
现有的关于阴影生成的研究可以分为两类:基于渲染的生成阴影方法和图像到图像的生成阴影方法;基于渲染的生成阴影方法需要明确的照明,反射率,材料属性和场景几何知识,以使用渲染技术为插入的虚拟对象生成阴影。然而,这些知识在现实世界的应用中通常是不可用的,进行生成的成本较大。所以现在主流方法是图像到图像的转换方法。
图像到图像转换的生成阴影方法学习从没有目标物体阴影的输入图像到有目标物体阴影的输出图像的映射,而不需要明确的照明,反射率,材料属性和场景几何知识。这组中的大多数方法都具有编解码器网络结构。但循环生成过程无法在复杂场景中生成阴影,因此需要针对该不同场景使用额外的配对数据集进行针对训练。该方法训练所使用的配对数据集包含以下类型的图片,含有目标物体及阴影的真实图片Ifs,含有目标物体的背景图片If,目标物体掩码Mf,目标物体阴影掩码Mfs,背景物体掩码Mb(可选),背景物体阴影掩码Mbs(可选)。
然而,上述图像到图像转换的生成阴影方法都存在一些不可忽略的缺陷:
第一、训练所使用的数据集需要依赖经验预设规则选取合适图片,一对完整的数据需要对真实阴影图片进行阴影消除作为输入,因此往往单个环境的数据量过少,需要在特定环境中需要额外数据集;而完善上述配对类型的图片所需要的成本较高,无法对于实际环境中的所有异常和特殊地点进行图片生成;
第二,该方法不能充分利用背景图片中光照及背景图片中存在的物体与其阴影的映射关系,因此导致模型在缺少明确信息的情况下,生成阴影模糊,阴影形状不符合人类视觉的问题;
第三、该方法是基于深度学习的端到端式的生成网络,在复杂的生成任务中,如果数据量较少,往往训练的模型参数不够优化,且在实际的生产应用中泛用性低,鲁棒性较差。同时训练过程不稳定,不容易收敛。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于循环生成对抗网络的逼真阴影生成方法和系统,其目的在于,解决现有图像到图像转换的生成阴影方法存在的完善配对类型的图片所需要的成本较高,无法对于实际环境中的所有异常和特殊地点进行图片生成的技术问题,以及模型在缺少明确信息的情况下,生成阴影模糊,阴影形状不符合人类视觉的技术问题,以及在实际的生产应用中泛用性低,鲁棒性较差。同时训练过程不稳定,不容易收敛的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于循环生成对抗网络的逼真阴影生成方法,包括如下步骤:
(1)获取需要进行阴影生成的背景图片It、以及有待插入背景图片进行阴影生成的目标物体图片w,对获取的背景图片It进行预处理,以得到其中背景物体的掩码Mb及其阴影部分的掩码Mbs,以及背景图片If的图像向量矩阵;并对获取的目标物体图片w进行预处理,以得到其中目标物体的阴影掩码Mfs和目标物体图片w的图像向量矩阵。
(2)对步骤(1)得到的背景图片It的向量矩阵进行切分裁剪处理,以得到多个图像向量矩阵,并根据步骤(1)得到的背景物体的掩码Mb及其阴影部分的掩码Mbs、目标物体的阴影掩码Mfs、以及目标物体图片w构建多个K-V键值对,所有键值对构成K-V键值对集合。
(3)将步骤(2)得到的K-V键值对集合输入预先训练好的阴影生成模型中,以获得多张生成图片,并从中选择最符合人类视觉的生成图片作为最终的阴影生成结果;其中阴影生成模型包括依次连接的基于UNET网络的编码器解码器构成的阴影掩码生成网络U、循环生成对抗网络C、以及基于VGG16的图片增强网络V。
优选地,步骤(1)具体为,首先针对需要进行阴影生成的背景图片It而言,使用描边工具勾画出背景图片It中的背景物体及其阴影部分,将背景物体部分的所有像素填充1,其余部分填充0,以得到背景物体的掩码Mb;将阴影部分的所有像素填充1,其余部分填充0,以得到阴影部分的掩码Mbs;然后,针对目标物体图片w而言,使用描边工具勾画出该目标物体图片中的目标物体,将目标物体部分的所有像素填充1,其他部分填充0,以得到目标物体的阴影掩码Mfs;
最后,把背景图片It从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取背景图片If的图像向量矩阵,并将目标物体图片w从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取目标物体图片w的图像向量矩阵。
优选地,步骤(2)具体为,首先是使用一个256×256的滑动窗口在背景图片It做随机移动,以得到多张切片图片;
其后,针对获得的每张切片图片而言,判断其中的阴影形状是否完整,如果不完整,则丢弃该切片图片,如果完整,则将该切片图片放大至背景图片It的大小,然后同样从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取该切片图片对应的图像向量矩阵,并将其放入预先建立的列表L1中;
然后,将背景图片It与背景物体的掩码Mb的反矩阵二者做点积计算,并将计算结果和步骤(1)得到的目标物体图片w的图像向量矩阵相加,以得到含有目标物体的背景图片If;
随后,构建四元组T1,四元组中4个元素依次是含有目标物体的背景图片If、背景物体的掩码Mb和阴影掩码Mbs、以及目标物体的阴影掩码Mfs;
最后,构建K-V键值对集合,其中第一组键值对中的K是列表L1中第一张切片图片对应的图像向量矩阵,V是四元组T1;第二组键值对中的K是列表L1中第二张切片图片对应的图像向量矩阵,V是四元组T1;以此类推,...;第N组键值对中的K是列表L1中第N张切片图片对应的图像向量矩阵,V是四元组T1,其中N表示得到的切片图片的总数。
优选地,阴影掩码生成网络U包括编码器ES、解码器DS和注意力网络。
编码器ES的输入是维度为B×512×512×4的的输入图片,其采用两个3×3的RELU卷积层和一个2x2的最大池化层,对输入图片进行4次下采样处理,输出为B×32×32×512的特征向量;随后使用2x2的逆卷积层和批归一化层,对图片进行4次上采样处理,输出为B×512×512×4的特征向量,其中B表示批大小。
注意力网络的结构如下:
第一层是矩阵变换层,其输入为编码器ES输出的B×512×512×4的特征向量,其利用三个卷积核为1的卷积层,对该B×512×512×4的特征向量分别与3个B×512×512的矩阵相乘,输出B×3×N维的q向量、B×3×N维的k向量、以及B×3×N维的v向量(其中N=512×512);
第二层是注意力机制计算层,其输入为矩阵变换层输出的B×C×N维的q向量、k向量、以及v向量,其按以下公式对该B×C×N维的q向量、k向量、以及v向量进行计算,输出为注意力(attention)向量:
其中d表示q向量和k向量的矩阵维度。
第三层是拼接层,其输入为注意力机制计算层输出的注意力向量,其将该注意力向量与编码器ES输出的B×512×512×4的特征向量相加,输出为B×512×512×8维向量,并将其放入3个1x1的卷积层以降低其通道数,最终输出为B×512×512×1的特征向量;
解码器DS的结构与编码器ES相同,其输入为注意力网络输出的B×512×512×1的特征向量,其采用两个3x3的RELU卷积层和一个2x2的最大池化层,对特征向量进行4次下采样处理,输出为B×32×32×512的特征向量;随后使用2x2的逆卷积层和批归一化层,对B×32×32×512的特征向量进行4次上采样处理,输出为B×512×512×1的特征向量作为虚拟物体阴影掩码Mgfs。
优选地,循环生成对抗网络C包括生成网络G1和G2、以及判别网络D1和D2。
生成网络G1和G2的网络结构相同,具体结构如下:
第一层是拼接层,其输入是解码器DS输出的虚拟物体阴影掩码Mgfs,生成网络G1的拼接层是将该虚拟物体阴影掩码与含有目标物体的背景图片进行拼接,输出为B×512×512×4的特征向量;生成网络G2的拼接层是将该虚拟物体阴影掩码与全为0的B×512×512×1的向量矩阵进行拼接,输出为B×512×512×4的特征向量。
第二层是特征提取层,其输入是拼接层输出的B×512×512×4的特征向量,其首先采用核为2×2的卷积层对输入的特征向量进行处理,然后对处理后的特征向量进行实例归一化,...,然后重复上述过程(即采用核为2×2的卷积层对输入的特征向量进行处理,然后对处理后的的特征向量进行实例归一化,将输出的特征向量再次放入2×2的卷积层以及实例归一化层这一过程)3次;随后使用9个残差块来提取得到的B×512×512×4的特征向量中的特征;最后使用3个反卷积层对提取的特征进行处理,最终输出B×512×512×3的特征向量;
判别网络D1和D2网络结构相同,判别网络D1的具体结构如下:
第一层是特征提取层,输入为生成网络G1的特征提取层输出的B×512×512×3的特征向量,首先采用核为4,步长为2,填充为1的二维卷积层对输入的特征向量进行处理,然后对处理后的特征向量输入RELU激活层和实例归一化层,随后再次输入二维卷积层、激活层和实例归一化层,...,重复上述过程(即采用核为4,步长为2,填充为1的二维卷积层对输入的特征向量进行处理,然后对处理后的特征向量输入RELU激活层和实例归一化层,随后再次输入二维卷积层、激活层和实例归一化层这一过程)2次,最终得到为B×1×1×512通道的特征向量。
第二层是全连接层,具体结构为:
第一层特征降维层,输入是特征提取层得到的B×1×1×512的特征向量,其使用512×256的权重矩阵对该B×1×1×512的特征向量进行全连接处理,输出B×1×1×256的特征向量。
第二层特征降维层,其输入为第一层输出的B×1×1×256的特征向量,使用256×128的权重矩阵对该B×1×1×256的特征向量进行全连接处理,输出为B×1×1×128的特征向量。
第三层是判别结果层,其输入为特征降维层输出的B×1×1×128的特征向量,其使用128×1的权重矩阵对该B×1×1×128的特征向量进行全连接处理,输出为B维的特征向量。
优选地,图像增强网络V的结构是基于VGG16网络,其具体结构为:
第一层是特征叠加层,其输入是生成网络G2所输出B×512×512×3的特征向量,其采用VGG16网络中的13个卷积层和3个全连接层对该B×512×512×3的特征向量进行处理,以得到B×1×1×4096的特征向量;然后将其放入3个反卷积层,以输出B×512×512×3的特征向量。
第二层是拼接层,其输入是特征叠加层输出的B×512×512×3的特征向量。其将该特征向量与生成网络G2所输出的B×512×512×3的特征向量相加,以得到B×512×512×6的特征向量;然后,将其放入1×1的卷积层,以输出B×512×512×3的特征向量。
第三层是结果生成层,其输入是拼接层得到B×512×512×3的特征向量。其将该特征向量输入填充尺寸为1的填充层,以得到填充后的特征向量;然后,将其放入3×3的卷积层和RELU激活层,最终输出为B×512×512×3的结果图片。
优选地,阴影生成模型是通过以下步骤训练得到的:
(3-1)获取阴影生成数据集,并为该阴影生成数据集构建K-V键值对集合;阴影生成数据集包括多张含有目标物体及阴影的真实图片Ifs、以及多张含有目标物体的背景图片If;
(3-2)将步骤(3-1)得到的K-V键值对集合中的所有K-V键值随机打乱,将所有K-V键值均匀的划分成10份,并从10份中取任意1份作为测试集,1份作为验证集,其余8份作为训练集。
(3-3)针对步骤(3-2)得到的训练集中的每一个K-V键值对而言,将该K-V键值对输入二进制阴影掩码生成网络U中,以得到该K-V键值对中真实图片所对应的目标物体阴影掩码Mgfs和目标物体阴影掩码Mfs,并根据目标物体阴影掩码Mgfs和目标物体阴影掩码Mfs,获取该K-V键值对在生成网络U中所对应的损失函数Ls=|Mfs-Mgfs|2。
(3-4)针对步骤(3-2)得到的训练集中的每一个K-V键值对而言,将步骤(3-3)中得到的该K-V键值对所对应的目标物体阴影掩码Mgfs、步骤(3-2)得到该K-V键值对中真实图片Ifs、以及真实图片Ifs对应的目标物体掩码Mf输入到基于循环生成对抗网络的阴影图片生成网络中,以获取该K-V键值对所对应的含有目标物体及阴影的图片Igfs、循环一致性损失函数Lc,以及第一生成对抗损失函数LGAN1和第二生成对抗损失函数LGAN2。
(3-5)针对步骤(3-2)得到的训练集中的每一个K-V键值对而言,将步骤(3-4)得到的该K-V键值对所对应的、含有目标物体及阴影的图片Igfs输入增强网络V中,以获取合成图片Ir以及总损失函数Loss。
(3-6)重复上述步骤(3-1)到(3-5),直到总损失函数Loss达到最小为止,从而得到初步训练好的阴影生成模型;
(3-7)使用步骤(3-1)得到的测试集对步骤(3-6)初步训练好的阴影生成模型进行验证,从而得到训练好的阴影生成模型。
优选地,步骤(3-1)具体为,首先,使用步骤(1)中相同的方法处理每张真实图片Ifs,以得到该真实图片Ifs对应的目标物体掩码Mf、目标物体阴影掩码Mfs、背景物体掩码Mb、背景物体阴影掩码Mbs,以及每张真实图片Ifs对应的图像向量矩阵;
然后,针对每张真实图片Ifs而言,使用步骤(2)中对背景图片It的裁剪切分方法,对真实图片Ifs的图像向量矩阵进行裁剪切分,以得到多张真实图片的切分图片;
其后,针对获得的每张切片图片而言,判断其中的阴影形状是否完整,如果不完整,则丢弃该切片图片,如果完整,则将该切片图片放大至真实图片Ifs的大小,然后同样从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取该切片图片对应的图像向量矩阵,并将其放入列表L2中;
随后,针对每张真实图片Ifs而言,构建其对应的四元组T2,四元组中4个元素依次是该真实图片Ifs对应的目标物体掩码Mf、目标物体阴影掩码Mfs、背景物体掩码Mb以及背景物体阴影掩码Mbs;
随后,针对每张真实图片Ifs而言,构建其对应的K-V键值对集合,其中第一组键值对中的K是列表L2中第一张切片图片对应的图像向量矩阵,V是四元组T2;第二组键值对中的K是列表L2中第二张切片图片对应的图像向量矩阵,V是四元组T2;以此类推,...;第N组键值对中的K是列表L2中第N张切片图片对应的图像向量矩阵,V是四元组T2,其中N表示得到的切片图片的总数;
最后,针对每张真实图片Ifs而言,对其对应的K-V键值对集合进行数据清洗,以获取该真实图片Ifs对应的、清洗后的K-V键值对集合,所有真实图片Ifs对应的清洗后的K-V键值对集合构成阴影生成数据集对应的K-V键值对集合。
优选地,步骤(3-4)具体为,首先,将K-V键值对中的真实图片Ifs和步骤(3-3)获取的该K-V键值对应的阴影形状掩码Mgfs输入到生成网络G1中,以得到含有目标物体的图片Igf;
然后,将生成网络G1得到的含有目标物体的图片Igf输入生成网络G2中,以得到含有目标物体阴影的真实图片Igfs;
随后,对该K-V键值对中的真实图片Ifs中不含有阴影的部分进行裁剪切分,从而得到一个切边图片,然后将其扩展至真实图片Ifs的大小,再将扩展后的切边图片Ia和生成器G1所生成的含有目标物体的图片Igf分别输入判别器D1中进行判决,以分别得到判别结果D(Ia)和D(Igf);
随后,将该K-V键值对中的真实图片Ifs、以及生成器G2得到的含有目标物体阴影的图片Igfs输入判别器D2中进行判决,以分别得到判别结果D(Ifs)和D(Igfs);
随后,根据生成器G1所生成的含有目标物体阴影的图片Igfs和该K-V键值对中的真实图片Ifs计算循环一致性损失函数Lc=|Ifs-Igfs|2;
最后,根据以下公式计算第一生成对抗损失函数LGAN1=LG1+LD1;
其中LG1表示生成器G1的损失函数,且有[log(1-D1(G1(z)))],其中Pz(Mgfs,Ifs)表示输入生成器G1的阴影形状掩码Mgfs和真实图片Ifs的数据分布,z表示生成器G1的输入样本;
LD1表示判别器D1的损失函数,且有 其中x~Pdata(Ia)表示输入判别器D1中切边图片Ia的数据分布,x表示切边图片Ia的输入样本;
并根据以下公式计算第二生成对抗损失函数LGAN2=LG2+LD2;
其中LG2表示生成器G2的损失函数,且有[log(1-D2(G2(n)))],其中/>表示输入生成器G2的含有目标物体的图片Igf的数据分布,n表示生成器G2的输入样本;
LD2表示判别器D2的损失函数,且有 其中m~Pdata(Ifs)表示输入判别器D2的真实图片Ifs的数据分布,m表示真实图片Ifs的输入样本。
步骤(3-5)具体为,首先,把步骤(3-3)得到的该K-V键值对所对应的目标物体阴影掩码Mgfs与步骤(3-4)中得到的该K-V键值对所对应的含有目标物体及阴影的图片Igfs相乘,然后将相乘的结果和目标物体阴影掩码Mgfs的反矩阵与阴影的图片Igfs相乘后的积相加,从而得到合成图片Ir,生成公式具体为:
Ir=Igfs*Mgfs+Igfs*(1-Mgfs)
然后,将合成图片Ir输入增强网络(VGG16),以根据该合成图片Ir和该K-V键值对中的真实图片Ifs获取L1损失函数Lr=|Ifs-Ir|2。
这使得阴影部分和图片背景可以更好的融合,视觉上减少突兀感。
最后,根据上述过程获取的第一生成对抗损失函数LGAN1、第二生成对抗损失函数LGAN2、L1损失函数Lr、损失函数Ls、以及循环一致性损失函数Lc获取总损失函数Loss:
Loss=Ls+LGAN1+LGAN2+Lc+Lr
按照本发明的另一方面,提供了一种基于循环生成对抗网络的逼真阴影生成系统,包括:
第一模块,用于获取需要进行阴影生成的背景图片It、以及有待插入背景图片进行阴影生成的目标物体图片w,对获取的背景图片It进行预处理,以得到其中背景物体的掩码Mb及其阴影部分的掩码Mbs,以及背景图片It的图像向量矩阵;并对获取的目标物体图片w进行预处理,以得到其中目标物体的阴影掩码Mfs和目标物体图片w的图像向量矩阵。
第二模块,用于对第一模块得到的背景图片It的向量矩阵进行切分裁剪处理,以得到多个图像向量矩阵,并根据第一模块得到的背景物体的掩码Mb及其阴影部分的掩码Mbs、目标物体的阴影掩码Mfs、以及目标物体图片w构建多个K-V键值对,所有键值对构成K-V键值对集合。
第三模块,用于将第二模块得到的K-V键值对集合输入预先训练好的阴影生成模型中,以获得多张生成图片,并从中选择最符合人类视觉的生成图片作为最终的阴影生成结果;其中阴影生成模型包括依次连接的基于UNET网络的编码器解码器构成的阴影掩码生成网络U循环生成对抗网络C、以及基于VGG16的图片增强网络V。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)由于本发明采用了步骤(3-1),在一张图片中可以获取多组输入图片进行训练,因此解决了单个环境的数据量过少,完善各种特殊环境中配对类型的图片所需要的成本较高的问题;
(2)由于本发明采用了步骤(3-2),获得背景物体和背景物体阴影的映射关系和背景图片的光照特征信息,且使用注意力机制,提升特征提取能力,生成了高质量的目标物体的阴影形状。因此能够解决现有的室外真实环境时复杂的背景不能生成高质量阴影形状,从而降低整体阴影生成的准确度的问题;
(3)由于本发明采用了步骤(3-3)和(3-5),其采用循环对抗网络构建生成阴影和真实阴影的相关性,在使用非配对数据集的基础上,结合不同的真实环境的生成难易程度考虑,来实现图片的相关性建模。因此能够解决现有的生成方法,在单一环境时进行阴影生成时,背景材质、纹路、反射率等因素大不相同的复杂背景环境下没法准确建立模型的问题。本发明不需要完整的配对数据集进行训练,进而增加了实际使用时的泛化性。分阶段训练且采用循环对抗网络的方法能够较为容易训练收敛,解决了训练过程不稳定,鲁棒性差的问题。
附图说明
图1是本发明一种基于循环生成对抗网络的逼真阴影生成方法的整体框架示意图;
图2是本发明一种基于循环生成对抗网络的逼真阴影生成方法的流程图;
图3是本发明中所使用的阴影生成模型的总体网络结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
针对现有技术存在的不足,本发明基于注意力机制,利用生成对抗网络进行数据生成,利用大量数据构建出更合理的生成模型,设计一种基于循环生成对抗网络的逼真阴影生成方法和系统。
本发明的基本思路在于,从两个方面提升阴影生成的效果,一方面利用注意力网络动态的给第一阶段的两个生成器生成的特征赋予权值,更好的突出阴影形状的特征信息;另一方面,利用循环对抗生成网络,更好的利用了真实图片Ifs中的信息。同时,用切分裁剪真实图片中无阴影部分作为判别器输入的方式,解决了对数据集配对要求高,需要针对环境制作数据集的问题;
在本发明的实验中,通过在阴影生成的数据集上测试,本发明发现在多个数据集上的谣言检测效果均有提升。以ISTD数据集为例,均分根误差(Root Mean Squared Error,简称RMSE)和结构相似度(Structural Similarity Index measure,简称SSIM)上均有提升。
如图1和图2所示,本发明提供了一种基于循环生成对抗网络的逼真阴影生成方法,包括如下步骤:
(1)获取需要进行阴影生成的背景图片It、以及有待插入背景图片进行阴影生成的目标物体图片w,对获取的背景图片It进行预处理,以得到其中背景物体的掩码Mb及其阴影部分的掩码Mbs,以及背景图片It的图像向量矩阵;并对获取的目标物体图片w进行预处理,以得到其中目标物体的阴影掩码Mfs和目标物体图片w的图像向量矩阵。
本步骤具体为,首先针对需要进行阴影生成的背景图片It而言,使用描边工具勾画出背景图片It中的背景物体及其阴影部分,将背景物体部分的所有像素填充1,其余部分填充0,以得到背景物体的掩码Mb;将阴影部分的所有像素填充1,其余部分填充0,以得到阴影部分的掩码Mbs;
然后,针对目标物体图片w而言,使用描边工具勾画出该目标物体图片中的目标物体,将目标物体部分的所有像素填充1,其他部分填充0,以得到目标物体的阴影掩码Mfs;
最后,把背景图片It从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取背景图片If的图像向量矩阵(其大小为512×512×3),并将目标物体图片w从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取目标物体图片w的图像向量矩阵(其大小为512×512×3)。
(2)对步骤(1)得到的背景图片It的向量矩阵进行切分裁剪处理,以得到多个图像向量矩阵,并根据步骤(1)得到的背景物体的掩码Mb及其阴影部分的掩码Mbs、目标物体的阴影掩码Mfs、以及目标物体图片w构建多个K-V键值对,所有键值对构成K-V键值对集合。
具体而言,本步骤首先是使用一个256×256的滑动窗口在背景图片It做随机移动,以得到多张切片图片;
其后,针对获得的每张切片图片而言,判断其中的阴影形状是否完整,如果不完整,则丢弃该切片图片,如果完整,则将该切片图片放大至背景图片It的大小,然后同样从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取该切片图片对应的图像向量矩阵,并将其放入预先建立的列表L1中;
然后,将背景图片It与背景物体的掩码Mb的反矩阵二者做点积计算,并将计算结果和步骤(1)得到的目标物体图片w的图像向量矩阵相加,以得到含有目标物体的背景图片If;
随后,构建四元组T1,四元组中4个元素依次是含有目标物体的背景图片If、背景物体的掩码Mb和阴影掩码Mbs、以及目标物体的阴影掩码Mfs;
最后,构建K-V键值对集合,其中第一组键值对中的K是列表L1中第一张切片图片对应的图像向量矩阵,V是四元组T1;第二组键值对中的K是列表L1中第二张切片图片对应的图像向量矩阵,V是四元组T1;以此类推,...;第N组键值对中的K是列表L1中第N张切片图片对应的图像向量矩阵,V是四元组T1,其中N表示得到的切片图片的总数。
(3)将步骤(2)得到的K-V键值对集合输入预先训练好的阴影生成模型中,以获得多张生成图片,并从中选择最符合人类视觉的生成图片作为最终的阴影生成结果。
如图3所示,本发明的阴影生成模型包括依次连接的三部分,基于UNET网络的编码器解码器构成的阴影掩码生成网络U、循环生成对抗网络C、以及基于VGG16的图片增强网络V。
阴影掩码生成网络U包括编码器ES、解码器DS和注意力网络。
编码器ES的输入是维度为B×512×512×4的的输入图片(B为批大小,即batchsize),其采用两个3x3的卷积层(RELU)和一个2x2的最大池化(max pooling)层,对输入图片进行4次下采样处理,输出为B×32×32×512的特征向量;随后使用2x2的逆卷积层和批归一化层,对图片进行4次上采样处理,输出为B×512×512×4的特征向量,其中B表示批大小(即Batch size)。
注意力网络的结构如下:
第一层是矩阵变换层,其输入为编码器ES输出的B×512×512×4的特征向量,其利用三个卷积核为1的卷积层,对该B×512×512×4的特征向量分别与3个B×512×512的矩阵相乘,输出B×3×N维的q向量、B×3×N维的k向量、以及B×3×N维的v向量(其中N=512×512);
第二层是注意力机制计算层,其输入为矩阵变换层输出的B×C×N维的q向量、k向量、以及v向量,其按以下公式对该B×C×N维的q向量、k向量、以及v向量进行计算,输出为注意力(attention)向量:
其中d表示q向量和k向量的矩阵维度,这里除以的原因是防止q向量和k向量的结果较大。
第三层是拼接层,其输入为注意力机制计算层输出的注意力向量,其将该注意力向量与编码器ES输出的B×512×512×4的特征向量相加,输出为B×512×512×8维向量,并讲其放入3个1x1的卷积层以降低其通道数,最终输出为B×512×512×1的特征向量;
解码器DS的结构与编码器ES相同,其输入为注意力网络输出的B×512×512×1的特征向量,其采用两个3x3的卷积层(RELU)和一个2x2的最大池化(max pooling)层,对特征向量进行4次下采样处理,输出为B×32×32×512的特征向量;随后使用2x2的逆卷积层和批归一化层,对B×3232512的特征向量进行4次上采样处理,输出为B×512×512×1的特征向量作为虚拟物体阴影掩码Mgfs;
循环生成对抗网络C包括生成网络G1和G2、判别网络D1和D2。
生成网络G1和G2的网络结构相同,具体结构如下:
第一层是拼接层,其输入是解码器DS输出的虚拟物体阴影掩码Mgfs,生成网络G1的拼接层是将该虚拟物体阴影掩码与含有目标物体的背景图片进行拼接,输出为B×512×512×4的特征向量;生成网络G2的拼接层是将该虚拟物体阴影掩码与全为0的B×512×512×1的向量矩阵进行拼接,输出为B×512×512×4的特征向量。
第二层是特征提取层,其输入是拼接层输出的B×512×512×4的特征向量,其首先采用核为2×2的卷积层对输入的特征向量进行处理,然后对处理后的特征向量进行实例归一化,...,然后重复上述过程(即采用核为2×2的卷积层对输入的特征向量进行处理,然后对处理后的的特征向量进行实例归一化,将输出的特征向量再次放入2×2的卷积层以及实例归一化层这一过程)3次;随后使用9个残差块来提取得到的B×512×512×4的特征向量中的特征;最后使用3个反卷积层对提取的特征进行处理,最终输出B×512×512×3的特征向量;
判别网络D1和D2网络结构相同,判别网络D1的具体结构如下(判别网络D2的具体结构与其完全类似,唯一不同是其第一层是特征提取层的输入为生成网络G2的特征提取层输出的B×512×512×3的特征向量):
第一层是特征提取层,输入为生成网络G1的特征提取层输出的B×512×512×3的特征向量,首先采用核为4,步长为2,填充为1的二维卷积层对输入的特征向量进行处理,然后对处理后的特征向量输入RELU激活层和实例归一化层,随后再次输入二维卷积层、激活层和实例归一化层,...,重复上述过程(即采用核为4,步长为2,填充为1的二维卷积层对输入的特征向量进行处理,然后对处理后的特征向量输入RELU激活层和实例归一化层,随后再次输入二维卷积层、激活层和实例归一化层这一过程)2次,最终得到为B×1×1×512通道的特征向量。
第二层是全连接层,具体结构为:
第一层特征降维层,输入是特征提取层得到的B×1×1×512的特征向量,其使用512×256的权重矩阵对该B×1×1×512的特征向量进行全连接处理,输出B×1×1×256的特征向量。
第二层特征降维层,其输入为第一层输出的B×1×1×256的特征向量,使用256×128的权重矩阵对该B×1×1×256的特征向量进行全连接处理,输出为B×1×1×128的特征向量。
第三层是判别结果层,其输入为特征降维层输出的B×1×1×128的特征向量,其使用128×1的权重矩阵对该B×1×1×128的特征向量进行全连接处理,输出为B维的特征向量。
图像增强网络V的结构是基于VGG16网络,其具体结构为:
第一层是特征叠加层,其输入是生成网络G2所输出B×512×512×3的特征向量,其采用VGG16网络中的13个卷积层和3个全连接层对该B×512×512×3的特征向量进行处理,以得到B×1×1×4096的特征向量;然后将其放入3个反卷积层,以输出B×512×512×3的特征向量。
第二层是拼接层,其输入是特征叠加层输出的B×512×512×3的特征向量。其将该特征向量与生成网络G2所输出的B×512×512×3的特征向量相加,以得到B×512×512×6的特征向量;然后,将其放入1×1的卷积层,以输出B×512×512×3的特征向量。
第三层是结果生成层,其输入是拼接层得到B×512×512×3的特征向量。其将该特征向量输入填充尺寸为1的填充层,以得到填充后的特征向量;然后,将其放入3×3的卷积层和RELU激活层,最终输出为B×512×512×3的结果图片。
具体而言,本发明的阴影生成模型是通过以下步骤训练得到的:
(3-1)获取阴影生成数据集,并为该阴影生成数据集构建K-V键值对集合;阴影生成数据集包括多张含有目标物体及阴影的真实图片Ifs、以及多张含有目标物体的背景图片If;
本步骤具体为,首先,使用步骤(1)中相同的方法处理每张真实图片Ifs;以得到该真实图片Ifs对应的目标物体掩码Mf、目标物体阴影掩码Mfs、背景物体掩码Mb、背景物体阴影掩码Mbs,以及每张真实图片Ifs对应的图像向量矩阵;
然后,针对每张真实图片Ifs而言,使用步骤(2)中对背景图片It的裁剪切分方法,对真实图片Ifs的图像向量矩阵进行裁剪切分,以得到多张真实图片的切分图片;
其后,针对获得的每张切片图片而言,判断其中的阴影形状是否完整,如果不完整,则丢弃该切片图片,如果完整,则将该切片图片放大至真实图片Ifs的大小,然后同样从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取该切片图片对应的图像向量矩阵,并将其放入列表L2中;
随后,针对每张真实图片Ifs而言,构建其对应的四元组T2,四元组中4个元素依次是该真实图片Ifs对应的目标物体掩码Mf、目标物体阴影掩码Mfs、背景物体掩码Mb以及背景物体阴影掩码Mbs;
随后,针对每张真实图片Ifs而言,构建其对应的K-V键值对集合,其中第一组键值对中的K是列表L2中第一张切片图片对应的图像向量矩阵,V是四元组T2;第二组键值对中的K是列表L2中第二张切片图片对应的图像向量矩阵,V是四元组T2;以此类推,...;第N组键值对中的K是列表L2中第N张切片图片对应的图像向量矩阵,V是四元组T2,其中N表示得到的切片图片的总数;
最后,针对每张真实图片Ifs而言,对其对应的K-V键值对集合进行数据清洗,以获取该真实图片Ifs对应的、清洗后的K-V键值对集合(本过程是对所有键值对中的四元组T2进行检查,物体或者阴影在图片中占比过大或过小均不利于后续模型训练,本过程具体为,掩码面积(矩阵之和)大于总图片面积(512×512)的1/3的掩码图片为不合格图片,掩码面积(矩阵之和)小于总图片面积(512×512)的1/20的掩码图片为不合格图片,去除K-V键值对集合中不合格图片所在的键值对,以得到清洗后的K-V键值对集合),所有真实图片Ifs对应的清洗后的K-V键值对集合构成阴影生成数据集对应的K-V键值对集合。
本步骤(3-1)的优点在于,数据集中一张真实图片可以生成多个K-V键值对进行训练,更容易进行特征提取,数据量的提升也有助于提高模型泛化性。
(3-2)将步骤(3-1)得到的K-V键值对集合中的所有K-V键值随机打乱,将所有K-V键值均匀的划分成10份,并从10份中取任意1份作为测试集,1份作为验证集,其余8份作为训练集。
(3-3)针对步骤(3-2)得到的训练集中的每一个K-V键值对而言,将该K-V键值对输入二进制阴影掩码生成网络U中,以得到该K-V键值对中真实图片所对应的目标物体阴影掩码Mgfs和目标物体阴影掩码Mfs,并根据目标物体阴影掩码Mgfs和目标物体阴影掩码Mfs,获取该K-V键值对在生成网络U中所对应的损失函数Ls=|Mfs-Mgfs|2。
阴影形状生成网络U中的第一编码器期望从背景中推断隐含的照明信息。而另一个编码器期望得到物体掩码及其阴影掩码的映射关系,使用上文描述的注意力机制可以更好的融合两者中的有效信息,让解码器可以更准确的预测二进制阴影掩码Mgfs。
(3-4)针对步骤(3-2)得到的训练集中的每一个K-V键值对而言,将步骤(3-3)中得到的该K-V键值对所对应的目标物体阴影掩码Mgfs、步骤(3-2)得到该K-V键值对中真实图片Ifs、以及真实图片Ifs对应的目标物体掩码Mf输入到基于循环生成对抗网络的阴影图片生成网络中,以获取该K-V键值对所对应的含有目标物体及阴影的图片Igfs、循环一致性损失函数Lc,以及第一生成对抗损失函数LGAN1和第二生成对抗损失函数LGAN2。
如图3所示,步骤S2具体包括两个生成器(分别为生成网络G1和生成网络G2)和两个判别器(分别为判别网络D1和判别网络D2)。
本步骤具体为,首先,将K-V键值对中的真实图片Ifs和步骤(3-3)获取的该K-V键值对应的阴影形状掩码Mgfs输入到生成网络G1中,以得到含有目标物体的图片Igf;
然后,将生成网络G1得到的含有目标物体的图片Igf输入生成网络G2中,以得到含有目标物体阴影的真实图片Igfs;
随后,对该K-V键值对中的真实图片Ifs中不含有阴影的部分进行裁剪切分(具体方法是通过256×256的滑动窗口在真实图片上随机移动,如果包含阴影部分则舍弃),从而得到一个切边图片,然后将其扩展至真实图片Ifs的大小,再将扩展后的切边图片Ia和生成器G1所生成的含有目标物体的图片Igf分别输入判别器D1中进行判决,以分别得到判别结果D(Ia)和D(Igf);
随后,将该K-V键值对中的真实图片Ifs、以及生成器G2得到的含有目标物体阴影的图片Igfs输入判别器D2中进行判决,以分别得到判别结果D(Ifs)和D(Igfs);
随后,根据生成器G1所生成的含有目标物体阴影的图片Igfs和该K-V键值对中的真实图片Ifs计算循环一致性损失函数Lc=|Ifs-Igfs|2;
最后,根据以下公式计算第一生成对抗损失函数LGAN1=LG1+LD1;
其中LG1表示生成器G1的损失函数,且有 其中Pz(Mgfs,Ifs)表示输入生成器G1的阴影形状掩码Mgfs和真实图片Ifs的数据分布,z表示生成器G1的输入样本;
LD1表示判别器D1的损失函数,且有 其中x~Pdata(Ia)表示输入判别器D1中切边图片Ia的数据分布,x表示切边图片Ia的输入样本;
并根据以下公式计算第二生成对抗损失函数LGAN2=LG2+LD2;
其中LG2表示生成器G2的损失函数,且有 其中/>表示输入生成器G2的含有目标物体的图片Igf的数据分布,n表示生成器G2的输入样本;
LD2表示判别器D2的损失函数,且有 其中m~Pdata(Ifs)表示输入判别器D2的真实图片Ifs的数据分布,m表示真实图片Ifs的输入样本。
(3-5)针对步骤(3-2)得到的训练集中的每一个K-V键值对而言,将步骤(3-4)得到的该K-V键值对所对应的、含有目标物体及阴影的图片Igfs输入增强网络V中,以获取合成图片Ir以及总损失函数Loss。
理想的生成图片应当是除开阴影区域其余色彩应当保持不变,有无虚拟物体的阴影不应该对背景光线颜色等产生影响。所以通过对Igfs进行公式计算得到合成图片Ir。
本步骤具体为,首先,把步骤(3-3)得到的该K-V键值对所对应的目标物体阴影掩码Mgfs与步骤(3-4)中得到的该K-V键值对所对应的含有目标物体及阴影的图片Igfs相乘,然后将相乘的结果和目标物体阴影掩码Mgfs的反矩阵与阴影的图片Igfs相乘后的积相加,从而得到合成图片Ir,生成公式具体为:
Ir=Igfs*Mgfs+Igfs*(1-Mgfs)
然后,将合成图片Ir输入增强网络(VGG16),以根据该合成图片Ir和该K-V键值对中的真实图片Ifs获取L1损失函数Lr=|Ifs-Ir|2。
这使得阴影部分和图片背景可以更好的融合,视觉上减少突兀感。
最后,根据上述过程获取的第一生成对抗损失函数LGAN1、第二生成对抗损失函数LGAN2、L1损失函数Lr、损失函数Ls、以及循环一致性损失函数Lc获取总损失函数Loss:
Loss=Ls+LGAN1+LGAN2+Lc+Lr
(3-6)重复上述步骤(3-1)到(3-5),直到总损失函数Loss达到最小为止,从而得到初步训练好的阴影生成模型;
(3-7)使用步骤(3-1)得到的测试集对步骤(3-6)初步训练好的阴影生成模型进行验证,从而得到训练好的阴影生成模型。
实验结果
本发明的实验环境:在Ubuntu 18.04操作系统下,CPU为Intel(R)Core(TM)i9-10920X,GPU为1块NVIDIA 409024GB,内存为128GB DDR4,采用Pytorch编程实现本发明的算法。具体设置如下:batch size大小为16,初始学习率为1e-4。
为了说明本发明方法的有效性以及对于分类效果的提升,在多个数据集上进行了测试,以数据集为例,将本发明得到的测试结果与当前常用的方法进行对比,评估结果如下表1:
表1
根据上表的记载的实验结果,可以看到本发明提出的生成方法,在两个指标上都优于现有的方法。一是在于,采用注意力机制获取,背景光照特征和背景的物体及其阴影的映射特征之间的联系,更充分地提取有效信息,生成高质量的阴影掩码,二是在于,采用改进的循环对抗式生成网络,合理生成阴影,提升了结构相似性。本发明和现有方法相比,总体合成的图片中阴影与背景更加和谐,提高了图片生成的效果。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于循环生成对抗网络的逼真阴影生成方法,其特征在于,包括如下步骤:
(1)获取需要进行阴影生成的背景图片It、以及有待插入背景图片进行阴影生成的目标物体图片w,对获取的背景图片It进行预处理,以得到其中背景物体的掩码Mb及其阴影部分的掩码Mbs,以及背景图片It的图像向量矩阵;并对获取的目标物体图片w进行预处理,以得到其中目标物体的阴影掩码Mfs和目标物体图片w的图像向量矩阵。
(2)对步骤(1)得到的背景图片It的向量矩阵进行切分裁剪处理,以得到多个图像向量矩阵,并根据步骤(1)得到的背景物体的掩码Mb及其阴影部分的掩码Mbs、目标物体的阴影掩码Mfs、以及目标物体图片w构建多个K-V键值对,所有键值对构成K-V键值对集合。
(3)将步骤(2)得到的K-V键值对集合输入预先训练好的阴影生成模型中,以获得多张生成图片,并从中选择最符合人类视觉的生成图片作为最终的阴影生成结果;其中阴影生成模型包括依次连接的基于UNET网络的编码器解码器构成的阴影掩码生成网络U、循环生成对抗网络C、以及基于VGG16的图片增强网络V。
2.根据权利要求1所述的基于循环生成对抗网络的逼真阴影生成方法,其特征在于,步骤(1)具体为,首先针对需要进行阴影生成的背景图片It而言,使用描边工具勾画出背景图片It中的背景物体及其阴影部分,将背景物体部分的所有像素填充1,其余部分填充0,以得到背景物体的掩码Mb;将阴影部分的所有像素填充1,其余部分填充0,以得到阴影部分的掩码Mbs;
然后,针对目标物体图片w而言,使用描边工具勾画出该目标物体图片中的目标物体,将目标物体部分的所有像素填充1,其他部分填充0,以得到目标物体的阴影掩码Mfs;
最后,把背景图片It从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取背景图片If的图像向量矩阵,并将目标物体图片w从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取目标物体图片w的图像向量矩阵。
3.根据权利要求1或2所述的基于循环生成对抗网络的逼真阴影生成方法,其特征在于,步骤(2)具体为,首先是使用一个256×256的滑动窗口在背景图片It做随机移动,以得到多张切片图片;
其后,针对获得的每张切片图片而言,判断其中的阴影形状是否完整,如果不完整,则丢弃该切片图片,如果完整,则将该切片图片放大至背景图片It的大小,然后同样从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取该切片图片对应的图像向量矩阵,并将其放入预先建立的列表L1中;
然后,将背景图片It与背景物体的掩码Mb的反矩阵二者做点积计算,并将计算结果和步骤(1)得到的目标物体图片w的图像向量矩阵相加,以得到含有目标物体的背景图片If;
随后,构建四元组T1,四元组中4个元素依次是含有目标物体的背景图片If、背景物体的掩码Mb和阴影掩码Mbs、以及目标物体的阴影掩码Mfs;
最后,构建K-V键值对集合,其中第一组键值对中的K是列表L1中第一张切片图片对应的图像向量矩阵,V是四元组T1;第二组键值对中的K是列表L1中第二张切片图片对应的图像向量矩阵,V是四元组T1;以此类推,...;第N组键值对中的K是列表L1中第N张切片图片对应的图像向量矩阵,V是四元组T1,其中N表示得到的切片图片的总数。
4.根据权利要求1至3中任意一项所述的基于循环生成对抗网络的逼真阴影生成方法,其特征在于,
阴影掩码生成网络U包括编码器ES、解码器DS和注意力网络。
编码器ES的输入是维度为B×512×512×4的的输入图片,其采用两个3x3的RELU卷积层和一个2x2的最大池化层,对输入图片进行4次下采样处理,输出为B×32×32×512的特征向量;随后使用2x2的逆卷积层和批归一化层,对图片进行4次上采样处理,输出为B×512×512×4的特征向量,其中B表示批大小。
注意力网络的结构如下:
第一层是矩阵变换层,其输入为编码器ES输出的B×512×512×4的特征向量,其利用三个卷积核为1的卷积层,对该B×512×512×4的特征向量分别与3个B×512×512的矩阵相乘,输出B×3×N维的q向量、B×3×N维的k向量、以及B×3×N维的v向量(其中N=512×512);
第二层是注意力机制计算层,其输入为矩阵变换层输出的B×C×N维的q向量、k向量、以及v向量,其按以下公式对该B×C×N维的q向量、k向量、以及v向量进行计算,输出为注意力(attention)向量:
其中d表示q向量和k向量的矩阵维度。
第三层是拼接层,其输入为注意力机制计算层输出的注意力向量,其将该注意力向量与编码器ES输出的B×512×512×4的特征向量相加,输出为B×512×512×8维向量,并将其放入3个1x1的卷积层以降低其通道数,最终输出为B×512×512×1的特征向量;
解码器DS的结构与编码器ES相同,其输入为注意力网络输出的B×512×512×1的特征向量,其采用两个3x3的RELU卷积层和一个2x2的最大池化层,对特征向量进行4次下采样处理,输出为B×32×32×512的特征向量;随后使用2x2的逆卷积层和批归一化层,对B×32×32×512的特征向量进行4次上采样处理,输出为B×512×512×1的特征向量作为虚拟物体阴影掩码Mgfs。
5.根据权利要求4所述的基于循环生成对抗网络的逼真阴影生成方法,其特征在于,
循环生成对抗网络C包括生成网络G1和G2、以及判别网络D1和D2。
生成网络G1和G2的网络结构相同,具体结构如下:
第一层是拼接层,其输入是解码器DS输出的虚拟物体阴影掩码Mgfs,生成网络G1的拼接层是将该虚拟物体阴影掩码与含有目标物体的背景图片进行拼接,输出为B×512×512×4的特征向量;生成网络G2的拼接层是将该虚拟物体阴影掩码与全为0的B×512×512×1的向量矩阵进行拼接,输出为B×512×512×4的特征向量。
第二层是特征提取层,其输入是拼接层输出的B×512×512×4的特征向量,其首先采用核为2×2的卷积层对输入的特征向量进行处理,然后对处理后的特征向量进行实例归一化,...,然后重复上述过程(即采用核为2×2的卷积层对输入的特征向量进行处理,然后对处理后的的特征向量进行实例归一化,将输出的特征向量再次放入2×2的卷积层以及实例归一化层这一过程)3次;随后使用9个残差块来提取得到的B×512×512×4的特征向量中的特征;最后使用3个反卷积层对提取的特征进行处理,最终输出B×512×512×3的特征向量;
判别网络D1和D2网络结构相同,判别网络D1的具体结构如下:
第一层是特征提取层,输入为生成网络G1的特征提取层输出的B×512×512×3的特征向量,首先采用核为4,步长为2,填充为1的二维卷积层对输入的特征向量进行处理,然后对处理后的特征向量输入RELU激活层和实例归一化层,随后再次输入二维卷积层、激活层和实例归一化层,...,重复上述过程(即采用核为4,步长为2,填充为1的二维卷积层对输入的特征向量进行处理,然后对处理后的特征向量输入RELU激活层和实例归一化层,随后再次输入二维卷积层、激活层和实例归一化层这一过程)2次,最终得到为B×1×1×512通道的特征向量。
第二层是全连接层,具体结构为:
第一层特征降维层,输入是特征提取层得到的B×1×1×512的特征向量,其使用512×256的权重矩阵对该B×1×1×512的特征向量进行全连接处理,输出B×1×1×256的特征向量。
第二层特征降维层,其输入为第一层输出的B×1×1×256的特征向量,使用256×128的权重矩阵对该B×1×1×256的特征向量进行全连接处理,输出为B×1×1×128的特征向量。
第三层是判别结果层,其输入为特征降维层输出的B×1×1×128的特征向量,其使用128×1的权重矩阵对该B×1×1×128的特征向量进行全连接处理,输出为B维的特征向量。
6.根据权利要求5所述的基于循环生成对抗网络的逼真阴影生成方法,其特征在于,图像增强网络V的结构是基于VGG16网络,其具体结构为:
第一层是特征叠加层,其输入是生成网络G2所输出B×512×512×3的特征向量,其采用VGG16网络中的13个卷积层和3个全连接层对该B×512×512×3的特征向量进行处理,以得到B×1×1×4096的特征向量;然后将其放入3个反卷积层,以输出B×512×512×3的特征向量。
第二层是拼接层,其输入是特征叠加层输出的B×512×512×3的特征向量。其将该特征向量与生成网络G2所输出的B×512×512×3的特征向量相加,以得到B×512×512×6的特征向量;然后,将其放入1×1的卷积层,以输出B×512×512×3的特征向量。
第三层是结果生成层,其输入是拼接层得到B×512×512×3的特征向量。其将该特征向量输入填充尺寸为1的填充层,以得到填充后的特征向量;然后,将其放入3×3的卷积层和RELU激活层,最终输出为B×512×512×3的结果图片。
7.根据权利要求6所述的基于循环生成对抗网络的逼真阴影生成方法,其特征在于,阴影生成模型是通过以下步骤训练得到的:
(3-1)获取阴影生成数据集,并为该阴影生成数据集构建K-V键值对集合;阴影生成数据集包括多张含有目标物体及阴影的真实图片Ifs、以及多张含有目标物体的背景图片If;
(3-2)将步骤(3-1)得到的K-V键值对集合中的所有K-V键值随机打乱,将所有K-V键值均匀的划分成10份,并从10份中取任意1份作为测试集,1份作为验证集,其余8份作为训练集。
(3-3)针对步骤(3-2)得到的训练集中的每一个K-V键值对而言,将该K-V键值对输入二进制阴影掩码生成网络U中,以得到该K-V键值对中真实图片所对应的目标物体阴影掩码Mgfs和目标物体阴影掩码Mfs,并根据目标物体阴影掩码Mgfs和目标物体阴影掩码Mfs,获取该K-V键值对在生成网络U中所对应的损失函数Ls=|Mfs-Mgfs|2。
(3-4)针对步骤(3-2)得到的训练集中的每一个K-V键值对而言,将步骤(3-3)中得到的该K-V键值对所对应的目标物体阴影掩码Mgfs、步骤(3-2)得到该K-V键值对中真实图片Ifs、以及真实图片Ifs对应的目标物体掩码Mf输入到基于循环生成对抗网络的阴影图片生成网络中,以获取该K-V键值对所对应的含有目标物体及阴影的图片Igfs、循环一致性损失函数Lc,以及第一生成对抗损失函数LGAN1和第二生成对抗损失函数LGAN2。
(3-5)针对步骤(3-2)得到的训练集中的每一个K-V键值对而言,将步骤(3-4)得到的该K-V键值对所对应的、含有目标物体及阴影的图片Igfs输入增强网络V中,以获取合成图片Ir以及总损失函数Loss。
(3-6)重复上述步骤(3-1)到(3-5),直到总损失函数Loss达到最小为止,从而得到初步训练好的阴影生成模型;
(3-7)使用步骤(3-1)得到的测试集对步骤(3-6)初步训练好的阴影生成模型进行验证,从而得到训练好的阴影生成模型。
8.根据权利要求7所述的基于循环生成对抗网络的逼真阴影生成方法,其特征在于,
步骤(3-1)具体为,首先,使用步骤(1)中相同的方法处理每张真实图片Ifs,以得到该真实图片Ifs对应的目标物体掩码Mf、目标物体阴影掩码Mfs、背景物体掩码Mb、背景物体阴影掩码Mbs,以及每张真实图片Ifs对应的图像向量矩阵;
然后,针对每张真实图片Ifs而言,使用步骤(2)中对背景图片It的裁剪切分方法,对真实图片Ifs的图像向量矩阵进行裁剪切分,以得到多张真实图片的切分图片;
其后,针对获得的每张切片图片而言,判断其中的阴影形状是否完整,如果不完整,则丢弃该切片图片,如果完整,则将该切片图片放大至真实图片Ifs的大小,然后同样从RGB形式的3通道转化为LAB形式的3通道,且0-255的数字空间等比降至0-1的数字空间中,以获取该切片图片对应的图像向量矩阵,并将其放入列表L2中;
随后,针对每张真实图片Ifs而言,构建其对应的四元组T2,四元组中4个元素依次是该真实图片Ifs对应的目标物体掩码Mf、目标物体阴影掩码Mfs、背景物体掩码Mb以及背景物体阴影掩码Mbs;
随后,针对每张真实图片Ifs而言,构建其对应的K-V键值对集合,其中第一组键值对中的K是列表L2中第一张切片图片对应的图像向量矩阵,V是四元组T2;第二组键值对中的K是列表L2中第二张切片图片对应的图像向量矩阵,V是四元组T2;以此类推,...;第N组键值对中的K是列表L2中第N张切片图片对应的图像向量矩阵,V是四元组T2,其中N表示得到的切片图片的总数;
最后,针对每张真实图片Ifs而言,对其对应的K-V键值对集合进行数据清洗,以获取该真实图片Ifs对应的、清洗后的K-V键值对集合,所有真实图片Ifs对应的清洗后的K-V键值对集合构成阴影生成数据集对应的K-V键值对集合。
9.根据权利要求8所述的基于循环生成对抗网络的逼真阴影生成方法,其特征在于,
步骤(3-4)具体为,首先,将K-V键值对中的真实图片Ifs和步骤(3-3)获取的该K-V键值对应的阴影形状掩码Mgfs输入到生成网络G1中,以得到含有目标物体的图片Igf;
然后,将生成网络G1得到的含有目标物体的图片Igf输入生成网络G2中,以得到含有目标物体阴影的真实图片Igfs;
随后,对该K-V键值对中的真实图片Ifs中不含有阴影的部分进行裁剪切分,从而得到一个切边图片,然后将其扩展至真实图片Ifs的大小,再将扩展后的切边图片Ia和生成器G1所生成的含有目标物体的图片Igf分别输入判别器D1中进行判决,以分别得到判别结果D(Ia)和D(Igf);
随后,将该K-V键值对中的真实图片Ifs、以及生成器G2得到的含有目标物体阴影的图片Igfs输入判别器D2中进行判决,以分别得到判别结果D(Ifs)和D(Igfs);
随后,根据生成器G1所生成的含有目标物体阴影的图片Igfs和该K-V键值对中的真实图片Ifs计算循环一致性损失函数Lc=|Ifs-Igfs|2;
最后,根据以下公式计算第一生成对抗损失函数LGAN1=LG1+LD1;
其中LG1表示生成器G1的损失函数,且有[log(1-D1(G1(z)))],其中Pz(Mgfs,Ifs)表示输入生成器G1的阴影形状掩码Mgfs和真实图片Ifs的数据分布,z表示生成器G1的输入样本;
LD1表示判别器D1的损失函数,且有 其中x~Pdata(Ia)表示输入判别器D1中切边图片Ia的数据分布,x表示切边图片Ia的输入样本;
并根据以下公式计算第二生成对抗损失函数LGAN2=LG2+LD2;
其中LG2表示生成器G2的损失函数,且有 其中/>表示输入生成器G2的含有目标物体的图片Igf的数据分布,n表示生成器G2的输入样本;
LD2表示判别器D2的损失函数,且有 其中m~Pdata(Ifs)表示输入判别器D2的真实图片Ifs的数据分布,m表示真实图片Ifs的输入样本。
步骤(3-5)具体为,首先,把步骤(3-3)得到的该K-V键值对所对应的目标物体阴影掩码Mgfs与步骤(3-4)中得到的该K-V键值对所对应的含有目标物体及阴影的图片Igfs相乘,然后将相乘的结果和目标物体阴影掩码Mgfs的反矩阵与阴影的图片Igfs相乘后的积相加,从而得到合成图片Ir,生成公式具体为:
Ir=Igfs*Mgfs+Igfs*(1-Mgfs)
然后,将合成图片Ir输入增强网络(VGG16),以根据该合成图片Ir和该K-V键值对中的真实图片Ifs获取L1损失函数Lr=|Ifs-Ir|2。
这使得阴影部分和图片背景可以更好的融合,视觉上减少突兀感。
最后,根据上述过程获取的第一生成对抗损失函数LGAN1、第二生成对抗损失函数LGAN2、L1损失函数Lr、损失函数Ls、以及循环一致性损失函数Lc获取总损失函数Loss:
Loss=Ls+LGAN1+LGAN2+Lc+Lr。
10.一种基于循环生成对抗网络的逼真阴影生成系统,其特征在于,包括:
第一模块,用于获取需要进行阴影生成的背景图片It、以及有待插入背景图片进行阴影生成的目标物体图片w,对获取的背景图片It进行预处理,以得到其中背景物体的掩码Mb及其阴影部分的掩码Mbs,以及背景图片It的图像向量矩阵;并对获取的目标物体图片w进行预处理,以得到其中目标物体的阴影掩码Mfs和目标物体图片w的图像向量矩阵。
第二模块,用于对第一模块得到的背景图片It的向量矩阵进行切分裁剪处理,以得到多个图像向量矩阵,并根据第一模块得到的背景物体的掩码Mb及其阴影部分的掩码Mbs、目标物体的阴影掩码Mfs、以及目标物体图片w构建多个K-V键值对,所有键值对构成K-V键值对集合。
第三模块,用于将第二模块得到的K-V键值对集合输入预先训练好的阴影生成模型中,以获得多张生成图片,并从中选择最符合人类视觉的生成图片作为最终的阴影生成结果;其中阴影生成模型包括依次连接的基于UNET网络的编码器解码器构成的阴影掩码生成网络U、循环生成对抗网络C、以及基于VGG16的图片增强网络V。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311774809.5A CN117911554A (zh) | 2023-12-22 | 2023-12-22 | 一种基于循环生成对抗网络的逼真阴影生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311774809.5A CN117911554A (zh) | 2023-12-22 | 2023-12-22 | 一种基于循环生成对抗网络的逼真阴影生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117911554A true CN117911554A (zh) | 2024-04-19 |
Family
ID=90688734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311774809.5A Pending CN117911554A (zh) | 2023-12-22 | 2023-12-22 | 一种基于循环生成对抗网络的逼真阴影生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117911554A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118736061A (zh) * | 2024-09-02 | 2024-10-01 | 杭州水母智能科技有限公司 | 一种基于条件生成对抗网络的漫画图像上色方法 |
-
2023
- 2023-12-22 CN CN202311774809.5A patent/CN117911554A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118736061A (zh) * | 2024-09-02 | 2024-10-01 | 杭州水母智能科技有限公司 | 一种基于条件生成对抗网络的漫画图像上色方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111798400B (zh) | 基于生成对抗网络的无参考低光照图像增强方法及系统 | |
CN111091045B (zh) | 一种基于时空注意力机制的手语识别方法 | |
CN111368662B (zh) | 一种人脸图像属性编辑方法、装置、存储介质及设备 | |
CN110390638B (zh) | 一种高分辨率三维体素模型重建方法 | |
CN113033570B (zh) | 一种改进空洞卷积和多层次特征信息融合的图像语义分割方法 | |
CN110728219A (zh) | 基于多列多尺度图卷积神经网络的3d人脸生成方法 | |
CN112818764B (zh) | 一种基于特征重建模型的低分辨率图像人脸表情识别方法 | |
CN110689599A (zh) | 基于非局部增强的生成对抗网络的3d视觉显著性预测方法 | |
CN111523546A (zh) | 图像语义分割方法、系统及计算机存储介质 | |
CN111932445A (zh) | 对风格迁移网络的压缩方法及风格迁移方法、装置和系统 | |
CN110909615B (zh) | 基于多尺度输入混合感知神经网络的目标检测方法 | |
CN114648787A (zh) | 人脸图像的处理方法及相关设备 | |
CN109447897B (zh) | 一种真实场景图像合成方法及系统 | |
CN113066089B (zh) | 一种基于注意力引导机制的实时图像语义分割方法 | |
CN111062432B (zh) | 一种语义上多模态图像生成的方法 | |
CN114742985A (zh) | 一种高光谱特征提取方法、装置及存储介质 | |
CN112634438A (zh) | 基于对抗网络的单帧深度图像三维模型重建方法及装置 | |
CN113344110B (zh) | 一种基于超分辨率重建的模糊图像分类方法 | |
CN117079098A (zh) | 一种基于位置编码的空间小目标检测方法 | |
CN117576402B (zh) | 一种基于深度学习的多尺度聚合Transformer遥感图像语义分割方法 | |
CN115984701A (zh) | 一种基于编解码结构的多模态遥感图像语义分割方法 | |
CN114067075A (zh) | 基于生成对抗网络的点云补全方法及装置 | |
CN117911554A (zh) | 一种基于循环生成对抗网络的逼真阴影生成方法 | |
CN117456330A (zh) | 一种基于MSFAF-Net的低照度目标检测方法 | |
CN116977822A (zh) | 一种融合CNN与Transformer模型的图像识别网络 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |