CN117651965A - 使用神经网络的高清图像操作方法和系统 - Google Patents
使用神经网络的高清图像操作方法和系统 Download PDFInfo
- Publication number
- CN117651965A CN117651965A CN202280047777.6A CN202280047777A CN117651965A CN 117651965 A CN117651965 A CN 117651965A CN 202280047777 A CN202280047777 A CN 202280047777A CN 117651965 A CN117651965 A CN 117651965A
- Authority
- CN
- China
- Prior art keywords
- image
- resolution
- low
- frequency
- low resolution
- 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 102
- 238000013528 artificial neural network Methods 0.000 title description 56
- 238000006073 displacement reaction Methods 0.000 claims abstract description 12
- 238000012549 training Methods 0.000 claims description 86
- 238000005070 sampling Methods 0.000 claims description 18
- 230000001815 facial effect Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 6
- 210000001097 facial muscle Anatomy 0.000 claims description 4
- 238000001943 fluorescence-activated cell sorting Methods 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 3
- 239000010410 layer Substances 0.000 description 69
- 230000015654 memory Effects 0.000 description 43
- 230000006870 function Effects 0.000 description 31
- 210000002569 neuron Anatomy 0.000 description 27
- 238000012545 processing Methods 0.000 description 26
- 239000013598 vector Substances 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 18
- 239000011159 matrix material Substances 0.000 description 18
- 230000001105 regulatory effect Effects 0.000 description 15
- 238000013527 convolutional neural network Methods 0.000 description 11
- 230000004913 activation Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 210000004709 eyebrow Anatomy 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000008485 antagonism Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 210000000744 eyelid Anatomy 0.000 description 2
- 230000008921 facial expression Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 108050005509 3D domains Proteins 0.000 description 1
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/18—Image warping, e.g. rearranging pixels individually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
-
- 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/084—Backpropagation, e.g. using gradient descent
-
- 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
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4046—Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
- G06T3/4069—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution by subpixel displacements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
- G06T3/4076—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution using the original low-resolution images to iteratively correct the high-resolution images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
- G06V40/162—Detection; Localisation; Normalisation using pixel segmentation or colour matching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
公开了用于高分辨率图像操作的方法和系统。获取待操作的原始高分辨率图像和指示操作结果的驱动信号。对所述原始高分辨率图像进行下采样,获取待操作的低分辨率图像。使用经过训练的操作生成器,从所述低分辨率图像生成低分辨率操作图像和运动场。所述运动场表示所述低分辨率图像的像素位移,以获取由所述驱动信号指示的所述操作。从所述原始高分辨率图像计算高频残差图像。使用所述运动场生成高频操作残差图像。通过将所述高频操作残差图像与通过上采样从所述低分辨率操作图像生成的低频操作图像组合,输出高分辨率操作图像。
Description
相关申请的交叉引用
本申请要求于2021年7月5日提交的、标题为“使用神经网络的高清图像操作方法和系统(Methods and Systems for High Definition Image Manipulation with NeuralNetworks)”的第17/367,524号美国非临时申请案的权益和优先权,其内容通过全文引用的方式并入本文中。
技术领域
本发明涉及图像处理领域,尤其涉及使用神经网络的高清数字图像操作。
背景技术
图像操作是指对数字化图像进行更改以便将其转换为期望图像的过程。图像操作可以包括动画,其中,多个操作图像按顺序显示为运动图像。以可控、高效的方式为对象或场景的静态数字图像制作动画的能力使图像编辑/增强领域中的许多有趣的应用得以实现,包括动画、电影后期制作和人机交互。传统方法通常需要参数化三维(three-dimensional,3D)对象/人脸建模,然后在3D域中执行动画,如Stamminger M.、TheobaltC.、Thies J.、Zollhofer M.和Nieβner M.在“面对面:实时人脸抓拍和RGB视频再现(Face2face:Real-time face capture and reenactment of RGB videos)”(2016年IEEE计算机视觉和模式识别会议(Conference on Computer Vision and PatternRecognition,CVPR))2387–2395)中所述,其公开内容以全文引用的方式并入本文中。这种方法通常需要使用计算机图形技术、昂贵的设备和大量的劳动力进行后处理才能产生真实的结果。
近年来,在动画制作、面部特征、动画对象(如人类)以及其它无生命对象和场景等基于二维(two-dimensional,2D)的操作方法领域取得了相当大的进展。2018年,AlbertPumarola、Antonio Agudo、Aleix M Martinez、Alberto Sanfeliu和Francesc Moreno-Noguer在“GAN动画:从单个图像中获得解剖感知的面部动画(Ganimation:Anatomically-aware facial animation from a single image)”(2018年欧洲计算机视觉会议记录(ECCV)818–833)中提出了称为GAN动画的新颖架构。GAN动画方法遵循图像到图像的转换范式,该范式支持相对简单的模型训练,并提高通过动作单元(例如,面部动作的描述符)支持多种面部表情的灵活性。但是,现有型号仅支持大小至多256×256像素的图像分辨率,使用高端图形处理单元(graphics processing unit,GPU),图像分辨率可扩展到512×512像素。现有的方法都无法操作更高分辨率的图像,如1920×1080像素或4000像素(4K),而这些图像正在成为当今的主流显示分辨率。
希望提供一种用于高分辨率2D图像的图像操作的改进技术。
发明内容
在各种示例中,本发明描述了用于使用神经网络操作高清2D图像的方法和系统。与现有的基于2D的图像操作技术相比,所公开的示例能够以更高的效率和/或需要更少的资源(例如,存储器资源、处理能力)实际实现高清图像的操作。
本发明的示例可以允许操作大至4k分辨率(其指具有大约4000像素宽度的分辨率的图像)或更高分辨率的高清2D图像。本发明的示例还可以实现对具有足够质量和相对低处理功率要求的图像的操作。
根据本发明的第一方面,提供了一种用于在高分辨率图像操作的方法。获取待操作的原始高分辨率图像和指示操作结果的驱动信号。对所述原始高分辨率图像进行下采样,获取待操作的低分辨率图像。使用经过训练的操作生成器,从所述低分辨率图像生成低分辨率操作图像和运动场。所述运动场表示所述低分辨率图像的像素位移,以获取由所述驱动信号指示的操作。从所述原始高分辨率图像计算高频残差图像。使用所述运动场生成高频操作残差图像。通过将所述高频操作残差图像与通过上采样从所述低分辨率操作图像生成的低频操作图像组合,输出高分辨率操作图像。
在所述第一方面的一些或所有示例中,所述操作生成器包括运动网络和精细网络,所述运动网络从所述低分辨率图像生成粗糙操作输出,所述粗糙操作输出和所述低分辨率图像作为输入提供给所述精细网络,以输出具有比所述粗糙操作输出和所述精细运动场更少的视觉伪影的低分辨率操作图像。
在所述第一方面的一些或所有示例中,所述驱动信号是定义由指定所述操作的面部动作编码系统(Facial Action Coding System,FACS)定义的面部肌肉运动的动作单元(Action Unit,AU)、显示所述操作的图像和描述所述操作的文本短语中的任何一个。
在所述第一方面的一些或所有示例中,所述生成所述高分辨率操作残差图像还包括:将所述运动场从所述低分辨率图像的分辨率上采样到所述原始高分辨率图像的分辨率;将在所述上采样运动场中定义的像素位移应用于所述高分辨率残差图像。
在所述第一方面的一些或所有示例中,所述计算所述高分辨率残差图像还包括:对所述低分辨率图像进行上采样,获取低频图像;从所述原始高分辨率图像中逐个像素减去所述低频图像,获取所述高分辨率残差图像。
在所述第一方面的一些或所有示例中,所述操作生成器是使用低分辨率图像作为训练数据进行训练的经过训练的生成器网络。
在所述第一方面的一些或所有示例中,所述训练数据包括待应用于所述低分辨率图像的随机采样驱动信号。
在所述第一方面的一些或所有示例中,所述操作生成器使用损失函数训练,其中,所述损失函数是对抗损失、周期损失、驱动损失、精细损失和扭曲损失的加权和。
在所述第一方面的一些或所有示例中,所述精细损失定义如下:
lref=|Ow-Or|
其中,|.|是粗糙操作图像预测和精细操作图像预测之间的L1损失运算。
在所述第一方面的一些或所有示例中,所述方法还包括:通过一个或多个中等低分辨率图像对所述原始高分辨率图像进行下采样,其中,所述至少一个中等低分辨率图像的中等分辨率小于所述原始高分辨率图像的高分辨率且大于所述低分辨率图像的低分辨率;从所述一个或多个中等低分辨率图像中的每一个计算中等高频残差图像;使用所述运动场,从每个中等高频残差图像生成中等高频操作残差图像;通过上采样,从每个中等高频操作残差图像生成中等低频操作图像;使用所述中等高频操作残差图像和中等低频操作图像生成中等高分辨率操作图像,其中,所述中等低频操作图像是通过上采样从所述较低中等分辨率中的中等低分辨率操作图像生成的。
根据本发明的另一方面,提供了一种计算设备,包括处理器和存储器,所述存储器上有形地存储有用于由所述处理器执行的可执行指令。当所述处理器执行所述可执行指令时,使得所述计算设备执行上述以及本文中的方法。
根据本发明的又一方面,提供了一种非瞬时性机器可读存储介质,有形地存储有可执行指令,供计算设备的处理器执行。当所述处理器执行所述可执行指令时,使得所述计算设备执行上述以及本文中的方法。
本发明的其它方面和特征将在本领域普通技术人员结合附图阅读本发明的具体实现方式的以下描述时变得显而易见。
附图说明
现在将通过示例参考示出本申请示例性实施例的附图,其中:
图1为本发明一些实施例提供的示例性系统的框图;
图2为本发明一些实施例提供的用于神经网络处理器的示例性硬件结构的框图;
图3为本发明一些实施例提供的使用经过训练的操作生成器的高分辨率图像操作的示例的框图;
图4为本发明一些实施例提供的示例性操作生成器的一些实现方式细节;
图5为本发明一些实施例提供的使用经过训练的操作生成器的高分辨率图像操作的另一个示例的框图;
图6为本发明一些实施例提供的用于训练操作生成器的示例性方法;
图7为本发明一些实施例提供的用于实现图6的示例性方法的示例性伪代码;
图8为本发明一些实施例提供的用于高分辨率图像操作的示例性方法的流程图。
具体实施方式
本发明是参考附图进行的,附图中示出了技术方案的实施例。但是,可以使用许多不同的实施例,因此描述不应解释为局限于本文中阐述的实施例。相反,提供这些实施例,从而使本申请全面而完整。在可能的情况下,在附图和以下描述中使用相同的附图标记来指代相同的元件,并且在替代实施例中使用素数表示法来指示相同的元件、操作或步骤。所示系统和设备的功能元件的单独框或所示分离不一定需要这些功能的物理分离,因为这些元件之间的通信可以在没有任何这种物理分离的情况下通过消息传递、函数调用、共享内存空间等方式发生。因此,尽管为了便于解释,本文单独说明了这些功能,但是这些功能不需要在物理或逻辑上分离的平台中实现。不同的设备可以具有不同的设计,使得尽管一些设备在固定功能硬件中实现一些功能,但其它设备可以在可编程处理器中实现这些功能,该处理器具有从机器可读存储介质获得的代码。最后,以单数提及的元件可以是复数,反之亦然,除非上下文明确或固有地指示。
本文示例中描述的图像操作方法和系统可以应用于通过移除或重新定位图像中的对象来操作高分辨率数字图像的场景。例如,描绘一个皱眉的人的图像可能会被操作成微笑。所公开的方法和系统使得能够使用较低分辨率图像训练神经网络,并且经过训练的神经网络然后可以用于操作高分辨率图像。因此,所公开的方法和系统提供了如下技术效果:可以通过使用基于机器学习的技术移除和/或重新定位图像中的对象来操作高分辨率图像,而不需要过度使用内存资源。另一个技术效果是,通过使用基于机器学习的技术移除或重新定位图像中的对象,可以在具有有限资源的系统上修改高分辨率图像,所述系统例如手持设备或移动设备(例如智能手机、平板电脑或笔记本电脑等),以及桌面设备(例如,桌面计算机或个人计算设备等)。
本文示例中描述的图像操作方法和系统也可以应用于通过图像操作使用多个操作图像对2D图像进行动画以显示运动的场景。例如,操作可以通过多个图像来完成,每个图像都显示从皱眉到微笑的面部表情操作的一部分,而不是将皱眉面部操作为微笑面部。视频的每一帧可以使用所公开的方法和系统被处理为高分辨率图像。因此,技术效果是高分辨率图像操作可用于为图像制作动画或编辑视频。
在本发明中,术语“高分辨率”是指具有较大像素数(例如1024×1024像素或更多)的数字图像(例如照片或视频帧)。因此,在本发明的上下文中,高分辨率图像也可以被认为是“高像素”图像。应当理解,在本发明的上下文中,具有较少像素数(例如512×152像素或更少)但具有高密度像素(例如每英寸300像素(ppi)或更高)的图像不一定被认为是高分辨率图像。
相反,术语“低分辨率”是指具有较少像素数(例如512×512像素或更少)的数字图像(例如照片或视频帧)。因此,在本发明的上下文中,低分辨率图像也可以被认为是“低像素”图像。应当理解,在本发明的上下文中,具有较大像素数(例如,1024×1024像素或更多)但具有低密度像素(例如,72ppi或更少)的图像可以被视为高分辨率图像而不是低分辨率图像。
在各种示例中,本发明描述了一种可以被称为扭曲动画(Animating-Through-Warping,ATW)的方法。在所公开的示例系统中,神经网络模型(例如,通过训练神经网络学习的模型)被提供有待操作的原始高分辨率图像的下采样(例如,低分辨率)版本。神经网络预测低分辨率操作图像和运动场,运动场表示操作期间的像素位移。然后对低分辨率操作图像进行上采样,以产生大的低频(例如,模糊)操作图像。高频残差图像作为原始高分辨率图像和大型低频操作图像之间的差值生成。使用运动场操作高频残差图像,以产生大的操作高频残差图像,该图像与大的高分辨率操作图像相结合,以获得高分辨率操作图像。由于神经网络是在低分辨率图像上训练和处理的,因此内存和计算时间的成本显著降低(与其它直接处理高分辨率图像的神经网络相比)。此外,由于可以使用低分辨率图像作为训练数据来学习模型,因此对高分辨率训练数据集的需求得到了缓解。
在一些示例中,本发明描述了训练生成器网络以学习图像操作任务的示例方法。训练方法涉及计算机视觉的处理,具体来说,可以应用于数据训练、机器学习或深度学习等数据处理方法,以对训练数据(例如在本发明上下文中的低分辨率图像数据)执行符号化和形式化的智能信息建模、提取、预处理、训练等,以获得经过训练的生成器网络,如下文进一步讨论。此外,本发明描述了用于操作高分辨率图像的示例方法,所述方法可以使用上述经过训练的生成器网络执行。在本文讨论的示例中,输入数据(例如从原始高分辨率图像下采样的低分辨率图像)被输入到经过训练的发生器网络,以获得输出数据(例如,操作的低分辨率图像和运动场)。需要说明的是,本文所述的生成器网络的训练方法和操作方法可以被认为是基于相同思想的方面,也可以被认为是系统的两个部分或整个过程的两个阶段:例如,模型训练阶段和模型应用阶段。
通常,本文公开的示例涉及大量的神经网络应用。为了便于理解,下面描述了与神经网络相关的一些概念和可能与本文公开的示例相关的一些相关术语。
神经网络由神经元组成。神经元是一个计算单元,它使用xs和1的截距作为输入。来自计算单元的输出可以是:
其中s=1、2……n,n是大于1的自然数,Ws是xs的权重,b是神经元的偏移(例如偏置),f是神经元的激活函数,用于将非线性特征引入神经网络,将神经元的输入转换为输出。激活函数的输出可以用作神经网络中后续卷积层的神经元的输入。例如,激活函数可以是乙状结肠函数。神经网络是通过连接多个上述单个神经元而形成的。换句话说,一个神经元的输出可以是另一个神经元的输入。每个神经元的输入可以与前一层的局部接收区域关联,以提取局部接收区域的特征。局部接收区域可以是由几个神经元组成的区域。
深度神经网络(deep neural network,DNN)也被称为多层神经网络,可以理解为包括第一层(通常称为输入层)、多个隐藏层和最后层(通常称为输出层)的神经网络。这里的“多个”没有特殊的度量。当神经网络的两个相邻层之间存在全连接时,层被认为是全连接层。具体来说,对于两个相邻的层(例如,第i层和第(i+1)层)要完全连接,第i层中的每个神经元必须连接到第(i+1)层中的每个神经元。
在DNN的每一层上的处理可能相对简单。简言之,每层的操作由以下线性关系表达式表示:其中,/>为输入矢量,/>为输出矢量,/>为偏差矢量,W为权重(也称为系数),α(.)为激活函数。在每一层,对输入矢量/>进行运算,得到输出矢量。
由于DNN中有大量的层,因此也有大量的权重W和偏移矢量DNN中这些参数的定义如下:以权重W为例。在本示例中,在三层DNN(例如,具有三个隐藏层的DNN)中,从第二层的第四神经元到第三层的第二神经元的线性权重表示为/>上标3指示权重W的层(例如,本示例中的第三层(或第三层)),下标指示输出在第3层索引2(例如,第三层的第二神经元),输入在第2层索引4(例如,第二层的第四个神经元)。通常,从第(L–1)层的第k个神经元到第L层的第j个神经元的权重可以表示为/>需要说明的是,输入层没有W参数。
在DNN中,更多的隐藏层可以使DNN更好地建模复杂的情况(例如,现实世界的情况)。从理论上讲,参数更多的DNN更复杂,容量更大(这可能是指学习模型适应各种可能场景的能力),并表明DNN可以完成更复杂的学习任务。DNN的训练是学习权重矩阵的过程。训练的目的是获得经过训练的权重矩阵,该矩阵由DNN所有层的学习权重W组成。
卷积神经网络(convolutional neural network,CNN)是具有卷积结构的DNN。CNN包括由卷积层和子采样层组成的特征提取器。特征提取器可以被视为滤波器。卷积过程可以被认为是使用可训练滤波器对2D输入图像或卷积特征图执行卷积。
卷积层是对CNN中的输入执行卷积处理的神经元层。在卷积层中,一个神经元可以仅连接到相邻层中的神经元子集(例如,不是所有神经元)。也就是说,卷积层通常不是全连接层。一个卷积层通常包括几个特征图,每个特征图可以由排列在矩形中的一些神经元组成。同一特征图上的神经元共享权重。共享权重可以统称为卷积核。通常,卷积核是一个2D权重矩阵。应理解,卷积核可以与图像信息提取的方式和位置无关。卷积层背后隐藏的一个原理是,图像的一部分的统计信息与图像的另一部分的统计信息相同。这意味着从图像的一部分学习的图像信息也可以适用于图像的另一部分。在同一卷积层可以使用多个卷积核来提取不同的图像信息。通常,卷积核的数量越多,表示卷积运算反映的图像信息越丰富。
卷积核可以初始化为随机值的2D矩阵。在CNN的训练过程中,学习卷积核的权重。使用卷积核在同一特征图中的神经元之间共享权重的一个优点是,CNN的卷积层之间的连接减少(与全连接层相比),并降低过拟合的风险。
在训练DNN的过程中,可以将DNN输出的预测值与期望的目标值(例如,地面真值)进行比较。基于预测值和期望目标值之间的差值更新DNN的每一层的权重矢量(其是包含给定层的权重W的矢量)。例如,如果DNN输出的预测值过高,则可以调整各层的权重矢量以降低预测值。这种比较和调整可以迭代地执行,直到满足收敛条件(例如,已经执行了预定义的最大迭代次数,或者DNN输出的预测值与期望的目标值充分收敛)。定义了损失函数或目标函数,作为定量表示预测值与目标值的接近程度的一种方法。目标函数表示待优化的量(例如,最小化或最大化),以便使预测值尽可能接近目标值。损失函数更具体地表示预测值和目标值之间的差值,训练DNN的目标是最小化损失函数。
反向传播是一种训练DNN的算法。反向传播用于调整(也称为更新)DNN中参数的值(例如权重),以便输出中的误差(或损失)变得更小。例如,从输入的正向传播到DNN的输出,计算定义的损失函数。反向传播计算损失函数相对于DNN的参数的梯度,并且使用梯度算法(例如,梯度下降)更新参数以减小损失函数。反向传播是迭代执行的,使得损失函数收敛或最小化。
生成对抗网络(generative adversarial network,GAN)是一种深度学习模型,为训练DNN提供了另一种技术。GAN包括至少两个模块,一个模块为生成模型(也称为生成器),另一个模块为判别模型(也称为判别器)。这两个模型相互竞争,相互学习,从而产生更好的输出。生成器和鉴别器都可以是神经网络,具体可以是DNN或CNN。
现在以照片生成的示例描述GAN的基本原理。生成器是一个正在学习执行生成合成照片任务的网络。生成器接收随机噪声z作为输入,并产生输出,用G(z)表示。判别器是一个正在学习区分照片是否是真实世界照片的网络。判别器接收输入x,其中,x表示可能的照片。由判别器生成的输出D(x)表示x是真实世界照片的概率。如果D(x)为1,则表示x绝对是真实世界的照片。如果D(x)为0,则表示x绝对不是真实世界的照片。在训练GAN时,生成器的目标是生成尽可能真实的照片(以避免判别器检测),判别器的目标是试图区分真实世界的照片和生成器生成的照片。因此,训练构成了生成器和判别器之间的动态对抗过程。训练的目的是让生成器学习生成判别器无法与真实世界照片区分的照片(理想情况下,D(G(z))=0.5)。然后,经过训练的生成器用于模型应用,在本示例中,这就是合成照片的生成。
参考图1,示出了作为系统架构100的本本发明示例性实施例。以下描述不应解释为对本公开的任何示例的限制。如系统架构100所示,训练数据可以存储在数据库130中。在本发明的上下文中,训练数据可以包括不一定被标记的低分辨率图像(例如,大小为512×512像素或更小的图像)。例如,数据库130可以包含之前已经收集并通常用于与图像任务(例如,图像识别)相关的训练模型的训练数据集。数据库130可替换地或附加地包含可选地从作为执行设备提供的电子设备110(其可以是用户设备)收集(例如,在用户同意下)的图像。例如,电子设备110捕获并存储在电子设备110上的照片和/或视频可以可选地匿名并上载到数据库130。
如下面将进一步讨论的,操作生成器101的训练可以使用训练设备120,使用数据库130中维护的训练数据来执行。根据本文公开的示例,经过训练的操作生成器101可用于实现用于操作高分辨率图像的方法。训练设备120可以使用存储在数据库130中的训练数据的样本来训练操作生成器101。此外或可替换地,训练设备120可以使用从其它来源(例如分布式存储(或云存储平台)获得的训练数据来训练操作生成器101。
通过训练设备120训练获得的操作发生器101可以应用于不同的系统或设备。例如,操作生成器101可以应用于电子设备110的计算模块111中的操作子系统105。虽然图1示出了训练设备120与电子设备110分离的示例,但应理解,本发明并不限于本实施例。在一些示例中,可以不存在单独的训练设备120和电子设备110。也就是说,操作生成器101的训练和经过训练的操作生成器101的应用可以在同一设备上。
电子设备110可以是用户设备,例如客户端终端、移动终端、平板电脑、笔记本电脑、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备或车载终端等可能性。电子设备110还可以是服务器、云计算平台等,用户可以通过用户设备访问。在图1中,电子设备110设置有I/O接口112,用于与外部设备进行数据交互。例如,电子设备110可以通过I/O接口112向数据库130提供上传数据(例如,图像数据,例如由电子设备110捕获的照片和/或视频)。虽然图1示出了用户直接与电子设备110交互的示例,但应理解,本发明并不限于本实施例。在一些示例中,可以存在与电子设备110分离的用户设备,并且用户与用户设备交互,用户设备反过来通过I/O接口112向电子设备110传输数据。
在本示例中,电子设备110包括数据存储器114,其可以是系统存储器(例如,随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)等)或大容量存储设备(例如,固态驱动器、硬盘驱动器等)。数据存储器114可以存储计算模块111可访问的数据。例如,数据存储器114可以与计算模块111分开存储在电子设备110上捕获的图像和/或操作的图像。
在一些示例中,电子设备110可以可选地从外部数据存储系统150调用数据、代码等进行处理,或者可以将通过相应处理获得的数据、指令等存储在数据存储系统150中。
需要说明的是,图1仅仅是根据本发明实施例的示例性系统架构100的示意图。图1中所示的设备、组件、模块等之间的关系和交互并不打算限制本发明。
图2为本发明一些实施例提供的用于示例性神经网络处理器200的示例性硬件结构的框图。神经网络处理器200可以设置在集成电路(也称为计算机芯片)上。神经网络处理器200可以设置在图1所示的电子设备110中,以执行计算模块111的计算并实现操作子系统105。附加地或可替换地,神经网络处理器200可以设置在图1中所示的训练设备120中,以执行操作生成器101的训练。神经网络的层的所有算法(例如,下面进一步讨论的操作生成器101中的神经网络)都可以在神经网络处理器200中实现。
神经网络处理器200可以是能够执行神经网络中所需的计算(例如,计算大规模异或(OR)运算)的任何处理器。例如,神经网络处理器200可以是神经处理单元(neuralprocessing unit,NPU)、张量处理单元(tensor processing unit,TPU)、图形处理单元(graphics processing unit,GPU)等。神经网络处理器200可以是可选的主机中央处理器(central processing unit,CPU)220的协处理器。例如,神经网络处理器200和主机CPU220可以安装在同一封装上。主机CPU 220可以负责执行电子设备110的核心功能(例如,操作系统(operating system,OS)的执行、管理通信等)。主机CPU 220可以管理神经网络处理器200的操作,例如通过将任务分配给神经网络处理器200。
神经网络处理器200包括运算电路203。神经网络处理器200的控制器204控制运算电路203以例如从神经网络处理器200的输入存储器201和权重存储器202提取数据(例如矩阵数据),并执行数据运算(例如加法和乘法运算)。
在一些示例中,运算电路203内部包括多个处理单元(处理引擎(process engine,PE))。在一些示例中,运算电路203是二维脉动阵列。在其它示例中,运算电路203可以是一维脉动阵列或其它可以实现乘法、加法等数学运算的电子电路。在一些示例中,运算电路203是通用矩阵处理器。
在一个示例性运算中,运算电路203从权重存储器202获取权重矩阵B的权重数据,并将该权重数据缓存在运算电路203的每个PE中。运算电路203从输入存储器201获取输入矩阵A的输入数据,并根据矩阵A的输入数据和矩阵B的权重数据进行矩阵运算,得到的部分或最终矩阵结果存储在神经网络处理器200的累加器208中。
在该示例中,神经网络处理器200包括矢量计算单元207。矢量计算单元207包括多个运算处理单元。如果需要,矢量计算单元207对运算电路203的输出(可由矢量计算单元207从累加器208检索)执行进一步的处理,例如矢量乘法、矢量加法、指数运算、对数运算或幅度比较。矢量计算单元207可以主要用于在神经网络的神经元或层(下文描述)处的计算。例如,矢量计算单元207可以对计算执行池化或归一化等处理。矢量计算单元307可以将非线性函数应用于运算电路203的输出,例如,累加值的矢量,以生成激活值,该激活值可以被运算电路203用作神经网络的下一层的激活输入。在一些示例中,矢量计算单元207生成归一化值、组合值或归一化值和组合值两者。
在本示例中,神经网络处理器200包括存储单元访问控制器205(也称为直接存储器访问控制(direct memory access control,DMAC))。存储单元访问控制器205用于通过总线接口单元210访问神经网络处理器200外部的存储器(例如,电子设备110的数据存储器114)。存储单元访问控制器205可以从神经网络处理器200外部的存储器访问数据,并将数据直接传输到神经网络处理器200的一个或多个存储器。例如,存储访问单元控制器205可以直接将权重数据传输到权重存储器202,也可以直接将输入数据传输到统一存储器206和/或输入存储器201。统一存储器206用于存储输入数据和输出数据(例如,来自矢量计算单元207的经过处理的矢量)。
总线接口单元210还用于存储访问单元控制器205和取指令存储器(也称为取指令缓冲器)209之间的交互。总线接口单元210还用于使取指令存储器209从神经网络处理器200外部的存储器(例如,电子设备110的数据存储器114)获取指令。取指令存储器209用于存储供控制器204使用的指令。
通常,统一存储器206、输入存储器201、权重存储器202和取指令存储器209都是神经网络处理器200的存储器(也称为片上存储器)。数据存储器114独立于神经网络处理器200的硬件架构。
图3为本发明实施例提供的由操作子系统105执行的用于操作高分辨率图像的操作的框图。操作子系统105包括操作生成器101,其被训练(例如,使用训练设备120),如下文进一步讨论。
操作子系统105接收原始高分辨率图像作为输入。例如,原始高分辨率图像可以是由电子设备110捕获的照片或视频帧。例如,原始高分辨率图像的分辨率可以为1024×1024像素,至多4K分辨率或更高。操作子系统105还接收驱动信号作为输入。驱动信号表示图像的期望操作。作为非限制性示例,在其中待操作的图像是人脸图像的实施例中,驱动信号可以是一维矢量,该一维向量包括描述由面部动作编码系统(Facial Action CodingSystem,FACS)定义的面部肌肉运动的一个或多个动作单元(action unit,AU)的数值。例如,恐惧是由:内眉提升(AU1)、外眉提升(AU2)、降眉(AU4)、上睑提升(AU5)、眼睑收紧(AU7)、唇延伸(AU20)和掉颚(AU26)呈现的。因此,用于期望的恐惧操作的驱动信号可以定义为[0.3,0.19,0,0.02,0,1.73,0.56,0.96,0,0,0.03,0,0.63,0,0.75,2.11,0],其中值0表示不存在该AU,而正数表示AU的激活幅度。在进一步的示例中,驱动信号可以从可选的驱动信号生成器301的驱动输入导出。驱动输入可以是包含期望结果的类似对象的图像。例如,对于面部特征操作,驱动信号可以以包括期望面部特征的图像的形式提供。驱动信号中的人脸图像不需要与待操作的人脸图像相同。在这种情况下,驱动信号生成器,例如,用于估计AU的OpenFace,可用于估计对应于驱动输入图像的AU,并提供估计的AU作为驱动信号。在一些进一步的示例中,驱动信号可以是描述期望操作结果的短语。例如,驱动信号可以是“微笑”,指示期望面部操作结果。在这些实施例中,驱动信号生成器可以将输入短语转换为一组相应的AU作为驱动信号。
操作子系统105用于在下采样器操作302中,对输入的原始高分辨率图像进行下采样,以生成低分辨率图像(例如,512×512像素或更小)。下采样器操作302可以使用任何合适的下采样技术来执行,例如最近邻居下采样、双线性下采样、双三次下采样或平均下采样。在一些示例中,下采样器操作302可以使用平均来执行,平均将原始高分辨率图像均匀地划分为大小相等的区域(每个大小相等的区域对应于通过下采样生成的低分辨率图像的相应像素),并对每个区域中的所有像素进行平均,以获得低分辨率图像。
在第一上采样器操作304,对低分辨率图像进行上采样,以生成与原始高分辨率图像具有相同像素大小和尺寸(即,相同分辨率)的低频(例如,模糊)图像。第一上采样器操作304可以使用任何合适的上采样技术来执行,例如最近邻居上采样、双线性上采样或双三次上采样。在一些示例中,第一上采样器操作304可以使用双线性上采样来执行。
在减法运算306中,从原始高分辨率图像中逐个像素减去上采样的低频图像,以获得高频残差图像。高频残差图像可以是具有与原始高分辨率图像的尺寸相对应的尺寸的2D矩阵(例如,高频残差图像可以是具有与原始高分辨率图像相同像素大小和尺寸的2D图像)。高频残差图像中的每个像素对应于原始高分辨率图像中的相应像素。高频残差图像包括原始高分辨率图像的高频分量。高频残差图像提供在下采样和上采样操作中丢失的高频信息。
低分辨率图像也由操作生成器101接收,其细节将在下文进一步讨论。操作生成器101生成低分辨率操作图像并预测运动场。预测的运动场指示低分辨率图像和低分辨率操作图像之间每个像素的水平和垂直位移。运动场的分辨率与低分辨率图像相同。运动场可以被认为在整个低分辨率图像上提供上下文操作信息。
通过第二上采样器操作310对来自操作生成器101的低分辨率操作图像进行上采样,以生成低频操作图像。低频操作图像具有与原始高分辨率图像相同的分辨率。第二上采样器操作310应使用与第一上采样器操作304相同的技术执行上采样(例如,两者都使用双线性上采样)。
由操作生成器101预测的运动场也通过第三上采样器操作312上采样,以产生上调的运动场。上调运动场具有与原始高分辨率图像相同的分辨率。第三上采样器操作312也应使用与第一和第二上采样器操作304相同的技术执行上采样(例如,两者都使用双线性上采样)。
来自操作生成器101的上调运动场和来自减法运算306的高频残差图像由扭曲模块308接收。扭曲模块308将上调运动场中的像素位移应用于高频残差图像,以计算高频操作残差图像,该高频操作残差图像包含具有通常反映低分辨率操作图像的像素位移的高频残差信息。下面提供了关于运动场和扭曲模块308的进一步细节。
在加法运算314中,将高频操作残差图像添加到上调低频操作图像中,从而产生高分辨率操作图像。作为操作子系统105的输出的高分辨率操作图像的分辨率与原始高分辨率图像的分辨率相同。例如,高频操作图像可以被提供给电子设备110的用户和/或存储在电子设备110的数据存储器114中。
操作子系统105可以被理解为从低分辨率图像的操作中推断像素位移信息,并将其应用于高分辨率图像的高频残差,以实现残差像素的高分辨率操作。这样,残差像素以与低分辨率图像相似的方式移位,而不需要通过训练的模型处理大量像素。
图4示出了本发明实施例提供的用于生成低分辨率操作图像的示例性操作生成器101的细节。
操作生成器101基于两阶段粗糙到精细框架,该框架包括:预测运动场的运动网络402,利用该运动网络402,低分辨率图像被扭曲以产生粗糙操作的低分辨率输出;以及精细网络404,将粗糙操作输出精细化以生成最终由操作生成器101输出的低分辨率操作图像。操作生成器101的两个网络可以理解为运动网络402预测运动场,该运动场可以将低分辨率图像扭曲到通过驱动信号定义的期望状态,并且精细网络404将从扭曲生成的粗糙图像精细化,以抑制噪声和伪影,保持颜色一致性,使所得图像更逼真。在本示例中,运动网络402和精细网络404都具有各自的编码器-解码器CNN架构。在一些示例实施例中,输入图像被卷积和下采样两次,由瓶颈层处理,然后去卷积和上采样两次到原始大小。瓶颈层可以由几个残差块组成(例如,6个残差块用于运动网络,4个残差块用于精细网络)。
到操作生成器101的输入是低分辨率图像(来自图3中的下采样器302)和驱动信号(其是到操作子系统105的输入的一部分)。输出低分辨率操作图像的分辨率(像素大小和尺寸)与输入低分辨率图像的分辨率相同。例如,如果输入低分辨率图像的分辨率为128×128像素,则输出低分辨率操作图像的分辨率也为128×128像素。在一些实施例中,驱动信号可以由可选的驱动信号生成器提供,该驱动信号生成器从驱动输入产生驱动信号,例如包含期望操作结果的图像或可以转换为合适的驱动信号(例如,AU)的短语。
首先描述运动网络402的操作。在一些实施例中,驱动信号是定义期望操作的矢量,其可以以包括表达类别和/或AU的各种形式表示。驱动信号被重复并平铺以匹配低分辨率图像的尺寸。例如,对于128×128像素的低分辨率图像,驱动信号可以重复并平铺到128×128×d,其中d是驱动信号在级联到低分辨率图像之前的维数。在一些实施例中,运动网络402具有编码器-解码器CNN架构。为了在运动网络402处生成更多的语义特征图,低分辨率图像被卷积并进一步下采样到甚至更低分辨率特征图(例如,64×64像素或更小)。在一些实施例中,特征图可以被多次下采样(例如,两次或更多次)。下采样操作可以使用任何合适的下采样技术执行,如上所述。例如,下采样操作可以使用与前面描述的第一下采样器操作302相同的技术。下采样器操作的输出作为运动网络402的输入提供,并由多个瓶颈层处理,所述瓶颈层预测操作输入所需的运动场,以产生驱动信号中指示的期望操作结果。运动场可以是与低分辨率图像具有相同分辨率的矩阵,其中运动场的每个矩阵值代表低分辨率图像中每个像素的水平和垂直位移,以便产生驱动信号中指示的期望结果。运动网络402的输出被上采样和去卷积,以提供粗糙输出。执行上采样操作,使得粗糙操作输出与输入到操作生成器101的低分辨率图像的分辨率(例如,128×128像素)匹配。上采样操作可以使用任何合适的上采样技术执行,如上所述。例如,上采样操作可以使用与前面描述的第一和第二上采样器操作304、310相同的技术。然后,来自运动网络402的粗糙输出通过扭曲模块406经历扭曲操作,其中粗糙图像的像素根据运动场中指示的位移值被移位,以产生馈送到精细网络404的粗糙操作输出。
在一些实施例中,运动网络402的最后一层由tanh激活函数限定,以限制在[–1,1]内的层的输出,而不是使层无界。然后将因子乘以估计的运动值,以适应特定的图像大小。运动网络402的每一层都可以使用实例归一化和整流线性单元(Rectified Linear Unit,ReLU)激活函数。
粗糙操作输出被提供作为精细网络404的输入。在一些实施例中,精细网络404也是编码器-解码器CNN架构,其中输入,即粗糙操作图像,被卷积并进一步下采样到甚至更低分辨率的特征图(例如,64×64像素或更少)。在一些实施例中,特征图可以被多次下采样(例如,两次或更多次)。下采样操作可以使用任何合适的下采样技术执行,如上所述。例如,下采样操作可以使用与前面描述的第一下采样器操作302相同的技术。下采样器操作的输出由多个瓶颈层处理。精细层学习以数据驱动的方式改进粗糙初始输出。精细层可以包括神经网络。初始输出始终包含一些伪影。以数据驱动的方式,精细网络自动学习如何改进初始输出结果。精细网络404的瓶颈层的输出被上采样和去卷积,以提供低分辨率操作图像。执行上采样操作,使得粗糙操作输出与输入到操作生成器101的低分辨率图像的分辨率(例如,128×128像素)匹配。上采样操作可以使用任何合适的上采样技术执行,如上所述。例如,上采样操作可以使用与前面描述的第一和第二上采样器操作304、310相同的技术。
在一些实施例中,精细网络404中的每一层使用没有归一化层的指数线性单元(Exponential Linear Unit,ELU)来保持粗糙操作图像和低分辨率操作图像之间的颜色一致性,因为发现ReLU和归一化层会减小颜色一致性。由精细网络404处理的所有图像的像素值在[–1,1]的范围内。
图5为本发明实施例提供的由操作子系统105B执行的用于操作高分辨率图像的操作的框图。图5的操作子系统105B是图3的操作子系统105的变型。
在图5的操作子系统105B中,原始高分辨率图像的分解遵循拉普拉斯金字塔(Laplacian Pyramid),在拉普拉斯金字塔中,原始高分辨率图像的分解在产生尺寸分解的表示的金字塔(例如,带通图像与对应数量的残差图像分开八度)的多个下采样步骤中执行。当原始高分辨率图像被连续下采样时,每个阶段的下采样图像生成对应的残差图像。最低分辨率图像作为输入提供给操作生成器101,以生成最低分辨率操作图像和预测运动场。然后,对最低分辨率的图像和运动场依次上采样。在每个上采样阶段,上采样的低频图像被添加到由在对应的下采样阶段产生的残差图像生成的具有相同分辨率的扭曲高频残差图像中,该残差图像通过上采样运动场扭曲。递归地继续上采样和与高频操作图像的组合,直到操作图像恢复到与原始高分辨率图像相同的分辨率。应当理解,除了上面具体提到的区别之外,图5的操作子系统105B的细节可以与图3的操作子系统105基本上相同。还应理解,虽然示出了下采样/上采样阶段的三个阶段,但它们旨在说明示例性实施例,而不是限制。下采样和对应的上采样阶段的数量可以从两个到多个变化,这取决于原始高分辨率图像的分辨率、可用计算资源等因素。
操作子系统105B接收原始高分辨率图像作为输入。例如,原始高分辨率图像可以是由电子设备110捕获的照片或视频帧。例如,原始高分辨率图像的原始分辨率可以为R。原始高分辨率图像的原始分辨率R可以是1024×1024像素、至多4K分辨率或更高。操作子系统105B还接收驱动信号作为输入。驱动信号表示图像的期望操作。驱动信号可以包含定义期望操作结果的动作单元(Action Unit,AU),或者可以由驱动信号生成器301生成,如关于图3所述,从驱动信号中生成。
操作子系统105B用于在下采样器操作502A中,对输入的原始高分辨率图像进行下采样,以生成分辨率为R/n的第一低分辨率图像503A,其中,n是下采样因子。不像在操作子系统105中那样将原始高分辨率图像下采样到输入到操作生成器101中的最低分辨率图像,而是增量地下采样原始高分辨率图像。作为非限制性示例,在下采样器操作502A之后,1024×1024像素的原始高分辨率图像可以通过因子2(n=2)被下采样到512×512像素低分辨率图像。下采样器操作502A可以使用任何合适的下采样技术来执行,例如最近邻居下采样、双线性下采样、双三次下采样或平均下采样。在一些示例中,下采样器操作502A可以使用平均来执行,平均将原始高分辨率图像均匀地划分为大小相等的区域(每个大小相等的区域对应于通过下采样生成的第一低分辨率图像503A的相应像素),并对每个区域中的所有像素进行平均,以获得第一低分辨率图像503A。
在上采样器操作504A中,对第一低分辨率图像503A进行上采样,以生成与原始高分辨率图像具有相同分辨率(R分辨率)的第一低频(例如,模糊)图像505A。上采样器操作504A可以使用任何合适的上采样技术来执行,例如最近邻居上采样、双线性上采样或双三次上采样。在一些示例中,上采样器操作504A可以使用双线性插值来执行。
在减法运算506A中,从原始高分辨率图像中逐个像素减去上采样的第一低频图像505A,以获得分辨率为R的第一高频残差图像507A。高频残差图像可以是具有与原始高分辨率图像的尺寸相对应的尺寸的2D矩阵(例如,高频残差图像可以是具有与原始高分辨率图像相同分辨率的2D图像)。第一高频残差图像507A中的每个像素对应于原始高分辨率图像中的相应像素。第一高频残差图像507A包括原始高分辨率图像的高频分量。第一高频残差图像507A提供在下采样和上采样操作502A和504A中丢失的高频信息。第一高频残差图像507A可以临时存储在数据存储器114中的存储器或高速缓存中。
在下采样器操作502B中,进一步对第一低分辨率图像503A进行下采样,以生成分辨率为R/n2的第二低分辨率图像503B。作为非限制性示例,在下采样器操作502B之后,具有1024×1024像素分辨率的原始高分辨率图像(所述图像已经被下采样为具有512×512像素分辨率的第一低分辨率图像503A)可以进一步下采样为具有256×256像素分辨率的第二低分辨率图像503B。下采样器操作502B可以使用与下采样器操作502A相同的技术(例如,两者都使用邻居平均)来执行。
在上采样器操作504B中,对第二低分辨率图像503B进行上采样,以生成与分辨率为R/2的第一低分辨率图像503A具有相同分辨率的第二低频(例如,模糊)图像505B。上采样器操作504B可以使用与上采样器操作504A相同的技术(例如,两者都使用双线性插值)执行。
在减法运算506B中,从低分辨率图像503A中逐个像素减去上采样的第二低频图像505B,以获得分辨率为R/2的第一中等高频残差图像507B。第一中等高频残差图像507B可以是具有与第一低分辨率图像503A的尺寸相对应的尺寸的2D矩阵(例如,高频残差图像可以是具有与第一低分辨率图像503A相同分辨率的2D图像)。第一中等高频残差图像507B中的每个像素对应于第一低分辨率图像503A中的相应像素。第一中等高频残差图像507B包括第一低分辨率图像503A的高频分量。第一中等高频残差图像507B提供在下采样和上采样操作502B和504B中丢失的高频信息。第一中等高频残差图像507B可以临时存储在数据存储器114中的存储器或高速缓存中。
在下采样器操作502C中,进一步对第二低分辨率图像503B进行下采样,以生成分辨率为R/n3的第三低分辨率图像503C。作为非限制性示例,在下采样之后,具有1024×1024像素分辨率的原始高分辨率图像已经被下采样到具有512×512像素分辨率的第一低分辨率图像503A,可以进一步下采样到具有256×256像素的第二低分辨率图像503B在下采样器操作502C之后,可以进一步下采样器操作502B到128×128像素。下采样器操作502C可以使用与下采样器操作502A和502B相同的技术(例如,两者都使用邻居平均)来执行。
在上采样器操作504C中,对第三低分辨率图像503C进行上采样,以生成与分辨率为R/n3的第二低分辨率图像503B具有相同分辨率的第三低频(例如,模糊)图像505C。上采样器操作504C可以使用与上采样器操作504A和504B相同的技术(例如,使用双线性插值)执行。
在减法运算506C中,从低分辨率图像503B中逐个像素减去上采样的第三低频图像505C,以获得分辨率为R/n3的第二中等高频残差图像507C。第二中等高频残差图像507C可以是具有与第二低分辨率图像503B的尺寸相对应的尺寸的2D矩阵(例如,高频残差图像可以是具有与第二低分辨率图像503B相同分辨率的2D图像)。第二中等高频残差图像507C中的每个像素对应于第二低分辨率图像503B中的相应像素。第二中等高频残差图像507C包括第二低分辨率图像503B的高频分量。第二中等高频残差图像507C提供在下采样和上采样操作502C和504C中丢失的高频信息。
第三低分辨率图像503C连同驱动信号由操作生成器101接收。操作生成器101生成低分辨率操作图像503C*并预测运动场,两者都具有R/n3的分辨率。低分辨率操作图像503C*具有与第三低分辨率图像503C相同的分辨率R/n3。预测的运动场指示低分辨率图像503C和低分辨率操作图像之间每个像素的水平和垂直位移。运动场具有与第三低分辨率图像503C相同的分辨率R/n3。运动场可以被认为在整个第三低分辨率图像503C上提供上下文操作信息。
通过上采样器操作508A对来自操作生成器101的低分辨率操作图像503C*进行上采样,以生成第一中等低频操作图像509A。第一中等低频操作图像509A具有与第二低分辨率图像503B相同的分辨率,分辨率为R/n2(例如,从128×128像素上调到256×256像素)。上采样器操作508A应使用与上采样器操作504A、504B和504C(统称为上采样器操作504,例如,使用双线性上采样)相同的技术执行上采样。
由操作生成器101预测的运动场也通过上采样器操作510A上采样,以产生上调的运动场511A。上调运动场511A具有与第二低分辨率图像503B相同的分辨率,分辨率为R/n2(例如,在与上述相同的示例之后为256×256像素)。上采样器操作510A也应使用与上采样器操作504相同的技术执行上采样(例如,使用双线性上采样)。
扭曲模块512A接收来自减法运算506C的上调运动场511A和第二中等高频残差图像507C。扭曲模块512A将上调运动场511A中的像素位移施加到第二中等高频残差图像507C,以计算具有分辨率为R/n2的第一中等高频操作残差图像513A,所述第一中等高频操作残差图像513A包括具有像素位移的高频残差信息,所述像素位移通常反映低分辨率操作图像的像素位移。
在加法运算514A中,将第一中等高频操作残差图像513A添加到上调的第一中等低频操作图像509A中,产生第一中等分辨率操作图像515A。第一中等分辨率操作图像515A的分辨率与第二低分辨率图像503B的分辨率相同,分辨率为R/n2(例如,在上述相同的示例之后为256×256像素)。
通过上采样器操作508B对第一中等分辨率操作图像515A进行上采样,以生成第二中等低频操作图像509B。第二中等低频操作图像509B具有与第一低分辨率图像503A相同的分辨率,分辨率为R/n(例如,在上述相同的示例之后,从256×256像素上调到512×512像素)。上采样器操作508B应使用与上采样器操作508A和504相同的技术执行上采样(例如,使用双线性上采样)。
通过上采样器操作510B进一步上采样上调运动场511A,以生成上调运动场511B。上调运动场511B具有与第一低分辨率图像503A相同的分辨率,分辨率为R/n。上采样器操作510B也应使用与上采样器操作504和510A相同的技术执行上采样(例如,使用双线性上采样)。
扭曲模块512B接收来自减法运算506B的上调运动场511B和第一中等高频残差图像507B。扭曲模块512B将上调运动场511B中的像素位移施加到第一中等高频残差图像507B,以计算具有分辨率为R/n的第二中等高频操作残差图像513B,所述第二中等高频操作残差图像513B包括具有像素位移的高频残差信息,所述像素位移通常反映低分辨率操作图像的像素位移。
在加法运算514B中,将第二中等高频操作残差图像513B添加到第二中等低频操作图像509B中,产生第二中等高分辨率操作图像515B。第二中等高分辨率操作图像515B的分辨率与第一低分辨率图像503A的分辨率相同,分辨率为R/n(例如,在上述相同的示例之后为512×512像素)。
通过上采样器操作508C对第二中等高分辨率操作图像515B进行上采样,以生成低频操作图像509C。第二中等低频操作图像509B具有与原始高分辨率图像相同的分辨率,分辨率为R(例如,在上述相同的示例之后,从512×512像素上调到1024×1024像素)。上采样器操作508C应使用与上采样器操作508A、508B和504相同的技术执行上采样(例如,使用双线性上采样)。
通过上采样器操作510C进一步上采样上调运动场511B,以生成上调运动场511C。上调运动场511C具有与原始高分辨率图像相同的分辨率,分辨率为R(例如,在与上述相同的示例之后为1024×1024像素)。上采样器操作510C应使用与上采样器操作504、510A和510B相同的技术执行上采样(例如,使用双线性上采样)。
扭曲模块512C接收来自减法运算506A的上调运动场511C和第一高频残差图像507A。扭曲模块512C将上调运动场511C中的像素位移应用于第一高频残差图像507A,以计算分辨率为R的高频操作残差图像513C,该高频操作残差图像包含具有通常反映低分辨率操作图像的像素位移的高频残差信息。
在加法运算514C中,将高频操作残差图像513C添加到低频操作图像509C中,从而产生高分辨率操作图像520。作为操作子系统105B的输出的高分辨率操作图像的分辨率与原始高分辨率图像的分辨率相同,分辨率为R。例如,高分辨率操作图像520可以被提供给电子设备110的用户和/或存储在电子设备110的数据存储器114中。
虽然在上面的示例中描述了2、4和8的渐进式下采样和上采样因子,但这只是作为一个非限制性示例,仅用于说明目的。在其它示例中可以使用其它下采样和上采样因子。类似地,尽管描述了比例因子中的指数级数,其中在给定步骤或阶段处的下采样或上采样因子是ni,其中,n是比例因子,i是下采样或上采样操作中的第i步或阶段,但这只是作为一个非限制性示例,仅用于说明目的。比例因子中的其它级数可用于其它示例。
应当理解,虽然操作子系统105B的组件,例如扭曲模块512A、512B和512C,被示为单独的组件,但它们可以是相同的模块。
再次参考图4。现在讨论操作生成器101的训练。使用两个判别器418A和418B以及损失计算操作420训练操作生成器101。
在本发明的一个实施例中,训练目标包括五个术语,即对抗损失、驱动损失、扭曲损失、精细损失和周期损失。对抗损失可以迫使生成的低分辨率操作图像的图像集合上的概率分布与原始高分辨率图像的分布一致。例如,可能有数百万张代表人们脸的图像。每个图像都被认为是这数百万图像分布中的一个样本。驱动损失是为了确保低分辨率操作图像与驱动信号中识别的期望操作之间的一致性。扭曲损失是为了确保粗糙操作图像和驱动信号中识别的期望操作之间的一致性。精细损失是为了确保低分辨率操作图像和粗糙操作图像之间的一致性。周期损失用于确保输入低分辨率图像可以通过使用精细网络404中的最深特征图作为驱动信号从低分辨率操作图像中恢复。
使用作用于生成的低分辨率图像的判别器418A和作用于生成的粗糙操作图像的判别器418B来训练操作生成器101。判别器418A接收低分辨率图像作为输入,并预测两个对数:对图像的真实感进行评级的对抗对数,以及将输入图像(例如,低分辨率操作图像)映射到对应的驱动信号的驱动对数。对抗损失是基于具有梯度惩罚(gradient penalty,GP)的Wasserstein GAN(WGAN)。判别器418A的对抗损失表示为:
其中,Dr表示判别器418A,是判别器418A的对抗对数;I、(G(I,ct)和/>分别是真实图像(例如,用于训练数据的低分辨率图像)、生成图像(例如,低分辨率操作图像)以及它们之间的插值;/>和/>分别是I和驱动信号ct的对应分布;σ是梯度惩罚项的系数,其示例性值可以设置为10。
驱动损失由损失计算运算420计算。驱动损失是由神经网络预测的输出(例如,低分辨率操作图像)与目标值(例如,由驱动信号定义的期望操作)之间的绝对差值的计算。在训练期间使用驱动损失来训练操作生成器101以产生与期望操作一致的输出。判别器418A的驱动损失确定如下:
其中,是从判别器418A/>生成的地面真值cs和对抗对数之间的差异的度量。根据驱动信号的形式,/>可能会有所不同。在驱动信号是AU的一些示例性实施例中,交叉熵用作/>以指示表达式类别的差异和均方误差(mean squared error,MSE)以测量AU的距离。
基于上述,使用以下损失函数训练判别器418A:
其中,λdrv和λadv分别是驱动损失和对抗损失项的系数。λdrv和λadv的示例性值分别为1.0和1.0。
判别器418B从扭曲模块406接收粗糙操作图像作为输入,试图将图像映射到对应的驱动信号。判别器418B将图像映射到驱动信号。这样检查了信号是否与给定的驱动信号匹配。如果匹配,则意味着图像成功扭曲以实现期望输出。因此,运动网络402通过写为以下等式的驱动损失被训练:
其中,Dw表示判别器418B,是地面真驱动信号cs和由判别器418BDw(I)预测的驱动信号对数之间的差异的度量。如果扭曲图像达到期望输出,则这两个驱动信号应匹配。
整个操作生成器101的对抗损失定义如下:
此外,周期损失(也称为重建损失),以确保预测与原始高分辨率图像的一致性。在一些实施例中,L1损失(也称为L1范数损失)用于计算周期损失,以鼓励更清晰的图像结果。L1损失是神经网络预测的输出与目标值之间的绝对差值的计算。周期损失写为:
ladv=|G(G(I,ct),cs)-I|
其中,|.|是生成图像和输入图像I之间的L1损失运算,G(I,ct)是基于输入图像I和驱动信号ct的生成图像,G(G(I,ct),cs)是根据生成图像G(I,ct)和地面真值cs生成的图像。
此外,驱动损失和扭曲损失确保预测(例如,粗糙操作图像和低分辨率操作图像)与驱动信号ct的一致性。驱动损失和扭曲损失分别写为:
其中,Or是低分辨率操作图像,Ow是粗糙操作图像,是两者之间差异的度量,如MSE。
精细损失确保对粗糙预测Ow的最小修改,以推导精细预测Or。精细损失写为:
lref=|Ow-Or|
其中,|.|是L1损失运算。通过最大限度地提高作为扭曲结果的操作,使得运动和外观完全解耦,并且因此运动场与低频和高频分量很好地对齐,精细损失可能是有利的。精细损失可以进一步有利地最小化由精细化引起的颜色方差,以避免图像缺陷,例如颜色闪烁,并且因此可以提高生成的图像序列的时间一致性。
运动网络402和精细网络404同时被训练为操作生成器101的一部分。整个操作生成器101的损失表示为lg,被定义为上述五个损失的加权和,如下所示:
lg=λcyc lcyc+λadv ladv+λdrv ldrv+λwarp lwarp+λreflref
其中,λcyc、λadv、λdrv、λwarp和λref是每个损失项的系数。在一些示例性实施例中,系数被设置为λcyc=10、λadv=1、λdrv=1、λwarp=0.5,并且λref=1.0是对抗损失的系数(例如,β=10–4)。应当理解,本发明中的周期损失和重建损失是相同的损失。在训练中,值10用作训练中的示例值。系数(权重)通常称为超参数,不需要是固定值。根据训练数据集,可能需要更改权重。在一些示例中,可以从经验上找到最佳值。
图6为用于训练操作生成器101的示例性训练方法600的流程图。图7示出了可用于实现训练方法600的示例性算法的伪代码700。例如,方法600可以由图1所示的训练设备120执行。图6和图7将一起描述。需要说明的是,操作生成器101与判别器418A和418B一起训练(根据GAN框架),然而判别器418A和418B可以不用于应用阶段。
方法600可以从初始化步骤(图6中未示出)开始,例如如示例性伪代码700的行702所示。可以执行初始化以初始化临时缓冲器,例如,临时缓冲器将用于存储训练中使用的值,如计算出的损失。还可以执行初始化以初始化判别器418A和418B(在图7中分别表示为Dr和Dw)和操作生成器101(在图7中表示为G)的权重。
在602中,判别器418A和418B被训练用于定义迭代的数量(例如,5个迭代)。在这个示例中,判别器418A和418B都被训练为操作生成器101的每次训练迭代的定义数量的迭代。在其它示例中,判别器418A和418B可以在操作生成器101的每个训练迭代中仅训练一个迭代。用于训练判别器418A和418B的迭代可以使用for循环执行,例如,如伪码700的行706所示。
例如,判别器418A和418B的每个训练迭代可以使用步骤604至610执行。
在604中,从训练数据中采样批图像I。在这种情况下,训练数据是低分辨率图像(例如,大小为128×128像素或更小的图像),例如,可以从图1的数据库130随机采样。伪代码700的行708的执行导致从训练数据中采样表示为I的一批图像,用于批训练。在伪码700的行710中,从批I中相应图像的训练数据中随机采样一组表示为ct的驱动信号。
在606中,低分辨率图像和驱动信号被提供作为操作生成器101的输入,并且低分辨率操作图像被获得作为来自操作生成器101的输出。在正在执行批训练的情况下,操作生成器101的输入是待应用的一批低分辨率图像和一组相应的随机采样驱动信号,并且输出是一组相应的低分辨率操作图像,表示为Or(例如,参见伪代码700的行712)。
在608中,计算与精细网络关联的判别器的判别器损失,并用于更新判别器418A的权重。表示为的判别器损失可以如上所述计算。
在610中,计算与运动网络的扭曲模块关联的判别器的鉴别器损失,并用于更新判别器418B的权重。表示为的判别器损失可以如上所述计算。
例如,伪代码700的行714至716示出了执行以获得(其是原始采样训练数据图像I和预测的低分辨率图像/>之间的插值)的示例性指令,所述示例指令用于计算判别器损失和/>然后,伪代码的行718和720计算判别器损失/>和/>并分别更新判别器418A和418B的权重(例如,使用梯度惩罚)。
如果判别器训练已经完成了定义的迭代次数(例如,五个迭代),则方法600在步骤612继续训练操作生成器。否则,方法600返回到步骤602,以对判别器418A和418B执行另一个训练迭代。
在步骤612中,训练操作生成器101,直到操作生成器101收敛(例如,操作生成器101的权重收敛)。可以为每个训练迭代检查收敛性,例如通过计算损失梯度或通过计算权重梯度,并与定义的收敛阈值进行比较。用于训练操作生成器101的迭代可以使用while循环执行,例如,如伪码700的行704所示。
例如,操作生成器101的每个训练迭代可以使用步骤614至618执行。
在614中,类似于步骤604,对训练数据进行采样。为了一致性,判别器418A、418B的训练数据和操作生成器101的训练数据可以从相同的数据库中采样,并使用相同的采样方法。在这种情况下,训练数据是低分辨率图像(例如,大小为128×128像素或更小的图像),例如,可以从图1的数据库130随机采样。采样的训练数据还可以包括待应用于采样图像的驱动信号。在其它示例中,驱动信号可以在训练期间随机生成,如上所述。伪代码700的行724的执行导致从训练数据中采样表示为I的一批图像,用于批训练。在伪代码700的行726中,为批I中的相应图像采样一组随机驱动信号,表示为ct。
在616中,低分辨率图像和驱动信号被提供作为操作生成器101的输入,并且低分辨率操作图像被获得作为来自操作生成器101的输出。在正在执行批训练的情况下,操作生成器101的输入是待应用的一批低分辨率图像和一组相应的采样驱动信号,并且输出是一组相应的低分辨率操作图像,表示为Or(例如,参见伪代码700的行728)。
在618中,计算生成器损失并用于更新操作生成器器101的权重。表示为lg的生成器损失可以根据如上所述的损失函数计算。然后,伪代码的行730计算生成器损失lg,并更新操作生成器101的权重(例如,使用梯度惩罚)。
如果操作生成器101已经充分收敛,则方法600在步骤620继续存储经过训练的权重。否则,方法600返回到步骤602。
在620中,如果操作生成器101已经收敛,则存储经过训练的权重,并且操作生成器101被认为已经被充分训练用于应用。
然后,经过训练的操作生成器101可以由图1的电子设备110使用,作为操作子系统105的一部分。如上所述,操作子系统105可以使用经过训练的操作生成器101来执行高分辨率图像的操作。
图8是示出使用经过训练的操作生成器101来操作高分辨率图像的示例性方法800的流程图。例如,方法800可以由图1中所示的电子设备110执行。
在802中,接收原始高分辨率图像(例如,大小为1024×1024像素的图像、4K分辨率图像、8K分辨率图像或更高分辨率的图像)以进行操作。还接收指示期望操作结果的驱动信号。例如,原始高分辨率图像可以是存储在电子设备110的数据存储器114中并由用户选择用于编辑的照片或一组视频帧(例如,视频的一段)。驱动可以由用户定义(例如,通过用户使用电子设备提供的用户界面手动创建驱动信号)。驱动信号可以是定义期望操作结果的AU、包含期望操作结果的图像或描述操作结果的文本短语。
在804中,对原始高分辨率图像进行下采样(例如,通过图3的第一下采样器操作302),以获得待操作的低分辨率图像(例如,大小为128×128像素或更小的图像)。
在806中,经过训练的操作生成器101用于生成低分辨率操作图像和运动场,如上所述。经过训练的操作生成器101的输入是低分辨率图像和驱动信号,从经过训练的操作生成器101输出的低分辨率操作图像与输入的低分辨率图像具有相同的分辨率。运动场表示从低分辨率图像到低分辨率操作图像的像素位移,以满足由驱动信号指示的期望操作结果。
在808中,从原始高分辨率图像计算高频残差图像。例如,所述步骤可以通过使用上采样器操作304对低分辨率图像进行上采样,并从原始高分辨率图像中减去所得低频图像(见图3或图5)来执行。
在810中,来自操作生成器101的运动场用于(例如,由图3或图5的扭曲模块308)生成包含高频残差信息的高频操作残差图像。如上所述,通过对从操作生成器101生成的运动场进行上采样来生成高频操作残差图像。然后,通过根据在上采样运动场中识别的像素位移信息移位高频残差图像中的每个像素,使高频残差图像扭曲。
在812中,高频操作残差图像与从步骤806中生成的低分辨率操作图像生成的低频操作图像组合。例如,使用图3的加法运算314将高频残差图像与低频残差图像组合。例如,可以使用图3的上采样器操作310的上采样从低分辨率操作图像生成低频操作图像。
在图3的示例性实施例中,输入图像的下采样、运动场和低分辨率操作图像的上采样以及上采样运动场的扭曲各自执行一次。在图5的示例性实施例中,上述步骤可以以逐步方式执行,其中输入图像在多个中间步骤中被连续下采样到最低分辨率。在每个中间步骤中,生成高频残差图像,并使用上采样到相同像素分辨率的运动场扭曲。扭曲的图像被添加到低频操作图像中,从低分辨率操作图像上采样到相同的像素分辨率。重复这些步骤,直到高分辨率操作图像与原始高分辨率图像的像素分辨率匹配。
组合的结果是高分辨率操作图像,该图像在步骤814中输出。例如,高分辨率操作图像可以保存到图1的电子设备110的数据存储器114,和/或通过电子设备110的输出设备(例如显示器)输出给用户。
在各种示例中,本发明描述了用于操作高分辨率图像的方法和系统。在一些示例中,所公开的方法和系统可用于操作大至8K分辨率(或更大)的图像。所公开的方法和系统可以实现高分辨率图像的操作,与其它现有的基于规则或基于机器学习的技术相比,具有更高质量的输出。
在各种评估测试中,已经发现本发明的示例使用比用于高分辨率图像处理的其它一些现有的基于机器学习的图像处理技术更少的计算资源来执行高分辨率图像处理,具有更好或可比的输出质量。
此外,测试发现,本发明的示例可以改善在操作或动画制作图像期间的时间一致性,这可能有助于为视频序列提供令人满意的图像质量。
此外,测试还发现,本发明的示例能够操作大型高分辨率图像(例如,大小为1024×1024像素的图像),由于消费级GPU中的存储器资源的限制,这是不可能使用一些其它现有的基于机器学习的操作技术的。
与一些其它现有的基于机器学习的图像处理技术相比,本发明的方法和系统中的操作生成器使用低分辨率图像进行训练,这显著减轻了对包括高分辨率图像(或超高分辨率图像)的训练数据集的要求。还需要说明的是,由于操作生成器不需要使用与预期应用输入相同或更高分辨率的图像进行训练,因此在应用训练的操作生成器期间要操作的图像的分辨率可以不受训练操作生成器的数据的限制。
本领域普通技术人员可以意识到,结合本发明中所公开的实施例描述的各个示例,可以通过电子硬件或计算机软件与电子硬件的组合来实现单元和算法步骤。这种功能是通过硬件还是软件执行的,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定应用使用不同方法来实现所描述的功能,但是这种实现方式不应认为超出本发明的范围。
熟练技术人员可以清楚地理解,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
应理解,所公开的系统和方法可以以其它方式实现。作为分立部分描述的单元可以是物理上分开的,也可以不是物理上分开的,作为单元显示的部分可以是物理单元,也可以不是物理单元,可以位于一个位置,也可以分布在多个网络单元上。可以根据实际需要选择部分或全部单元,以实现实施例的方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
当这些功能通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以将这些功能存储在计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来。该软件产品存储在一个存储介质中,包括若干指令用以指示一台计算机设备(可以是个人计算机、服务器或网络设备)执行本申请各个实施例所述方法的全部或部分步骤。上述存储介质包括任何可以存储程序代码的介质,例如通用串行总线(universal serialbus,USB)闪存驱动器、可移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁盘或光盘等。
以上描述仅为本申请具体实现方式,并不用于限制本申请的保护范围。在本发明所公开的技术范围内,本领域技术人员可以想到的变化或替换都应涵盖在本发明的保护范围内。
Claims (20)
1.一种在电子设备中执行的用于高分辨率图像操作的方法,其特征在于,所述方法包括:
获取待操作的原始高分辨率图像和指示操作的驱动信号;
对所述原始高分辨率图像进行下采样,获取待操作的低分辨率图像;
使用经过训练的操作生成器,根据所述驱动信号,从所述低分辨率图像生成低分辨率操作图像和运动场,其中,所述运动场表示所述低分辨率图像的像素位移,以获取所述驱动信号指示的所述操作;
从所述原始高分辨率图像计算高频残差图像;
使用所述运动场和所述高频残差图像生成高频操作残差图像;
输出至少所述高频操作残差图像和低频操作图像的组合作为高分辨率操作图像,其中,所述低频操作图像是通过上采样从所述低分辨率操作图像生成的。
2.根据权利要求1所述的方法,其特征在于,所述操作生成器包括运动网络和精细网络,所述运动网络从所述低分辨率图像生成粗糙操作输出,所述粗糙操作输出和所述低分辨率图像作为输入提供给所述精细网络,以输出具有比所述粗糙操作输出和所述精细运动场更少的视觉伪影的所述低分辨率操作图像。
3.根据权利要求1或2所述的方法,其特征在于,所述驱动信号是定义由指定所述操作的面部动作编码系统(Facial Action Coding System,FACS)定义的面部肌肉运动的动作单元(Action Unit,AU)、显示所述操作的图像和描述所述操作的文本短语中的任何一个。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述生成所述高分辨率操作残差图像还包括:
将所述运动场从所述低分辨率图像的分辨率上采样到所述原始高分辨率图像的分辨率;
将在所述上采样运动场中定义的像素位移应用于所述高分辨率残差图像。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述计算所述高分辨率残差图像还包括:
对所述低分辨率图像进行上采样,获取低频图像;
从所述原始高分辨率图像中逐个像素减去所述低频图像,获取所述高分辨率残差图像。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述操作生成器是使用低分辨率图像作为训练数据进行训练的经过训练的生成器网络。
7.根据权利要求6所述的方法,其特征在于,所述训练数据包括待应用于所述低分辨率图像的随机采样驱动信号。
8.根据权利要求6或7所述的方法,其特征在于,所述操作生成器使用损失函数训练,其中,所述损失函数是对抗损失、周期损失、驱动损失、精细损失和扭曲损失的加权和。
9.根据权利要求8所述的方法,其特征在于,所述精细损失定义为:
lref=|Ow-Or|
其中,|.|是粗糙操作图像预测和精细操作图像预测之间的L1损失运算。
10.根据权利要求1至9中任一项所述的方法,其特征在于,还包括:
通过一个或多个中等低分辨率图像将所述原始高分辨率图像下采样为所述低分辨率图像,其中,所述至少一个中等低分辨率图像的中等分辨率小于所述原始高分辨率图像的高分辨率且大于所述低分辨率图像的低分辨率;
从所述一个或多个中等低分辨率图像中的每一个计算中等高频残差图像;
使用所述运动场,从每个中等高频残差图像生成中等高频操作残差图像;
通过上采样,从每个中等高频操作残差图像生成中等低频操作图像;
使用所述中等高频操作残差图像和中等低频操作图像生成中等高分辨率操作图像,其中,所述中等低频操作图像是通过上采样从所述较低中等分辨率中的中等低分辨率操作图像生成的。
11.一种电子设备,其特征在于,包括:
处理器,用于执行指令以使所述设备进行以下操作:
获取待操作的原始高分辨率图像和指示操作的驱动信号;
对所述原始高分辨率图像进行下采样,获取待操作的低分辨率图像;
使用经过训练的操作生成器,从所述低分辨率图像生成低分辨率操作图像和运动场,其中,所述运动场表示像素位移,以满足所述驱动信号指示的所述操作;
从所述原始高分辨率图像计算高频残差图像;
使用所述运动场和所述高频残差图像生成高频操作残差图像;
输出至少所述高频操作残差图像和低频操作图像的组合作为高分辨率操作图像,其中,所述低频操作图像是通过上采样从所述低分辨率操作图像生成的。
12.根据权利要求11所述的电子设备,其特征在于,所述操作生成器包括运动网络和精细网络,所述运动网络从所述低分辨率图像生成粗糙操作输出,所述粗糙操作输出和所述低分辨率图像作为输入提供给所述精细网络,以输出具有比所述粗糙操作输出和所述精细运动场更少的视觉伪影的低分辨率操作图像。
13.根据权利要求11或12所述的电子设备,其特征在于,所述驱动信号是定义由指定所述操作的面部动作编码系统(Facial Action Coding System,FACS)定义的面部肌肉运动的动作单元(Action Unit,AU)、显示所述操作的图像和描述所述操作的文本短语中的任何一个。
14.根据权利要求11至13中任一项所述的电子设备,其特征在于,所述处理器用于执行指令,使所述设备通过以下方式生成所述高分辨率操作残差图像:
将所述运动场从所述低分辨率图像的分辨率上采样到所述原始高分辨率图像的分辨率;
将在所述上采样运动场中定义的像素位移应用于所述高分辨率残差图像。
15.根据权利要求11至14中任一项所述的电子设备,其特征在于,所述处理器用于执行指令,使所述设备通过以下方式进一步计算所述高分辨率残差图像:
对所述低分辨率图像进行上采样,获取低频图像;
从所述原始高分辨率图像中逐个像素减去所述低频图像,获取所述高分辨率残差图像。
16.根据权利要求11至15中任一项所述的电子设备,其特征在于,所述操作生成器是使用低分辨率图像作为训练数据进行训练的经过训练生成器网络,其中,所述训练数据还包括待应用于所述低分辨率图像的随机采样驱动信号。
17.根据权利要求11或16中任一项所述的电子设备,其特征在于,所述操作生成器使用损失函数训练,其中,所述损失函数是对抗损失、周期损失、驱动损失、精细损失和扭曲损失的加权和。
18.根据权利要求17所述的设备,其特征在于,所述精细损失定义为:
lref=|Ow-Or|
其中,|.|是粗糙操作图像预测和精细操作图像预测之间的L1损失运算。
19.根据权利要求11至18中任一项所述的电子设备,其特征在于,所述处理器还用于执行指令,使所述设备进行以下操作:
通过至少一个中等低分辨率图像将所述原始高分辨率图像下采样为所述低分辨率图像,其中,所述至少一个中等低分辨率图像的中等分辨率小于所述原始高分辨率图像的高分辨率且大于所述低分辨率图像的低分辨率;
从所述一个或多个中等低分辨率图像中的每一个计算中频残差图像;
使用所述运动场和较低中等分辨率中的所述中频残差图像生成中频操作残差图像;
使用较低中等分辨率中的中分辨率操作图像生成中等低频操作图像;
使用所述中频操作残差图像和中等低频操作图像生成中分辨率操作图像,其中,所述中等低频操作图像是从所述较低中间分辨率中的中等低分辨率操作图像生成的。
20.一种非瞬时性机器可读存储介质,其特征在于,所述非瞬时性机器可读存储介质上具有有形地存储的可执行指令,用于由电子设备的处理器执行,其中,所述可执行指令响应于所述处理器执行时,使得所述电子设备进行以下操作:
获取待操作的原始高分辨率图像和指示操作的驱动信号;
对所述原始高分辨率图像进行下采样,获取待操作的低分辨率图像;
使用经过训练的操作生成器,从所述低分辨率图像生成低分辨率操作图像和运动场,其中,所述运动场表示像素位移,以满足所述驱动信号指示的所述操作;
从所述原始高分辨率图像计算高频残差图像;
使用所述运动场和所述高频残差图像生成高频操作残差图像;
输出至少所述高频操作残差图像和低频操作图像的组合作为高分辨率操作图像,其中,所述低频操作图像是通过上采样从所述低分辨率操作图像生成的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/367,524 | 2021-07-05 | ||
US17/367,524 US11915383B2 (en) | 2021-07-05 | 2021-07-05 | Methods and systems for high definition image manipulation with neural networks |
PCT/CN2022/099312 WO2023279936A1 (en) | 2021-07-05 | 2022-06-17 | Methods and systems for high definition image manipulation with neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117651965A true CN117651965A (zh) | 2024-03-05 |
Family
ID=84801245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280047777.6A Pending CN117651965A (zh) | 2021-07-05 | 2022-06-17 | 使用神经网络的高清图像操作方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11915383B2 (zh) |
CN (1) | CN117651965A (zh) |
WO (1) | WO2023279936A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220067879A1 (en) * | 2020-09-03 | 2022-03-03 | Nvidia Corporation | Image enhancement using one or more neural networks |
US20230025778A1 (en) * | 2021-07-22 | 2023-01-26 | Qualcomm Incorporated | Motion compensation for neural network enhanced images |
US11967178B2 (en) * | 2022-04-26 | 2024-04-23 | Microsoft Technology Licensing, Llc | Progressive transformation of face information |
CN116524569A (zh) * | 2023-05-10 | 2023-08-01 | 深圳大器时代科技有限公司 | 一种基于归类算法的多并发人脸识别系统及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10325395B2 (en) | 2016-01-20 | 2019-06-18 | Facebook, Inc. | Techniques for animating stickers with sound |
CN106651766A (zh) | 2016-12-30 | 2017-05-10 | 深圳市唯特视科技有限公司 | 一种基于深度卷积神经网络的图像风格迁移方法 |
WO2018132760A1 (en) | 2017-01-13 | 2018-07-19 | Warner Bros. Entertainment, Inc. | Adding motion effects to digital still images |
KR102169242B1 (ko) | 2018-12-26 | 2020-10-23 | 포항공과대학교 산학협력단 | 초해상도 영상 복원을 위한 기계 학습 방법 |
CN110689562A (zh) | 2019-09-26 | 2020-01-14 | 深圳市唯特视科技有限公司 | 一种基于生成对抗网络的轨迹回环检测优化方法 |
KR102242343B1 (ko) | 2019-10-31 | 2021-04-20 | 한국전자기술연구원 | 고해상도 동영상 프레임 율 고속 변환 방법 및 장치 |
US11501415B2 (en) | 2019-11-15 | 2022-11-15 | Huawei Technologies Co. Ltd. | Method and system for high-resolution image inpainting |
CN111768342B (zh) | 2020-09-03 | 2020-12-01 | 之江实验室 | 基于注意力机制和多级反馈监督的人脸超分辨方法 |
CN112232362A (zh) | 2020-11-04 | 2021-01-15 | 清华大学深圳国际研究生院 | 一种跨模态医学图像配准方法及计算机可读存储介质 |
-
2021
- 2021-07-05 US US17/367,524 patent/US11915383B2/en active Active
-
2022
- 2022-06-17 CN CN202280047777.6A patent/CN117651965A/zh active Pending
- 2022-06-17 WO PCT/CN2022/099312 patent/WO2023279936A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20230019851A1 (en) | 2023-01-19 |
WO2023279936A1 (en) | 2023-01-12 |
US11915383B2 (en) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12008797B2 (en) | Image segmentation method and image processing apparatus | |
US11501415B2 (en) | Method and system for high-resolution image inpainting | |
Shocher et al. | Ingan: Capturing and remapping the" dna" of a natural image | |
US11367239B2 (en) | Textured neural avatars | |
WO2023279936A1 (en) | Methods and systems for high definition image manipulation with neural networks | |
WO2022134971A1 (zh) | 一种降噪模型的训练方法及相关装置 | |
CN112837224A (zh) | 一种基于卷积神经网络的超分辨率图像重建方法 | |
WO2021042774A1 (zh) | 图像恢复方法、图像恢复网络训练方法、装置和存储介质 | |
WO2022100490A1 (en) | Methods and systems for deblurring blurry images | |
WO2023129190A1 (en) | Generative modeling of three dimensional scenes and applications to inverse problems | |
CN114339409A (zh) | 视频处理方法、装置、计算机设备及存储介质 | |
Liu et al. | Facial image inpainting using attention-based multi-level generative network | |
US20220215617A1 (en) | Viewpoint image processing method and related device | |
KR20220008135A (ko) | 영상 초해상도 처리 방법 및 장치 | |
CN115936992A (zh) | 一种轻量级Transformer的垃圾图像超分辨方法及系统 | |
RU2713695C1 (ru) | Текстурированные нейронные аватары | |
US20230110393A1 (en) | System and method for image transformation | |
US20230073175A1 (en) | Method and system for processing image based on weighted multiple kernels | |
Bricman et al. | CocoNet: A deep neural network for mapping pixel coordinates to color values | |
CN111861877A (zh) | 视频超分变率的方法和装置 | |
Vo et al. | StarSRGAN: Improving real-world blind super-resolution | |
Liu et al. | Photographic image synthesis with improved U-net | |
CN114862699A (zh) | 基于生成对抗网络的人脸修复方法、装置及存储介质 | |
Weiss et al. | Deep learning-based upscaling for in situ volume visualization | |
Viriyavisuthisakul et al. | A regularization-based generative adversarial network for single image super-resolution |
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 |