图像输出方法和装置与流程

文档序号:15738542发布日期:2018-10-23 21:54阅读:152来源:国知局

本申请涉及计算机技术领域,具体涉及图像处理技术领域,尤其涉及图像输出方法和装置。



背景技术:

从图像或视频中精确的分离出前景(也称为“抠图”技术),是图像处理、视频编辑和电影制作中的关键技术,目前已有二十多年的研究历史,并且已经得到了广泛地研究和应用。近年的研究主要集中在对自然图像(即不对背景进行限制的图像)进行“抠图”,对自然图像进行“抠图”需要获得额外的信息进行求解,通常是通过与用户交互获得更多的输入信息以构建约束条件,这种方式需要较多的人工操作,对于一些复杂的图像,效率低且准确性不高;同时,采用图像分割算法对图像中的前景区域与背景区域进行划分时,由于光照、角度等一些外界因素,“抠图”得到的结果并不准确。



技术实现要素:

本申请的目的在于提出一种改进的图像输出方法和装置,来解决以上背景技术部分提到的技术问题。

第一方面,本申请实施例提供了一种图像输出方法,该方法包括:基于包含人体图像的目标图像的背景点集和前景点集,对目标图像进行分割,生成包括前景区域和背景区域的第一掩码图像,并确定第一掩码图像中各个像素点的像素值,其中,背景点为属于目标图像的背景的像素点,前景点为属于目标图像的前景的像素点;将目标图像的各个像素点的像素值导入预先生成的皮肤似然值检测模型中进行匹配得到各个像素点属于皮肤区域的似然值,并基于似然值,确定各个像素点中属于皮肤区域的像素点,其中,皮肤似然值检测模型用于表征像素值与似然值的对应关系;对目标图像进行超像素分割,生成包括超像素的目标图像;基于超像素中包含的属于皮肤区域的像素点的数量,确定超像素中各个像素点的像素值,以确定预先建立的目标图像的第二掩码图像中各个像素点的像素值;基于第一掩码图像中各个像素点的像素值和第二掩码图像中各个像素点的像素值,输出目标图像中的人体图像。

在一些实施例中,在基于包含人体图像的目标图像的背景点集和前景点集,对目标图像进行分割之前,该方法还包括:确定目标图像中的人体图像的轮廓,获取轮廓与目标图像的顶部边缘之间的至少一个像素点,将至少一个像素点作为目标图像的背景点集;获取目标图像中的人脸上的至少一个像素点,将人脸上的至少一个像素点作为目标图像的前景点集。

在一些实施例中,确定目标图像中的人体图像的轮廓,包括:对目标图像中的人体图像的边缘进行检测,生成包含人体图像的轮廓线的边缘特征图像;对边缘特征图像进行闭操作,以将边缘特征图像中的不连续的轮廓线转换为连续的轮廓线;确定闭操作之后的目标图像的轮廓线;采用图像填充算法对包含闭操作之后的轮廓线的目标图像进行填充,并获取填充之后的目标图像中的人体图像的轮廓。

在一些实施例中,获取轮廓与目标图像的顶部边缘之间的至少一个像素点,将至少一个像素点作为目标图像的背景点集,包括:确定轮廓中距离目标图像的顶部边缘最近的点与顶部边缘上任一点的连线的中点,将通过中点、并与顶部边缘平行的线段上的点集作为目标图像的背景点集。

在一些实施例中,获取目标图像中的人脸上的至少一个像素点,将人脸上的至少一个像素点作为目标图像的前景点集,包括:获取目标图像中的人脸上的两眼的像素点,将两眼的像素点的连线上的点集作为目标图像的前景点集。

在一些实施例中,输出目标图像中的人体图像,包括:生成待输出的人体图像;以待输出的人体图像的轮廓上的每一点为中心,构建预设边长的矩形;使用高斯滤波对每个矩形内的各个像素点进行平滑处理,以得到平滑处理后的人体图像;输出平滑处理后的人体图像。

在一些实施例中,基于超像素中包含的属于皮肤区域的像素点的数量,确定超像素中各个像素点的像素值,包括:获取超像素中的像素点的总数量;确定超像素中包含的属于皮肤区域的像素点的数量与总数量的比值,并确定比值是否大于预设的比值阈值;若是,则将超像素中的各个像素点的像素值设置为皮肤区域的像素点的像素值。

在一些实施例中,第一掩码图像中的前景区域的像素点的像素值为预设数值,第二掩码图像中的皮肤区域的像素点的像素值为预设数值;以及基于第一掩码图像中各个像素点的像素值和第二掩码图像中各个像素点的像素值,输出目标图像中的人体图像,包括:获取第一掩码图像中的像素值为预设数值的像素点和第二掩码图像中的像素值为预设数值的像素点,生成人体图像的像素点集合;从目标图像中,提取像素点集合中的像素点所在的区域,将区域作为人体图像;输出人体图像。

第二方面,本申请实施例提供了一种图像输出装置,该装置包括:第一确定单元,配置用于基于包含人体图像的目标图像的背景点集和前景点集,对目标图像进行分割,生成包括前景区域和背景区域的第一掩码图像,并确定第一掩码图像中各个像素点的像素值,其中,背景点为属于目标图像的背景的像素点,前景点为属于目标图像的前景的像素点;第二确定单元,配置用于将目标图像的各个像素点的像素值导入预先生成的皮肤似然值检测模型中进行匹配得到各个像素点属于皮肤区域的似然值,并基于似然值,确定各个像素点中属于皮肤区域的像素点,其中,皮肤似然值检测模型用于表征像素值与似然值的对应关系;生成单元,配置用于对目标图像进行超像素分割,生成包括超像素的目标图像;第三确定单元,配置用于基于超像素中包含的属于皮肤区域的像素点的数量,确定超像素中各个像素点的像素值,以确定预先建立的目标图像的第二掩码图像中各个像素点的像素值;输出单元,配置用于基于第一掩码图像中各个像素点的像素值和第二掩码图像中各个像素点的像素值,输出目标图像中的人体图像。

在一些实施例中,该装置还包括:第四确定单元,配置用于确定目标图像中的人体图像的轮廓,获取轮廓与目标图像的顶部边缘之间的至少一个像素点,将至少一个像素点作为目标图像的背景点集;第五确定单元,配置用于获取目标图像中的人脸上的至少一个像素点,将人脸上的至少一个像素点作为目标图像的前景点集。

在一些实施例中,第四确定单元,包括:检测模块,配置用于对目标图像中的人体图像的边缘进行检测,生成包含人体图像的轮廓线的边缘特征图像;闭操作模块,配置用于对边缘特征图像进行闭操作,以将边缘特征图像中的不连续的轮廓线转换为连续的轮廓线;确定模块,配置用于确定闭操作之后的目标图像的轮廓线;填充模块,配置用于采用图像填充算法对包含闭操作之后的轮廓线的目标图像进行填充,并获取填充之后的目标图像中的人体图像的轮廓。

在一些实施例中,第四确定单元进一步配置用于:确定轮廓中距离目标图像的顶部边缘最近的点与顶部边缘上任一点的连线的中点,将通过中点、并与顶部边缘平行的线段上的点集作为目标图像的背景点集。

在一些实施例中,第五确定单元进一步配置用于:获取目标图像中的人脸上的两眼的像素点,将两眼的像素点的连线上的点集作为目标图像的前景点集。

在一些实施例中,输出单元,包括:第一生成模块,配置用于生成待输出的人体图像;构建模块,配置用于以待输出的人体图像的轮廓上的每一点为中心,构建预设边长的矩形;平滑处理模块,配置用于使用高斯滤波对每个矩形内的各个像素点进行平滑处理,以得到平滑处理后的人体图像;第一输出模块,配置用于输出平滑处理后的人体图像。

在一些实施例中,第三确定单元,包括:获取模块,配置用于获取超像素中的像素点的总数量;确定模块,配置用于确定超像素中包含的属于皮肤区域的像素点的数量与总数量的比值,并确定比值是否大于预设的比值阈值;设置模块,配置用于若是,则将超像素中的各个像素点的像素值设置为皮肤区域的像素点的像素值。

在一些实施例中,第一掩码图像中的前景区域的像素点的像素值为预设数值,第二掩码图像中的皮肤区域的像素点的像素值为预设数值;以及输出单元,还包括:第二生成模块,配置用于获取第一掩码图像中的像素值为预设数值的像素点和第二掩码图像中的像素值为预设数值的像素点,生成人体图像的像素点集合;提取模块,配置用于从目标图像中,提取像素点集合中的像素点所在的区域,将区域作为人体图像;第二输出模块,配置用于输出人体图像。

第三方面,本申请实施例还提供了一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现本申请提供的图像输出方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请提供的图像输出方法。

本申请提供的图像输出方法和装置,首先基于包含人体图像的目标图像的前景点集和背景点集,确定出第一掩码图像中的各个像素点的像素值,之后通过肤色检测、超像素分割等算法确定出第二掩码图像中各个像素点的像素值,最后,基于第一掩码图像中的各个像素点的像素值和第二掩码图像中各个像素点的像素值,输出上述目标图像中的人体图像,从而,将前景背景区域分割与皮肤区域检测相结合,可以获得更好的人体图像的分割结果,实现了更加精确可靠的人体图像的提取方式。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的图像输出方法的一个实施例的流程图;

图3是根据本申请的图像输出方法的又一个实施例的流程图;

图4A是根据本申请的图像输出方法的一个包含人体图像的目标图像的示意图;

图4B是根据本申请的图像输出方法的一个边缘特征图像的示意图;

图4C是根据本申请的图像输出方法的一个包含连续的轮廓线的边缘特征图像的示意图;

图4D是根据本申请的图像输出方法的一个包含最大轮廓线的边缘特征图像的示意图;

图4E是根据本申请的图像输出方法的一个图像填充之后的目标图像的示意图;

图4F是根据本申请的图像输出方法的一个包含人体图像的轮廓的目标图像的示意图;

图4G是根据本申请的图像输出方法的一个包含背景点集的目标图像的示意图;

图4H是根据本申请的图像输出方法的一个包含前景点集的目标图像的示意图;

图4I是根据本申请的图像输出方法的一个第一掩码图像的示意图;

图4J是根据本申请的图像输出方法的一个标记出皮肤区域与非皮肤区域的目标图像的示意图;

图4K是根据本申请的图像输出方法的一个包括超像素的目标图像的示意图;

图4L是根据本申请的图像输出方法的一个第二掩码图像的示意图;

图4M是根据本申请的图像输出方法的一个待输出的人体图像的示意图;

图4N是根据本申请的图像输出方法的一个锯齿形状的边缘的图像的示意图;

图4O是根据本申请的图像输出方法的一个平滑处理后的边缘的图像的示意图;

图4P是根据本申请的图像输出方法的一个平滑处理后的人体图像的示意图;

图5是根据本申请的图像输出装置的一个实施例的结构示意图;

图6是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的图像输出方法或图像输出装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备1011、1012,网络102,服务器103和信息显示装置104。其中,网络102用以在终端设备1011、1012和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

服务器103可以通过网络102与终端设备1011、1012交互,以发送或接收目标图像信息等;服务器103还可以与本地的信息显示装置104交互,以输出图像等。终端设备1011、1012上可以安装有各种客户端应用,例如相机类应用、图像处理类应用等。

终端设备1011、1012可以是具有显示屏与摄像头并且支持信息交互的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器103可以是提供各种服务的服务器,例如对获取到的包含人体图像的目标图像进行图像处理的后台服务器。后台服务器可以对获取到的目标图像进行图像分割、肤色检测、超像素分割等处理,并将处理结果(例如人体图像)进行输出,并呈现在终端设备1011、1012上,或者呈现在本地的信息显示装置104上。

信息显示装置104可以是具有显示屏并且与服务器103进行本地交互的各种电子设备,其可以将服务器103输出的图像进行显示。

需要说明的是,本申请实施例所提供的图像输出方法一般由服务器103执行,相应地,图像输出装置一般设置于服务器103中。

应该理解,图1中的终端设备、网络、服务器和信息显示装置的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、服务器和信息显示装置。

继续参考图2,示出了根据本申请的图像输出方法的一个实施例的流程200。该图像输出方法,包括以下步骤:

步骤201,基于包含人体图像的目标图像的背景点集和前景点集,对目标图像进行分割,生成包括前景区域和背景区域的第一掩码图像,并确定第一掩码图像中各个像素点的像素值。

在本实施例中,图像输出方法运行于其上的电子设备(例如图1所示的服务器)可以首先获取包含人体图像的目标图像的背景点集和前景点集,其中,上述目标图像中包含的人体图像可以为人脸图像,也可以为包含皮肤区域的人体上半身图像,还可以为包含皮肤区域的人体全身图像。每张图像都是可以分割成前景和背景的,上述背景点集中的背景点为属于上述目标图像的背景的像素点,上述前景点集中的前景点为属于上述目标图像的前景的像素点。之后,可以基于上述背景点集和上述前景点集,使用图像分割算法对上述目标图像进行分割。

作为示例,可以使用lazy Snapping算法对上述图像进行分割,lazy Snapping算法是一种交互式图像分割方法,它的基本做法为:利用前景点集与背景点集,建立前景的颜色模型与背景的颜色模型,再利用图切分算法(Graph Cut)在以图像为基础建立的马尔可夫随机场(Markov Random Field)上进行能量优化,以确定图像中每个像素的分类,即该像素是属于前景区域的像素点还是背景区域的像素点,从而划分出图像的前景区域与背景区域,其中,上述图切分算法是通过定义一个能量函数来判断图像中的像素是属于图像前景还是图像背景,上述马尔可夫随机场即马尔可夫性质的随机场,马尔可夫性质是指一个随机变量序列按时间先后关系依次排开的时候,第N+1时刻的分布特性,与N时刻以前的随机变量的取值无关,随机场主要包含两个要素:位置(site)与相空间(phase space),当给每一个位置中按照某种分布随机赋予相空间的一个值之后,其全体就叫做随机场。

在本实施例中,在对上述目标图像进行分割之后,可以生成包含前景区域与背景区域的第一掩码图像。在图像处理中,是否对图像进行处理取决于该图像的掩码图像中的像素点的掩码位是否为屏蔽,若为屏蔽,则不对该像素点进行处理。在上述第一掩码图像中,可以将背景区域的像素点的像素值设置为0;将前景区域的像素点的像素值设置为255。当需要对前景区域进行处理时,则可以将像素值为0的像素点(即背景区域的像素点)的掩码位设置为屏蔽;当需要对背景区域进行处理时,则可以将像素值为255的像素点(即前景区域的像素点)的掩码位设置为屏蔽。在生成上述第一掩码图像之后,上述电子设备可以按照每个像素点属于前景区域还是背景区域来确定上述第一掩码图像中各个像素点的像素值。

步骤202,将目标图像的各个像素点的像素值导入预先生成的皮肤似然值检测模型中进行匹配得到各个像素点属于皮肤区域的似然值,并基于似然值,确定各个像素点中属于皮肤区域的像素点。

在本实施例中,上述电子设备可以从其它电子设备中获取皮肤似然值检测模型,或者可以预先建立皮肤似然值检测模型,上述皮肤似然值检测模型是用于表征像素点的像素值与该像素点属于皮肤区域的似然值的对应关系。建立皮肤似然值检测模型的步骤,可以包括:获取预设数目张包含人体皮肤的图像和图像中标注出的人体皮肤区域,并获取图像中的各个像素点对应的像素值,利用大数据分析算法和机器学习算法等,基于像素点的像素值和该像素点属于皮肤区域的似然值,训练得到皮肤似然值检测模型。

在本实施例中,上述电子设备可以首先获取上述目标图像的各个像素点的像素值,然后将各个像素点的像素值导入上述获取到的或者预先生成的皮肤似然值检测模型中进行匹配;之后,可以输出该像素点属于皮肤区域的似然值;然后,上述电子设备可以将上述似然值大于0的像素点标记为属于皮肤区域的像素点,并将上述似然值小于或等于0的像素点标记为属于非皮肤区域的像素点。

步骤203,对目标图像进行超像素分割,生成包括超像素的目标图像。

在本实施例中,上述电子设备可以对上述目标图像进行超像素分割,并生成包括超像素的目标图像。作为示例,可以使用SLIC(Simple Linear Iterative Clustering,简单线性迭代聚类)方法对上述目标图像进行超像素分割,SLIC方法是将图像的初始色彩空间转化为CIELAB(CIE组织确定的一个理论上包括了人眼可见的所有色彩的色彩模式)色彩空间和XY坐标下的5维特征向量,然后对5维特征向量构造距离度量标准,对图像的像素点进行局部聚类的过程。

超像素是指具有相似纹理、颜色、亮度等特征的相邻像素构成的具有一定视觉意义的不规则像素块。它利用像素之间特征的相似性将像素分组,用少量的超像素代替大量的像素来表达图片特征,很大程度上降低了图像后处理的复杂度,所以通常作为分割算法的预处理步骤。已经广泛用于图像分割、姿势估计、目标跟踪、目标识别等计算机视觉应用。

步骤204,基于超像素中包含的属于皮肤区域的像素点的数量,确定超像素中各个像素点的像素值,以确定预先建立的目标图像的第二掩码图像中各个像素点的像素值。

在本实施例中,在步骤202中确定出属于皮肤区域的像素点,并且步骤203中生成包括超像素的目标图像之后,可以创建与上述目标图像同样尺寸的第二掩码图像,上述第二掩码图像包含分割成的超像素,对于上述第二掩码图像中的每个超像素,可以基于该超像素中包含的属于皮肤区域的像素点的数量,确定该超像素中各个像素点的像素值,并确定上述第二掩码图像中各个像素点的像素值。

步骤205,基于第一掩码图像中各个像素点的像素值和第二掩码图像中各个像素点的像素值,输出目标图像中的人体图像。

在本实施例中,在步骤201中确定出上述第一掩码图像中各个像素点的像素值,并且在步骤204中确定出上述第二掩码图像中各个像素点的像素值之后,可以确定上述第一掩码图像中的前景区域和上述第二掩码图像中的皮肤区域,之后获取前景区域的像素点与皮肤区域的像素点,生成像素点集合,可以从上述目标图像中,提取出上述像素点集合中的像素点所在的区域,将该区域作为人体图像并输出该人体图像。

在本实施例的一些可选的实现方式中,在步骤201中生成包括前景区域的第一掩码图像之后,上述电子设备可以将上述第一掩码图像中的前景区域的像素点的像素值设置为255,并将上述第一掩码图像中的背景区域的像素点的像素值设置为0;在步骤204中确定出第二掩码图像中的各个超像素中的像素点的像素值是否为皮肤区域的像素点的像素值之后,可以将上述第二掩码图像中的皮肤区域的像素点的像素值设置为255,并将上述第二掩码图像中的非皮肤区域的像素点的像素值设置为0。上述电子设备可以获取上述第一掩码图像中的像素值为255的像素点和上述第二掩码图像中的像素值为255的像素点,生成上述人体图像的像素点集合;之后,可以从上述目标图像中,提取出上述像素点集合中的像素点所在的区域,将该区域作为人体图像并输出该人体图像。即若上述第一掩码图像与上述第二掩码图像中的像素点的像素值均为0,则输出图像的该像素点为白色;否则,将该像素点的像素值设置为上述目标图像上该像素点的像素值。

本申请的上述实施例提供的方法,通过将肤色检测、超像素分割与对图像的前景背景的分割算法相结合,可以获得更好的人体图像的分割结果,实现了更加精确可靠的人体图像的提取方式。

进一步参考图3,其示出了图像输出方法的又一个实施例的流程300。该图像输出方法的流程300,包括以下步骤:

步骤301,确定目标图像中的人体图像的轮廓,获取轮廓与目标图像的顶部边缘之间的至少一个像素点,将至少一个像素点作为目标图像的背景点集。

在本实施例中,图像输出方法运行于其上的电子设备(例如图1所示的服务器)可以首先获取到用户通过终端输入的、或者本地获取到的包含人体图像的目标图像,如图4A所示;之后,确定上述目标图像中的人体图像的轮廓或边缘;然后,获取该轮廓与上述目标图像的顶部边缘之间的至少一个像素点,将获取到的至少一个像素点作为上述目标图像的背景点集。每张图像都是可以分割成前景和背景的,上述背景点集中的背景点为属于上述目标图像的背景的像素点。

在本实施例的一些可选的实现方式中,上述电子设备可以首先对上述目标图像中的人体图像的边缘进行检测,确定上述人体图像中的轮廓线,并生成包含上述轮廓线的边缘特征图像,如图4B所示。作为示例,可以使用Canny边缘检测算法对图像的边缘进行检测,Canny边缘检测算法是一种一阶微分算子检测算法,它在一阶微分算子的基础上,增加了非极大值抑制和双阈值两项改进,利用非极大值抑制不仅可以有效地抑制多响应边缘,而且还可以提高边缘的定位精度;利用双阈值可以有效减少边缘的漏检率。

在本实施例的一些可选的实现方式中,在生成包含上述轮廓线的边缘特征图像之后,可以对上述边缘特征图像进行闭操作,以将上述边缘特征图像中的不连续的轮廓线转换为连续的轮廓线,如图4C所示。闭操作是指对图像进行先膨胀操作后腐蚀操作的过程,闭操作可使轮廓线更光滑,通常可以消弥狭窄的间断和长细的鸿沟,消除小的空洞,并填补轮廓线中的断裂。膨胀的具体操作为:用一个结构元素(一般为3*3或者5*5的大小)扫描图像中的每一个元素,再用结构元素中的每个像素与其覆盖的像素做“与”操作,若结果都为1,则该像素的像素值为1,否则该像素的像素值为0。腐蚀的具体操作为:用一个结构元素扫描图像中的每一个元素,再用结构元素中的每个像素与其覆盖的像素做“与”操作,若结果都为0,则该像素的像素值为0,否则该像素的像素值为1。

在本实施例的一些可选的实现方式中,在对上述边缘特征图像进行闭操作之后,可以确定对上述边缘特征图像进行闭操作之后的上述目标图像中的轮廓线,上述轮廓线一般为最大的轮廓线,即包含图像中的像素点最多的轮廓线,如图4D所示。

在本实施例的一些可选的实现方式中,在确定出闭操作之后的轮廓线之后,可以使用图像填充算法对包含执行闭操作之后的轮廓线的目标图像进行填充,其中,上述图像填充算法也可以称为平面区域填充算法,区域填充即给出一个区域的边界,将边界范围内的所有像素单元都修改成指定的颜色。作为示例,可以使用漫水填充算法(Flood Fill Algorithm),也可以称为注入填充算法,所谓漫水填充算法是给定一个联通域内的一个点,以此点为起点找到这个联通域的其余所有点并将其填充为指定颜色的一种算法。在本实现方式中,可以将包含最大轮廓线的目标图像的左下角的像素点设置为起点,填充图像,将填充到的部分的颜色标记为0,将未填充到的部分的颜色标记为255,如图4E所示,在图4E中,白色区域为填充到的部分。之后,可以采用边缘检测算法(如,Canny边缘检测算法)获取填充之后的目标图像中的人体图像的轮廓,如图4F所示。

在本实施例的一些可选的实现方式中,上述电子设备可以首先确定上述人体图像的轮廓中距离上述目标图像的顶部边缘最近的点,之后,确定上述最近的点与上述目标图像的顶部边缘上的任意一点的连线上的中点,最后,将通过该中点、并且与上述目标图像的顶部边缘平行的线段上的点集作为上述目标图像的背景点集,如图4G所示,在图4G中,白色直线上的点集即为上述目标图像的背景点集。

步骤302,获取目标图像中的人脸上的至少一个像素点,将人脸上的至少一个像素点作为目标图像的前景点集。

在本实施例中,上述电子设备可以首先使用开源的人脸检测系统识别出目标图像中的人脸的位置,之后,获取人脸上的至少一个像素点,然后,将获取到的至少一个像素点作为上述目标图像的前景点集。上述至少一个像素点可以是人脸上的任一像素点,例如,嘴巴上的像素点、鼻子上的像素点、额头上的像素点等等。

在本实施例的一些可选的实现方式中,上述电子设备可以获取人脸上两眼上的像素点,并将上述两眼上的像素点的连线上的像素点的点集作为上述目标图像的前景点集,如图4H所示,在图4H中,白色直线上的点集即为上述目标图像的前景点集。

步骤303,基于包含人体图像的目标图像的背景点集和前景点集,对目标图像进行分割,生成包括前景区域和背景区域的第一掩码图像,并确定第一掩码图像中各个像素点的像素值。

在本实施例中,在步骤301中与步骤302中分别获取到上述目标图像的背景点集与前景点集之后,可以基于上述背景点集和上述前景点集,使用图像分割算法对上述目标图像进行分割,例如,使用lazy Snapping算法对上述图像进行分割;之后,可以生成包含前景区域与背景区域的第一掩码图像,如图4I所示,在图4I中,白色区域为第一掩码图像中的前景区域,黑色区域为第一掩码图像中的背景区域。在图像处理中,是否对图像进行处理取决于该图像的掩码图像中的像素点的掩码位是否为屏蔽,若为屏蔽,则不对该像素点进行处理。在生成上述第一掩码图像之后,上述电子设备可以按照每个像素点属于前景区域还是背景区域来确定上述第一掩码图像中各个像素点的像素值。

步骤304,将目标图像的各个像素点的像素值导入预先生成的皮肤似然值检测模型中进行匹配得到各个像素点属于皮肤区域的似然值,并基于似然值,确定各个像素点中属于皮肤区域的像素点。

在本实施例中,上述电子设备可以从其它电子设备中获取皮肤似然值检测模型,或者可以预先建立皮肤似然值检测模型,上述皮肤似然值检测模型是用于表征像素点的像素值与该像素点属于皮肤区域的似然值的对应关系。建立皮肤似然值检测模型的步骤,可以包括:获取预设数目张包含人体皮肤的图像和图像中标注出的人体皮肤区域,并获取图像中的各个像素点对应的像素值,利用大数据分析算法和机器学习算法等,基于像素点的像素值和该像素点属于皮肤区域的似然值,训练得到皮肤似然值检测模型。

在本实施例中,上述电子设备可以将上述目标图像的各个像素点的像素值导入上述获取到的或者预先生成的皮肤似然值检测模型中进行匹配;之后,可以输出该像素点属于皮肤区域的似然值;然后,上述电子设备可以将上述似然值大于0的像素点标记为属于皮肤区域的像素点,并将上述似然值小于或等于0的像素点标记为属于非皮肤区域的像素点,如图4J所示,在图4J中,白色区域为标记出的皮肤区域的像素点,黑色区域为标记出的非皮肤区域的像素点。

步骤305,对目标图像进行超像素分割,生成包括超像素的目标图像。

在本实施例中,上述电子设备可以对上述目标图像进行超像素分割,并生成包括超像素的目标图像,如图4K所示,在图4K中超像素的个数设置为255,因此,目标图像被分割成255块。超像素是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块。作为示例,可以使用SLIC方法进行超像素分割,SLIC方法是将图像的初始色彩空间转化为CIELAB色彩空间和XY坐标下的5维特征向量,然后对5维特征向量构造距离度量标准,对图像的像素点进行局部聚类的过程。

步骤306,基于超像素中包含的属于皮肤区域的像素点的数量,确定超像素中各个像素点的像素值,以确定预先建立的目标图像的第二掩码图像中各个像素点的像素值。

在本实施例中,在步骤304中确定出属于皮肤区域的像素点和步骤305中生成包括超像素的目标图像之后,可以创建与上述目标图像同样尺寸的第二掩码图像,上述第二掩码图像包含分割成的超像素,对于上述第二掩码图像中的每个超像素,可以基于该超像素中包含的属于皮肤区域的像素点的数量,确定该超像素中各个像素点的像素值,并确定上述第二掩码图像中各个像素点的像素值。

在本实施例的一些可选的实现方式中,对于上述第二掩码图像中的每个超像素,上述电子设备可以首先获取该超像素中的像素点的总数量,并获取该超像素中包含的属于皮肤区域的像素点的数量;之后,可以确定上述属于皮肤区域的像素点的数量与上述总数量的比值,并确定上述比值是否大于预设的比值阈值;若上述比值大于预设的比值阈值时,则可以将该超像素中的各个像素点的像素值均设置为皮肤区域的像素点的像素值,如图4L所示,在图4L中,白色区域为第二掩码图像中的皮肤区域,黑色区域为第二掩码图像中的非皮肤区域。

步骤307,基于第一掩码图像中各个像素点的像素值和第二掩码图像中各个像素点的像素值,生成待输出的人体图像。

在本实施例中,在步骤303中生成包括前景区域的第一掩码图像之后,上述电子设备可以将上述第一掩码图像中的前景区域的像素点的像素值设置为255,并将上述第一掩码图像中的背景区域的像素点的像素值设置为0;在步骤306中确定出第二掩码图像中的各个超像素中的像素点的像素值是否为皮肤区域的像素点的像素值之后,可以将上述第二掩码图像中的皮肤区域的像素点的像素值设置为255,并将上述第二掩码图像中的非皮肤区域的像素点的像素值设置为0。上述电子设备可以获取上述第一掩码图像中的像素值为255的像素点和上述第二掩码图像中的像素值为255的像素点,生成上述人体图像的像素点集合;之后,可以从上述目标图像中,提取出上述像素点集合中的像素点所在的区域,将该区域作为待输出的人体图像,如图4M所示,在图4M中,图中的非白色区域为待输出的人体图像。

步骤308,以待输出的人体图像的轮廓上的每一点为中心,构建预设边长的矩形。

在本实施例中,由于步骤307中生成的待输出的人体图像的边缘较粗糙,可能会有锯齿形状的边缘,如图4N所示,因此,可以对上述待输出的人体图像的轮廓上的每一个像素点进行平滑处理。上述电子设备可以以上述待输出的人体图像的轮廓上的每一点为中心,构建预设边长的矩形(例如,5*5大小的结构元素)。

步骤309,使用高斯滤波对每个矩形内的各个像素点进行平滑处理,以得到平滑处理后的人体图像。

在本实施例中,可以使用高斯滤波(Gauss filter)对构建的每个矩形内的各个像素点进行平滑处理,以得到平滑处理后的人体图像,如图4O所示。高斯滤波实质上是一种信号的滤波器,其用途为信号的平滑处理。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

步骤310,输出平滑处理后的人体图像。

在本实施例中,在步骤309中对各个像素点进行平滑处理之后,上述电子设备可以将经过平滑处理后的人体图像进行输出,输出的图像如图4P所示。上述电子设备可以平滑处理后的人体图像在本地的显示屏上进步输出,也可以将平滑处理后的人体图像发送给终端设备,以供上述终端设备进行图像输出。

从图3中可以看出,与图2对应的实施例相比,本实施例中的图像输出方法的流程300突出了目标图像的背景点集与前景点集的获取的步骤,以及对待输出的人体图像的边缘进行平滑处理的步骤。由此,本实施例描述的方案可以在无人工标注的情况下,从目标图像中自动获取背景点集与前景点集,并且在输出人体图像之前,对图像的边缘进行平滑处理,本实施例描述的方案简单高效,且使得输出的图像的边缘更加平滑。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种图像输出装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例的图像输出装置500包括:第一确定单元501、第二确定单元502、生成单元503、第三确定单元504和输出单元505。其中,第一确定单元501配置用于基于包含人体图像的目标图像的背景点集和前景点集,对目标图像进行分割,生成包括前景区域和背景区域的第一掩码图像,并确定第一掩码图像中各个像素点的像素值,其中,背景点为属于目标图像的背景的像素点,前景点为属于目标图像的前景的像素点;第二确定单元502配置用于将目标图像的各个像素点的像素值导入预先生成的皮肤似然值检测模型中进行匹配得到各个像素点属于皮肤区域的似然值,并基于似然值,确定各个像素点中属于皮肤区域的像素点,其中,皮肤似然值检测模型用于表征像素值与似然值的对应关系;生成单元503配置用于对目标图像进行超像素分割,生成包括超像素的目标图像;第三确定单元504配置用于基于超像素中包含的属于皮肤区域的像素点的数量,确定超像素中各个像素点的像素值,以确定预先建立的目标图像的第二掩码图像中各个像素点的像素值;输出单元505配置用于基于第一掩码图像中各个像素点的像素值和第二掩码图像中各个像素点的像素值,输出目标图像中的人体图像。

在本实施例中,上述图像输出装置500的第一确定单元501可以首先获取包含人体图像的目标图像的背景点集和前景点集,其中,上述目标图像中包含的人体图像可以为人脸图像,也可以为包含皮肤区域的人体上半身图像,还可以为包含皮肤区域的人体全身图像。每张图像都是可以分割成前景和背景的,上述背景点集中的背景点为属于上述目标图像的背景的像素点,上述前景点集中的前景点为属于上述目标图像的前景的像素点。之后,可以基于上述背景点集和上述前景点集,使用图像分割算法对上述目标图像进行分割。在对上述目标图像进行分割之后,可以生成包含前景区域与背景区域的第一掩码图像。在生成上述第一掩码图像之后,上述第一确定单元501可以按照每个像素点属于前景区域还是背景区域来确定上述第一掩码图像中各个像素点的像素值。

在本实施例中,上述第二确定单元502可以首先获取上述目标图像的各个像素点的像素值,然后将各个像素点的像素值导入获取到的或者预先生成的皮肤似然值检测模型中进行匹配;之后,可以输出该像素点属于皮肤区域的似然值;然后,上述第二确定单元502可以将上述似然值大于0的像素点标记为属于皮肤区域的像素点,并将上述似然值小于或等于0的像素点标记为属于非皮肤区域的像素点。

在本实施例中,上述生成单元503可以对上述目标图像进行超像素分割,并生成包括超像素的目标图像。超像素是指具有相似纹理、颜色、亮度等特征的相邻像素构成的具有一定视觉意义的不规则像素块。

在本实施例中,在上述第二确定单元502确定出属于皮肤区域的像素点,并且上述生成单元503生成包括超像素的目标图像之后,上述第三确定单元504可以创建与上述目标图像同样尺寸的第二掩码图像,上述第二掩码图像包含分割成的超像素,对于上述第二掩码图像中的每个超像素,可以基于该超像素中包含的属于皮肤区域的像素点的数量,确定该超像素中各个像素点的像素值,并确定上述第二掩码图像中各个像素点的像素值。

在本实施例中,在上述第一确定单元501确定出上述第一掩码图像中各个像素点的像素值,并且在上述第三确定单元504确定出上述第二掩码图像中各个像素点的像素值之后,上述输出单元505可以确定上述第一掩码图像中的前景区域和上述第二掩码图像中的皮肤区域,之后获取前景区域的像素点与皮肤区域的像素点,生成像素点集合,可以从上述目标图像中,提取出上述像素点集合中的像素点所在的区域,将该区域作为人体图像并输出该人体图像。

在本实施例的一些可选的实现方式中,上述图像输出装置500还可以包括第四确定单元506(图中未示出)和第五确定单元507(图中未示出)。上述第四确定单元506可以首先获取到用户通过终端输入的、或者本地获取到的包含人体图像的目标图像;之后,确定上述目标图像中的人体图像的轮廓或边缘;然后,获取该轮廓与上述目标图像的顶部边缘之间的至少一个像素点,将获取到的至少一个像素点作为上述目标图像的背景点集。上述第五确定单元507可以首先使用开源的人脸检测系统识别出目标图像中的人脸的位置,之后,获取人脸上的至少一个像素点,然后,将获取到的至少一个像素点作为上述目标图像的前景点集。

在本实施例的一些可选的实现方式中,上述第四确定单元506可以包括检测模块5061(图中未示出)、闭操作模块5062(图中未示出)、确定模块5063(图中未示出)和填充模块5064(图中未示出)。上述模块5061可以首先对上述目标图像中的人体图像的边缘进行检测,确定上述人体图像中的轮廓线,并生成包含上述轮廓线的边缘特征图像。在生成包含上述轮廓线的边缘特征图像之后,上述闭操作模块5062可以对上述边缘特征图像进行闭操作,以将上述边缘特征图像中的不连续的轮廓线转换为连续的轮廓线。闭操作是指对图像进行先膨胀操作后腐蚀操作的过程,闭操作可使轮廓线更光滑,通常可以消弥狭窄的间断和长细的鸿沟,消除小的空洞,并填补轮廓线中的断裂。在对上述边缘特征图像进行闭操作之后,上述确定模块5063可以确定对上述边缘特征图像进行闭操作之后的上述目标图像中的轮廓线,上述轮廓线一般为最大的轮廓线,即包含图像中的像素点最多的轮廓线。在确定出执行闭操作之后的轮廓线之后,上述填充模块5064可以使用图像填充算法对包含执行闭操作之后的轮廓线的目标图像进行填充,其中,上述图像填充算法也可以称为平面区域填充算法,区域填充即给出一个区域的边界,将边界范围内的所有像素单元都修改成指定的颜色,之后,可以采用边缘检测算法获取填充之后的目标图像中的人体图像的轮廓。

在本实施例的一些可选的实现方式中,上述第四确定单元506还可以确定上述人体图像的轮廓中距离上述目标图像的顶部边缘最近的点,之后,确定上述最近的点与上述目标图像的顶部边缘上的任意一点的连线上的中点,最后,将通过该中点、并且与上述目标图像的顶部边缘平行的线段上的点集作为上述目标图像的背景点集。

在本实施例的一些可选的实现方式中,上述第五确定单元507可以获取人脸上两眼上的像素点,并将上述两眼上的像素点的连线上的像素点的点集作为上述目标图像的前景点集。

在本实施例的一些可选的实现方式中,上述输出单元505还可以包括:第一生成模块5051(图中未示出)、构建模块5052(图中未示出)、平滑处理模块5053(图中未示出)和第一输出模块5054(图中未示出)。上述第一生成模块5051可以从上述目标图像中,提取出上述像素点集合中的像素点所在的区域,将该区域作为待输出的人体图像。上述构建模块5052可以对上述待输出的人体图像的轮廓上的每一个像素点进行平滑处理,上述构建模块5052可以以上述待输出的人体图像的轮廓上的每一点为中心,构建预设边长的矩形。上述平滑处理模块5053可以使用高斯滤波对构建的每个矩形内的各个像素点进行平滑处理,以得到平滑处理后的人体图像。在平滑处理模块5053对各个像素点进行平滑处理之后,上述第一输出模块5054可以经过平滑处理后的人体图像进行输出。

在本实施例的一些可选的实现方式中,上述第三确定单元504可以包括获取模块5041(图中未示出)、确定模块5042(图中未示出)和设置模块5043(图中未示出)。对于上述第二掩码图像中的每个超像素,上述获取模块5041可以首先获取该超像素中的像素点的总数量,并获取该超像素中包含的属于皮肤区域的像素点的数量;之后,上述确定模块5042可以确定上述属于皮肤区域的像素点的数量与上述总数量的比值,并确定上述比值是否大于预设的比值阈值;若上述比值大于预设的比值阈值时,则上述设置模块5043可以将该超像素中的各个像素点的像素值均设置为皮肤区域的像素点的像素值。

在本实施例的一些可选的实现方式中,上述输出单元505还可以包括:第二生成模块5055(图中未示出)、提取模块5056(图中未示出)和第二输出模块5057(图中未示出)。在上述第一确定单元501生成包括前景区域的第一掩码图像之后,上述第一确定单元501可以将上述第一掩码图像中的前景区域的像素点的像素值设置为255;在上述第三确定单元504确定出第二掩码图像中的各个超像素中的像素点的像素值是否为皮肤区域的像素点的像素值之后,可以将上述第二掩码图像中的皮肤区域的像素点的像素值设置为255。上述第二生成模块5055可以获取上述第一掩码图像中的像素值为255的像素点和上述第二掩码图像中的像素值为255的像素点,生成上述人体图像的像素点集合;之后,上述提取模块5056可以从上述目标图像中,提取出上述像素点集合中的像素点所在的区域,上述第二输出模块5057可以将该区域作为人体图像并输出该人体图像。

下面参考图6,其示出了适于用来实现本发明实施例的服务器的计算机系统600的结构示意图。图6示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

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

描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一确定单元、第二确定单元、生成单元、第三确定单元和输出单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。例如,生成单元还可以被描述为“对目标图像进行超像素分割,生成包括超像素的目标图像的单元”。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:基于包含人体图像的目标图像的背景点集和前景点集,对目标图像进行分割,生成包括前景区域和背景区域的第一掩码图像,并确定第一掩码图像中各个像素点的像素值,其中,背景点为属于目标图像的背景的像素点,前景点为属于目标图像的前景的像素点;将目标图像的各个像素点的像素值导入预先生成的皮肤似然值检测模型中进行匹配得到各个像素点属于皮肤区域的似然值,并基于似然值,确定各个像素点中属于皮肤区域的像素点,其中,皮肤似然值检测模型用于表征像素值与似然值的对应关系;对目标图像进行超像素分割,生成包括超像素的目标图像;基于超像素中包含的属于皮肤区域的像素点的数量,确定超像素中各个像素点的像素值,以确定预先建立的目标图像的第二掩码图像中各个像素点的像素值;基于第一掩码图像中各个像素点的像素值和第二掩码图像中各个像素点的像素值,输出目标图像中的人体图像。

以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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