[0001]
本申请涉及数据处理领域,特别是涉及一种抠图方法、装置、设备和存储介质。
背景技术:[0002]
虚拟抠像可以用于从一种场景的图像中抠出目标对象,并将抠出的目标对象与其它场景的图像进行合并,生成新的图像。虚拟抠像广泛应用于各种场景,如教学视频的录制、影视剧的拍摄等。
[0003]
目前,虚拟抠像的主要方式为:搭建特定的背景,比如蓝绿背景,然后录制目标对象在蓝绿背景下的视频,进而将目标对象从视频图像中抠像以与所需的其它场景图像进行合成。但是现有的虚拟抠像方案需要构建特定的背景才能抠图,增大了抠图的复杂性,且也增加了抠图成本。
技术实现要素:[0004]
为了解决上述技术问题,本申请提供了一种抠图方法、装置、设备和存储介质,可以实现针对静止场景下的目标对象的分割,无需额外搭建背景,降低了虚拟抠图的复杂性,降低了抠图成本。
[0005]
本申请实施例公开了如下技术方案:
[0006]
一方面,本申请实施例提供了一种抠图方法,所述方法包括:
[0007]
获取针对静止场景的背景图像和待分割图像;其中,所述背景图像不包括目标对象;
[0008]
根据所述待分割图像中的第一像素点与所述背景图像中对应的第二像素点的亮度差,以及所述第一像素点与所述第二像素点的颜色差,确定所述第一像素点的透明度;
[0009]
若所述第一像素点的透明度大于透明度阈值,确定所述第一像素点为目标像素点,所述目标像素点为所述目标对象中的像素点;
[0010]
根据所述目标像素点,从所述待分割图像中分割所述目标对象。
[0011]
可选的,确定所述第一像素点的透明度的过程,包括:
[0012]
如果所述第一像素点的亮度值小于或等于亮度阈值,利用所述第一像素点和所述第二像素点的亮度差确定所述第一像素点的透明度;
[0013]
如果所述第一像素点的亮度值大于所述亮度阈值,利用所述第一像素点和所述第二像素点的亮度差,以及所述第一像素点和所述第二像素点的颜色差确定所述第一像素点的透明度。
[0014]
可选的,所述利用所述第一像素点和所述第二像素点的亮度差确定所述第一像素点的透明度,包括:通过如下公式计算所述第一像素点的透明度,
[0015][0016]
f(x,y)=p
×
|i
x,y-i
d,x,y
|+q
[0017]
其中,α
x,y
为所述第一像素点的透明度;i
x,y
为所述第一像素点的亮度;i
d,x,y
为所述
第二像素点的亮度;p和q均为预置的参数。
[0018]
可选的,所述利用所述第一像素点和所述第二像素点的亮度差,以及所述第一像素点和所述第二像素点的颜色差确定所述第一像素点的透明度,包括:通过如下公式计算所述第一像素点的透明度,
[0019][0020]
g(x,y)=a
×
((r
x,y-r
d,x,y
)2+(g
x,y-g
d,x,y
)2)+b
×
|i
x,y-i
d,x,y
|+c
[0021]
其中,α
x,y
为所述第一像素点的透明度;r
x,y
为所述第一像素点的红色通道的值;r
d,x,y
为所述第二像素点的红色通道的值;g
x,y
为所述第一像素点的绿色通道的值;g
d,x,y
为所述第二像素点的绿色通道的值;i
x,y
为所述第一像素点的亮度;i
d,x,y
为所述第二像素点的亮度;a,b,c均为预置的参数。
[0022]
可选的,在若所述第一像素点的透明度大于透明度阈值,确定所述第一像素点为目标像素点之前,还包括:
[0023]
根据所述第一像素点与所述第一像素点周围的像素点的亮度差和透明度差计算与所述第一像素点对应的透明度偏置值;
[0024]
将所述第一像素点的透明度与所述透明度偏置值求和,得到所述第一像素点的优化后的透明度;
[0025]
相应的,所述若所述第一像素点的透明度大于透明度阈值,确定所述第一像素点为目标像素点,包括:
[0026]
若所述第一像素点的优化后的透明度大于透明度阈值,确定所述第一像素点为目标像素点。
[0027]
可选的,所述背景图像通过对目标视频的前n帧图像中的至少部分图像进行处理得到。
[0028]
可选的,所述背景图像通过如下方式确定:
[0029]
将所述前n帧图像中的第n帧图像确定为第一图像,将所述前n帧图像中的第n-1帧图像确定为第二图像;
[0030]
计算所述第一图像中的第三像素点与第一背景图像中的第四像素点的颜色距离;其中,所述第一背景图像为所述第二图像对应的背景图像,所述第一背景图像中的像素点具有对应的颜色阈值;所述第三像素点为所述第一图像中的任意一像素点,所述四像素点对应于所述第三像素点;
[0031]
如果所述第一图像中各个像素点对应的颜色距离均小于或等于所述第一背景图像中对应的像素点对应的颜色阈值,则将所述第一背景图像作为所述背景图像;否则,
[0032]
基于所述颜色距离对所述第一背景图像进行更新,以得到所述第一图像对应的背景图像;将所述前n帧图像中的第n+1帧图像确定为第一图像,将所述第n帧图像确定为第二图像,返回执行所述计算所述第一图像中的第三像素点与第一背景图像中的第四像素点的颜色距离的步骤。
[0033]
可选的,所述基于所述颜色距离对所述第一背景图进行更新包括:
[0034]
如果所述颜色距离大于所述第四像素点对应的颜色阈值,将所述第四像素点对应的颜色阈值更新为所述颜色距离,并根据所述第三像素点的颜色值和所述第四像素点的颜色值更新所述第四像素点的颜色值;
[0035]
如果所述颜色距离小于或等于所述第四像素点对应的颜色阈值,保持所述第四像素点的颜色值和对应的颜色阈值不变。
[0036]
可选的,所述方法还包括:
[0037]
根据所述目标像素点的颜色值和透明度,以及所述第二像素点的颜色值,确定所述目标像素点的目标颜色值;
[0038]
将所述目标对象中各个目标像素点的颜色值更新为对应的目标颜色值。
[0039]
另一方面,本申请实施例提供了一种抠图装置,所述装置包括:
[0040]
获取单元,用于获取针对静止场景的背景图像和待分割图像;其中,所述背景图像不包括目标对象;
[0041]
计算单元,用于根据所述待分割图像中的第一像素点与所述背景图像中对应的第二像素点的亮度差,以及所述第一像素点与所述第二像素点的颜色差,确定所述第一像素点的透明度;
[0042]
确定单元,用于若所述第一像素点的透明度大于透明度阈值,确定所述第一像素点为目标像素点,所述目标像素点为所述目标对象中的像素点;
[0043]
分割单元,用于根据所述目标像素点,从所述待分割图像中分割所述目标对象。
[0044]
可选的,所述计算单元用于:
[0045]
如果所述第一像素点的亮度值小于或等于亮度阈值,利用所述第一像素点和所述第二像素点的亮度差确定所述第一像素点的透明度;
[0046]
如果所述第一像素点的亮度值大于所述亮度阈值,利用所述第一像素点和所述第二像素点的亮度差,以及所述第一像素点和所述第二像素点的颜色差确定所述第一像素点的透明度。
[0047]
可选的,所述计算单元利用所述第一像素点和所述第二像素点的亮度差确定所述第一像素点的透明度时,用于:
[0048]
通过如下公式计算所述第一像素点的透明度,
[0049][0050]
f(x,y)=p
×
|i
x,y-i
d,x,y
|+q
[0051]
其中,α
x,y
为所述第一像素点的透明度;i
x,y
为所述第一像素点的亮度;i
d,x,y
为所述第二像素点的亮度;p和q均为预置的参数。
[0052]
可选的,所述计算单元利用所述第一像素点和所述第二像素点的亮度差,以及所述第一像素点和所述第二像素点的颜色差确定所述第一像素点的透明度时用于:通过如下公式计算所述第一像素点的透明度,
[0053][0054]
g(x,y)=a
×
((r
x,y-r
d,x,y
)2+(g
x,y-g
d,x,y
)2)+b
×
|i
x,y-i
d,x,y
|+c
[0055]
其中,α
x,y
为所述第一像素点的透明度;r
x,y
为所述第一像素点的红色通道的值;r
d,x,y
为所述第二像素点的红色通道的值;g
x,y
为所述第一像素点的绿色通道的值;g
d,x,y
为所述第二像素点的绿色通道的值;i
x,y
为所述第一像素点的亮度;i
d,x,y
为所述第二像素点的亮度;a,b,c均为预置的参数。
[0056]
可选的,还包括:
[0057]
透明度优化单元,用于根据所述第一像素点与所述第一像素点周围的像素点的亮度差和透明度差计算与所述第一像素点对应的透明度偏置值;将所述第一像素点的透明度与所述透明度偏置值求和,得到所述第一像素点的优化后的透明度;
[0058]
相应的,所述确定单元具体用于:若所述第一像素点的优化后的透明度大于透明度阈值,确定所述第一像素点为目标像素点。
[0059]
可选的,还包括:
[0060]
背景图像获取单元,用于通过对目标视频的前n帧图像中的至少部分图像进行处理得到所述背景图像。
[0061]
可选的,所述背景图像获取单元具体用于:
[0062]
将所述前n帧图像中的第n帧图像确定为第一图像,将所述前n帧图像中的第n-1帧图像确定为第二图像;
[0063]
计算所述第一图像中的第三像素点与第一背景图像中的第四像素点的颜色距离;其中,所述第一背景图像为所述第二图像对应的背景图像,所述第一背景图像中的像素点具有对应的颜色阈值;所述第三像素点为所述第一图像中的任意一像素点,所述四像素点对应于所述第三像素点;
[0064]
如果所述第一图像中各个像素点对应的颜色距离均小于或等于所述第一背景图像中对应的像素点对应的颜色阈值,则将所述第一背景图像作为所述背景图像;否则,
[0065]
基于所述颜色距离对所述第一背景图像进行更新,以得到所述第一图像对应的背景图像;将所述前n帧图像中的第n+1帧图像确定为第一图像,将所述第n帧图像确定为第二图像,返回执行所述计算所述第一图像中的第三像素点与第一背景图像中的第四像素点的颜色距离的步骤。
[0066]
可选的,所述背景图像获取单元基于所述颜色距离对所述第一背景图进行更新时,用于:
[0067]
如果所述颜色距离大于所述第四像素点对应的颜色阈值,将所述第四像素点对应的颜色阈值更新为所述颜色距离,并根据所述第三像素点的颜色值和所述第四像素点的颜色值更新所述第四像素点的颜色值;
[0068]
如果所述颜色距离小于或等于所述第四像素点对应的颜色阈值,保持所述第四像素点的颜色值和对应的颜色阈值不变。
[0069]
可选的,还包括:
[0070]
颜色优化单元,用于根据所述目标像素点的颜色值和透明度,以及所述第二像素点的颜色值,确定所述目标像素点的目标颜色值;将所述目标对象中各个目标像素点的颜色值更新为对应的目标颜色值。
[0071]
另一方面,本申请实施例提供了一种抠图设备,所述设备包括处理器以及存储器:
[0072]
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
[0073]
所述处理器用于根据所述计算机程序中的指令执行上述任意一项所述的抠图方法。
[0074]
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述任意一项所述的抠图方法。
[0075]
由上述技术方案可以看出,该抠图方法包括:获取针对静止场景的背景图像(不包
括目标对象)和待分割图像;根据待分割图像中的第一像素点与背景图像中对应的第二像素点的亮度差,以及第一像素点与第二像素点的颜色差,确定第一像素点的透明度;若第一像素点的透明度大于透明度阈值,确定第一像素点为目标像素点,目标像素点为目标对象中的像素点;根据目标像素点,从待分割图像中分割目标对象。基于本申请的方案,无需搭建特定背景即可实现抠图,从而降低了抠图的复杂性和抠图成本。
附图说明
[0076]
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0077]
图1为本申请实施例提供的抠图方法的一种实现流程图;
[0078]
图2为本申请实施例提供的背景图像和待分割图像的一种示例图;
[0079]
图3为本申请实施例提供的对第一像素点的透明度进行优化的一种实现流程图;
[0080]
图4为本申请实施例提供的确定背景图像的一种实现流程图;
[0081]
图5为本申请实施例提供的抠图装置一种结构示意图;
[0082]
图6为本申请实施例提供的服务器的一种结构示意图;
[0083]
图7为本申请实施例提供的终端的一种结构示意图。
具体实施方式
[0084]
下面结合附图,对本申请的实施例进行描述。
[0085]
本申请提供的抠图方法可以由数据处理设备来执行,如终端设备、服务器等。其中,终端设备例如可以是智能手机、计算机、个人数字助理(personal digitalassistant,简称pda)、平板电脑等设备。服务器可以是独立的服务器,也可以是集群中的服务器。
[0086]
下面对本申请实施例提供的抠图方法进行介绍,参见图1,该图示出了本申请实施例提供的抠图方法的一种实现流程图,可以包括:
[0087]
步骤s101:获取针对静止场景的背景图像和待分割图像。
[0088]
本申请实施例中需要进行抠图的目标对象可以是任意物体,例如可以为人体(如主持人),或者可以是汽车,或者可以是动物等。
[0089]
需要说明,本申请中的目标对象可以处于静止场景中,该静止场景可以是任意的静止场景,比如可以是办公室的场景,或者,可以是客厅场景等等。该静止场景中未搭建蓝绿背景等特定的背景。当然,这里并不是说本申请的方案总背景不可以为蓝绿背景的场景,而是本申请的方案的应用范围更广,不局限于背景为蓝绿背景等特定的背景,还可以用于特定背景以外的背景。也就是说,如果静止场景是搭建的蓝绿背景等特定的背景,本申请的方案也是适用的。
[0090]
在本申请实施例中,拍摄设备在针对静止场景拍摄视频时,在拍摄的开始阶段,目标对象并未进入静止场景中,在拍摄一定时长后目标对象才进入静止场景,且目标对象在静止场景中并不是静止的,而是可以任意运动的。因而,拍摄设备拍摄的视频(为便于叙述,记为目标视频)中,开始的若干帧图像(为便于叙述,记为前n帧图像)中只有静止场景,而没
有目标对象。
[0091]
本申请实施例中的背景图像就是基于目标视频中未包含目标对象的图像获得的,而待分割图像即为目标视频中包含目标对象的图像。
[0092]
步骤s102:根据待分割图像中的第一像素点与背景图像中对应的第二像素点的亮度差,以及第一像素点与第二像素点的颜色差,确定第一像素点的透明度。
[0093]
在本申请实施例中,待分割图像中的一个像素点可以与背景图像中的一个像素点相对应。
[0094]
例如,参见图2,该图示出了本申请实施例提供的背景图像和待分割图像的一种示例图,如图2所示,背景图像展示了一个墙面,待分割图像展示了一个人在该墙面前,其中,背景图像中的第一像素点201与待分割图像中的第二像素点202相对应,这两个像素点对应的真实背景场景均为墙面上相同位置。
[0095]
第一像素点与第二像素点的颜色差可以是第一像素点与第二像素点的各个颜色通道的差值,也可以是第一像素点与第二像素点的部分颜色通道的差值。像素点的颜色通道可以是红色通道(记为r),绿色通道(记为g)和蓝色通道(记为b)。如果将第一像素点的红绿蓝通道的值依次记为r
x,y
,g
x,y
和b
x,y
,第二像素点的红绿蓝通道的值依次记为r
d,x,y
,g
d,x,y
和b
d,x,y
,则作为示例,第一像素点与第二像素点的颜色差可以是(r
x,y-r
d,x,y
),(g
x,y-g
d,x,y
)和(b
x,y-b
d,x,y
),或者,第一像素点与第二像素点的颜色差可以是(r
x,y-r
d,x,y
),(g
x,y-g
d,x,y
)。
[0096]
步骤s103:若第一像素点的透明度大于透明度阈值,说明第一像素点为前景像素点,确定第一像素点为目标像素点。
[0097]
其中,目标像素点可以是指目标对象中的像素点。
[0098]
若第一像素点小于或等于透明度阈值,说明第一像素点为背景像素点,确定第一像素点为非目标像素点。可选的,透明度阈值可以为0,则若第一像素点的透明度大于0,确定第一像素点为目标像素点,若第一像素点的透明度等于0,确定第一像素点为非目标像素点。
[0099]
步骤s104:根据目标像素点,从待分割图像中分割目标对象。
[0100]
在待分割图像中的各个像素点均通过上述方法确定是否为目标像素点后,可以根据待分割图像中的全部目标像素点,从待分割图像中将目标抠图出来。
[0101]
可以根据目标像素点所确定的边缘,从待分割图像中分割出目标对象。目标对象中的像素点均为目标像素点。
[0102]
由上述技术方案可以看出,本申请实施例提供的抠图方法,获取针对静止场景的背景图像(不包括目标对象)和待分割图像;根据待分割图像中的第一像素点与背景图像中对应的第二像素点的亮度差,以及第一像素点与第二像素点的颜色差,确定第一像素点的透明度;若第一像素点的透明度大于透明度阈值,确定第一像素点为目标像素点,目标像素点为目标对象中的像素点;根据目标像素点,从待分割图像中分割目标对象。由于无需搭建特定背景即可实现抠图,因而本申请实施例提供的抠图方法降低了抠图的复杂性和抠图成本。
[0103]
在一可选的实施例中,上述根据待分割图像中的第一像素点与背景图像中对应的第二像素点的亮度差,以及第一像素点与第二像素点的颜色差,确定第一像素点的透明度的一种实现方式可以为:
[0104]
如果第一像素点的亮度值小于或等于亮度阈值,利用第一像素点和第二像素点的亮度差确定第一像素点的透明度。
[0105]
也就是说,如果第一像素点的亮度较小,则只需要利用第一像素点和第二像素点的亮度差确定第一像素点的透明度即可。
[0106]
如果第一像素点的亮度值大于亮度阈值,利用第一像素点和第二像素点的亮度差,以及第一像素点和第二像素点的颜色差确定第一像素点的透明度。
[0107]
也就是说,如果第一像素点的亮度较大,则可以结合第一像素点和第二像素点的亮度差,以及第一像素点和第二像素点的颜色差确定第一像素点的透明度。
[0108]
在一可选的实施例中,上述利用第一像素点和第二像素点的亮度差确定第一像素点的透明度的一种实现方式可以为:通过如下公式计算所述第一像素点的透明度,
[0109][0110]
f(x,y)=p
×
|i
x,y-i
d,x,y
|+q
[0111]
其中,α
x,y
为第一像素点的透明度,第一像素点的坐标为(x,y);i
x,y
为第一像素点的亮度;i
d,x,y
为第二像素点的亮度;p和q均为预置的参数。第二像素点的坐标也为(x,y)。
[0112]
在一可选的实施例中,上述利用第一像素点和第二像素点的亮度差,以及第一像素点和第二像素点的颜色差确定第一像素点的透明度的一种实现方式可以为:通过如下公式计算所述第一像素点的透明度,
[0113][0114]
g(x,y)=a
×
((r
x,y-r
d,x,y
)2+(g
x,y-g
d,x,y
)2)+b
×
|i
x,y-i
d,x,y
|+c
[0115]
其中,α
x,y
为第一像素点的透明度,第一像素点的坐标为(x,y);r
x,y
为第一像素点的红色通道的值;r
d,x,y
为第二像素点的红色通道的值;g
x,y
为第一像素点的绿色通道的值;g
d,x,y
为第二像素点的绿色通道的值;i
x,y
为第一像素点的亮度;i
d,x,y
为第二像素点的亮度;a,b,c均为预置的参数。第二像素点的坐标也为(x,y)。
[0116]
其中,sign(u)的取值根据u的取值确定,若u大于或等于0,则sign(u)的取值为1,否则,sign(u)的取值为-1。u为f(x,y)或g(x,y)。
[0117]
本实施例中,第一像素点与第二像素点的颜色差为第一像素点与第二像素点的部分颜色通道的差值,即红色通道的差值和绿色通道的差值。
[0118]
在一可选的实施例中,为了提高抠图精度,可以对步骤s102确定的第一像素点的透明度进行优化。可选的,可以利用第一像素点与第一像素点周围的像素点的亮度差和透明度差来对第一像素点的透明度进行优化。具体的,本申请实施例提供的对第一像素点的透明度进行优化的一种实现流程图如图3所示,可以包括:
[0119]
步骤s301:根据第一像素点与第一像素点周围的像素点的亮度差和透明度差计算与第一像素点对应的透明度偏置值。
[0120]
可选的,可以根据如下公式计算第一像素点对应的透明度偏置值可选的,可以根据如下公式计算第一像素点对应的透明度偏置值
[0121]
其中,
[0122]
[0123][0124][0125][0126][0127][0128][0129][0130]
步骤s302:将第一像素点的透明度与对应的透明度偏置值求和,得到第一像素点的优化后的透明度。用公式可以表示为:
[0131][0132]
其中,α’x,y
表示第一像素点的优化后的透明度,α
x,y
表示步骤s102确定的第一像素点的透明度。
[0133]
可选的,图3所示的优化过程可以执行多次,具体执行次数可以为预设次数。其中,在对第一像素点的透明度进行第j(j为大于1的整数)次优化时,上述公式中的α
x,y
为对第一像素点的透明度进行第j-1次优化后的透明度。
[0134]
k为预置的参数,作为示例,k的取值可以为0.25。
[0135]
在一可选的实施例中,上述背景图像是通过对目标视频的前n帧图像中的至少部分图像进行处理得到的。如图4所示,为本申请实施例提供的确定背景图像的一种实现流程图,可以包括:
[0136]
步骤s401:将前n帧图像中的第n帧图像确定为第一图像,将前n帧图像中的第n-1帧图像确定为第二图像。n为大于1的整数。
[0137]
步骤s402:计算第一图像中的第三像素点与第一背景图像中的第四像素点的颜色距离;
[0138]
其中,第一背景图像为第二图像对应的背景图像,第一背景图像中的像素点具有对应的颜色阈值;第三像素点为第一图像中的任意一像素点,四像素点对应于第三像素点。
[0139]
当n=2时,第二图像即为第1帧图像,第1帧图像对应的背景图像为第1帧图像本身,即第一背景图像为第1帧图像,此时第一背景图像中各个像素点对应的颜色阈值为初始值,比如为0。
[0140]
当n>2时,第二图像对应的背景图像及背景图像中像素点对应的颜色阈值是通过后续步骤确定的。
[0141]
以第一图像为第n帧图像为例,第三像素点与第四像素点的颜色距离d
x,y
可以通过如下公式计算:
[0142][0143]
其中,第三像素点的三个通道的颜色值分为(r
n,x,y
,g
n,x,y
,b
n,x,y
),第四像素点的三
个通道的颜色值分别为(r
d,x,y
,g
d,x,y
,b
d,x,y
)。
[0144]
或者,
[0145]
第三像素点与第四像素点的颜色距离d
x,y
可以通过如下公式计算:
[0146][0147]
其中,(r’n,x,y
,g’n,x,y
,b’n,x,y
)是第三像素点的三个通道的归一化的颜色值,(r’d,x,y
,g’d,x,y
,b’d,x,y
)是第四像素点的三个通道的归一化的颜色值。
[0148]
其中,
[0149]
步骤s403:如果第一图像中各个像素点对应的颜色距离均小于或等于第一背景图像中对应的像素点对应的颜色阈值,则将第一背景图像作为上述背景图像,流程结束;否则,进入步骤s404。
[0150]
步骤s404:基于颜色距离对第一背景图像进行更新,以得到第一图像对应的背景图像;将前n帧图像中的第n+1帧图像确定为第一图像,将第n帧图像确定为第二图像,返回执行步骤s402及后续步骤。
[0151]
可选的,基于颜色距离对第一背景图像进行更新的一种实现方式可以为:
[0152]
如果颜色距离大于第四像素点对应的颜色阈值,将第四像素点对应的颜色阈值更新为颜色距离,并根据第三像素点的颜色值和第四像素点的颜色值更新第四像素点的颜色值。
[0153]
可选的,以第一图像为第n帧图像为例,根据第三像素点的颜色值和第四像素点的颜色值更新第四像素点的颜色值的一种实现方式可以为:根据如下公式更新第四像素点的颜色值:
[0154][0155]
其中,等号左边的(r’d,x,y
,g’d,x,y
,b’d,x,y
)为第四像素点的更新后的颜色值(也就是第一图像对应的背景图像中的第四像素点的颜色值),等号右边的(r’d,x,y
,g’d,x,y
,b’d,x,y
)为第四像素点的更新前的颜色值(也就是第一背景图像中的第四像素点的颜色值),(r’n,x,y
,g’n,x,y
,b’n,x,y
)为第一图像中第三像素点的颜色值。需要说明的是,公式中涉及到的颜色值是归一化的颜色值,在一可选的实施例中,公式中涉及到的颜色值也可以是未归一化的颜色值。
[0156]
第n帧图像的所有像素点都计算完成后,即可得到第n帧图像对应的第n背景图像。
[0157]
如果颜色距离小于或等于第四像素点对应的颜色阈值,保持第四像素点的颜色值和对应的颜色阈值不变。
[0158]
可选的,如果第n帧图像为前n帧图像中的最后一帧图像(即第n帧图像为目标视频中的第n帧图像),且,第n帧图像中存在第一类像素点,该第一类像素点对应的颜色距离大于第n-1背景图像中对应于第一类像素点的像素点对应的颜色阈值,则将第n帧图像对应的第n背景图像作为用于检测目标对象的背景图像。
[0159]
作为示例,可以先计算第2帧图像中第三像素点与第1背景图像中对应的第四像素点的颜色距离。其中,第三像素点为第2帧图像中的任意一像素点;第四像素点为第1背景图像中与第2帧图像中的第三像素点对应的像素点。
[0160]
如果第2帧图像中第三像素点与第1背景图像中对应的第四像素点的颜色距离大于第四像素点对应的颜色阈值,则将第四像素点对应的颜色阈值更新为第2帧图像中第三像素点与第1背景图像中对应的第四像素点的颜色距离,并根据第2帧图像中第三像素点的颜色值和第1背景图像中第四像素点的颜色值更新第1背景图像中第四像素点的颜色值,否则,保持第1背景图像中第四像素点的颜色值和对应的颜色阈值不变。第2帧图像的所有像素点都计算完成后,即可得到第2帧图像对应的第2背景图像。
[0161]
然后计算第3帧图像中第三像素点与第2背景图像中对应的第四像素点的第颜色距离。其中,第三像素点为第3帧图像中的任意一像素点;第四像素点为第2背景图像中与第3帧图像中的第三像素点对应的像素点。
[0162]
如果第3帧图像中第三像素点与第2背景图像中对应的第四像素点的颜色距离大于第四像素点对应的颜色阈值,则将第四像素点对应的颜色阈值更新为第3帧图像中第三像素点与第2背景图像中对应的第四像素点的颜色距离,并根据第3帧图像中第三像素点的颜色值和第2背景图像中第四像素点的颜色值更新第2背景图像中第四像素点的颜色值,否则,保持第2背景图像中第四像素点的颜色值和对应的颜色阈值不变。第3帧图像的所有像素点都计算完成后,即可得到第3帧图像对应的第3背景图像。
[0163]
然后计算第4帧图像中第三像素点与第3背景图像中对应的第四像素点的颜色距离
……
依此类推。
[0164]
如果第2帧图像中各个像素点对应的颜色距离均小于或等于第1背景图像中像素点对应的颜色阈值,则将第1帧图像对应的第1背景图像作为用于检测目标对象的背景图像,流程结束。
[0165]
同理,如果第3帧图像中各个像素点对应的颜色距离均小于或等于第2背景图像中像素点对应的颜色阈值,则将第2帧图像对应的第2背景图像作为用于检测目标对象的背景图像,流程结束。
[0166]
依此类推。
[0167]
在确定用于检测目标对象的背景图像后,确定背景图像和颜色阈值的流程也就结束了。
[0168]
在一可选的实施例中,由于目标对象中像素点的颜色值有可能不是像素点自身的颜色值,其有可能是有一定透明度的,因此,为了获取目标对象的真实颜色,本申请实施例中,在从待分割图像中分割出目标对象后,还可以包括:
[0169]
根据目标像素点的颜色值和透明度,以及第二像素点的颜色值,确定目标像素点的目标颜色值。
[0170]
可选的,可以通过如下公式确定目标像素点的目标颜色值:
[0171][0172]
其中,(r
f,x,y
,g
f,x,y
,b
f,x,y
)是目标像素点的目标颜色值,(r
s,x,y
,g
s,x,y
,b
s,x,y
)是从待分割图像中分割出的目标像素点的颜色值,(r
d,x,y
,g
d,x,y
,b
d,x,y
)是第二像素点的颜色值,α为从待分割图像中分割出的目标像素点的透明度。
[0173]
将目标对象中各个目标像素点的颜色值更新为对应的目标颜色值。
[0174]
在一可选的实施例中,上述预置参数a,b,c,以及p和q可以由用户根据实际的光线情况和摄像机的参数来设置,具体可以通过如下方式确定:
[0175]
在确定背景图像后,显示参数设置界面;该参数设置界面可以是在确定背景图像后自动显示的,也可以是在确定背景图像后响应于用户执行预设操作而显示的,比如,用户点击预设按钮/按键后显示。
[0176]
接收针对a,b,c,以及p和q输入的参数值;即用户针对a,b,c,以及p和q输入参数值。
[0177]
基于输入的参数计算参考图中各个像素点的亮度值,其中参考图为目标视频中任意一帧具有目标对象的图像;计算亮度值的方式可以参考前述实施例,这里不再赘述。
[0178]
按照计算得到的亮度值显示参考图,以便用户判断前景的亮度值与背景的亮度值的差异。若用户判定前景的亮度与背景的亮度的差异小,可以对a,b,c,以及p和q的值进行修改,直至用户判定前景的亮度与背景的亮度的差异较大,比如,前景的亮度接近于1,背景的亮度接近于0。
[0179]
a,b,c,以及p和q的值都大于0。作为示例,a的一个可选取值可以为521;b的一个可选取值可以为1033,c的一个可选取值可以为0.5,p的一个可选取值可以为10,q的一个可选取值可以为7。
[0180]
基于上述提供的抠图方法,本申请实施例还提供了一种抠图装置,参见图5,该图示出了本申请实施例提供的抠图装置一种结构示意图,该抠图装置包括:获取单元501,计算单元502,确定单元503和分割单元504;其中,
[0181]
获取单元501用于获取针对静止场景的背景图像和待分割图像;其中,所述背景图像不包括目标对象;
[0182]
计算单元502用于根据所述待分割图像中的第一像素点与所述背景图像中对应的第二像素点的亮度差,以及所述第一像素点与所述第二像素点的颜色差,确定所述第一像素点的透明度;
[0183]
确定单元503用于若所述第一像素点的透明度大于透明度阈值,确定所述第一像素点为目标像素点,所述目标像素点为所述目标对象中的像素点;
[0184]
分割单元504用于根据所述目标像素点,从所述待分割图像中分割所述目标对象。
[0185]
本申请实施例提供的抠图装置,获取针对静止场景的背景图像(不包括目标对象)和待分割图像;根据待分割图像中的第一像素点与背景图像中对应的第二像素点的亮度
差,以及第一像素点与第二像素点的颜色差,确定第一像素点的透明度;若第一像素点的透明度大于透明度阈值,确定第一像素点为目标像素点,目标像素点为目标对象中的像素点;根据目标像素点,从待分割图像中分割目标对象。由于无需搭建特定背景即可实现抠图,因而本申请实施例提供的抠图装置降低了抠图的复杂性和抠图成本。
[0186]
在一种可能的实现方式中,所述计算单元用于:
[0187]
如果所述第一像素点的亮度值小于或等于亮度阈值,利用所述第一像素点和所述第二像素点的亮度差确定所述第一像素点的透明度;
[0188]
如果所述第一像素点的亮度值大于所述亮度阈值,利用所述第一像素点和所述第二像素点的亮度差,以及所述第一像素点和所述第二像素点的颜色差确定所述第一像素点的透明度。
[0189]
在一种可能的实现方式中,所述计算单元利用所述第一像素点和所述第二像素点的亮度差确定所述第一像素点的透明度时,用于:
[0190]
通过如下公式计算所述第一像素点的透明度,
[0191][0192]
f(x,y)=p
×
|i
x,y-i
d,x,y
|+q
[0193]
其中,α
x,y
为所述第一像素点的透明度;i
x,y
为所述第一像素点的亮度;i
d,x,y
为所述第二像素点的亮度;p和q均为预置的参数。
[0194]
在一种可能的实现方式中,所述计算单元利用所述第一像素点和所述第二像素点的亮度差,以及所述第一像素点和所述第二像素点的颜色差确定所述第一像素点的透明度时用于:通过如下公式计算所述第一像素点的透明度,
[0195][0196]
g(x,y)=a
×
((r
x,y-r
d,x,y
)2+(g
x,y-g
d,x,y
)2)+b
×
|i
x,y-i
d,x,y
|+c
[0197]
其中,α
x,y
为所述第一像素点的透明度;r
x,y
为所述第一像素点的红色通道的值;r
d,x,y
为所述第二像素点的红色通道的值;g
x,y
为所述第一像素点的绿色通道的值;g
d,x,y
为所述第二像素点的绿色通道的值;i
x,y
为所述第一像素点的亮度;i
d,x,y
为所述第二像素点的亮度;a,b,c均为预置的参数。
[0198]
在一种可能的实现方式中,还包括:
[0199]
透明度优化单元,用于根据所述第一像素点与所述第一像素点周围的像素点的亮度差和透明度差计算与所述第一像素点对应的透明度偏置值;将所述第一像素点的透明度与所述透明度偏置值求和,得到所述第一像素点的优化后的透明度;
[0200]
相应的,所述确定单元具体用于:若所述第一像素点的优化后的透明度大于透明度阈值,确定所述第一像素点为目标像素点。
[0201]
在一种可能的实现方式中,还包括:
[0202]
背景图像获取单元,用于通过对目标视频的前n帧图像中的至少部分图像进行处理得到所述背景图像。
[0203]
在一种可能的实现方式中,所述背景图像获取单元具体用于:
[0204]
将所述前n帧图像中的第n帧图像确定为第一图像,将所述前n帧图像中的第n-1帧图像确定为第二图像;
[0205]
计算所述第一图像中的第三像素点与第一背景图像中的第四像素点的颜色距离;其中,所述第一背景图像为所述第二图像对应的背景图像,所述第一背景图像中的像素点具有对应的颜色阈值;所述第三像素点为所述第一图像中的任意一像素点,所述四像素点对应于所述第三像素点;
[0206]
如果所述第一图像中各个像素点对应的颜色距离均小于或等于所述第一背景图像中对应的像素点对应的颜色阈值,则将所述第一背景图像作为所述背景图像;否则,
[0207]
基于所述颜色距离对所述第一背景图像进行更新,以得到所述第一图像对应的背景图像;将所述前n帧图像中的第n+1帧图像确定为第一图像,将所述第n帧图像确定为第二图像,返回执行所述计算所述第一图像中的第三像素点与第一背景图像中的第四像素点的颜色距离的步骤。
[0208]
在一种可能的实现方式中,所述背景图像获取单元基于所述颜色距离对所述第一背景图进行更新时,用于:
[0209]
如果所述颜色距离大于所述第四像素点对应的颜色阈值,将所述第四像素点对应的颜色阈值更新为所述颜色距离,并根据所述第三像素点的颜色值和所述第四像素点的颜色值更新所述第四像素点的颜色值;
[0210]
如果所述颜色距离小于或等于所述第四像素点对应的颜色阈值,保持所述第四像素点的颜色值和对应的颜色阈值不变。
[0211]
在一种可能的实现方式中,还包括:
[0212]
颜色优化单元,用于根据所述目标像素点的颜色值和透明度,以及所述第二像素点的颜色值,确定所述目标像素点的目标颜色值;将所述目标对象中各个目标像素点的颜色值更新为对应的目标颜色值
[0213]
与方法实施例相对应,本申请实施例还提供一种设备,该设备具体可以是服务器,图6是本申请实施例提供的一种服务器结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器600上执行存储介质630中的一系列指令操作。
[0214]
服务器600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作系统641,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0215]
上述实施例中由服务器所执行的步骤可以基于该图6所示的服务器结构。
[0216]
其中,cpu 622用于执行如下步骤:
[0217]
获取针对静止场景的背景图像和待分割图像;其中,所述背景图像不包括目标对象;
[0218]
根据所述待分割图像中的第一像素点与所述背景图像中对应的第二像素点的亮度差,以及所述第一像素点与所述第二像素点的颜色差,确定所述第一像素点的透明度;
[0219]
若所述第一像素点的透明度大于透明度阈值,确定所述第一像素点为目标像素
emitting diode,英文缩写:oled)等形式来配置显示面板741。进一步的,触控面板731可覆盖显示面板741,当触控面板731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图7中,触控面板731与显示面板741是作为两个独立的部件来实现desktop的输入和输入功能,但是在某些实施例中,可以将触控面板731与显示面板741集成而实现desktop的输入和输出功能。
[0229]
desktop还可包括至少一种传感器750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在desktop移动到耳边时,关闭显示面板741和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别desktop姿态的应用、振动识别相关功能(比如计步器、敲击)等;至于desktop还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0230]
音频电路760、扬声器761,传声器762可提供用户与desktop之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经rf电路710以发送给比如另一desktop,或者将音频数据输出至存储器720以便进一步处理。
[0231]
wifi属于短距离无线传输技术,desktop通过wifi模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了wifi模块770,但是可以理解的是,其并不属于desktop的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0232]
处理器780是desktop的控制中心,利用各种接口和线路连接整个desktop的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行desktop的各种功能和处理数据,从而对desktop进行整体监控。可选的,处理器780可包括一个或多个处理单元;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。
[0233]
desktop还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0234]
尽管未示出,desktop还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0235]
在本申请实施例中,该终端所包括的处理器780还具有以下功能:
[0236]
获取针对静止场景的背景图像和待分割图像;其中,所述背景图像不包括目标对象;
[0237]
根据所述待分割图像中的第一像素点与所述背景图像中对应的第二像素点的亮度差,以及所述第一像素点与所述第二像素点的颜色差,确定所述第一像素点的透明度;
[0238]
若所述第一像素点的透明度大于透明度阈值,确定所述第一像素点为目标像素点,所述目标像素点为所述目标对象中的像素点;
[0239]
根据所述目标像素点,从所述待分割图像中分割所述目标对象。
[0240]
可选的,所述处理器780还用于执行本申请的抠图方法的任意一种实现方式的步骤。
[0241]
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种抠图方法中的任意一种实施方式。
[0242]
本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种抠图方法中的任意一种实施方式。
[0243]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:rom)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0244]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0245]
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。