图像处理方法、图像处理装置、终端及可读存储介质
技术领域
本申请涉及影像
技术领域
,特别涉及一种图像处理方法、图像处理装置、终端及可读存储介质。背景技术
目前,通常会采用语义分割或者matting抠图等方式获取图像中的人像区域,无论语义分割或是matting抠图等方法都是用特征的整合去分类前景和背景。然而,若是图像的场景较为复杂,很难区分某些特征是属于前景还是背景,如此容易产生误检和漏检问题。
发明内容
本申请实施方式提供了一种图像处理方法、图像处理装置、终端及非易失性计算机可读存储介质。
本申请实施方式提供一种图像处理方法。所述图像处理方法包括对获取到的原始图像进行人像分割处理,以获得初始分割图像及第一概率图像,所述初始分割图像包括人像区域及背景区域,所述第一概率图像包括所述初始分割图像中每个像素的第一概率值,所述第一概率值表征所述初始分割图像中每个像素在所述人像区域的概率;获取深度图像及第二概率图像,所述深度图像用于指示所述原始图像中各像素的深度值,所述第二概率图像包括所述深度图像中每个像素对应的第二概率值;及根据所述初始分割图像、所述第一概率图像、所述深度图像及所述第二概率图像,获取像目标分割图像。
本申请实施方式还提供一种图像处理装置。所述图像处理装置包括第一获取模块、第二获取模块及融合模块。所述第一获取模块用于对获取到的原始图像进行人像分割处理,以获得初始分割图像及第一概率图像,所述初始分割图像包括人像区域及背景区域,所述第一概率图像包括所述初始分割图像中每个像素的第一概率值,所述第一概率值表征所述初始分割图像中每个像素在所述人像区域的概率。所述第二获取模块用于获取深度图像及第二概率图像,所述深度图像用于指示所述原始图像中各像素的深度值,所述第二概率图像包括所述深度图像中每个像素对应的第二概率值。所述融合模块用于根据所述初始分割图像、所述第一概率图像、所述深度图像及所述第二概率图像,获取像目标分割图像。
本申请实施方式还提供一种终端。所述终端包括壳体及一个或多个处理器。一个或多个所述处理器与所述壳体结合。一个或多个所述处理器用于对获取到的原始图像进行人像分割处理,以获得初始分割图像及第一概率图像,所述初始分割图像包括人像区域及背景区域,所述第一概率图像包括所述初始分割图像中每个像素的第一概率值,所述第一概率值表征所述初始分割图像中每个像素在所述人像区域的概率;获取深度图像及第二概率图像,所述深度图像用于指示所述原始图像中各像素的深度值,所述第二概率图像包括所述深度图像中每个像素对应的第二概率值;及根据所述初始分割图像、所述第一概率图像、所述深度图像及所述第二概率图像,获取像目标分割图像。
本申请实施方式还提供一种包含计算机程序的非易失性计算机可读存储介质。所述计算机程序被处理器执行时,使得所述处理器执行下述的图像处理方法。所述图像处理方法包括对获取到的原始图像进行人像分割处理,以获得初始分割图像及第一概率图像,所述初始分割图像包括人像区域及背景区域,所述第一概率图像包括所述初始分割图像中每个像素的第一概率值,所述第一概率值表征所述初始分割图像中每个像素在所述人像区域的概率;获取深度图像及第二概率图像,所述深度图像用于指示所述原始图像中各像素的深度值,所述第二概率图像包括所述深度图像中每个像素对应的第二概率值;及根据所述初始分割图像、所述第一概率图像、所述深度图像及所述第二概率图像,获取像目标分割图像。
本申请实施方式中的图像处理方法、图像处理装置、终端及非易失性计算机可读存储介质,通过根据初始分割图像、第一概率图像、深度图像及第二概率图像获取目标分割图像,相较于直接采用单一的分割模型对原始图像进行分割能够避免在复杂场景下的误检漏检等问题,提高了人像区域分割的稳定性及精准性。
本申请实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点可以从结合下面附图像对实施方式的描述中将变得明显和容易理解,其中:
图1是本申请某些实施方式中图像处理方法的流程示意图;
图2是本申请某些实施方式中图像处理装置的结构示意图;
图3是本申请某些实施方式中终端的结构示意图;
图4至图5是本申请某些实施方式中图像处理方法的流程示意图;
图6是本申请某些实施方式中原始图像为横拍图的示意图;
图7是本申请某些实施方式中原始图像为竖拍图的示意图;
图8是本申请某些实施方式中将横拍图旋转为竖拍图的原理示意图;
图9至图11是本申请某些实施方式中分割模型分割预处理图像的原理示意图;
图12是本申请某些实施方式中图像处理方法的流程示意图;
图13是本申请某些实施方式中深度估计网络模型的原理示意图;
图14是本申请某些实施方式中单目深度估计网络模型的原理示意图;
图15是本申请某些实施方式中双目深度估计网络模型的原理示意图;
图16至图17是本申请某些实施方式中图像处理方法的流程示意图;
图18是本申请某些实施方式中根据初始分割图像对原始深度信息图像进行第一图像处理的原理示意图;
图19至图20是本申请某些实施方式中图像处理方法的流程示意图;
图21是本申请某些实施方式中生成目标分割图像的原理示意图;
图22至图23是本申请某些实施方式中图像处理方法的流程示意图;
图24是本申请某些实施方式中非易失性计算机可读存储介质与处理器的交互示意图。
具体实施方式
下面详细描述本申请的实施方式,所述实施方式的示例在附图像中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图像描述的实施方式是示例性的,仅用于解释本申请的实施方式,而不能理解为对本申请的实施方式的限制。
请参阅图1,本申请实施方式提供一种图像处理方法。图像处理方法包括:
01:对获取到的原始图像进行人像分割处理,以获得初始分割图像及第一概率图像,初始分割图像包括人像区域及背景区域,第一概率图像包括初始分割图像中每个像素的第一概率值,第一概率值表征初始分割图像中每个像素在人像区域的概率;
02:获取深度图像及第二概率图像,深度图像用于指示原始图像中各像素的深度值,第二概率图像包括深度图像中每个像素对应的第二概率值;及
03:根据初始分割图像、第一概率图像、深度图像及第二概率图像,获取像目标分割图像。
请结合图2,本申请实施方式还提供一种图像处理装置10。图像处理装置10包括第一获取模块11、第二获取模块12及融合模块13。上述图像处理方法中的步骤01可以由第一获取模块11执行实现;步骤02可以由第二获取模块12执行实现;步骤03可以由融合模块13执行实现。也即是说,第一获取模块11用于对获取到的原始图像进行人像分割处理,以获得初始分割图像及第一概率图像,初始分割图像包括人像区域及背景区域,第一概率图像包括初始分割图像中每个像素的第一概率值,第一概率值表征初始分割图像中每个像素在人像区域的概率。第二获取模块12用于获取深度图像及第二概率图像,深度图像用于指示原始图像中各像素的深度值,第二概率图像包括深度图像中每个像素对应的第二概率值。融合模块13用于根据初始分割图像、第一概率图像、深度图像及第二概率图像,获取像目标分割图像。
请结合图3,本申请实施方式还提供一种终端100。终端100包括壳体20及一个或多个处理器30,一个或多个处理器30与壳体20结合。上述图像处理方法中的步骤01、步骤02及步骤03还可以由一个或多个处理器20执行实现。也即是说,一个或多个处理器30用于对获取到的原始图像进行人像分割处理,以获得初始分割图像及第一概率图像,初始分割图像包括人像区域及背景区域,第一概率图像包括初始分割图像中每个像素的第一概率值,第一概率值表征初始分割图像中每个像素在人像区域的概率;获取深度图像及第二概率图像,深度图像用于指示原始图像中各像素的深度值,第二概率图像包括深度图像中每个像素对应的第二概率值;及根据初始分割图像、第一概率图像、深度图像及第二概率图像,获取像目标分割图像。需要说明的是,终端100可以是手机、相机、笔记本电脑或是智能穿戴设备等等,下文实施例中仅以终端100为手机进行说明。
本申请实施方式中的图像处理方法、图像处理装置10及终端100通过根据初始分割图像、第一概率图像、深度图像及第二概率图像获取目标分割图像,相较于直接采用单一的分割模型对原始图像进行分割能够避免在复杂场景下的误检漏检等问题,提高了人像区域分割的稳定性及精准性。
其中,在一个例子中,终端100或图像处理装置10还可以包括成像模组40,终端100或图像处理装置10可通过成像模组40对人物进行图像采集,以获取原始图像;在另一个例子中,终端100或图像处理装置10还可以包括存储模组50,存储模组50中预先存储有含有人像的原始图像,终端100的处理器30可从存储模组50获取原始图像;在又一个例子中,终端100或图像处理装置10也可以通过用户的输入获取含有人像的原始图像。获取原始图像的具体方法在此不作限制,获取的原始图像中均需要含有人像。
在获取到原始图像后,处理器30(或第一获取模块11)对获取到的原始图像进行人像分割处理,以获取初始分割图像及第一概率图像。具体地,请参阅图1及图4,在一些实施方式中,步骤01:对获取到的原始图像进行人像分割处理,以获得初始分割图像及第一概率图像,包括:
011:对原始图像进行预处理,以获取预处理图像;
012:将预处理图像输入至预设的分割模型,以获取初始分割图像及第一概率图像。
请结合图2,在一些实施方式中,上述步骤011及步骤012可以由图像处理装置10的第一获取模块11执行实现。也即是说,第一获取模块11还用于对原始图像进行预处理,以获取预处理图像;及将预处理图像输入至预设的分割模型,以获取初始分割图像及第一概率图像。
请结合图3,在一些实施方式中,上述步骤011及步骤012可以由终端100的一个或多个处理器30执行实现。也即是说,一个或多个处理器30还用于对原始图像进行预处理,以获取预处理图像;及将预处理图像输入至预设的分割模型,以获取初始分割图像及第一概率图像。
示例地,在一些实施例中,输入至预设的分割模型的图像需要满足输入图像的要求,也即,预设的分割模型对于输入的图像的属性可能会有一些要求,输入的图像应当符合这些要求,预设的分割模型才能够正确处理。因此,在获取到含有人像的原始图像后,对原始图像进行预处理以获取预处理图像,且预处理图像能够满足预设的分割模型对输入图像的要求。如此,将预处理图像输入预设的分割模型后,预设的分割模型能够对预处理图像进行正确处理。具体地,请参阅图4及图5,在一些实施方式中,步骤011:对原始图像进行预处理,以获取预处理图像,包括:
0111:检测原始图像为横拍图像还是竖拍图像;
0112:若原始图像为横拍图像,则旋转原始图像使其变为竖拍图像;及对旋转后的原始图像执行归一化处理,以获得预处理图像;
0113:若原始图像为竖拍图像,则对原始图像执行归一化处理,以获得预处理图像。
请结合图2,在一些实施方式中,上述步骤0111、步骤0112及步骤0113可以由图像处理装置10的第一获取模块11执行实现。也即是说,第一获取模块11还用于检测原始图像为横拍图像还是竖拍图像;若原始图像为横拍图像,则旋转原始图像使其变为竖拍图像;及对旋转后的原始图像执行归一化处理,以获得预处理图像;及若原始图像为竖拍图像,则对原始图像执行归一化处理,以获得预处理图像。
请结合图3,在一些实施方式中,上述步骤0111、步骤0112及步骤0113可以由终端100的一个或多个处理器30执行实现。也即是说,一个或多个处理器30还用于检测原始图像为横拍图像还是竖拍图像;若原始图像为横拍图像,则旋转原始图像使其变为竖拍图像;及对旋转后的原始图像执行归一化处理,以获得预处理图像;及若原始图像为竖拍图像,则对原始图像执行归一化处理,以获得预处理图像。
示例地,在获取到含有人像的原始图像后,检测原始图像为横拍图像还是竖拍图像。需要说明的是,若终端100或图像处理装置10在拍摄当前原始图像时是处于横拍模式时,则当前原始图像为横拍图像;若终端100或图像处理装置10在拍摄当前原始图像时是处于竖拍模式时,则当前原始图像为竖拍图像。在一些实施例中,可通过原始图像的宽度及高度检测原始图像是横拍图像还是竖拍图像。例如,以终端100拍摄当前原始图像为例。如图6及图像7所示,终端100包括相邻的第一侧101及第二侧102,并且第一侧101的长度比第二侧102的长度更长。第一侧101为终端100的长边,第二侧102为终端100的宽边。获取原始图像的宽度w及高度h,其中原始图像与终端100的长边平行的一侧的长度为原始图像的高度h,原始图像与终端100的宽边平行的一侧的长度为原始图像的宽度w。若原始图像的宽度w大于高度h(如图6),则该原始图像为横拍图像;若原始图像的宽度w小于高度h(如图7),则该原始图像为竖拍图像。
请参阅图8,当确定当前图像为横拍图像时,则旋转原始图像使其变为竖拍图像,并对旋转后的原始图像执行归一化处理以获得预处理图像,如此有利于预设的分割模型能够正确处理预处理器图像。例如,在一个例子中,可以通过将旋转后的原始图像中的所有像素的像素值均除以255的方式进行归一化;在另一个例子中,也可以将旋转后的原始图像中的所有像素的像素值减去127.5的差除以127.5的方式进行归一化,在此不作限制。进一步地,在一些实施例中,将作为原始图像的横拍图像旋转为竖拍图像之后,先将旋转后的原始图像缩放至预设尺寸后,再对缩放后的原始图像进行归一化处理。其中预设尺寸为预设的分割模型所需的输入图像的尺寸。
当确定当前图像为竖拍图像时,直接对原始图像执行归一化处理以获得预处理图像,如此有利于预设的分割模型能够正确处理预处理器图像。归一化处理的具体方式与上述对旋转后的原始图像进行归一化处理的具体方式相同,在此不作赘述。当然,在一些实施例中,也可以对作为原始图像的竖拍图像缩放至预设尺寸后,再对缩放后的原始图像进行归一化处理。
请参阅图9,在获得预处理图像后,处理器30(或第一获取模块11)将预处理图像输入至预设的分割模型中,以获取初始分割图像及第一概率图像。其中,初始分割图像包括人像区域(如图9中初始分割图像的白色区域)及背景区域(如图9中初始分割图像的黑色区域),第一概率图像包括初始分割图像中每个像素的第一概率值I1,并且第一概率值I1表征初始分割图像中每个像素在人像区域的概率。也即是说,若初始分割图像中某一像素对应的第一概率值I1越大,表示该像素在人像区域的可能性越大;同样地,若初始分割图像中某一像素对应的第一概率值I1越小,表示该像素在人像区域的可能性越小。特别地,在一些实施例中,初始分割图像包括每个像素的分割值,且初始分割图像包括每个像素的分割值在0至1的范围内。若初始分割图像中分割值大于第一预设分割值,则认为该像素点所在区域为人像区域;若初始分割图像中分割值不大于第一预设分割值,则认为该像素点所在区域为背景区域。
请参阅图10,在一个实施例中,预设的分割模型包括编码模块及解码模块,编码模块能够对输入预设的分割模型的预处理图像进行多次卷积及池化以获取特征图像,特征图像中包含人像特征信息。解码模块用于根据特征图像中的人像特征信息获取包含人像区域的初始分割图像及第一概率图像。特别地,请参阅图11,在一些实施例中,预设的分割模型中还包括语义分割(Semantic Branch)及细节分割(Detail Branch)两部分,其中细节分割(Detail Branch)用于提取预处理图像的微观特征,语义分割(Semantic Branch)用于提取预处理图像的宏观特征,将微观特征与微观特征融合后,再根据融合后的特征获取包括人像区域的初始分割图像及第一概率图像。由于预设的分割模型中融合了不同层级(微观特征及宏观特征)的特征实现了粗分割及精分割的要求,有利于提升预设的分割模型分割图像的精准度。需要说明的是,在一些实施例中,预设的分割模型可以采用MODNet网络构型、Spectral matting网络构型,当然预设的分割模型也可以采用其他网络构型,只有能够获取包含人像区域的初始分割图像及第一概率图像即可,在此不作限制。
此外,在一些实施例中,图像处理方法还包括根据包含大量样本图像的样本图像集,对初始分割模型进行迭代训练以获得预设的分割模型。具体地,样本图像中标注有人像区域,将样本图像输入至初始分割模型中,以获取包含人像区域的训练图像。根据训练图像的人像区域与样本图像中标注的人像区域之间的差异获取初始分割模型的损失函数的值。在获得初始模型的损失函数的值对初始模型之后,则可以根据损失函数的值对初始模型进行迭代训练,得到分割模型。在一些实施例中,可以根据损失函数,使用Adam优化器对初始模型进行迭代训练,直至初始模型的输出结果的损失值收敛,并将此时的模型进行保存,作为训练后的分割模型。其中,Adam优化器,结合了AdaGra(Adaptive Gradient,自适应梯度)和RMSProp两种优化算法的优点,对梯度的一阶矩估计(First Moment Estimation,即梯度的均值)和二阶矩估计(Second Moment Estimation,即梯度的未中心化的方差)进行综合考虑,计算出更新步长。
需要说明的是,迭代训练的终止条件可以包括:迭代训练的次数达到目标次数;或者初始模型的输出结果的损失值满足设定的收敛条件。在一个例子中,收敛条件是让总损失值尽可能小,使用初始学习率1e-3,学习率随步数余弦衰减,batch_size=8,训练16个epoch后,即可认为收敛完成。其中,batch_size可以理解为批处理参数,它的极限值为训练集样本总数,epoch指使用训练集中的全部样本训练的次数,通俗的讲epoch的值就是整个数据集被轮几次,1个epoch等于使用训练集中的全部样本训练1次。在另一个例子中,损失值满足设定的收敛条件可以包括:总损失值Loss小于设定阈值。当然,具体设定条件可以不作为限定。
在一些实施例中,训练得到的分割模型可以存储于终端100(或图像处理装置10)本地,例如存储模组50中,该训练得到的分割模型也可以在与终端100(或图像处理装置10)通信连接的服务器,将分割模型存储在服务器的方式,可以减少占用终端100(或图像处理装置10)的存储空间,提升终端100(或图像处理装置10)运行效率。当然,在一些实施方式中,分割模型还可以周期性的或者不定期的获取新的训练数据,对该分割模型进行训练和更新。例如,在存在人像图像被误分割时,则可以将该人像图像作为样本图像,对样本图像进行标注后,通过以上训练方式,再进行训练,从而可以提升分割模型的准确性。
在一些实施例中,可以将原始图像输入至预设的深度估计网络模型中,能够直接获取到包含初始分割图像深度信息的深度图像及第二概率图像。具体地,请参阅图1及图12,在一些实施方式中,第二概率值表征深度图像中每个像素的深度值为对应深度值的概率,步骤02:获取深度图像及第二概率图像,包括:
021:对原始图像进行预处理,以获取预处理图像;及
022:将预处理图像输入至深度估计网络模型,以获得深度图像及第二概率图像。
请结合图2,在一些实施方式中,上述步骤021及步骤022均可以由图像处理装置10的第二获取模块12执行实现。也即是说,第二获取模块12还用于对原始图像进行预处理,以获取预处理图像;及将预处理图像输入至深度估计网络模型,以获得深度图像及第二概率图像。
请结合图3,在一些实施方式中,上述步骤021及步骤022均可以由终端100的一个或多个处理器30执行实现。也即是说,一个或多个处理器30还用于对原始图像进行预处理,以获取预处理图像;及将预处理图像输入至深度估计网络模型,以获得深度图像及第二概率图像。
同样地,在一些实施例中,输入至预设的深度估计网络模型的图像需要满足输入图像的要求,也即,预设的深度估计网络模型对于输入的图像的属性可能会有一些要求,输入的图像应当符合这些要求,预设的深度估计网络模型才能够正确处理。因此,在将原始图像输入至预设的深度估计网络模型之前,也需要对原始图像进行预处理,对原始图像进行预处理获取预处理图像的具体实施方式,与上述实施例中所述对原始图像进行预处理以获取预处理图像的具体实施方式相同,在此不作赘述。需要说明的是,为了能够使深度估计网络模型输出的深度图像能够与初始分割图像对应,在一些实施例中,对原始图像进入分割模型之前进行的预处理,与对原始图像进入深度估计网络模型之前进行的预处理完全相同。特别地,在一些实施例中,可以先对原始图像进行预处理获取预处理图像后,再将预处理图像分别输入分割模型及深度估计网络模型中进行处理。如此,既能够使深度估计网络模型输出的深度图像与初始分割图像对应,又无需对原始图像进行两次预处理能够加快图像处理速度。
请参阅图13,在获取到预处理图像后,将预处理图像输入至预设的深度估计网络模型中,以获取深度图像及第二概率图像。深度图像指示原始图像中各个像素点的深度值,第二概率图像中包括深度图像中每个像素对应的第二概率值I2,并且第二概率值I2表征深度图像中每个像素的深度值为对应值的概率。例如,位于深度图像中第1行第1列的像素点的深度值为0.5,位于第二概率图像中第1行第1列的第二概率值I2为80%,则表示位于深度图像中第1行第1列的像素点的深度值是0.5的可能性为80%。
请参阅图14,在一些实施例中,预设的深度网络估计模型可以是单目深度估计网络。示例地,单目深度估计网络是预先通过大量的训练数据进行有监督学习后得到的已训练的网络,可以输出预处理图像对应的深度图像及第二概率图像,也即可以输出与初始分割图像对应的深度图像及第二概率图像。单目深度估计网络可采用深度学习类算法得到,例如CNN(Convolutional Neural Networks,卷积神经网络)、U-Ne t算法、FCN(FullyConvolutional Neural Networks,全卷积神经网络)等。在一个实施例中,单目深度估计网络包括Encoder编码模块和Decoder解码模块,Encoder编码模块采用不限于Mobilenet、Resnet、vgg等backbone实现编码,编码模块即特征提取模块,用于对处理图像进行卷积、激活及池化等操作以提取输入图像的特征。解码模块用于对图像特征进行卷积、激活及softmax计算等处理以获得深度图像及第二概率图像,其中第二概率图像中每个第二概率值I2表征深度图像中每个像素的深度值为对应值的概率。如图14所示,为融合单目深度估计网络深度信息的网络结构示意图像,将预处理图像输入encoder-decoder形式的编解码网络,即单目深度估计网络,以得到深度图像及第二概率图像。
请参阅图15,在一些实施例中,预设的深度网络估计模型还可以是双目深度估计网络。此时成像模组40包括左右两个摄像头,并且左右两个摄像头能够单独采集到图像。同样地,双目深度估计网络也是预选通过大量的训练数据进行有监督学习后得到的已训练的网络,可以输出预处理图像对应的深度图像及第二概率图像,也即可以输出与初始分割图像对应的深度图像及第二概率图像。需要说明的是,原始图像可以是左图像(左侧摄像头采集获取的),原始图像也可以是右图像(右侧摄像头采集获取的),在此不作限制。在一个实施例中,如图15所示,双目深度估计网络包括两个分支,其中一个是计算成本容积(costvolume branch),另一个是容积滤波(feature branch)。左右两侧摄像头同时采集左图像及右图像,先对左图像及右图像进行预处理,以获取预处理后的左图像及预处理后的右图像。将预处理后的左图像及预处理后的右图像输出双目深度估计网络中,预处理后的左图像及预处理后的右图像均进入计算成本容积(cost volume branch)网络支路中进行卷积、分批归一化(Batch Normalization)和激活等处理后,再经过卷积层(correlation层)进行卷积以获取第一结果,同时预处理后的右图像进入容积滤波(feature branch)网络分支中进行多次卷积进而激活以获取第二结果。获得第一结果及第二结果后,将第一结果及第二结果输入至联合滤波器(joint filter)进行卷积和激活后获得的结果再通过三个卷积及soft argmax计算,以获得深度图像。并且将第一结果及第二结果输入至联合滤波器(jointfilter)进行卷积和激活后获得的结果通过多次卷积及softmax计算等处理以获得第二概率图像,其中第二概率图像中每个第二概率值I2表征深度图像中每个像素的深度值为对应值的概率。
请参阅图1及图16,在一些实施方式中,图像处理方法还包括:
04:采用深度信息采集模组获取原始深度信息图像
此时,步骤02:获取深度图像及第二概率图像,还包括:
023:根据初始分割图像对原始深度信息图像进行第一图像处理,以获得与初始分割图像对应的深度图像;及
024:根据深度图像中的每个像素的深度值获取对应的第二概率值,以获取第二概率图像。
请结合图2,在一些实施方式中,图像处理装置10还包括深度信息采集模组60,深度信息采集模组60获取原始深度信息图像。步骤023及步骤024均可以由图像处理装置10的第二获取模块12执行实现。也即是说,第二获取模块12还用于根据初始分割图像对原始深度信息图像进行第一图像处理,以获得与初始分割图像对应的深度图像;及根据深度图像中的每个像素的深度值获取对应的第二概率值,以获取第二概率图像。
请结合图3,在一些实施方式中,在一些实施方式中,终端100还包括深度信息采集模组60,深度信息采集模组60获取原始深度信息图像。步骤023及步骤024均可以由终端100的一个或多个处理器30执行实现。也即是说一个或多个处理器30还用于根据初始分割图像对原始深度信息图像进行第一图像处理,以获得与初始分割图像对应的深度图像;及根据深度图像中的每个像素的深度值获取对应的第二概率值,以获取第二概率图像。
需要说明的是,在一些实施例中,深度信息采集模组60和成像模组40同时采集原始深度信息图像及原始图像;或者,深度信息采集模组60采集原始深度信息图像与成像模组40采集原始图像之间的时间小于预设时间差值,如此能够避免深度信息采集模组60采集原始深度信息图像与成像模组40采集原始图像之间的时间相差较大,原始深度信息图像中的图像信息与原始图像的图像信息不匹配。
此外,在一个例子中,深度信息采集模组60可以是飞行时间模组(TOF模组)。示例地,深度采集模组60包括光发射器及光接收器,光发射器用于向被拍摄物体发射红外光,光接收器用于接收被拍摄物反射回来的红外光,并根据发射红外光及接收到反射回来的红外光之间的时间差或相位差,以获得原始深度信息图像。在另一个例子中,深度信息采集模组60也可以是结构光模组。示例地,深度采集模组60包括结构光投射器及结构光摄像头,结构光投射器用于向被拍摄物体投射激光图像案,结构光摄像头用于采集被摄目标反射激光图像案,并根据接收到的激光图像案获取原始深度信息图像。当然,也可以采取其他方式获取原始深度信息图像,例如采用双目摄像头获取两帧图像,并且根据左右两个摄像头获取到的图像之间的视差,以获取原始深度信息图像,在此不作限制。
原始深度信息图像与原始图像对应,且原始深度信息图像中包含图像中每个像素点的深度值,由于原始图像在经过预处理及人像分割处理后才获得初始分割图像,若想要获得与初始分割图像对应的深度图像,则需要对原始深度信息图像进行第一图像处理。具体地,请参阅图16及图17,在一些实施方式中,步骤023:根据初始分割图像对原始深度信息图像进行第一图像处理,以获得与初始分割图像对应的深度图像,包括:
0231:对原始深度信息图像进行图像对齐处理,以获取与初始分割图像对齐后的原始深度信息图像;及
0232:对对齐后的原始深度信息图像进行插值缩放处理及高斯模糊处理,以获取与初始分割图像对应的深度图像。
请结合图2,在一些实施方式中,上述步骤0231及步骤0232均可以由图像处理装置10的第二获取模块12执行实现。也即是说,第二获取模块12还用于对原始深度信息图像进行图像对齐处理,以获取与初始分割图像对齐后的原始深度信息图像;及对对齐后的原始深度信息图像进行插值缩放处理及高斯模糊处理,以获取与初始分割图像对应的深度图像。
请结合图3,在一些实施方式中,上述步骤0231及步骤0232均可以由终端100的一个或多个处理器30执行实现。也即是说,一个或多个处理器30还用于对原始深度信息图像进行图像对齐处理,以获取与初始分割图像对齐后的原始深度信息图像;及对对齐后的原始深度信息图像进行插值缩放处理及高斯模糊处理,以获取与初始分割图像对应的深度图像。
由于原始深度信息图像与原始图像并不是采用同一套成像设备获取的,则原始深度信息图像对应的坐标系与原始图像对应的坐标系并不相同,也即原始深度信息图像对应的坐标系与初始分割图像对应的坐标系并不相同。在获取到初始分割图像及原始深度信息图像后,需要对原始深度信息图像进行图像对齐处理,以获取与初始分割图像对齐后的原始深度信息图像,对齐后的原始深度信息图像对应的坐标系与初始分割图像对应的坐标系相同。具体地,在一些实施例中,先根据深度摄像头(获取原始深度信息图像的摄像头)的内参及外参,将原始深度信息图像中像素点的像素坐标转换为世界坐标系下的坐标,再根据彩色摄像头(获取原始图像的摄像头)的内参及外参,将世界坐标系下的坐标转换成原始图像坐标系下的像素坐标,也即将世界坐标系下的坐标转换成初始分割图像坐标系下的像素坐标。示例地,先根据原始深度信息图像中某像素点在深度图像坐标系下的二维点坐标、及深度摄像头(获取原始深度信息图像的摄像头)的内参计算该像素点在深度摄像头坐标系下的三维点坐标;随后再根据该像素点在深度摄像头坐标系下的三维点坐标、及深度摄像头坐标系转换到世界坐标系的外参矩阵计算该点在世界坐标系下的坐标;随后根据该点在世界坐标系下的坐标、及世界坐标系转换到彩色摄像头(获取原始图像的摄像头)坐标系的外参矩阵计算该点在彩色摄像头坐标系下的三维点坐标;最后根据彩色摄像头坐标系下的三维点坐标及彩色摄像头的内参矩阵,计算该点在彩色摄像头坐标系下的像素坐标。对原始深度信息图像中所有像素点进行如上坐标转换获得对齐后的原始深度信息图像,如此对齐后的原始深度信息图像对应的坐标系与原始图像对应的坐标系相同,也即,对齐后的原始深度信息图像对应的坐标系与初始分割图像对应的坐标系相同。当然,在一些实施例中,也可以采取其他实施方式对原始深度信息图像进行图像对齐处理,以获取与初始分割图像对齐后的原始深度信息图像,在此不作限制。
请参阅图18,在获取到对齐后的原始深度信息图像后,虽然对齐后的原始深度信息图像对应的坐标系与初始分割图像对应的坐标系相同,但是由于初始分割图像是原始图像经过预处理后再进行分割处理的,初始分割图像的尺寸与对齐后的原始深度信息图像的尺寸可能不同。因此需要对对齐后的原始深度信息图像进行插值缩放处理,以获得缩放后的原始深度信息图像,并且缩放后的原始深度信息图像的尺寸与初始分割图像的尺寸对应。具体地,在一些实施例中,可以采用双线性插值算法对对齐后的原始深度信息图像进行插值缩放。双线性插值算法是一种比较好的图像缩放算法,它充分利用了对齐后的原始深度信息图像中虚拟点四周的四个真实存在的像素的深度值共同决定缩放后的原始深度信息图像中的一个深度值。当然,在一些实施例中还可以采用最邻近插值算法对对齐后的原始深度信息图像进行插值缩放,以获得与初始分割图像的尺寸对应的缩放后的原始深度信息图像,在此不作限制。
请参阅图18,在一些实施例中,在获取到与初始分割图像的尺寸对应的缩放后的原始深度信息图像后,对缩放后的原始深度信息图像进行高斯模糊处理以获得初始分割图像对应的深度图像。由于进行了高斯模糊处理,能够去除缩放后的原始深度信息图像的噪点,使深度图像中的各个像素点的深度值更加平滑,有利于后续图像处理。当然,在一些实施例中,可以不对缩放后的原始深度信息图像进行高斯模糊处理,直接将缩放后的原始深度信息图像作为深度图像,在此不作限制。
请参阅图16及图19,在一些实施方式中,步骤024:根据深度图像中的每个像素的深度值获取对应的第二概率值,包括:
0241:计算深度图像中每个像素的深度值与深度图像中最大深度值之间的比值;
0242:计算预设数值与比值之间的差值,以获取深度图像中每个像素的第二概率值。
请结合图2,在一些实施方式中,上述步骤0241及步骤0242均可以由图像处理装置10的第二获取模块12执行实现。也即是说,第二获取模块12还用于计算深度图像中每个像素的深度值与深度图像中最大深度值之间的比值;及计算预设数值与比值之间的差值,以获取深度图像中每个像素的第二概率值。
请结合图3,在一些实施方式中,上述步骤0241及步骤0242均可以由终端100的一个或多个处理器30执行实现。也即是说,一个或多个处理器30还用于计算深度图像中每个像素的深度值与深度图像中最大深度值之间的比值;及计算预设数值与比值之间的差值,以获取深度图像中每个像素的第二概率值。
在通过对硬件(深度信息采集模组60)采集到的原始深度信息图像进行第一图像处理,获取到与初始分割图像对应的深度图像后,处理器30(或第二获取模块12)计算深度图像中每个像素深度值与深度图像中最大深度值之间的比值,并计算预设数值与比值之间的差值,以获取深度图像中每个像素对应的第二概率值I2。每个像素对应的第二概率值排列以生成第二概率图像。例如,在一个实施例中,预设数值为1,假设位于深度图像第1行第1列像素点的深度值为d1,深度图像中最大深度值为dmax,则该像素点对应的第二概率值I2为(1-d1/dmax),并且位于第二概率图像第1行第1列的第二概率值I2为(1-d1/dmax)。如此,在深度图像中,深度值越大的像素点的第二概率值I2越小,也即越可能是背景区域的像素点的第二概率值I2越小;深度值越小的像素点的第二概率值I2越大,也即越可能是人像区域的像素点的第二概率值I2越大。
请参阅图1及图20,在一些实施方式中,初始分割图像包括每个像素的分割值,步骤03:根据初始分割图像、第一概率图像、深度图像及第二概率图像,获取像目标分割图像,包括:
031:根据初始分割图像中每个像素Pij的分割值、像素Pij的第一概率值、深度图像中与像素Pij对应的像素Pi’j’的深度值、及像素Pi’j’的第二概率值,获取目标分割图像中与像素Pij对应位置的像素Pi”j”的目标分割值。
请结合图2,在一些实施方式中,步骤031可以由图像处理装置10的融合模块13执行实现。也即是说,融合模块13用于根据初始分割图像中每个像素Pij的分割值、像素Pij的第一概率值、深度图像中与像素Pij对应的像素Pi’j’的深度值、及像素Pi’j’的第二概率值,获取目标分割图像中与像素Pij对应位置的像素Pi”j”的目标分割值。
请结合图3,在一些实施方式中,步骤031还可以由终端100的一个或多个处理器30执行实现。也即是说,一个或多个处理器30还用于根据初始分割图像中每个像素Pij的分割值、像素Pij的第一概率值、深度图像中与像素Pij对应的像素Pi’j’的深度值、及像素Pi’j’的第二概率值,获取目标分割图像中与像素Pij对应位置的像素Pi”j”的目标分割值。
需要说明的是,在一些实施例中,在计算目标分割值之前,将深度图像中所有像素的深度值除以最大深度值,以使深度图像中每个像素的深度值也在0至1的范围内,如此有利于后续使计算出来的目标分割值也能够在0至1的范围内。下文实施例中所述的深度图像中的深度值是经过处理后的深度值,也即下文实施例中所述的深度图像中的深度值均在0至1的范围内,在此不作赘述。
请参阅图21,在获取到初始分割图像、第一概率图像、深度图像及第二概率图像后,处理器30(或融合模块13)根据初始分割图像中每个像素Pij的分割值、像素Pij的第一概率值、深度图像中与像素Pij对应的像素Pi’j’的深度值、及像素Pi’j’的第二概率值,获取目标分割图像中与像素Pij对应位置的像素Pi”j”的目标分割值。具体地,在一些实施例中,可以通过计算公式Sout(i,j)=I2(i,j)*(1-d(i,j))*I1(i,j)*Sin(i,j)计算获得,其中,Sout(i,j)表示目标分割图像中与像素Pij对应位置的像素Pi”j”的目标分割值;Sin(i,j)表示初始分割图像中像素Pij的分割值;I1(i,j)表示像素Pij的第一概率值;d(i,j)表示深度图像中与像素Pij对应的像素Pi’j’的深度值;I2(i,j)表示像素Pi’j’的第二概率值。也即是说,先计算数值1与深度图像中与像素Pij对应的像素Pi’j’的深度值之间的差值,之后根据像素Pij的分割值、与像素Pij对应的像素Pij的第一概率值、像素Pi’j’的第二概率值及差值之间的乘积,计算目标分割图像中与像素Pij对应位置的像素Pi”j”的目标分割值。例如,以计算位于目标分割图像中第1行第1列像素的目标分割值为例,先计算数值1与位于深度图像中位于第1行第1列像素的深度值之间的差值,之后计算位于初始分割图像的第1行第1列像素的分割值、位于第一概率图像的第1行第1列像素的第一概率值I1、位于第二概率图像的第1行第1列像素的第二概率值I2及差值(1与位于深度图像中位于第1行第1列像素的深度值之间的差值)之间的乘积,将计算出来的乘积作为位于目标分割图像中第1行第1列像素的目标分割值。
请参阅图1及图22,在一些实施方式中,初始分割图像包括每个像素的分割值,步骤03:根据初始分割图像、第一概率图像、深度图像及第二概率图像,获取像目标分割图像,包括:
032:根据初始分割图像中每个像素Pij的分割值、像素Pij的第一概率值、深度图像中与像素Pij对应的像素Pi’j’的深度值、及像素Pi’j’的第二概率值,获取目标分割图像中与像素Pij对应位置的像素Pi”j”的中间分割值;
033:根据每个像素Pi”j”的中间分割值与所有像素Pi”j”中最大的中间分割值获取每个像素Pi”j”的目标分割值。
请结合图2,在一些实施方式中,步骤032及步骤033可以由图像处理装置10的融合模块13执行实现。也即是说,融合模块13还用于根据初始分割图像中每个像素Pij的分割值、像素Pij的第一概率值、深度图像中与像素Pij对应的像素Pi’j’的深度值、及像素Pi’j’的第二概率值,获取目标分割图像中与像素Pij对应位置的像素Pi”j”的中间分割值;及根据每个像素Pi”j”的中间分割值与所有像素Pi”j”中最大的中间分割值获取每个像素Pi”j”的目标分割值。
请结合图3,在一些实施方式中,步骤032及步骤033可以由终端100的一个或多个处理器30执行实现。也即是说,一个或多个处理器30还用于根据初始分割图像中每个像素Pij的分割值、像素Pij的第一概率值、深度图像中与像素Pij对应的像素Pi’j’的深度值、及像素Pi’j’的第二概率值,获取目标分割图像中与像素Pij对应位置的像素Pi”j”的中间分割值;及根据每个像素Pi”j”的中间分割值与所有像素Pi”j”中最大的中间分割值获取每个像素Pi”j”的目标分割值。
请参阅图21,在获取到初始分割图像、第一概率图像、深度图像及第二概率图像后,处理器30(或融合模块13)根据初始分割图像中每个像素Pij的分割值、像素Pij的第一概率值、深度图像中与像素Pij对应的像素Pi’j’的深度值、及像素Pi’j’的第二概率值,获取目标分割图像中与像素Pij对应位置的像素Pi”j”的中间分割值。并根据每个像素Pi”j”的中间分割值与所有像素Pi”j”中最大的中间分割值获取每个像素Pi”j”的目标分割值。由于在本实施例中,根据初始分割图像中每个像素Pij的分割值、像素Pij的第一概率值、深度图像中与像素Pij对应的像素Pi’j’的深度值、及像素Pi’j’的第二概率值,获取到目标分割图像中与像素Pij对应位置的像素Pi”j”的中间分割值后,还将所有中间分割值均除以获取到的最大中间分割值以获取目标分割值,如此相较于直接将中间分割值作为目标分割值(即中间分割值不除以获取到的最大中间分割值,直接作为最终的目标分割值),能够避免目标分割图像中的目标分割值的数值比较离散,如此有利于后续区分目标分割图像中人像区域。
具体地,在一些实施例中,可以通过计算公式Sout(i,j)=[I2(i,j)*(1-d(i,j))*I1(ii,j)*Sin(i,j)]/E计算获得,其中,Sout(i,j)表示目标分割图像中与像素Pij对应位置的像素Pi”j”的目标分割值;Sin(i,j)表示初始分割图像中像素Pij的分割值;I1(i,j)表示像素Pij的第一概率值;d(i,j)表示深度图像中与像素Pij对应的像素Pi’j’的深度值;I2(i,j)表示像素Pi’j’的第二概率值,E为所有像素Pi”j”中最大的中间分割值。也即是说,先计算数值1与深度图像中与像素Pij对应的像素Pi’j’的深度值之间的差值,之后根据像素Pij的分割值、与像素Pij对应的像素Pij的第一概率值、像素Pi’j’的第二概率值及差值之间的乘积,计算目标分割图像中与像素Pij对应位置的像素Pi”j”的中间分割值。获取所有像素的中间分割值后,将像素Pi”j”的中间分割值除以目标分割图像的所有像素Pi”j”中最大中间分割值,以获得像素Pi”j”的目标分割值。例如,以计算位于目标分割图像中第1行第1列像素的目标分割值为例,先计算数值1与位于深度图像中位于第1行第1列像素的深度值之间的差值,之后计算位于初始分割图像的第1行第1列像素的分割值、位于第一概率图像的第1行第1列像素的第一概率值I1、位于第二概率图像的第1行第1列像素的第二概率值I2及差值(1与位于深度图像中位于第1行第1列像素的深度值之间的差值)之间的乘积,将计算出来的乘积作为位于目标分割图像中第1行第1列像素的中间分割值。随后计算出目标分割图像中所有像素的中间分割值,假设最大中间分割值为m。将位于目标分割图像中第1行第1列像素的中间分割值除以最大中间分割值为m获得的结果,作为位于目标分割图像中第1行第1列像素的目标分割值。
需要说明的是,在一些实施例中若目标分割图像中分割值大于第二预设分割值,则认为该像素点所在区域为人像区域(如图21的目标分割图像中白色区域);若目标分割图像中分割值不大于第二预设分割值,则认为该像素点所在区域为背景区域(如图21的目标分割图像中黑色区域)。第二预设分割值与上述实施方式中的第一预设分割值可以相同,也可以不相同,在此不作限制。
由于目标分割值是由初始分割图像中的分割值、第一概率值、深度图像的深度值及第二概率值融合后获取的,相较于直接采用单一的分割模型对原始图像进行分割能够避免在复杂场景下的误检漏检等问题,提高了人像区域分割的稳定性及精准性。
请参阅图23,在一些实施方式中,目标分割图像包括人像区域,图像处理方法还包括:
05:根据目标分割图像中的人像区域,对原始图像进行第二图像处理以获取目标图像。
请结合图2,在一些实施方式中,图像处理装置10还包括处理模块14,上述步骤05可以由处理模块14执行实现。也即是说,处理模块14用于根据目标分割图像中的人像区域,对原始图像进行第二图像处理以获取目标图像。
请结合图3,在一些实施方式中,上述步骤05还可以由终端100的一个或多个处理器30执行实现。也即是说,一个或多个处理器30还用于根据目标分割图像中的人像区域,对原始图像进行第二图像处理以获取目标图像。
在一些实施例中,在获取到包括人像区域的目标分割图像后,可以根据包含有人像区域的目标分割图像的人像区域对原始图像进行第二图像处理以获取目标图像。具体地,在一些实施例中,处理器30(或处理模块14)根据目标分割图像的人像区域(即图21的目标分割图像中白色区域部分)获取原始图像中的人像区域。示例地,在一个例子中,若原始图像在进行预处理时进行了缩放,则将目标分割图像放大至与原始图像的尺寸相同大小;若原始图像在进行预处理时进行了旋转,则对目标分割图像进行逆旋转。例如,原始图像在进行预处理时向左旋转了90°,则将目标分割图像向右旋转90°,以使目标分割图像与原始图像对应。在目标分割图像与原始图像对应后,原始图像中与目标分割图像中人像区域(即图21的目标分割图像中白色区域)对应位置即为原始图像中的人像区域。当然,也可以采用其他方式根据目标分割图像中的人像区域获取原始图像中的人像区域,在此不作限制。在获取到原始图像的人像区域后,处理器30(或处理模块14)可以对原始图像中除人像区域之外的区域进行背景虚化处理;或者,处理器30(或处理模块14)可以对原始图像中人像区域进行美化处理;再或者,处理器30(或处理模块14)还可以将原始图像中的人像区域从原始图像中抠取出来放置到另一帧图像中,以生成包含有原始图像中人像的新图像。
请参阅图24,本申请还提供一种包含计算机程序410的非易失性计算机可读存储介质400。该计算机程序被处理器420执行时,使得处理器420执行上述任意一个实施方式的图像处理方法。
请结合图1,例如,当计算机程序410被处理器420执行时,使得处理器420执行01、011、0111、0112、0113、012、03、021、022、023、0231、0232、024、0241、0242、03、031、032、033、04及05中的方法。例如执行以下图像处理方法
01:对获取到的原始图像进行人像分割处理,以获得初始分割图像及第一概率图像,初始分割图像包括人像区域及背景区域,第一概率图像包括初始分割图像中每个像素的第一概率值,第一概率值表征初始分割图像中每个像素在人像区域的概率;
02:获取深度图像及第二概率图像,深度图像用于指示原始图像中各像素的深度值,第二概率图像包括深度图像中每个像素对应的第二概率值;及
03:根据初始分割图像、第一概率图像、深度图像及第二概率图像,获取像目标分割图像。
需要说明的是处理器420可以设置在终端100中,即处理器420与处理器30为同一处理器,当然处理器420也可以不设置在终端100内,也即处理器420与处理器30不为同一处理器,在此不做限制。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图像中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
尽管上面已经示出和描述了本申请的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施方式进行变化、修改、替换和变型。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种基于三维点云的建筑物平面分割方法