掌桥专利:专业的专利平台
掌桥专利
首页

图像掩膜确定方法及装置、存储介质和电子设备

文献发布时间:2023-06-19 12:05:39


图像掩膜确定方法及装置、存储介质和电子设备

技术领域

本公开涉及图像处理技术领域,具体而言,涉及一种图像掩膜确定方法、图像掩膜确定装置、计算机可读存储介质和电子设备。

背景技术

在图像处理技术领域,往往需要对拍摄出的图像或视频进行后续处理,例如,图像虚化、图像分割、图像编辑等,以满足不同应用场景的需求。在一些方案中,会利用图像掩膜来实现图像或视频的后续处理。

目前,一些技术存在确定出的图像掩膜不准确的问题,导致图像后续处理效果不佳。

发明内容

本公开提供一种图像掩膜确定方法、图像掩膜确定装置、计算机可读存储介质和电子设备,进而至少在一定程度上克服图像掩膜不准确导致图像后处理效果不佳的问题。

根据本公开的第一方面,提供了一种图像掩膜确定方法,包括:提取视频中一目标帧图像的第一图像掩膜;在目标帧图像满足预设图像要求的情况下,确定第一图像掩膜中每个像素点的第一灰度值,以及与像素点对应的参考像素点的灰度值,对应的参考像素点为目标帧图像的相邻帧图像的图像掩膜上与像素点的位置对应的像素点;利用第一图像掩膜中每个像素点的第一灰度值以及对应的参考像素点的灰度值,确定出第一图像掩膜中每个像素点的第二灰度值,并基于每个像素点的第二灰度值得到目标帧图像的第二图像掩膜。

根据本公开的第二方面,提供了一种图像掩膜确定装置,包括:第一掩膜确定模块,用于提取视频中一目标帧图像的第一图像掩膜;灰度值确定模块,用于在目标帧图像满足预设图像要求的情况下,确定第一图像掩膜中每个像素点的第一灰度值,以及与像素点对应的参考像素点的灰度值,对应的参考像素点为目标帧图像的相邻帧图像的图像掩膜上与像素点的位置对应的像素点;第二掩膜确定模块,用于利用第一图像掩膜中每个像素点的第一灰度值以及对应的参考像素点的灰度值,确定出第一图像掩膜中每个像素点的第二灰度值,并基于每个像素点的第二灰度值得到目标帧图像的第二图像掩膜。

根据本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的图像掩膜确定方法。

根据本公开的第四方面,提供了一种电子设备,包括处理器;存储器,用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得所述处理器实现上述的图像掩膜确定方法。

在本公开的一些实施例所提供的技术方案中,确定视频中一目标帧图像的第一图像掩膜,在目标帧图像满足预设图像要求的情况下,确定第一图像掩膜中每个像素点的第一灰度值,以及与像素点对应的参考像素点的灰度值,该参考像素点为目标帧图像的相邻帧图像的图像掩膜上与该像素点的位置对应的像素点,再利用第一图像掩膜中每个像素点的第一灰度值以及对应的参考像素点的灰度值,确定出第一图像掩膜中每个像素点的第二灰度值,并基于每个像素点的第二灰度值得到目标帧图像的第二图像掩膜。本公开方案结合相邻帧图像的图像掩膜上像素点的灰度值来确定目标帧图像上对应像素点的灰度值,以对原本经历抠图处理后得到图像掩膜进行校正,得到灰度值调整后的图像掩膜,由此,可以提高确定图像掩膜的准确性,进而有助于基于图像掩膜的图像后处理过程,提高例如图像虚化、图像分割等过程的处理效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了应用本公开实施例的图像掩膜确定方案的示例性系统架构的示意图;

图2示出了适于用来实现本公开实施例的电子设备的结构示意图;

图3示意性示出了根据本公开示例性实施方式的图像掩膜确定方法的流程图;

图4示意性示出了根据本公开一个实施例的确定第一图像掩膜的流程图;

图5示意性示出了根据本公开另一个实施例的确定第一图像掩膜的流程图;

图6示出了在确定第一图像掩膜的过程中应用的编码器-解码器结构的示意图;

图7示出了根据本公开实施例的图像掩膜确定过程的示意图;

图8示意性示出了根据本公开示例性实施方式的图像掩膜确定装置的方框图;

图9示意性示出了根据本公开另一示例性实施方式的图像掩膜确定装置的方框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,下面所有的术语“第一”、“第二”、“第三”仅是为了区分的目的,不应作为本公开内容的限制。

图1示出了应用本公开实施例的图像掩膜确定方案的示例性系统架构的示意图。

如图1所示,系统架构可以包括终端设备1001和服务器1002。终端设备1001与服务器1002可以通过网络连接,网络的连接类型可以例如包括有线、无线通信链路或者光纤电缆等。

应当理解,终端设备1001和服务器1002的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备和服务器。比如服务器1002可以是多个服务器组成的服务器集群等。服务器1002还可以被称为云端或云端服务器。

终端设备1001可以通过网络与服务器1002交互,以接收或发送消息等。虽然图1中以智能手机为例示出,然而,终端设备1001还包括平板电脑、智能可穿戴设备、个人计算机等具有拍摄功能的设备。其中,终端设备1001还可以被称为终端、移动终端、移动端、智能终端等。

在由终端设备1001执行本公开示例性实施方式的图像掩膜确定过程的情况下,首先,终端设备1001可以确定视频中一目标帧图像的第一图像掩膜,例如可以结合抠图算法来确定第一图像掩膜。接下来,终端设备1001判断目标帧图像是否满足预设图像要求,并在满足时,确定第一图像掩膜中每个像素点的第一灰度值以及与该像素点对应的参考像素点的灰度值,其中,参考像素点为目标帧图像的相邻帧图像的图像掩膜上与该像素点位置对应的像素点。然后,终端设备1001利用第一图像掩膜中每个像素点的第一灰度值以及对应的参考像素点的灰度值,确定出第一图像掩膜中每个像素点的第二灰度值,并基于每个像素点的第二灰度值得到目标帧图像的第二图像掩膜。

在确定出目标帧图像的第二图像掩膜的情况下,终端设备1001可以利用该第二图像掩膜对目标帧图像进行例如图像虚化、图像分割等的图像后处理过程。

应该理解的是,在确定第二图像掩膜的过程中,一些实施例可能利用目标帧图像之后的相邻图像(如下一帧图像)进行处理,因此,在视频预览或视频播放的场景中,可以滞后一帧或多帧进行展示。从用户的角度,可以无感知地观看到基于精确图像掩膜而进行处理后的视频图像。

另外,根据场景需要,目标帧图像可以是视频中特定的图像,例如,视频中特定时间段的图像、特定拍摄场景的图像等。然而,可以理解的是,目标帧图像还可以是视频中任一帧图像。

在由服务器1002执行本公开示例性实施方式的图像掩膜确定过程的情况下,首先,服务器1002可以获取由终端设备1001发送的视频,服务器1002可以确定视频中一目标帧图像的第一图像掩膜,例如可以结合抠图算法来确定第一图像掩膜。接下来,服务器1002判断目标帧图像是否满足预设图像要求,并在满足时,确定第一图像掩膜中每个像素点的第一灰度值以及与该像素点对应的参考像素点的灰度值,其中,参考像素点为目标帧图像的相邻帧图像的图像掩膜上与该像素点位置对应的像素点。然后,服务器1002利用第一图像掩膜中每个像素点的第一灰度值以及对应的参考像素点的灰度值,确定出第一图像掩膜中每个像素点的第二灰度值,并基于每个像素点的第二灰度值得到目标帧图像的第二图像掩膜。

在确定出目标帧图像的第二图像掩膜的情况下,服务器1002可以利用该第二图像掩膜对目标帧图像进行例如图像虚化、图像分割等的图像后处理过程。

另外,服务器1002可以将视频中执行图像掩膜确定过程后的视频帧图像反馈给终端设备1001,或者将图像后处理之后得到的视频或图像反馈给终端设备1001,由终端设备1001保存和/或展示。

应当注意的是,方案中图像掩膜确定过程的任意步骤均可以由终端设备1001或服务器1002执行,本公开对此不做限制。

图2示出了适于用来实现本公开示例性实施方式的电子设备的示意图。本公开示例性实施方式的终端设备可以被配置为如图2的形式。需要说明的是,图2示出的电子设备仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

本公开的电子设备至少包括处理器和存储器,存储器用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得处理器可以实现本公开示例性实施方式的图像掩膜确定方法。

具体的,如图2所示,电子设备200可以包括:处理器210、内部存储器221、外部存储器接口222、通用串行总线(Universal Serial Bus,USB)接口230、充电管理模块240、电源管理模块241、电池242、天线1、天线2、移动通信模块250、无线通信模块260、音频模块270、扬声器271、受话器272、麦克风273、耳机接口274、传感器模块280、显示屏290、摄像模组291、指示器292、马达293、按键294以及用户标识模块(Subscriber IdentificationModule,SIM)卡接口295等。其中传感器模块280可以包括深度传感器、压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器及骨传导传感器等。

可以理解的是,本公开实施例示意的结构并不构成对电子设备200的具体限定。在本公开另一些实施例中,电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。

处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(Graphics ProcessingUnit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器和/或神经网络处理器(Neural-etwork Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。另外,处理器210中还可以设置存储器,用于存储指令和数据。

电子设备200可以通过ISP、摄像模组291、视频编解码器、GPU、显示屏290及应用处理器等实现拍摄功能。在一些实施例中,电子设备200可以包括1个或N个摄像模组291,N为大于1的正整数,若电子设备200包括N个摄像头,N个摄像头中有一个是主摄像头。

内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。外部存储器接口222可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备200的存储能力。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

下面将以终端设备执行本公开的图像掩膜确定方法为例对本公开示例性实施方式进行说明,在这种情况下,图像掩膜确定装置可以配置在终端设备中。

图3示意性示出了本公开的示例性实施方式的图像掩膜确定方法的流程图。参考图3,该图像掩膜确定方法可以包括以下步骤:

S32.提取视频中一目标帧图像的第一图像掩膜。

在本公开的示例性实施方式中,视频可以是终端设备通过其配备的摄像模组拍摄得到的视频,也可以是预览模式下的视频,亦或者可以是从其他设备或服务器获取到的视频。本公开对视频的来源、视频包含的图像内容、视频的大小、视频的格式等均不做限制。

根据本公开的一些实施例,目标帧图像可以是视频中的任一帧图像,也就是说,可以将本公开的图像掩膜确定方案应用于视频包含的所有图像。

根据本公开的另一些实施例,目标帧图像可以是视频中的一个或部分特定的图像,特定的图像包括但不限于视频中特定时间段的图像、特征拍摄场景的图像等。例如,在需要增强用户A的人像的场景中,可以将视频中包含用户A人像的一个或多个图像作为本公开的目标帧图像。

另外,针对视频中的目标帧图像,本公开对目标帧图像的格式不做限制,可以是RAW图像、YUV图像、RGB图像等。需要说明的是,还可以对深度图执行本公开的图像掩膜确定过程,在这种情况下,目标帧图像还可以是深度图像。

在确定目标帧图像的第一图像掩膜之前,如果目标帧图像不满足提取图像掩膜的要求,则需要对目标帧图像进行前处理。

一方面,终端设备可以判断目标帧图像是否满足图像尺寸的要求,例如,图像尺寸要求为800*600。如果目标帧图像的尺寸不满足要求,则可以对目标帧图像进行缩放处理,以满足尺寸的要求。

另一方面,终端设备可以目标帧图像的图像方向是否满足方向的要求,例如,要求的图像方向为人像头部朝上的方向。如果目标帧图像的图像方向不满足方向的要求,则可以对目标帧图像进行旋转(例如旋转90度),以满足图像方向的要求。

在本公开一些实施例中,前处理还包括图像归一化的过程。例如,对于RGB格式的目标帧图像,可以将每个通道的值,执行先减去均值(通常取127.5),后除以方差(通常取值127.5)的操作。又例如,还可以直接除以255。本公开对图像归一化的过程不做限制。

在目标帧图像或经前处理后的目标帧图像满足提取图像掩膜的要求的情况下,可以确定目标帧图像的第一图像掩膜。

在本公开的示例性实施方式中,可以基于发丝级的抠图算法来确定目标帧图像的第一图像掩膜。其中,基于发丝级的抠图算法可以包括显式三值图抠图算法和隐式三值图抠图算法。

图4示意性示出了以人像作为掩膜为例的显示三值图抠图算法的执行过程。参考图4,首先,目标帧图像可以经过人像分割算法,得到人像分割三值掩膜。其中,人像分割算法所采用的模型被配置为编码器-解码器(Enc-dec)的结构。接下来,将目标帧图像与人像分割三值掩膜进行通道拼接,将拼接后的结果作为中间图像。然后,将中间图像输入人像抠图算法对应的模型,以得到第一图像掩膜。其中,人像抠图算法对应的模型也可以被配置为Enc-dec结构。

图5示意性示出了以人像作为掩膜为例的隐式三值图抠图算法的执行过程。参考图5,目标帧图像直接经过一个基于双Enc-dec结构的发丝级人像抠图算法,即可得到第一图像掩膜。

图6示例性示出了一个Enc-dec结构的示意图。可见,编码器执行下采样过程,通常可以由MobileNet、ShuffleNet、ResNet等神经网络组成。解码器执行上采样过程,通常可以由反卷积或插值上采样网络组成。编码器与解码器可以通过跳跃连接的方式加强信息的传递,将浅层特征融合至深层特征,增强算法的泛化能力。

S34.在目标帧图像满足预设图像要求的情况下,确定第一图像掩膜中每个像素点的第一灰度值,以及与像素点对应的参考像素点的灰度值,对应的参考像素点为目标帧图像的相邻帧图像的图像掩膜上与像素点的位置对应的像素点。

在本公开的示例性实施方式中,预设图像要求是预先定义的要求,本公开方案在满足该要求的情况下,才进行掩膜修正的操作。

根据本公开的一些实施例,在拍摄目标帧图像时,如果相机处于运动状态,则确定出目标帧图像满足预设图像要求。

在一个实施例中,可以获取终端设备中陀螺仪的数据,检测出相机的角度,如果目标帧图像与相邻帧图像(上一帧图像或下一帧图像)之间的角度之差大于一角度阈值,则判断出相机处于运动状态。如果目标帧图像与相邻帧图像之间的角度之差小于等于该角度阈值,则说明相机处于静止状态。

在另一个实施例中,首先,在像素级别上,可以计算目标帧图像与一个相邻帧图像的差值,并将该差值与一差值阈值进行比较,得到比较结果。例如,如果大于该差值阈值,则记为1,如果小于等于该差值阈值,则记为0,由此,可以得到二值化的差值图。

接下来,对二值化的差值图上的像素点进行求和,得到求和结果,并将该求和结果与一数量阈值进行比较,并根据比较结果确定相机是否处于运动状态。

具体的,如果求和结果大于数量阈值,则说明目标帧图像相比于相邻帧图像像素点变化较大,则确定出相机处于运动状态。如果求和结果小于等于数量阈值,则说明目标帧图像相比于相邻帧图像像素点变化较小,则确定出相机处于静止状态。

另外,上述将“记为1”、“记为0”的说明仅是示例,本领域人员可以柑橘此描述联想到其他的判断手段,均属于本公开方案的内容。

在又一个实施例中,可以结合上述基于陀螺仪数据以及利用相邻帧的方案,来确定出相机是否处于运动状态。也就是说,如果任一种情况判断出相机处于运动状态,则可以得到相机处于运动状态的结果。如果两种情况确定出相机处于静止状态,则可以得到相机处于静止状态的结果,相机处于静止状态即表明目标帧图像不满足预设图像要求。

根据本公开的另一些实施例,终端设备可以确定目标帧图像中除第一图像掩膜之外的背景区域的复杂度,如果确定出的复杂度大于复杂度阈值,则可以确定出目标帧图像满足预设图像要求。

具体的,首先,可以采用多种梯度算子获取背景区域的梯度信息,并统计出梯度和,作为背景区域的复杂度。接下来,判断该复杂度与一复杂度阈值的大小关系,如果该复杂度大于复杂度阈值,则确定出目标帧图像满足预设图像要求。如果该复杂度小于等于复杂度阈值,则确定出目标帧图像不满足预设图像要求。

其中,多种梯度算子包括Roberts、Sobel、Prewitt、Laplacian、Log等算子。另外,还可以仅采用一个算子得到梯度来执行复杂度的判断过程,本公开对此不做限制。

根据本公开的又一些实施例,可以根据相机的状态以及背景区域的复杂度来综合确定出目标帧图像是否满足预设图像要求。

具体的,终端设备可以确定目标帧图像中除第一图像掩膜之外的背景区域的复杂度,如果确定出的复杂度大于复杂度阈值,并且在拍摄目标帧图像时相机处于运动状态,则可以确定出目标帧图像满足预设图像要求。

在目标帧图像满足预设图像要求的情况下,终端设备可以确定第一图像掩膜中每个像素点的第一灰度值,以及与该像素点对应的参考像素点的灰度值。

需要说明的是,本公开所述的参考像素点是视频中目标帧图像的相邻帧图像的图像掩膜上与该像素点的位置对应的像素点。其中,位置对应指的是,像素点在第一图像掩膜中的位置与参考像素点在相邻帧图像的图像掩膜上的位置相同。

也就是说,在执行本公开方案之前,除步骤S32中确定目标帧图像的第一图像掩膜之外,还可以缓存目标帧图像的相邻帧图像的图像掩膜。

另外,虽然本公开一些实施例以相邻帧图像为目标帧图像的上一帧图像和下一帧图像为例进行说明,然而,应当理解的是,如果将目标帧图像记为第t帧图像,则第t-2帧图像、第t+2帧图像、第t+3帧图像等均为目标帧图像的相邻帧图像。例如,在另一些实施例中,还可以仅将第t-2帧图像和第t+2帧图像作为第t帧图像的相邻帧图像。

此外,本公开对采用的相邻帧图像的图像数量不做限制,仍以目标帧图像记为第t帧图像为例,在一些实施例中,可以将第t-1帧图像和第t+1帧图像作为相邻帧图像应用于本方案。在又一些实施例中,还可以仅将第t-1帧图像作为相邻帧图像应用于本方案。

在目标帧图像不满足预设图像要求的情况下,本公开示例性方案直接将第一图像掩膜作为目标帧图像最终确定出图像掩膜输出。

S36.利用第一图像掩膜中每个像素点的第一灰度值以及对应的参考像素点的灰度值,确定出第一图像掩膜中每个像素点的第二灰度值,并基于每个像素点的第二灰度值得到目标帧图像的第二图像掩膜。

应当注意的是,第一图像掩膜中的像素点,并不一定均需要进行重新计算灰度值的过程。对于是否进行计算,取决于目标帧图像的第一图像掩膜与相邻帧图像的图像掩膜的具体情况。

遍历第一图像掩膜中所有的像素点,对于需要重新计算灰度值的像素点,灰度值被修正,得到第二灰度值。对于不需要重新计算灰度值的像素点,灰度值保持第一灰度值,并将第一灰度值作为第二灰度值。由此,在遍历结束之后,可以基于像素点的第二灰度值得到目标帧图像的第二图像掩膜,并将目标帧图像的第二图像掩膜作为最终确定出的图像掩膜输出。

在目标帧图像的相邻帧图像包括目标帧图像的上一帧图像和下一帧图像的情况下,可以基于第一图像掩膜中像素点的第一灰度值、上一帧图像的图像掩膜上对应的参考像素点的灰度值,以及下一帧图像的图像掩膜上对应的参考像素点的灰度值,确定是否需要对第一图像掩膜中该像素点的第一灰度值进行修正。

一方面,可以计算上一帧图像的图像掩膜上对应的参考像素点的灰度值与下一帧图像的图像掩膜上对应的参考像素点的灰度值的差值的绝对值,作为第一绝对值。

第二方面,可以计算上一帧图像的图像掩膜上对应的参考像素点的灰度值与该像素点的第一灰度值的差值的绝对值,作为第二绝对值。

第三方面,可以计算该像素点的第一灰度值与下一帧图像的图像掩膜上对应的参考像素点的灰度值的差值的绝对值,作为第三绝对值。

在这种情况下,可以利用第一绝对值、第二绝对值和第三绝对值,确定是否需要对第一图像掩膜上的该像素点的第一灰度值进行修正。

具体的,可以将第一绝对值与第一灰度值阈值进行比较,得到第一比较结果,将第二绝对值与第二灰度值阈值进行比较,得到第二比较结果,将第三绝对值与第二灰度值进行比较,得到第三比较结果,再根据第一比较结果、第二比较结果和第三比较结果,确定是否需要对该像素点的第一灰度值进行修正。应当理解的是,第一灰度值阈值可以与第二灰度值阈值相同,第一灰度值阈值还可以配置为与第二灰度值阈值不同。

其中,在第一绝对值小于第一灰度值阈值且第二绝对值和第三绝对值均大于第二灰度值阈值的情况下,确定出需要对该像素点的第一灰度值进行修正。此外的情况,均属于不需要对所述像素点的第一灰度值进行修正的情况。

例如,将α

如上所述,将α

在确定出需要对像素点的第一灰度值进行修正的情况下,可以利用上一帧图像的图像掩膜上对应的参考像素点的灰度值以及下一帧图像的图像掩膜上对应的参考像素点的灰度值,计算出该像素点的第二灰度值。具体的,可以对二者取平均值,得到该像素点的第二灰度值。例如,第i个像素点的第二灰度值可以为(α

应当理解的是,一方面,在相邻帧图像仅包括上一帧图像和下一帧图像的实例中,还可以为上一帧图像与下一帧图像配置权重,通过加权平均的方式求解出第i个像素点的第二灰度值。另一方面,在相邻帧图像包括其他帧图像的实例中,也可以采用平均或加权平均的方式,确定出第i个像素点的第二灰度值。本公开对这些内容均不做限制。

另外,在确定出不需要对像素点的第一灰度值进行修正的情况下,可以将像素点的第一灰度值作为第二灰度值。

应当注意的是,鉴于本公开一些实施例中采用了目标帧图像的下一帧图像的数据来确定目标帧图像的图像掩膜,因此,在输出目标帧图像的第二图像掩膜时,可以滞后一帧进行输出。又或者,在显示经基于图像掩膜的图像后处理后的视频时,滞后一帧进行显示,以保证视频的稳定性和展示效果。

下面将参考图7对本公开实施例的图像掩膜确定过程进行说明。

如图7所示,针对视频中的第t帧图像,一方面,经过图像前处理、人像抠图的过程,得到第t帧的图像掩膜,即上面所述的第一图像掩膜。另一方面,判断第t帧图像是否满足预设图像要求,如果满足,则进行平滑处理的过程,得到第t帧修正后的图像掩膜并输出,即上面所述的第二图像掩膜;如果不满足,则将该第t帧的掩膜直接输出。

针对平滑处理的过程,可以获取第t-1帧的掩膜和第t+1帧的掩膜,并逐像素点进行上述的判断以及修正过程,得到第t帧修正后的掩膜。

应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

进一步的,本示例实施方式中还提供了一种图像掩膜确定装置。

图8示意性示出了本公开的示例性实施方式的图像掩膜确定装置8的方框图。参考图8,根据本公开的示例性实施方式的图像掩膜确定装置8可以包括第一掩膜确定模块81、灰度值确定模块83和第二掩膜确定模块85。

具体的,第一掩膜确定模块81可以用于提取视频中一目标帧图像的第一图像掩膜;灰度值确定模块83可以用于在目标帧图像满足预设图像要求的情况下,确定第一图像掩膜中每个像素点的第一灰度值,以及与像素点对应的参考像素点的灰度值,对应的参考像素点为目标帧图像的相邻帧图像的图像掩膜上与像素点的位置对应的像素点;第二掩膜确定模块85可以用于利用第一图像掩膜中每个像素点的第一灰度值以及对应的参考像素点的灰度值,确定出第一图像掩膜中每个像素点的第二灰度值,并基于每个像素点的第二灰度值得到目标帧图像的第二图像掩膜。

根据本公开的示例性实施例,目标帧图像的相邻帧图像包括目标帧图像的上一帧图像和下一帧图像。在这种情况下,第二掩膜确定模块85可以被配置为执行:基于第一图像掩膜中像素点的第一灰度值、上一帧图像的图像掩膜上对应的参考像素点的灰度值以及下一帧图像的图像掩膜上对应的参考像素点的灰度值,确定是否需要对像素点的第一灰度值进行修正;在确定出需要对像素点的第一灰度值进行修正的情况下,利用上一帧图像的图像掩膜上对应的参考像素点的灰度值以及下一帧图像的图像掩膜上对应的参考像素点的灰度值,计算出像素点的第二灰度值;在确定出不需要对像素点的第一灰度值进行修正的情况下,将像素点的第一灰度值作为像素点的第二灰度值。

根据本公开的示例性实施例,第二掩膜确定模块85可以被配置为执行:计算上一帧图像的图像掩膜上对应的参考像素点的灰度值与下一帧图像的图像掩膜上对应的参考像素点的灰度值的差值的绝对值,作为第一绝对值;计算上一帧图像的图像掩膜上对应的参考像素点的灰度值与像素点的第一灰度值的差值的绝对值,作为第二绝对值;计算像素点的第一灰度值与下一帧图像的图像掩膜上对应的参考像素点的灰度值的差值的绝对值,作为第三绝对值;利用第一绝对值、第二绝对值和第三绝对值,确定是否需要对像素点的第一灰度值进行修正。

根据本公开的示例性实施例,第二掩膜确定模块85可以被配置为执行:将第一绝对值与第一灰度值阈值进行比较,得到第一比较结果;将第二绝对值与第二灰度值阈值进行比较,得到第二比较结果;将第三绝对值与第二灰度值阈值进行比较,得到第三比较结果;根据第一比较结果、第二比较结果和第三比较结果,确定是否需要对像素点的第一灰度值进行修正;其中,在第一绝对值小于第一灰度值阈值且第二绝对值和第三绝对值均大于第二灰度值阈值的情况下,确定出需要对像素点的第一灰度值进行修正。

根据本公开的示例性实施例,参考图9,相比于图像掩膜确定装置8,图像掩膜确定装置9还可以包括预设要求判断模块91。

具体的,预设要求判断模块91可以被配置为执行:在拍摄目标帧图像时,如果相机处于运动状态,则确定出目标帧图像满足预设图像要求。

根据本公开的示例性实施例,预设要求判断模块91还可以被配置为执行:确定目标帧图像中除第一图像掩膜之外的背景区域的复杂度;如果确定出的复杂度大于复杂度阈值,则确定出目标帧图像满足预设图像要求。

根据本公开的示例性实施例,预设要求判断模块91还可以被配置为执行:确定目标帧图像中除第一图像掩膜之外的背景区域的复杂度;如果确定出的复杂度大于复杂度阈值,并且在拍摄目标帧图像时相机处于运动状态,则确定出目标帧图像满足预设图像要求。

根据本公开的示例性实施例,预设要求判断模块91还可以被配置为执行:计算目标帧图像与一个相邻帧图像的差值,并将该差值与差值阈值进行比较,以得到二值化的差值图;对二值化的差值图上的像素点进行求和,得到求和结果;将求和结果与数量阈值进行比较,并根据比较结果确定相机是否处于运动状态。

由于本公开实施方式的图像掩膜确定装置的各个功能模块与上述方法实施方式中相同,因此在此不再赘述。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。

此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

相关技术
  • 图像掩膜确定方法及装置、存储介质和电子设备
  • 图像掩膜生成方法、装置、电子设备和存储介质
技术分类

06120113161794