基于深度学习的阴影智能去除方法研究算法纹理遮罩

本文刊发于《现代电影技术》2024年第1期

专家点评

——马龙龙

副研究员

中国科学院软件研究所硕士生导师

作者简介

马晓晴

北京电影学院中国电影高新技术研究院2021级硕士研究生,主要研究方向:数字电影技术。

北京电影学院中国电影高新技术研究院副研究员,主要研究方向:数字电影技术。

常乐

摘要

关键词

视效制作;深度学习;阴影去除;材质纹理

1背景与现状

电影的视效制作是电影生产中的重要环节。材质贴图(TextureMap)作为后期视效制作中的重要资产,直接决定了模型的质感与逼真程度,在实现高度真实感的虚拟场景方面起到了关键作用[1]。

材质贴图数据主要指高分辨率的纹理图像,一般通过三维绘制软件制作,例如Mari和Substance3DDesigner,或者直接从现有素材库中挑选。材质重建也是获取纹理贴图的方式之一,通常采用架设多角度的扫描或拍摄设备对材质进行捕捉,而后数字化重建,也可直接使用深度神经网络进行材质推断获取贴图数据。材质重建内容主要可分为几何形状和表面纹理两方面,前者对应于法线贴图等几何结构的推断,后者主要涉及漫反射贴图中表面基本色彩与纹理等信息的恢复。为了获得逼真的材质外观,以确保精确模拟不同环境光下的表面特性,需要对获取图像进行预处理并去除阴影。

2阴影去除方法

2.1一般阴影去除方法

2.1.1基于偏振片的阴影去除方法

此方法利用偏振滤光片抑制反射光,能在采集阶段消除部分高光和反射阴影。偏振片仅过滤反射形成的线偏振光,而无法影响非偏振散射光。因此,该方法必须与额外技术配合,才能达到有效的去除结果。

2.1.2基于手动光照采集的阴影去除方法

此方法常见于摄影建模的照片拍摄过程中,同时利用金属球与灰度球进行三维场景光照的采集,前者反射显示光源位置与高动态范围(HighDynamicRange,HDR)信息,后者显示光强与色温,为后期处理中实现照明还原与匹配提供重要信息。

该方法需为每个场景专门采集光照数据,过程复杂冗长,且对采集设备与虚拟场景重建的质量要求极高,否则无法准确匹配实际光照效果。

2.1.3基于后期软件工具的阴影去除方法

(1)AdobeLightroom等图像处理软件大多都可实现去除阴影功能。通过手动调整颜色、亮度或对比度等属性,改变明暗关系,填补相应像素,实现用户所需视觉效果。该方法操作要求高,其效果优劣取决于使用者的经验,不适用于大批量数据处理与去除细节阴影的情况。

(2)UnityDelightingTool应用于二维材质贴图。它针对环境光与全局光照信息的去除,主要原理是采集环境光照色彩查找表(LookupTable,LUT),通过多次采样,使整体颜色和亮度都更接近平均值。由于算法设定,该工具对于投射阴影无法处理,并且在复杂材质组合的场景中需用户交互操作,例如多次使用遮罩手动分离不同材质区域、不同光照区域等。

①AgisoftMetashape

②AgisoftTextureDeLighter

表1各类去除阴影软件对比

2.2智能阴影去除方法

深度学习图像处理一直是计算机视觉(ComputerVision)领域的重要研究任务,阴影去除主要利用的深度学习基准模型有卷积神经网络(ConvolutionNeuralNetwork,CNN)、生成式对抗网络(GenerativeAdversarialNetwork,GAN)及基于注意力机制的Transformer等。

2.2.1基于CNN的图像阴影去除

CNN主要由卷积层、池化层和全连接层组成。在阴影去除任务中,深层CNN结构首先学习局部简单特征,例如边缘和纹理等;随着网络层数的加深,进而学习更高级的语义特征,以识别不同对象;同时捕捉全局内容和风格特征,实现阴影区域的色彩与细节重建。

2.2.2基于GAN的图像阴影去除

2014年,GAN由Goodfellow[8]等人首次提出。作为在卷积神经网络基础上拓展的一种深度学习模型,GAN通过生成器和判别器两个基础模型,实现正向传播和反向判别的相互博弈,输出最接近于真实的运算结果。

2017年,Wang[9]等人首次使用基于GAN的方法检测并去除阴影。为全面评估框架性能,研究者同时构建了第一个大规模阴影去除基准,其中包含ISTD数据库。后续Mask-ShadowGAN[10],DC-ShadowNet[11]等研究均利用GAN从图像生成的角度进行阴影去除。

2.2.3基于Transformer的图像阴影去除

3材质纹理阴影的去除

3.1任务难点

一般来说,后期视效流程中的材质分辨率越高,最终渲染效果就越细致真实,提供的视觉体验更出色。高度真实感的画面呈现对于影视、游戏等领域尤为重要。然而,即使使用大量计算资源,神经网络的容量也很难直接处理高分辨率的输入,它的处理算力应集中在阴影去除和细节恢复方面。为此,针对高分辨率输入,考虑使用可扩展的数值方法,例如图像分块(ImagePatching)或下采样(DownSampling)等。此外还需验证预处理方法对最终结果的影响。在模型训练的实际过程中,需要在分辨率、预处理方式、网络参数和硬件条件等诸多方面进行权衡,寻找平衡点。通过不断的实验探索,在确保输出质量的同时,实现高效计算与训练。

3.2现有研究

4使用混合数据集的基于UNet去除阴影实验

WSRD数据集捕捉场景丰富,具备充足的颜色和纹理表征。最终构建600对分辨率为1920×1440的阴影与无阴影图像,其中400对用于训练,100对用于验证,100对用作测试(图1)。其中,验证集与测试集均有70%的图像未出现在训练集当中。

图1部分数据集图像对

4.1网络结构

该网络是基于UNet的深度卷积网络,能够预测每个像素的阴影映射关系。本研究采用下采样的方式,对输入进行了预处理。由于输入的高分辨率,因此在其特征空间进行下采样具有一定优势。

模型的编解码块各5层,各层之间通过跳跃连接(SkipConnection)相连。每个编码块(EncoderBlock)中,利用多个卷积层提取图像特征,使用跨步卷积(StridedConvolution)进行下采样操作,同时使用归一化(Normalization)处理和激活函数(ReLU),防止因逐层累积而造成梯度消失,并加快网络收敛速度。每个解码块(DecoderBlock)中,对从编码块传输的特征图进行转置卷积(TransposedConvolution)运算,同时将跳跃连接捕获的低级特征传输到解码器高层,从而减少低层特征丢失,尽量保留图像内容,最后通过输出模块得到结果。

在传统UNet基础上,模型增加了一个提炼块(DistillBlock),通过设置两个学习参数α和ω来调整阴影和非阴影区域的曝光,从而更准确地学习两者之间的特征差异,生成更加有效的特征表示。Fu[21]等人的研究中首次将曝光调节引入阴影处理,并取得当时最好结果。从编码块传输的特征图经过动态卷积(DynamicConvolution)与层归一化(LayerNormalization)处理后,叠加到经过通道注意力机制模块(ChannelAttention)的加权特征图上,再与曝光调整后的图像进行整合输出(图2)。

图2网络结构

本文使用像素损失、遮罩损失与感知损失的组合计算预测与基准真实值的差距,前两种损失计算对应图像之间的均方误差,而感知损失比较的是图像之间的高级语义差异。

4.2实验结果与分析

4.2.1结果对比

输入图像表示原始阴影图像,输出图像为模型预测输出的结果,真实遮罩由原始图与无阴影图计算得到,输出遮罩由原始图与预测图计算得到。图3和图4展示了一些模型训练时的输出样本和计算得到的阴影遮罩,结果表明,该网络成功去除了均匀强度的强阴影与自阴影,同时完整保留了原始图像内容(图3第一、三行)。当阴影与复杂纹理或背景交织时,去除效果受到影响。如果背景纹理中色彩差异明显,且与阴影颜色差距大,模型可实现良好的去除效果,且较为完整地保留原始纹理信息(图3第二行)。但是当背景纹理细节丰富,颜色饱和度高,尤其是与阴影颜色不易区分时,输出中常会伴有一定的边界伪影,且丢失部分纹理信息(图3第一、四行,图4第一行)。针对此类阴影与背景色度差异较小的情况,可将模型在对应特定数据领域进行微调,与主要功能的实现进行结合。

图3模型训练部分结果

图4真实遮罩与输出阴影遮罩对比

4.2.2定量评估

本文使用三种误差指标,量化并比较模型在测试集上的阴影去除效果。均方根误差(RootMeanSquaredError,RMSE)计算预测值与真值误差平方的算术平方根,其值越小表示预测越准确。峰值信噪比(PeakSignaltoNoiseRatio,PSNR)衡量对应图像之间的相似度,其值越高表明图像噪声占比越小。结构相似性(StructuralSimilarity,SSIM)指数考虑人眼对图像的感知特性,通过亮度比较、对比度比较与结构比较三方面来评估图像相似度,取值范围是[-1,1],数值越高表明图像差异越小。观察表2可知,使用模型处理前后,误差指标均发生显著改变。相较于原始阴影图像,本文方法得到的输出图像实现了阴影的有效去除,输出结果与真实无阴影照片相似度显著增加。

表2测试集平均误差数据表

5总结与展望

本文分别针对一般图像阴影去除任务和材质纹理阴影去除问题展开了深入探究。对于前者,研究基于WSRD数据集筛选并构建了具备丰富表征性的特定训练数据集,完成模型训练与结果评估。实验表明模型在多种场景下均取得了令人满意的效果,在较好地去除投射阴影、自阴影与软阴影的同时,完整恢复了原始图像中的颜色纹理等细节。然而,在某些复杂场景下,该模型效果仍需进一步优化完善。复杂场景主要包含以下三种情况:阴影边缘模糊且形状较小、背景颜色与阴影相似、阴影完全遮挡主体部分。针对以上情况,可分别制定对应数据集,例如收集并制作软阴影数据集或深色背景阴影数据集等,将模型在指定数据领域上进行微调,与主体模型相结合,构成框架应用。该方式相较于训练出能够推广至每个领域的大型网络来说,更为节省算力且具备较高扩展性。

参考文献

(向下滑动阅读)

[1]孙见昕.浅谈电影特效摄制生产流程[J].现代电影技术,2021,(02):5457,37.

[2]史泽奇.ResearchonGANbasedMaterialReconstructionandHighlightRemovalfromaSingleImage[D].浙江理工大学,2022.

[3]赵烨梓,王璐,徐延宁,等.基于机器学习的三维场景高度真实感绘制方法综述[J].软件学报,2022,33(01).

[4]KhanSH,BennamounM,SohelF,etal.Automaticfeaturelearningforrobustshadowdetection[C]//2014IEEEconferenceoncomputervisionandpatternrecognition.IEEE,2014:19391946.

[5]QuL,TianJ,HeS,etal.Deshadownet:Amulticontextembeddingdeepnetworkforshadowremoval[C]//ProceedingsoftheIEEEConferenceonComputerVisionandPatternRecognition,2017:40674075.

[6]HuX,ZhuL,FuCW,etal.Directionawarespatialcontextfeaturesforshadowdetection[C]//ProceedingsoftheIEEEconferenceoncomputervisionandpatternrecognition,2018:74547462.

[7]LeH,SamarasD.Shadowremovalviashadowimagedecomposition[C]//ProceedingsoftheIEEE/CVFInternationalConferenceonComputerVision,2019:85788587.

[8]GoodfellowI,PougetAbadieJ,MirzaM,etal.Generativeadversarialnetworks[J].CommunicationsoftheACM,2020,63(11):139144.

[9]WangJ,LiX,YangJ.Stackedconditionalgenerativeadversarialnetworksforjointlylearningshadowdetectionandshadowremoval[C]//ProceedingsoftheIEEEconferenceoncomputervisionandpatternrecognition,2018:17881797.

[10]HuX,JiangY,FuCW,etal.Maskshadowgan:Learningtoremoveshadowsfromunpaireddata[C]//ProceedingsoftheIEEE/CVFinternationalconferenceoncomputervision,2019:24722481.

[11]JinY,SharmaA,TanRT.Dcshadownet:Singleimagehardandsoftshadowremovalusingunsuperviseddomainclassifierguidednetwork[C]//ProceedingsoftheIEEE/CVFInternationalConferenceonComputerVision,2021:50275036.

[12]ZhangX,ZhaoY,GuC,etal.SpAFormer:AnEffectiveandlightweightTransformerforimageshadowremoval[C]//2023InternationalJointConferenceonNeuralNetworks(IJCNN).IEEE,2023:18.

[13]GuoL,HuangS,LiuD,etal.Shadowformer:Globalcontexthelpsimageshadowremoval[J].arXivpreprintarXiv:2302.01650,2023.

[14]LiZ,SunkavalliK,ChandrakerM.Materialsformasses:SVBRDFacquisitionwithasinglemobilephoneimage[C]//ProceedingsoftheEuropeanconferenceoncomputervision(ECCV),2018:7287.

[15]DeschaintreV,AittalaM,DurandF,etal.Singleimagesvbrdfcapturewitharenderingawaredeepnetwork[J].ACMTransactionsonGraphics(ToG),2018,37(4):115.

[16]DeschaintreV,AittalaM,DurandF,etal.Flexiblesvbrdfcapturewithamulti‐imagedeepnetwork[C]//Computergraphicsforum,2019,38(4):113.

[17]NarihiraT,MaireM,YuSX.Directintrinsics:Learningalbedoshadingdecompositionbyconvolutionalregression[C]//ProceedingsoftheIEEEinternationalconferenceoncomputervision,2015:29922992.

[18]RonnebergerO,FischerP,BroxT.Unet:Convolutionalnetworksforbiomedicalimagesegmentation[C]//MedicalImageComputingandComputerAssistedIntervention–MICCAI2015:18thInternationalConference,Munich,Germany,October59,2015,Proceedings,PartIII18.SpringerInternationalPublishing,2015:234241.

[19]IsolaP,ZhuJY,ZhouT,etal.Imagetoimagetranslationwithconditionaladversarialnetworks[C]//ProceedingsoftheIEEEconferenceoncomputervisionandpatternrecognition,2017:11251134.

[20]VasluianuFA,SeizingerT,TimofteR.WSRDAnovelbenchmarkforhighresolutionimageshadowremoval[C]//ProceedingsoftheIEEE/CVFConferenceonComputerVisionandPatternRecognition,2023:18251834.

[21]FuL,ZhouC,GuoQ,etal.Autoexposurefusionforsingleimageshadowremoval[C]//ProceedingsoftheIEEE/CVFconferenceoncomputervisionandpatternrecognition,2021:1057110580.

THE END
1.一文看尽深度学习中的各种数据增强数据增强的方式 数据增强的定义 数据增强通常是依赖从现有数据生成新的数据点来人为地增加数据量的过程。这包括对数据进行不同方向的扰动处理或使用深度学习模型在原始数据的潜在空间中生成新数据点以人为的扩充新的数据集。 这里需要区分两个概念,即增强数据和合成数据: 合成数据:在不使用真实世界图像的情况下人工生成https://zhuanlan.zhihu.com/p/598985864
2.深度学习领域的数据增强机器之心第二个类别是基于深度学习的数据增强算法: 特征空间增强(Feature Space Augmentation):神经网络可以将图像这种高维向量映射为低维向量,之前讨论的所有图像数据增强方法都应用于输入空间中的图像。现在可以在特征空间进行数据增强操作,例如:SMOTE算法,它是一种流行的增强方法,通过将k个最近的邻居合并以形成新实例来缓解类不https://www.jiqizhixin.com/articles/2019-12-04-10
3.2020.09.15更新)深度学习的低光照图像增强算法之前在做光照对于高层视觉任务的影响的相关工作,看了不少基于深度学习的低光照增强(low-light enhancement)的文章,于是决定简单梳理一下。 光照估计(illumination estimation)和低光照增强(low-light enhancement)的区别:光照估计是一个专门的底层视觉任务(例如[1,2,6]),它的输出结果可以被用到其它任务中,例如图像增https://blog.csdn.net/hyk_1996/article/details/99641652
4.图像增强算法深度学习图像增强算法有哪些图像增强算法深度学习 图像增强算法有哪些 一、直方图均衡化 ① 算法原理 直方图均衡化,一般可用于灰度图像的对比增强(如:人脸阴影部位增强); ② 算法优缺点 如果直接对彩色图像R,G,B三通道分别均衡化后再合并,极容易出现颜色不均、失真等问题,所以,一般会将RGB图像转换到YCrCb空间,对Y通道进行均衡化(Y通道代表https://blog.51cto.com/u_16099326/8806284
5.图像增强算法综述①小波变换图像增强,偏微分方程图像增强,分数阶 微分的图像增强,基于 Retinex 理论的图像增强和基于深度学习的图像增强算法,?并讨论了它们的改进算法.?然后, 从视觉效果,对比度,信息熵等方面对几种算法进行了定性和定量的对比,?分析了它们的优势和劣势.?最后,?对图 像增强算法的未来发展趋势作了简单的https://c-s-a.org.cn/csa/article/pdf/7956
6.图像增强算法综述15. 张莹. 暗光图像增强技术在矿用小型终端中的应用. 世界有色金属. 2024(14): 202-204 . 16. 章赵威,冯向萍,张世豪. 基于深度学习的玉米叶片病害识别方法研究. 现代计算机. 2024(13): 1-8+77 . 17. 王孟奇,连增增,田亚林,王鹏辉. 面向室内弱光环境的视觉与惯导融合算法研究. 导航定位与授时. 202http://www.chineseoptics.net.cn/en/article/id/9522
7.图像增强算法综述传统的图像增强算法主要包括直方图均衡化、对比度增强、锐化等,而随着深度学习技术的发展,卷积神经网络等算法也在图像增强领域取得了显著的成果。图像增强算法归纳与分析1、改进算法改进算法主要是对传统图像增强算法进行优化和改进,以提高增强效果和算法效率。例如,李等人在直方图均衡化算法中引入了自适应思想,能够根据图像https://shufang.docin.com/p-4524762954.html
8.低照度增强算法(图像增强+目标检测+代码)SMID python3 basicsr/train.py --opt Options/RetinexFormer_SMID.yml # SDSD-indoor python3 basicsr/train.py --opt Options/RetinexFormer_SDSD_indoor.yml # SDSD-outdoorxunlian python3 basicsr/train.py --opt Options/RetinexFormer_SDSD_outdoor.yml 在增强低光图像时,许多深度学习算法基于Retinex理论https://developer.aliyun.com/article/1446322
9.的图像去雾算法来啦!前面给大家介绍过14种低照度图像增强算法这个透射率告诉了图像去雾系统我们需要恢复多少被雾霾遮盖的细节。然后,系统会根据透射率对图片进行调整。它会让照片中的像素更加亮丽,同时减少雾霾造成的影响。具体来说,图像去雾算法可以分为基于图像增强的去雾算法、基于图像复原的去雾算法和基于深度学习的去雾算法。本文主要研究介绍基于深度学习的去雾算法介绍基于https://juejin.cn/post/7255312213480194107
10.深度学习技术的进展和未来四大趋势技术动态根据低质量图像的种类不同,图像增强应用可以包括图像去噪、图像超分辨率、图像去模糊以及亮度提升等。图像增强是计算机视觉领域的传统方向,在20世纪90年代已经成为研究热点。传统方法通常存在需要先验知识和涉及到复杂优化过程等问题。而深度学习为图像增强提供了一个全新的视角和思路,深度学习图像增强算法通常是基于“学习”http://news.21csp.com.cn/c15/202108/11408690.html
11.Light深度学习赋能下的光学计量澎湃号·湃客澎湃新闻图2 光学计量的典型图像处理过程(如条纹投影轮廓术)可分为三个主要步骤:预处理(如去噪、图像增强)、分析(如相位解调、相位展开)和后处理(如相位—深度映射) 图3 光学计量图像处理层次结构的概貌以及不同层中分布的各种图像处理算法 深度学习技术 原理、发展与卷积神经网络 https://www.thepaper.cn/newsDetail_forward_16995760
12.EuropeanRadiology:深度学习图像重建,实现腹部增强双能量CT图像深度学习图像重建(DLIR)是一种新的CT重建方法,其中深度卷积神经网络(DCNN)被纳入了DLIR的图像重建算法,可通过高质量的CT图像数据集进行训练学习如何区分噪音和信号。 近年来,双能量计算机断层扫描(DECT)在临床CT成像研究中得到了越来越多的应用。DECT成像的基本原理是根据不同能量下的吸收值差异来分离物质,通过生成https://www.medsci.cn/article/show_article.do?id=94b6e28860b5
13.总结62种在深度学习中的数据增强方式业界新闻这时候数据增强的优势便充分的体现出来了 还有就是模型性能的提升 卷积神经网络对平移、视点、大小或光照均具有不变性 也正因此,CNN能够准确地对不同方向的物体进行分类 在深度学习中,CNN通过对输入图像进行卷积运算来学习图像中的不同特征,从而在计算机视觉任务上表现非常出色 https://www.jindouyun.cn/document/industry/article/183115
14.瘦脸瘦腿太初级,揭秘“亚洲秘术”美颜美体特效图像清晰度增强 最后补充的技术点是图像的清晰度增强。手淘包括各种短视频场景,用户可能会上传各种质量的视频,如用户所处的场景可能会导致直播质量或者图片质量比较差。 针对这个问题,我们研发了一款基于移动端的hdr-net的图像清晰度增强算法。该算法是基于深度学习的方案,通过CNN去输出一个颜色查找表,同时我们通过CNN网https://new.qq.com/omn/20220313/20220313A03FNH00.html
15.增强型DeepLab算法和自适应损失函数的高分辨率遥感影像分类夏梦等(2017)结合深度学习和条件随机场,在输入图像中增加了纹理信息,得到了比SVM分类器更好的提取效果,但其网络结果中,输出层地物位置信息没有得到足够的保留。在DeepLab v2网络的基础上,Chen等(2018a)提出了Na?ve-SCNN和Deeper-SCNN网络,并提出增强视场的方法,使用ISPRS的高分辨率语义分割数据集,成功提高了训练https://www.ygxb.ac.cn/zh/article/doi/10.11834/jrs.20209200/
16.科学网—基于深度学习的单幅图像超分辨率重建算法综述在深度学习未兴起前,经典的单幅图像超分辨率算法占据主导地位, Lanczos重采样[1]和双三次插值[2]得到了广泛的应用,但采用插值方法有时会导致图像边缘和细节模糊,因此其他传统算法也被相继提出[3-5],有效地增强了图像的质量.经典的超分辨率重建算法需要很多先验知识,且要求研究者具有深厚的专业知识储备.随着深度学习的https://blog.sciencenet.cn/blog-3291369-1347645.html