基于参考信息的图像彩色化的制作方法

文档序号:19611716发布日期:2020-01-03 14:17阅读:271来源:国知局
基于参考信息的图像彩色化的制作方法



背景技术:

图像彩色化指的是将一幅灰度图像变换为彩色图像。图像彩色化在老照片着色、黑白电影彩色化等多种场景下具有很高需求。由于灰度图像仅具有亮度信息,因此图像彩色化是为了向灰度图像增添颜色。图像彩色化的目标在于使生成的彩色图像具有感知意义并且在视觉上美观。对于灰度图像中的特定像素或区域而言,可以向其分配许多可能的颜色,例如灰度图像中的叶子可以被彩色化为绿色、黄色、红色或棕色等。因此,绝对正确的图像彩色化方案较难获得。



技术实现要素:

根据本公开的实现,提出了一种用于基于参考信息的图像彩色化方案。在该方案中确定灰度源图像和彩色参考图像呈现的内容之间的相似度,并使用学习网络,基于相似度确定灰度源图像对应的彩色目标图像。具体地,基于相似度确定灰度源图像中与彩色参考图像在内容上相似的第一组图块和在内容上不相似的第二组图块,基于彩色参考图像中与第一组图块对应的图块中的颜色,确定第一组图块的第一颜色,独立于彩色参考图像来确定第二组图块的第二颜色,以及基于第一颜色和第二颜色变换灰度源图像,以生成彩色目标图像。通过该方案,可以提供图像彩色化中的用户可控性和定制化效果。此外还无需严格要求彩色参考图像与灰度源图像之间的对应性,这使彩色化对参考图像的选择更具鲁棒性。

提供发明内容部分是为了简化的形式来介绍对概念的选择,其在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。

附图说明

图1示出了能够实施本公开的多个实现的计算环境的框图;

图2示出了根据本公开的一个实现的用于图像彩色化的学习网络架构的框图;

图3示出了根据本公开的一个实现的图2的相似度确定学习网络的框图;

图4示出了根据本公开的一个实现的用于训练图2的彩色化学习网络的训练架构的框图;

图5示出了根据本公开的一个实现的用于选择彩色参考图像的系统的框图;

图6示出了根据本公开的一个实现的用于图像彩色化的过程的流程图;以及

图7示出了根据本公开的一个实现的用于训练图像彩色化的学习网络的过程的流程图。

这些附图中,相同或相似参考符号用于表示相同或相似元素。

具体实施方式

现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本主题的范围的任何限制。

如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

如本文所使用的,术语“灰度图像”指的是每个像素只有一个表示亮度的值的图像。灰度图像有时也被称为单色度图像。这类图像通常显示为从最暗的黑色到最亮的白色的灰度。如果像素仅表示非黑即白的值,灰度图像也被称为黑白图像。术语“彩色图像”指的是每个像素包含特定颜色值的图像。通常,彩色图像针对每个像素均提供相应颜色空间中的坐标值,包括定义颜色的值。通常,颜色空间中的三个通道就可以足够表示颜色。彩色图像中对应于不同通道的像素值可以表示亮度和色度。彩色图像可以被表示在诸如iab、rgb、ycbcr、hsv等颜色空间,这些颜色空间还可以互相转换。

如以上提及的,在图像彩色化中,由于灰度图像中的不同像素或区域可应用的颜色较多,因此获得较好的图像彩色化方案的困难较高。在常规方案中,图像彩色化过程中的手动引导信息扮演重要角色。这样的手动引导信息通常由以下两种方式给出:用户的手工标注或彩色参考图像。在基于用户的手工标注的方案中,要求用户对灰度图像中不同区域的一个或多个点标注颜色,然后再将用户标注的颜色渲染到整个区域。这要求用户具备丰富经验和很好的美感,因此对于未受专业训练的用户而言具有非常大的挑战。

另一种方式是由用户提供一幅彩色图像作为参考信息,利用彩色图像中呈现的颜色来对灰度图像进行彩色化。这种方案更加灵活,并且可以实现用户定制化。已经提出一些基于彩色参考图像的图像彩色化方案。这些方案包括标识彩色参考图像与灰度图像的局部区域之间的对应性,并且将彩色参考图像的对应区域中的颜色迁移到灰度图像中。然而,这些方案的彩色化质量严重依赖于彩色参考图像的选择。由于仅在原始图像基础上考虑对应性,光线、视角和内容等任何方面的不相似性都会导致彩色参考图像与灰度图像之间的不一致性,进而会误导这些方案提出的算法,从而产生差强人意的彩色化结果。

由于单幅彩色图像所提供的可用参考颜色可能有限,还提出一种完全自动的图像彩色化方案,用于从大量参考图像数据库中搜索出灰度图像中的类似像素或图块以用于彩色化。随着深度学习技术的发展,已经发现深度学习网络在建模大规模数据时能够提供非常好的结果。因此,已有的方案将图像彩色化建模为一个回归问题,并且用深度学习网络来直接确定灰度图像对应的彩色图像。通过学习,这些方案可以为灰度图像完全自动确定颜色,而不需要任何手动的颜色标注或参考图像。

然而,这些方案不支持多模态彩色化。在利用大量训练数据对深度学习网络进行训练之后,所获得的深度学习网络通常会使用学习到的最主要的颜色为某个图块着色。例如,如果训练数据中与叶子有关的大多数图像均将叶子呈现为黄色,经过训练之后,深度学习网络在对包含叶子的所有输入灰度图像进行彩色化时,均将其中的叶子的颜色渲染为黄色。这种单一模态局限了彩色化结果,而且用户无法根据需要控制或定制灰度图像的颜色。此外,这样的方案还需要利用包含尽可能多的对象的图像用于学习网络的训练。

本公开的实现提出了一种基于参考信息的图像彩色化方案。在该方案中,利用彩色参考图像来对灰度源图像进行彩色化,以获得对应的彩色目标图像。彩色参考图像的使用可以提供用户可控性和定制化效果。此外,还利用学习网络来自动执行图像彩色化过程。利用学习网络,针对灰度源图像中与彩色参考图像内容相似的图块,可以为其确定彩色参考图像中对应图块的颜色,针对灰度源图像中与彩色参考图像不相似的图块,可以独立于彩色参考图像来确定颜色。通过该方案,可以无需严格要求彩色参考图像与灰度源图像之间的对应性,因此图像彩色化结果对于参考图像的选择具有更强鲁棒性。

示例环境

以下参考附图来说明本公开的基本原理和若干示例实现。图1示出了能够实施本公开的多个实现的计算设备100的框图。应当理解,图1所示出的计算设备100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算设备100包括通用计算设备形式的计算设备100。计算设备100的组件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。

在一些实现中,计算设备100可以被实现为各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任意类型的移动终端、固定终端或便携式终端,包括移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(pcs)设备、个人导航设备、个人数字助理(pda)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,计算设备100能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。

处理单元110可以是实际或虚拟处理器并且能够根据存储器120中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备100的并行处理能力。处理单元110也可以被称为中央处理单元(cpu)、微处理器、控制器、微控制器。

计算设备100通常包括多个计算机存储介质。这样的介质可以是计算设备100可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或其某种组合。存储设备130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如内存、闪存驱动、磁盘或者任何其他介质,其能够用于存储信息和/或数据并且可以在计算设备100内被访问。

计算设备100可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图1中示出,可以提供用于从可拆卸、非易失性磁盘进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。

通信单元140实现通过通信介质与另外的计算设备进行通信。附加地,计算设备100的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备100可以使用与一个或多个其他服务器、个人计算机(pc)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。

输入设备150可以是一个或多个各种输入设备,例如鼠标、键盘、触摸屏、摄像头、语音输入设备等。输出设备160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备100还可以根据需要通过通信单元140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备100交互的设备进行通信,或者与使得计算设备100与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。

在一些实现中,除了被集成在单个设备上之外,计算设备100的各个部件中的一些或所有部件还可以以云计算架构的形式被设置。在云计算架构中,这些部件可以被远程布置,并且可以一起工作以实现本公开所描述的功能。在一些实现中,云计算提供计算、软件、数据访问和存储服务,它们不需要终端用户知晓提供这些服务的系统或硬件的物理位置或配置。在各种实现中,云计算使用适当的协议通过广域网(诸如因特网)提供服务。例如,云计算提供商通过广域网提供应用,并且它们可以通过web浏览器或任何其他计算组件被访问。云计算架构的软件或组件以及相应的数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置处被合并或者它们可以被分散。云计算基础设施可以通过共享数据中心提供服务,即使它们表现为针对用户的单一访问点。因此,可以使用云计算架构从远程位置处的服务提供商提供本文所描述的组件和功能。备选地,它们可以从常规服务器被提供,或者它们可以直接或以其他方式被安装在客户端设备上。

计算设备100可以用于实施本公开的多种实现中的图像彩色化。存储器120可以包括一个或多个图像彩色化模块122,其具有一个或多个程序指令,这些模块可以由处理单元110访问和运行,以实现本文所描述的各种实现的功能。

在执行图像彩色化时,计算设备100通过输入设备150接收灰度源图像102。此外,本公开的实现中的图像彩色化基于彩色参考图像来实现,因此计算设备100还可以通过输入设备150接收彩色参考图像104。由输入设备150获取的灰度源图像102和彩色参考图像104被提供作为图像彩色化模块122的输入。图像彩色化模块122基于彩色参考图像104来确定灰度源图像102中的区域和/或像素的颜色,从而将灰度源图像102变换为对应的彩色目标图像162。彩色目标图像162是灰度源图像102的彩色版本,其中呈现的内容与灰度源图像102一致,但各个像素不仅包含亮度信息、而且还包含色度信息,从而能够展现相应色彩。输出设备160可以将彩色目标图像162呈现给用户或者传输给其他设备。

应当理解,图1示出的灰度源图像102、彩色参考图像104和彩色目标图像162仅用于示例的目的。在其他示例中,任何灰度图像可以被处理并且任何彩色图像可以作为参考图像。

工作原理

下文将参照图2来描述本公开的图像彩色化。图2示出了根据本公开的一些实现的图像彩色化模块122。图像彩色化模块122用于利用彩色参考图像来对灰度源图像进行彩色化。根据本公开的实现,图像彩色化模块122的目标在于基于输入的彩色参考图像104,对灰度源图像102进行彩色化,以确定灰度源图像102对应的彩色目标图像162。在基于彩色参考图像的图像彩色化中,期望选择性地为灰度源图像中与彩色参考图像内容相似的图块传播彩色参考图像中的颜色,而为灰度源图像中与彩色参考图像无关的图块预测合理、自然的颜色。

如图2所示,图像彩色化模块122包括相似度确定模块210和彩色化模块220。相似度确定模块210被配置为确定灰度源图像102与彩色参考图像104呈现的内容之间的相似度212。图像呈现的内容也可被称为图像表示的语义,包括图像中包含的对象,诸如人物、动物、自然景物、建筑物,以及其它物体等图像对象。两幅图像的内容相似也可以被称为这两幅图像的语义相似。相似度确定模块210确定的相似度可以由彩色化模块220用作灰度源图像102的彩色化的参考。

要被彩色化的灰度源图像102可以由用户提供或指示。例如,灰度源图像102可以是由用户输入或通过其他方式可获得的任何灰度图像。在另外一些实现中,可以从用户或者其他来源获得彩色图像,并且将所获得的彩色图像变换成灰度源图像102进行处理。作为彩色化的参考,彩色参考图像104也可以由用户提供,诸如在图1所示的示例中计算设备100的输入设备150接收由用户提供的彩色参考图像104。在另外一些实现中,彩色参考图像104还可以基于灰度源图像102来自动推荐。这在下文中将详细描述。

灰度源图像102和彩色参考图像104的像素值可以在颜色空间中表示。为便于描述,在本文中以cielab颜色空间为例。在cielab颜色空间中,图像的每个像素具有对应于三个通道的值,包括针对亮度的“l”通道的值以及分别针对“a”和“b”通道的值。a通道表示绿色到红色的颜色范围;b通道表示蓝色到黄色的颜色范围。根据cielab颜色空间,图像的每个像素可以由与l、a和b通道对应的三个值表示。应当理解,不同颜色空间可以互相变换,因此也可以根据需要将图像102和104表示在其它颜色空间中。

作为灰度图,灰度源图像102仅具有与亮度通道l对应的值,a和b通道对应的值均为零。因此,灰度源图像102可以被表示为其中h和w表示灰度源图像102的高度和宽度。作为彩图,彩色参考图像104具有与三个通道对应的值,以呈现相应的亮度和色度。彩色参考图像104可以被表示为其中h和w表示彩色参考图像104的高度和宽度。在该示例中,假设灰度源图像102和彩色参考图像104的尺寸相同,但这不是必要的。不同尺寸的图像也可以相互映射。

在一些实现中,相似度确定模块210可以逐像素确定灰度源图像102与彩色参考图像104呈现的内容之间的相似度212。因此,相似度212可以被表示为相似度图的形式,图中的每个像素点对应于灰度源图像102与彩色参考图像104的至少一部分(例如像素点)之间的相似度(或差异)。

在一些实现中,为了向彩色化模块220提供更多信息,可以确定双向相似度。具体地,相似度确定模块210可以确定从灰度源图像102到彩色参考图像104的第一方向相似度(被表示为simt→r)以及从彩色参考图像104到灰度源图像102的第二方向相似度(被表示为simr→t)。第一方向相似度simt→r指示从灰度源图像102呈现的内容到彩色参考图像104呈现的内容之间的匹配置信度,并且第二方向相似度simr→t指示反方向的匹配置信度。这两个方向的相似度可以被表示为在一些实现中,相似度确定模块210也可以仅确定单方向相似度,因为模块210的结果仅作为后续的彩色化模块220的参考。彩色化模块220可以在此基础上进一步优化其输出。可以利用已有的或将来待开发的多种技术来确定两幅图像之间的单向或双向相似度。下文中将参照图3详细描述一种示例方式,然而本公开的范围不限于此。

由相似度确定模块210提供的相似度被提供给彩色化模块220。彩色化模块220利用深度学习的方法来确定灰度源图像102对应的彩色目标图像162。具体地,彩色化模块220使用深度学习网络来执行彩色化。因此,彩色化模块220在下文中也可以被称为彩色化学习网络220。在本文中,深度学习网络也可以被称为“学习网络”、“神经网络”或“学习模型”。在下文中,术语“学习模型”、“学习网络”、“神经网络”、“模型”和“网络”可替换地使用。

在图2的实现中,假设彩色化学习网络220已经被训练且学习到如何从彩色参考图像中为灰度源图像的相关像素或区域选择颜色,如何将颜色传递到彩色目标图像以及如何预测灰度源图像的其他像素或区域的颜色。彩色化学习网络220的训练将在下文中详细描述。经过训练,彩色化学习网络220的参数集被确定。在使用过程中,彩色化学习网络220的输入包括相似度212、灰度源图像102和彩色参考图像104。彩色化学习网络220可以处理输入的相似度212、灰度源图像102和彩色参考图像104,以确定彩色目标图像162。

在彩色化学习网络220中,相似度212的作用在于辨别灰度源图像102中哪些位置可以沿用彩色参考图像104的对应颜色,而哪些位置无法沿用(因为相似度212指示在此处两幅图像在内容上差异较大)而需要另行预测颜色。具体地,基于相似度,彩色化学习网络220确定灰度源图像102中与彩色参考图像104在内容上相似的第一组图块和在内容上不相似的第二组图块。在本文中,图块可以是处理单位,其可以以像素、超像素、或者其他大小的图像部分为单位。

彩色化学习网络220可以基于彩色参考图像104中与第一组图块对应的图块中的颜色,确定第一组图块的第一颜色。彩色参考图像104中的相似图块指的是基于相似度212确定出的与第一组图块在内容上相似的图块。针对灰度源图像102中的第二组图块,由于无法从彩色参考图像中找到对应图块,彩色化学习网络220可以独立于彩色参考图像104来确定第二组图块的第二颜色。第二颜色的预测是彩色化学习网络220在训练过程中从训练数据学习到的能力。在一些实现中,彩色化学习网络220可以为第二组图块预测适合于这部分图块的颜色,例如适合于第二组图块中呈现的内容。作为示例,通过训练过程,彩色化学习网络220可以为适合天空的第二组图块确定蓝色或者为包含人类皮肤的第二组图块确定适合皮肤的颜色。通过这种方式,彩色参考图像104中与灰度源图像102相关的图块的颜色被传递到第一组图块,灰度源图像102中其他图块的颜色也可以以可靠方式被相应预测。彩色化学习网络220对于不相似图块的颜色的预测能力可以通过学习和训练过程来实现。通过学习和训练过程,彩色化学习网络220可以使用从与第二组图块在内容上相似的图块中学习到的颜色作为第二颜色。这可以从以下描述的学习网络的训练过程获得进一步理解。

然后,彩色化学习网络220可以基于第一颜色和第二颜色变换灰度源图像102,以生成彩色目标图像162(被表示为plab)。例如,彩色化学习网络220可以将具有第一颜色的第一组图块和具有第二颜色的第二组图块组合成彩色目标图像。在一些实现中,在确定第一颜色和第二颜色时,彩色化学习网络220可以仅确定第一组图块和第二组图块的色度信息。在生成彩色目标图像162时,彩色目标图像162中的亮度信息与灰度源图像102保持一致(例如,与l通道对应的值保持不变)。因此,彩色化学习网络220可以仅确定第一组图块和第二组图块的a和b通道的取值,得到彩色目标图像162的a和b通道的色度图像(被表示为pab)。通过将源灰度图像102和色度图像合并,可以获得彩色目标图像162,plab。

通过本公开的实现,彩色参考图像的使用可以提供更多的用户可控性和定制化效果。此外,通过学习网络来向灰度源图像中的相关图块传递彩色参考图像中的颜色,并且独立于彩色参考图像预测不相关图块的颜色,可以无需严格要求彩色参考图像与灰度源图像之间的对应性,因此图像彩色化结果对于参考图像的选择具有更强鲁棒性。

在一些实现中,图像彩色化模块122还可以对视频中的帧进行彩色化,从而使仅具有亮度信息的一段视频(例如老电影)能够呈现彩色。在视频彩色化的过程中,可以对一个视频片段选用同一彩色参考图像,并且将视频片段中的每个帧作为一幅灰度源图像来进行处理。

相似性确定

如上文提及的,相似度确定模块210可以使用各种技术来确定两幅图像之间的单向或双向相似度。图3图示了相似度确定模块210的一个示例实现。由于相似度确定模块210要衡量源图像102与参考图像104呈现的内容之间的相似度,在图3的示例中,相似度确定模块210可以省略彩色参考图像104中的色度信息,而仅考虑亮度信息。具体地,相似度确定模块210可以确定彩色参考图像104(plab)对应的灰度参考图像1041(表示为rl)。这可以通过提取彩色参考图像104中与亮度通道(例如l通道)对应的像素值来获得。

在图3的示例中,相似度确定模块210可以在特征空间中衡量源图像102与参考图像104呈现的内容之间的相似度。相似度确定模块210包括特征提取模块310和计算部分320。特征提取模块310可以基于学习网络来实现,并且也可以被称为特征提取学习网络310。灰度源图像102和灰度参考图像1041分别被提供给特征提取学习网络310,以从中提取第一特征图312和第二特征图314。第一特征图312和第二特征图314可以至少被提取为灰度源图像102和灰度参考图像1041的高层特征图。

在一些实现中,特征提取学习网络310可以基于卷积神经网络(cnn)。cnn的特征提取是深度学习领域中熟知的技术,在此不再赘述。在一些实现中,基于cnn的特征提取学习网络310可以包括多个级联卷积层,可以从这些卷积层中分别获得多个特征图,形成金字塔结构的多级特征图。在基于cnn的学习网络中,级联结构中较低层的特征图主要表征图像中的纹理,而更高层的特征图主要表征图像的语义。对于灰度图102和1041,它们的多级特征图可以分别被表示为其中i的取值指示金字塔结构中的层级。在一些实现中,可以从灰度图102和1041的多级特征图中选择更高层的特征图(例如,i取值更大)用于后续相似度计算。在另一些实现中,在计算相似度时,灰度图102和1041的多级特征图、包括低层和高层特征图可以均被考虑。从不同卷积层获得的特征图可能由于下采样的原因可能尺寸不一致,可以通过对特征图的上采样或下采样来将它们变化到相同尺寸。

在一些实现中,可以利用已经预先训练的学习网络、特别是被训练用于图像对象识别或分类的学习网络中与特征提取相关的部分作为特征提取学习网络310,因为用于对象识别或分类的学习网络通常已经学习到编码图像的全频谱特征图的能力。通过预先训练的学习网络的利用,可以有效节约单独训练耗时。由于这些学习网络可能都利用彩色图像作为训练数据来训练,为了降低彩色图像与它们的灰度图像版本之间的性能差异,在一些实现中,还可以利用灰度图像作为训练数据来精细调节已有的学习网络,这样的训练过程耗时和计算复杂度也是有限的。当然,也可以利用灰度图像作为训练数据来单独训练新的学习网络以作为特征提取学习网络310,训练目标可以是实现图像的对象识别或分类,因此训练数据中还可以包括灰度图像对应的真实对象识别结果或类别。

由特征提取学习网络310分别为灰度源图像102和灰度参考图像1041提取的第一特征图312和第二特征图314被提供给计算模块320。计算模块310基于第一特征图312与第二特征图314之间的差异(例如两幅特征图中的对应像素之间的差异),来确定内容相似度。第一特征图和第二特征图的对应像素可以通过将灰度源图像102和彩色参考图像104(或灰度参考图像1041)对齐来确定,这需要确定两幅图像的映射。图像与图像之间的映射指示一个图像中的某些像素位置与另一个图像的某些像素位置之间的对应性(correspondence),因而也可以被称为图像的对应性。

在一些实现中,如果要确定从灰度源图像102到彩色参考图像104的第一方向相似度,可以确定从灰度源图像102到彩色参考图像104(或灰度参考图像1041)的第一方向映射(被表示为φt→r)。第一方向映射φt→r指示从灰度源图像102的像素的位置到(或灰度参考图像1041)的像素的位置的映射。也就是说,对于灰度源图像102中的任何像素位置p,通过第一方向映射,可以确定与该位置p对应的在彩色参考图像104(或灰度参考图像1041)的映射位置q。这两个位置的对应像素被称为两幅图像的对应像素。

在一些实现中,如果要确定从彩色参考图像104到灰度源图像102的第二方向相似度,可以确定从彩色参考图像104(或灰度参考图像1041)到灰度源图像102的第二方向映射(被表示为φt→r)。与第一方向映射类似,第二方向映射可以将彩色参考图像104(或灰度参考图像1041)的一个像素位置映射到灰度源图像102的一个像素位置。当然,如果需要确定双向相似度,则两个方向映射都可以确定。第一方向映射φt→r和第二方向映射φr→t可以一起被表示为双向映射

存在多种技术可以用于确定两幅图像之间的单向或双向映射。在一些实现中,可以使用密集对应性算法来确定两幅图像之间的单向或双向映射,诸如siftflow算法、daisyflow算法或deepflow算法等。在一些实现中,还可以使用被称为深度图像类比的密集匹配技术来确定灰度源图像102与彩色参考图像104(或灰度参考图像1041)之间的单向或双向映射。该技术能够将视觉上不同但语义相关的图像进行匹配,从而确定两者之间的映射关系。

灰度源图像102与彩色参考图像104(或灰度参考图像1041)之间的单向或双向映射302(在图3中图示为双向映射)可以被提供给计算模块320,用于确定第一特征图312与第二特征图314之间的对应像素,进而可以确定对应像素之间的相似度。由于第一特征图312提取自灰度源图像102,而第二特征图314提取自灰度参考图像1041,这两个特征图中的像素位置与图像102和1041的位置具有一一对应性,因此特征图312和314之间的对应像素也可以通过图像102和104之间的映射来确定。如以上提及的,可以提取图像102和104的多级特征图其中i取多个连续整数值。针对每一对特征图,均可以确定它们之间的相似度。

具体地,在确定第一方向相似度simt→r时,针对一对第一特征图和第二特征图利用第一方向映射φt→r确定第一特征图的某个像素p(被表示为)在第二特征图中的对应像素(被表示为)。计算模块320然后确定这两个像素之间的第一方向相似度。这可以被表示为:

其中d(x,y)表示相似度度量函数。可以利用多种相似度度量方法来衡量两个像素之间的相似度。在一个示例中,可以利用余弦相似度度量法来衡量包括两个像素之间的相似度,因此相似度度量函数d(x,y)可以被定义为:

应当理解,任何其他相似度计算方法也可以被使用。

在确定第二方向相似度simr→t时,针对一对第一特征图和第二特征图两幅特征图中的对应像素要通过双向映射来确定,以满足双向一致性和对称性。因此,两幅特征图中的对应像素可以被确定为计算模块320然后确定这两个像素之间的第二方向相似度。这可以被表示为:

其中相似度度量函数d(x,y)可以采用以上公式(2)给出的余弦相似度度量函数或者任何其他相似度度量函数。

计算模块320可以确定灰度源图像102和灰度参考图像1041的每一级特征图之间的相似度,并且将所确定的相似度提供给彩色化模块220用于执行图像彩色化。在一些实现中,计算模块320可以将由多级特征图确定的相似度进行加权组合,以作为灰度源图像102与彩色参考图像104的最终相似度。在另外一些实现中,计算模块320可以仅确定某一级特征图之间的相似度作为灰度源图像102与彩色参考图像104的最终相似度。

在一些实现中,为了使后续的彩色化学习网络220能够基于相似度来更准确地确定对应灰度源图像102和彩色参考图像104之间的对应图块(例如单个像素,或者由多个像素组成的块)是否相似,图像彩色化模块122可以包括另外的模块(未示出),用于基于灰度源图像102和彩色参考图像104之间的双向映射将彩色参考图像104变形(例如变形色度图像rab),以作为彩色化学习网络220的输入。彩色参考图像104的变形后色度信息这样,彩色化学习网络220可以基于单向或双向相似度,确定灰度源图像102(tl)和彩色参考图像104的变形后色度通信r′ab的对应像素是否足够相似(或匹配),从而识别出内容上相似的第一组图块和不相似的第二组图块。

彩色化学习网络的训练

在上文描述中,图2的彩色化学习网络220可以学习到以下能力:确定灰度源图像102与彩色参考图像104之间在内容上相似的图块,同时将彩色参考图像104中的相似图块的颜色传递到灰度源图像102并且为灰度源图像102中的其他图块预测颜色。为了让彩色化学习网络220学习到这样的能力,需要通过训练过程,确定彩色化学习网络220的参数集。

彩色化学习网络220可以由大量的学习单元(也被称为神经元)组成。在一些实现中,彩色化学习网络220也可以基于cnn结构。在一些实现中,任何其他类似或架构的学习网络也可以被使用。通过训练过程,这些神经元的相应参数被确定,从而能够处理输入,并且给出期望的输出。各种类型的学习网络均可以被采用。学习网络的训练过程是通过训练数据,利用训练算法不断更新学习网络的参数集。参数更新的目标可以通过使损失函数不断减小(或最小化)或者使成本函数不断增大(或最大化)来实现。在本文中,为便于描述,将以损失函数为例进行说明。通过训练,可以使学习网络能够针对给定输入,确定期望的输出。

通常,图像彩色化的目标是鼓励由学习网络输出的彩色目标图像tlab中的色度信息、即pab与灰度源图像对应的真实彩色图像tlab中的色度信息、即tab尽可能相似(例如,差异尽可能小)。然而,这不适用于基于参考信息的图像彩色化,因为还期望彩色目标图像中的pab能够随不同的彩色参考图像提供的色度信息,例如rab。例如,期望学习网络有能力依据彩色参考图像而将灰度图像中的花确定为红色、黄色、紫色等等。因此,如果直接惩罚学习网络输出的彩色目标图像plab与真实彩色图像tlab之间的差异,特别其中的色度信息pab与tab之间的差异,这将使训练得到的彩色化学习网络220仅能够在单一模态下工作,对不同灰度图像中的同一对象均确定单一颜色。这无法实现由彩色参考图像带来的用户可控性和定制化效果。

在本公开的实现中,彩色化学习网络220的学习目标要考虑两方面。第一方面是要优选将彩色参考图像中的可靠参考颜色应用到输出的彩色目标图像,从而使网路的输出尽可能忠实于彩色参考图像。另一方面是在无法从彩色参考图像中找到可靠参考颜色时,鼓励彩色化学习网络220尽可能预测合理、自然的颜色,以使彩色化结果有感知意义。

为了实现这样的学习目的,提出了一种多任务学习的训练方法用于训练彩色化学习网络220。图4示出了用于训练彩色化学习网络220的训练架构400的框图。在训练框架400中,利用两个训练分支来支持多任务学习,以实现彩色化学习网络220的上述学习目标。这两个训练分支均共享彩色化学习网络220(被表示为c)及其参数集(被表示为θ),但是这两个训练分支使用各自的训练数据和损失函数。

第一训练分支可以被称为循环分支,该训练分支要使彩色化学习网络220选择性地传递彩色参考图像中的正确参考颜色,这取决于灰度源图像tl和彩色参考图像(例如彩色参考图像对应的灰度参考图像rl)特别是之间匹配程度(例如相似度)。第二训练分支可以被称为感知分支,该训练分支要使彩色化学习网络220能够在没有合适参考颜色基础上为灰度源图像的图块预测合理颜色。

在第一训练分支中,用于训练的数据包括灰度源图像tl和灰度源图像对应的真实彩色图像tlab。这两幅图像在内容上是完全匹配的,但是真实彩色图像tlab另外包括色度信息。在实践中,可以首先获得真实彩色图像tlab,然后提取其中的灰度信息以作为灰度源图像tl。在第二训练分支中,用于训练的数据包括灰度源图像tl和可能的彩色参考图像rlab。这样的彩色参考图像rlab用于使彩色化学习网络220学习可靠颜色。

如以上参照图2所描述的,彩色化学习网络220的输入还包括灰度源图像与彩色参考图像呈现的内容的相似度。在一些实现中,彩色化学习网络220可以与相似度确定模块210单独被训练(假设相似度确定模块210也基于学习网络来实现)。相似度确定模块210可以首先被训练完成,并且可以被用于确定训练彩色化学习网络220的灰度源图像和彩色参考图像之间的相似度。此时确定出来的相似度被认为是正确的,不会改变。在另外一些实现中,彩色化学习网络220可以与相似度确定模块210(此时可称为相似度确定学习网络210)一起联合训练。在这个过程中,相似度确定学习网络210的参数集可以经由所确定的相似度来联合更新。在任一种情况中,均可以将用于训练彩色化学习网络220的灰度源图像和彩色参考图像输入到相似度确定模块210,以确定相应的相似度。

在训练过程中,彩色化学习网络220可以被初始化,例如它的参数集被初始化为随机值。两个训练分支的训练可以单独执行,用以更新彩色化学习网络220。例如,可以首先在循环分支中更新彩色化学习网络220,然后再在感知分支中再次更新学习网络220。在一些实现中,这样的更新可以是分阶段执行,例如多次在循环分支中执行更新之后,再转到感知分支中进行更新,从而确定学习网络220的最终参数集。在一些实现中,这样的更新也可以交替执行,例如不断重复循环分支和感知分支的更新,直到确定彩色化学习网络220的最终参数集。

接下来首先描述循环分支中的学习网络更新。如以上提及的,在循环分支(在图4中由实线箭头指示)中,用于彩色化学习网络220的更新的训练数据包括灰度源图像tl(被标记为402)、灰度源图像对应的真实彩色图像tlab以及由相似度确定模块210根据灰度源图像tl与彩色参考图像rlab之间的相似度(被标记为421)。在以上描述彩色化的一些实现中,彩色参考图像中的色度图像被输入彩色化学习网络220,并且还可以基于灰度源图像tl与彩色参考图像rlab之间双向映射φt→r和φr→t来变形彩色参考图像。因此,在训练过程中,也类似处理真实彩色图像tlab,例如对真实彩色图像中的色度图像(即tab)进行变形(wrap),获得(在图4中被标记为412)。此处使用基于双向映射φt→r和φr→t是为了满足循环一致性,即这更有利于后续的颜色传递。这样的循环一致性在学习网络使用过程中对于彩色参考图像同样适用,只需要将其他的t′ab替换为r′ab。这意味着当存在循环一致性时,彩色参考图像中像素点p的色度信息是可靠的。

灰度源图像402、变形色度图像412和相似度421均被输入到彩色化学习网络220中进行处理。彩色化学习网络220中的处理可以被一般性表示为:

其中表示在变形色度图像412(t′ab)提供的参考信息基础上对灰度源图像402的彩色化结果,在本文中也被称为第一预测彩色图像的色度图像(在图4中被标记为432)。该色度图像432与灰度源图像402合并即可得到当前彩色化学习网络220可确定的第一预测彩色图像。

在彩色化学习网络220在当前参数集θ的取值的基础上,以关于图2描述的方式对输入进行处理。具体地,彩色化学习网络220基于相似度确定灰度源图像402中与彩色参考图像在内容上相似的第一组图块和在内容上不相似的第二组图块(因此此处使用的相似度确定在彩色参考图像而不是真实彩色图像基础上确定),然后在灰度源图像402和变形色度图像412基础上为第一组图块和第二组图块确定颜色,用以生成第一预测彩色图像或者第一预测彩色图像的色度图像432。

在循环分支中,彩色化学习网络220的训练依据在于:如果彩色化学习网络220能够良好工作,为相关的第一组图块选择正确的颜色并且传递到第一预测彩色图像中,那么应当能够从中恢复出真实彩色图像的真实色度图tab(被表示为404)。这可以通过衡量第一预测彩色图像与真实彩色图像之间的差异(特别是这两幅图像的色度图像之间的差异)来实现更新。在循环分支的训练过程中,彩色化学习网络220的参数更新目标可以由基于上述差异的损失函数来确定。

训练架构400还包括损失函数确定模块440,用于确定第一预测彩色图像与真实彩色图像之间的差异,并且基于这样的差异来确定循环分支中的损失函数。在一些实现中,第一预测彩色图像与真实彩色图像之间的差异可以被确定为第一预测彩色图像与真实彩色图像的对应像素之间的差异,并且可以通过各种距离计算方法来衡量。在一些实现中,损失函数确定模块440可以利用smooth_l1距离来衡量第一预测彩色图像与真实彩色图像的色度图像432和404的对应像素之间的差异。在这些实现中,损失函数确定模块440可以以如下方式确定损失函数:

其中smooth_l1(x,y)用于衡量两个像素之间的距离。具体地,如果|x-y|<1,则在其他情况下,利用smooth_l1距离来衡量像素之间的差异可以避免使用在模糊彩色化问题中取均值方案。然而应当理解,在其他情况下,还可以利用各种其他距离或相似度度量技术来确定对应像素之间的差异。在公式(5)中,损失函数被确定为色度图像432和404的所有对应像素的差异之和。当然,也可以在包含全部通道信息的第一预测彩色图像与真实彩色图像的基础上来衡量两幅图像之间的差异,上述仅基于a和b通道的确定不是必要的,但是计算更方便且有效。

训练架构400还包括模型更新模块450,用于基于损失函数来更新彩色化学习网络220。模型更新模块450可以通过最小化上述损失函数来更新彩色化学习网络220,即更新彩色化学习网络220的参数集θ的取值。依赖于上述损失函数的最小化,更新后的彩色化学习网络220可以使得第一预测彩色图像中第一组图块与真实彩色图像中的对应图块之间的颜色差异降低、甚至最小化。由此,彩色化学习网络220在这个训练过程中将学习到把彩色参考图像中的可靠颜色传递到灰度图像中。

如果仅依赖于循环分支来训练彩色化学习网络220,那么该学习网络220可能仅能够在彩色参考图像与灰度源图像内容上(语义上)非常相似时才能够给出较好彩色化结果。因此,还需要利用感知分支来继续训练彩色化学习网络220。

在感知分支(在图4中由虚线箭头指示)的训练过程中,如以上提及的,训练数据包括灰度源图像tl(被标记为402)、用作参考信息的彩色参考图像rlab以及由相似度确定模块210根据灰度源图像tl与彩色参考图像rlab之间的相似度(被标记为421)。类似地,基于灰度源图像tl与彩色参考图像rlab之间双向映射φt→r和φr→t来变形彩色参考图像rlab的色度图像,获得变形后的色度图像r′ab(在图4中被标记为414)。

灰度源图像402、变形色度图像414和相似度421均被输入到彩色化学习网络220中进行处理。彩色化学习网络220中的处理可以被一般性表示为:

其中pab表示在变形色度图像414提供的参考信息基础上对灰度源图像402的彩色化结果,在本文中也被称为第二预测彩色图像的色度图像(在图4中被标记为434)。该色度图像434与灰度源图像402合并即可得到当前彩色化学习网络220可确定的第二预测彩色图像。

在彩色化学习网络220在当前参数集θ的取值的基础上,以关于图2描述的方式对输入进行处理。具体地,彩色化学习网络220基于相似度确定灰度源图像402中与彩色参考图像在内容上相似的第一组图块和在内容上不相似的第二组图块(因此此处使用的相似度确定在彩色参考图像而不是真实彩色图像基础上确定),然后在灰度源图像402和变形色度图像414基础上为第一组图块和第二组图块确定颜色,用以生成第二预测彩色图像或者第二预测彩色图像的色度图像434。

在感知分支中,彩色化学习网络220的训练依据在于:如果彩色化学习网络220能够良好工作,那么应当能够从彩色参考图像中学习到合理、自然的颜色作用到第二组图块中。在一些实现中,在感知分支的训练过程中,彩色化学习网络220的参数更新目标可以在特征空间上衡量第二预测彩色图像与真实彩色图像之间的差异(特别是这两幅图像的色度图像之间的差异)。在一些实现中,训练架构400还包括特征提取模块460,用于提取第二预测彩色图像(具体为其色度图像434)的第一特征图和真实彩色图像(具体为其真实色度图像404)的第二特征图。

特征提取模块460可以基于学习网络来实现,因此也可以被称为特征提取学习网络460。特征提取学习网络460可以采用与相似度确定模块210中的特征提取学习网络310类似的结构,诸如被设计为cnn。然而,与特征提取学习网络310不同在于,特征提取学习网络460应在彩色图像或彩色图像的色度图像的基础上进行训练,从而能够更准确提取色度图像434和404的特征图。第一特征图和第二特征图可以是特征提取模块460中多个卷积层中任一个或最后一个层提取的特征图。

训练架构400还包括损失函数确定模块470,用于确定第一特征图与第二特征图之间的差异(例如可以由两幅特征图中的对应像素之间的差异来确定),并且基于这样的差异来确定感知分支中的损失函数。在这些实现中,损失函数确定模块470可以以如下方式确定损失函数:

其中fp表示第二预测彩色图像的第一特征图,并且ft表示真实彩色图像的第二特征图。

损失函数被提供给模型更新模块450,用于基于损失函数来更新彩色化学习网络220,即更新彩色化学习网络220的参数集θ的取值。循环分支和感知分支的损失函数可以组合为彩色化学习网络220的总体损失函数。彩色化学习网络220的参数集θ的更新过程可以被表示为:

其中参数α可以是用于平衡两个分支的损失函数的权值,可以被设置为大约0的任何值,诸如0.005、0.003、0.01等等。

如以上提及的,循环分支和感知分支的训练可以单独执行。通过迭代执行上述训练过程,利用更多训练数据来不断更新彩色化学习网络220,使得该学习网络能够学习到基于彩色参考图像对灰度源图像进行彩色化的能力。在一些实现中,在训练过程中为每个灰度源图像选择不同的彩色参考图像用于训练,从而使得彩色化学习网络220对于参考信息更鲁棒。在一些实现中,在训练过程中还可以切换一张彩色图像的角色,即可以将该图像作为其他图像的彩色参考图像,或者可以提取其中的灰度图像作为网络输入并且将彩色图像作为灰度图像的真实彩色图像。

通过这样的端到端训练,彩色化学习网络220可以学习到如何在灰度源图像、彩色参考图像以及两者的相似度的基础上为灰度源图像选择参考颜色、将颜色传递到灰度图像以及为不能找到参考颜色的图块预测合理颜色。这些步骤不是顺序执行,而是由彩色化学习网络220基于学习的结果可以同时实现。循环分支和感知分支的多任务训练可以有助于实现这样的目标,即对相似度高的图块,选择彩色参考图像的颜色,对相似度较低的图块,从大量训练数据中学习合理、自然的颜色来使用。这样的端到端训练得到的彩色化学习网络220不会绝对依赖于彩色参考图像或者绝对依赖于从训练数据中学习到的特定于物体的单一颜色。因此,彩色化结果具有用户可控性(例如通过彩色参考图像)。同时,彩色化结果对彩色参考图像具有鲁棒性。例如,即使利用与灰度源图像完全不相关的彩色参考图像,也能够给出合理的彩色化图像。这样的彩色化学习网络的可转移性很强。例如即使利用纯风景图像进行训练(风景图像是图像数据库中较容易获得的图像),彩色化学习网络也能够在其他非风景图像上进行工作,提供合意的结果。

彩色参考图像的选择

在本公开的实现中,灰度源图像的彩色化依赖于彩色参考图像。在执行彩色化过程中,除了灰度源图像之外,彩色参考图像也可以由用户提供,这有助于用户获得合意的彩色化结果。在一些实现中,为了协助用户找到更好的彩色参考图像,可以基于灰度源图像为用户自动推荐彩色参考图像,并且在用户对所推荐的彩色参考图像进行选择之后,执行以上关于图2所描述的图像彩色化过程。备选地,也可以在查找到彩色参考图像之后,自动启动对灰度源图像的彩色化。也就是说,在用户提供期望彩色化的灰度源图像之后,可以完全自动地执行彩色化,而无需额外的用户交互或者用户引导信息。下文将详细讨论如何为某个灰度源图像选择彩色参考图像,以更有利于该灰度源图像的彩色化。

图5示出了根据本公开的一个实现的用于选择彩色参考图像的系统500的框图。系统500用于在不同精细度级别上从多个彩色候选图像502中执行查找,为期望执行图像彩色化的灰度源图像102确定彩色参考图像104。在一些图像数据库中,彩色图像可能已经被标注有不同的分类,可以从中获得具有相同类别的彩色图像作为彩色候选图像502,这可以减少后续计算复杂度。

理想的彩色参考图像是与灰度源图像在语义内容和图像亮度上都匹配的彩色图像。考虑亮度信息是为了避免图像中亮度和色度的不自然合并。这种亮度和色度的合并会在彩色参考图像中的参考颜色(例如色度通道对应的信息)组合到灰度源图像时产生视觉上不准确的颜色。因此,期望彩色参考图像的亮度与灰度源图像尽可能匹配。

为了衡量语义相似度,可以在特征空间中进行比较。系统500包括特征提取模块510,用于提取灰度源图像102的第一特征图。特征提取模块510还可以对多个彩色候选图像502执行特征提取。为了避免色度信息的影响,可以确定多个彩色候选图像502分别对应的多个灰度候选图像。多个灰度候选图像仅包括相应彩色候选图像502中的亮度信息。特征提取模块510提取灰度候选图像的多个第二特征图。特征提取模块510可以基于学习网络来实现,也可被称为特征提取学习网络510。在一些示例中,特征提取模块510可以采用与图3中示出的用于对灰度图像执行特征提取的特征提取学习网络310来实现,诸如被设计为cnn。在一些实现中,特征提取模块510可以将多个卷积层中的任一个或最后一个层提取的特征图作为后续使用的特征图。

系统500还包括全局选择模块520。全局选择模块520在特征图的基础上从多个彩色候选图像502中选择与灰度源图像102语义相似的一些彩色候选图像(可称为中间彩色候选图像)522。中间彩色候选图像的选择可以通过将灰度源图像102的第一特征图与多个彩色候选图像502的特征图之间的差异来确定。这类似于图像彩色化模块122中的相似度确定模块210。一对特征图之间的差异可以由两幅特征图中的对应像素之间的差异来确定,而像素之间的差异例如可以被确定为像素取值之间的余弦相似度(诸如以上公式(4)所列出的距离计算方式)。以此方式,可以确定灰度源图像102的第一特征图与每个彩色候选图像502之间的总体相似度。通过对总体相似度进行排序,并且基于排序结果从中选择排序靠前的多个(或预定数目的)中间彩色候选图像522。

全局选择模块520仅考虑单个特征图之间的相似度,这可能难以提供图像中更准确的信息比较,因为单个特征图可能忽略了其他方面、诸如空间方面的信息。但是通过全局选择模块520,可以首先筛选掉一部分语义上相似度较低的彩色候选图像。系统500还包括精细选择模块530,用于在进一步考虑灰度源图像102与中间彩色参考图像522是否语义相似且亮度匹配。精细选择模块530基于灰度源图像102与中间彩色候选图像522的语义相似度和亮度信息两者来选择彩色参考图像。在考虑语义相似度时,针对灰度源图像102与每个中间彩色候选图像522组成的图像对,确定第一特征图和相应的第二特征图之间的相似度。此外,还衡量灰度源图像102与每个中间彩色候选图像522组成的图像对的亮度分布。精细选择模块530确定灰度源图像102的第一亮度分布和多个中间彩色候选图像522的多个第二亮度分布,并且在选择彩色参考图像104时考虑第一亮度分布和多个第二亮度分布的相关性。

在一些实现中,精细选择模块530可以为灰度源图像102与每个中间彩色候选图像522组成的图像对确定精细相似度,该相似度基于语义相似度和亮度分布的相关性来确定。在一些实现中,针对灰度源图像102与每个中间彩色候选图像522组成的每个图像对(被表示为{tl,ri}),针对第一特征图(被表示为ft)中的给定像素位置p,可以确定在中间彩色候选图像522的第二特征图中的最接近邻居像素位置q,即像素位置q的确定可以通过最小化第一和第二特征图中这两个位置的像素值的差异(例如余弦相似度)来确定。因此,灰度源图像102与每个中间彩色候选图像522的语义相似度可以被确定为对应像素(即像素p和q之间的差异或余弦相似度)。

在一些实现中,在确定亮度分布的相关性时,可以衡量灰度源图像102和每个中间彩色候选图像522中包含对应像素的区域之间的亮度分布之间的相似度。图像中的对应像素位置可以从特征图中的对应像素位置推导得到,因为特征图的尺寸均是由图像下采样得到。具体地,可以将图像102和522划分成多个区域,每个区域中包括多个像素。假设表示灰度源图像102中包含像素p的图块,而表示中间彩色候选图像i中包含对应像素q的图块。通过统计两个图块中的亮度直方图用作该图像的亮度分布。

在同时考虑语义相似度和亮度相似度的情况下,精细选择模块530可以将灰度源图像102与中间彩色候选图像522之间的精细相似度确定为:

其中指示灰度源图像102与中间彩色候选图像522的特征图之间的相似度,其中上标5指示特征图提取自特征提取学习网络510的第五个卷积层,然而其他层的特征图也可以使用。表示灰度源图像102与中间彩色候选图像522的亮度分布之间的相关度。参数β用于平衡语义相似度和亮度分布相关度对于总体精细相似度的影响。参数β可以被设置为0到1之间的任何值。根据公式(9),通过加和针对特征图中的多个像素位置p确定的语义相似度以及对应的亮度分布相关度,可以确定灰度源图像102与中间彩色候选图像522之间的精细相似度。

在确定出灰度源图像102与所有中间彩色候选图像522的精细相似度之外,精细选择模块530可以对执行相似度进行排序,并且从中选择排序最高或靠前的中间彩色候选图像522作为彩色参考图像104。在一些实现中,精细选择模块530还可以将排序靠前的两个或更多中间彩色候选图像522提供给用户,并且基于用户的选择来确定用作后续图像彩色化的彩色参考图像104。

应当理解,以上描述了从多个彩色候选图像中选择彩色参考图像的一个具体示例。在其他实现中,还可以采用其他与图像分类、图像识别相关的技术来确定与灰度源图像102在语义上和/或亮度上相似的彩色参考图像。在一些实现中,系统500还可以省略精细选择模块530,而是仅在特征空间中指向彩色参考图像104的选择。本公开的实现在此方面不受限制。

示例过程

图6示出了根据本公开一些实现的用于图像彩色化的过程600的流程图。过程600可以由计算设备100来实现,例如可以被实现在计算设备100的存储器120中的图像彩色化模块122处。在框610,确定灰度源图像和彩色参考图像呈现的内容之间的相似度。在框620,使用学习网络,基于相似度确定灰度源图像对应的彩色目标图像。具体地,在子框622,基于相似度确定灰度源图像中与彩色参考图像在内容上相似的第一组图块和在内容上不相似的第二组图块。在子框624,基于彩色参考图像中与第一组图块对应的图块中的颜色,确定第一组图块的第一颜色。在子框626,独立于彩色参考图像来确定第二组图块的第二颜色。在子框628,基于第一颜色和第二颜色变换灰度源图像,以生成彩色目标图像。

在一些实现中,确定内容相似度包括:确定彩色参考图像对应的灰度参考图像;提取灰度源图像的第一特征图和灰度参考图像的第二特征图;以及基于第一特征图与第二特征图之间的差异,确定内容相似度。

在一些实现中,提取第一特征图和第二特征图包括:至少提取灰度源图像的高层特征图作为第一特征图;以及至少提取灰度参考图像的高层特征图作为第二特征图。

在一些实现中,过程600还包括通过以下来获取彩色参考图像:获取多个彩色候选图像;确定多个彩色候选图像分别对应的多个灰度候选图像;提取灰度源图像的第一特征图和多个灰度候选图像的多个第二特征图;以及基于第一特征图和多个第二特征图之间的差异,从多个彩色候选图像选择彩色参考图像。

在一些实现中,选择彩色参考图像包括:基于第一特征图和多个第二特征图之间的差异,从多个彩色候选图像确定多个中间彩色候选图像;确定灰度源图像的第一亮度分布和多个中间彩色候选图像的多个第二亮度分布;以及至少基于第一亮度分布和多个第二亮度分布的相关性,从多个中间彩色候选图像中选择彩色参考图像。

在一些实现中,从多个中间彩色候选图像中选择彩色参考图像包括:还基于第一特征图与多个中间彩色候选图像对应的多个第二特征图之间的差异,来选择彩色参考图像。

在一些实现中,确定相似度包括:确定从灰度源图像到彩色参考图像的第一方向相似度以及从彩色参考图像到灰度源图像的第二方向相似度。

在一些实现中,确定灰度源图像与彩色参考图像之间的内容相似度包括:向用户指示彩色参考图像;以及响应于用户对彩色参考图像的选择,确定灰度源图像与彩色参考图像之间的内容相似度。

在一些实现中,过程600还包括接收由用户提供的彩色参考图像。

在一些实现中,第二颜色包括由学习网络学习到的与第二组图块在内容上相似的图块中的颜色。

图7示出了根据本公开一些实现的训练用于图像彩色化的学习网络的过程700的流程图。过程700可以由计算设备100或者由其他设备来实现。在框710,确定灰度源图像和彩色参考图像呈现的内容之间的相似度。在框720,使用学习网络,基于相似度确定灰度源图像中与彩色参考图像在内容上相似的第一组图块和在内容上不相似的第二组图块。在框730,使用学习网络,基于灰度源图像对应的真实彩色图像来确定第一组图块和第二组图块的颜色,用以生成第一预测彩色图像。在框740,使用学习网络,基于彩色参考图像确定第一组图块和第二组图块的颜色,用以生成第二预测彩色图像。在框750,基于第一预测彩色图像和第二预测彩色图像与真实彩色图像之间的相应差异来更新学习网络。

在一些实现中,更新学习网络包括:基于第一预测彩色图像与真实彩色图像之间的第一差异来更新学习网络;以及基于第二预测彩色图像与真实彩色图像之间的第二差异来再次更新学习网络。

在一些实现中,过程700还包括通过以下来确定第二差异:提取第二预测彩色图像的第一特征图和真实彩色图像的第二特征图;以及确定第一特征图与第二特征图之间的差异以作为第二差异。

在一些实现中,提取第一特征图和第二特征图包括:至少提取所第二预测彩色图像的高层特征图作为第一特征图;以及至少提取真实彩色图像的高层特征图作为第二特征图。

在一些实现中,确定相似度还包括:使用另一学习网络来确定相似度;并且其中更新学习网络包括联合更新学习网络和另一学习网络。

示例实现方式

以下列出了本公开的一些示例实现方式。

在第一方面,本公开提供了一种计算机实现的方法。该方法包括:确定灰度源图像和彩色参考图像呈现的内容之间的相似度;以及使用学习网络,基于相似度确定灰度源图像对应的彩色目标图像,包括:基于相似度确定灰度源图像中与彩色参考图像在内容上相似的第一组图块和在内容上不相似的第二组图块,基于彩色参考图像中与第一组图块对应的图块中的颜色,确定第一组图块的第一颜色,独立于彩色参考图像来确定第二组图块的第二颜色,以及基于第一颜色和第二颜色变换灰度源图像,以生成彩色目标图像。

在一些实现中,确定内容相似度包括:确定彩色参考图像对应的灰度参考图像;提取灰度源图像的第一特征图和灰度参考图像的第二特征图;以及基于第一特征图与第二特征图之间的差异,确定内容相似度。

在一些实现中,提取第一特征图和第二特征图包括:至少提取灰度源图像的高层特征图作为第一特征图;以及至少提取灰度参考图像的高层特征图作为第二特征图。

在一些实现中,方法还包括通过以下来获取彩色参考图像:获取多个彩色候选图像;确定多个彩色候选图像分别对应的多个灰度候选图像;提取灰度源图像的第一特征图和多个灰度候选图像的多个第二特征图;以及基于第一特征图和多个第二特征图之间的差异,从多个彩色候选图像选择彩色参考图像。

在一些实现中,选择彩色参考图像包括:基于第一特征图和多个第二特征图之间的差异,从多个彩色候选图像确定多个中间彩色候选图像;确定灰度源图像的第一亮度分布和多个中间彩色候选图像的多个第二亮度分布;以及至少基于第一亮度分布和多个第二亮度分布的相关性,从多个中间彩色候选图像中选择彩色参考图像。

在一些实现中,从多个中间彩色候选图像中选择彩色参考图像包括:还基于第一特征图与多个中间彩色候选图像对应的多个第二特征图之间的差异,来选择彩色参考图像。

在一些实现中,确定相似度包括:确定从灰度源图像到彩色参考图像的第一方向相似度以及从彩色参考图像到灰度源图像的第二方向相似度。

在一些实现中,确定灰度源图像与彩色参考图像之间的内容相似度包括:向用户指示彩色参考图像;以及响应于用户对彩色参考图像的选择,确定灰度源图像与彩色参考图像之间的内容相似度。

在一些实现中,方法还包括接收由用户提供的彩色参考图像。

在一些实现中,第二颜色包括由学习网络学习到的与第二组图块在内容上相似的图块中的颜色。

在第二方面,本公开提供了一种计算机实现的方法。该方法包括:确定灰度源图像和彩色参考图像呈现的内容之间的相似度;使用学习网络,基于相似度确定灰度源图像中与彩色参考图像在内容上相似的第一组图块和在内容上不相似的第二组图块;使用学习网络,基于灰度源图像对应的真实彩色图像来确定第一组图块和第二组图块的颜色,用以生成第一预测彩色图像;使用学习网络,基于彩色参考图像确定第一组图块和第二组图块的颜色,用以生成第二预测彩色图像;以及基于第一预测彩色图像和第二预测彩色图像与真实彩色图像之间的相应差异来更新学习网络。

在一些实现中,更新学习网络包括:基于第一预测彩色图像与真实彩色图像之间的第一差异来更新学习网络;以及基于第二预测彩色图像与真实彩色图像之间的第二差异来更新学习网络。

在一些实现中,方法还包括通过以下来确定第二差异:提取第二预测彩色图像的第一特征图和真实彩色图像的第二特征图;以及确定第一特征图与第二特征图之间的差异以作为第二差异。

在一些实现中,提取第一特征图和第二特征图包括:至少提取所第二预测彩色图像的高层特征图作为第一特征图;以及至少提取真实彩色图像的高层特征图作为第二特征图。

在一些实现中,确定相似度还包括:使用另一学习网络来确定相似度;并且其中更新学习网络包括联合更新学习网络和另一学习网络。

在第三方面,本公开提供了一种电子设备。该电子设备包括:处理单元;以及存储器,耦合至处理单元并且包含存储于其上的指令,指令在由处理单元执行时使设备执行以下动作:确定灰度源图像和彩色参考图像呈现的内容之间的相似度;以及使用学习网络,基于相似度确定灰度源图像对应的彩色目标图像,包括:基于相似度确定灰度源图像中与彩色参考图像在内容上相似的第一组图块和在内容上不相似的第二组图块,基于彩色参考图像中与第一组图块对应的图块中的颜色,确定第一组图块的第一颜色,独立于彩色参考图像来确定第二组图块的第二颜色,以及基于第一颜色和第二颜色变换灰度源图像,以生成彩色目标图像。

在一些实现中,确定内容相似度包括:确定彩色参考图像对应的灰度参考图像;提取灰度源图像的第一特征图和灰度参考图像的第二特征图;以及基于第一特征图与第二特征图之间的差异,确定内容相似度。

在一些实现中,提取第一特征图和第二特征图包括:至少提取灰度源图像的高层特征图作为第一特征图;以及至少提取灰度参考图像的高层特征图作为第二特征图。

在一些实现中,动作还包括通过以下来获取彩色参考图像:获取多个彩色候选图像;确定多个彩色候选图像分别对应的多个灰度候选图像;提取灰度源图像的第一特征图和多个灰度候选图像的多个第二特征图;以及基于第一特征图和多个第二特征图之间的差异,从多个彩色候选图像选择彩色参考图像。

在一些实现中,选择彩色参考图像包括:基于第一特征图和多个第二特征图之间的差异,从多个彩色候选图像确定多个中间彩色候选图像;确定灰度源图像的第一亮度分布和多个中间彩色候选图像的多个第二亮度分布;以及至少基于第一亮度分布和多个第二亮度分布的相关性,从多个中间彩色候选图像中选择彩色参考图像。

在一些实现中,从多个中间彩色候选图像中选择彩色参考图像包括:还基于第一特征图与多个中间彩色候选图像对应的多个第二特征图之间的差异,来选择彩色参考图像。

在一些实现中,确定相似度包括:确定从灰度源图像到彩色参考图像的第一方向相似度以及从彩色参考图像到灰度源图像的第二方向相似度。

在一些实现中,确定灰度源图像与彩色参考图像之间的内容相似度包括:向用户指示彩色参考图像;以及响应于用户对彩色参考图像的选择,确定灰度源图像与彩色参考图像之间的内容相似度。

在一些实现中,动作还包括:接收由用户提供的彩色参考图像。

在一些实现中,第二颜色包括由学习网络学习到的与第二组图块在内容上相似的图块中的颜色。

在第四方面,本公开提供了一种电子设备。该电子设备包括:处理单元;以及存储器,耦合至处理单元并且包含存储于其上的指令,指令在由处理单元执行时使设备执行以下动作:确定灰度源图像和彩色参考图像呈现的内容之间的相似度;使用学习网络,基于相似度确定灰度源图像中与彩色参考图像在内容上相似的第一组图块和在内容上不相似的第二组图块;使用学习网络,基于灰度源图像对应的真实彩色图像来确定第一组图块和第二组图块的颜色,用以生成第一预测彩色图像;使用学习网络,基于彩色参考图像确定第一组图块和第二组图块的颜色,用以生成第二预测彩色图像;以及基于第一预测彩色图像和第二预测彩色图像与真实彩色图像之间的相应差异来更新学习网络。

在一些实现中,更新学习网络包括:基于第一预测彩色图像与真实彩色图像之间的第一差异来更新学习网络;以及基于第二预测彩色图像与真实彩色图像之间的第二差异来更新学习网络。

在一些实现中,方法还包括通过以下来确定第二差异:提取第二预测彩色图像的第一特征图和真实彩色图像的第二特征图;以及确定第一特征图与第二特征图之间的差异以作为第二差异。

在一些实现中,提取第一特征图和第二特征图包括:至少提取所第二预测彩色图像的高层特征图作为第一特征图;以及至少提取真实彩色图像的高层特征图作为第二特征图。

在一些实现中,确定相似度还包括:使用另一学习网络来确定相似度;并且其中更新学习网络包括联合更新学习网络和另一学习网络。

在第五方面,本公开提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令,机器可执行指令在由设备执行时使设备执行上述第一或第二方面的方法。

在第六方面,本公开提供了一种计算机可读介质,其上存储有机器可执行指令,机器可执行指令在由设备执行时使设备执行上述第一或第二方面的方法。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等等。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1