一种图像处理的方法及计算机程序产品与流程

文档序号:29743598发布日期:2022-04-21 20:17阅读:158来源:国知局
一种图像处理的方法及计算机程序产品与流程

1.本技术涉及视频图像虚化处理领域,具体而言本技术实施例涉及一种图像处理的方法及计算机程序产品。


背景技术:

2.随着电子设备(例如,移动终端设备,包括手机等)的更新迭代,用户对电子设备摄像的功能需求日益增多且要求更好。例如,基于移动端(手机等电子设备)的霓虹光斑视频虚化技术是通过计算机视觉算法来生成的类似相机单反的效果,主要包括人像分割技术和模拟景深渲染技术,人像分割技术目前主流方法以深度学习模型为主,模拟景深虚化渲染技术主要通过类似滤波模糊的方法来进行仿真。
3.目前电子设备上的图像虚化(例如,人像拍摄模式下的虚化效果)或者视频虚化效果(例如,人像视频虚化效果)存在较多效果问题,诸如图像虚化后图像上光斑模糊不清晰、或者视频中生成的背景光斑闪烁严重等问题,这严重影响了用户体验。
4.因此如何改善图像虚化或者视频虚化中存在的问题成了亟待解决的技术问题。


技术实现要素:

5.本技术实施例的目的在于提供一种图像处理的方法及计算机程序产品,通过本技术实施例提供的技术方案可以解决图像虚化后图像上光斑模糊模糊不清的问题或者解决视频虚化时存在的光斑闪烁问题,使得视频虚化效果更加自然、虚化光斑效果更加稳定。
6.第一方面,本技术的一些实施例提供一种图像处理的方法,所述方法包括:根据m张历史帧光斑点检测图和第k帧光斑点检测图得到第k帧光斑点权重图,其中,所述m张历史帧光斑点检测图是对m帧原始图像分别进行光斑点检测得到的,所述第k帧光斑点检测图是对第k帧原始图像进行光斑点检测得到的,所述m帧原始图像是位于所述第k帧原始图像之前且与所述第k帧原始图像邻近的一帧或连续多帧图像,m为大于或等于1的整数;根据所述第k帧光斑点权重图和所述第k帧原始图像得到第k帧目标对象光斑虚化渲染图,其中,所述第k帧目标对象光斑虚化渲染图为获取的目标图像。
7.由于本技术实施例在获取每一帧的光斑点权重图时考虑了位于该帧(即当前处理帧第k帧)之前的历史帧光斑点检测图,因此能够解决电子设备在视频虚化模式下生成的光斑闪烁严重的问题。
8.在一些实施例中,在所述根据m张历史帧光斑点检测图和第k帧光斑点检测图得到第k帧光斑点权重图之前,所述方法还包括:对所述m帧原始图像和所述第k帧原始图像中任一帧原始图像进行图像分割得到背景分割图;基于所述背景分割图中的每个像素点的多个通道中的最大值得到单通道图;至少根据所述单通道图上各像素点的值获取与所述任一帧原始图像对应的光斑点检测图。
9.本技术的一些实施例通过获取与背景分割图对应的单通道图来检测光斑点进而得到光斑点检测图,可以提升检测得到的光斑点的准确性。
10.在一些实施例中,所述至少根据单通道图上各像素点的值获取与所述任一帧原始图像对应的光斑点检测图,包括:对所述单通道图进行模糊化处理,得到模糊单通道图;若所述单通道图上所述任一像素点的值大于第一阈值,且确认在所述模糊单通道图上所述任一像素点的值小于或等于第二阈值,则确认所述任一像素点属于光斑点,其中,所述第二阈值小于所述第一阈值。
11.本技术的一些实施例利用光斑的属性(即位于光斑中心的光斑点的像素值大而位于该光斑中心相邻像素点的像素值较小的特征)通过构建的模糊单通道图像和单通道图像综合判断各像素点是否属于光斑点,提升了检测得到的光斑点的准确性。
12.在一些实施例中,m为大于1的整数,其中,所述根据m张历史帧光斑点检测图和第k帧光斑点检测图得到第k帧光斑点权重图,包括:从所述m张历史帧光斑点检测图中选择x张历史帧光斑点检测图,其中,所述x张历史帧光斑点检测图与所述第k帧光斑点检测图邻近,x为大于或等于1且小于等于m的整数;融合所述x张历史帧光斑点检测图和所述第k帧光斑点检测图得到第k帧光斑点融合图;根据所述第k帧光斑点融合图得到所述第k帧光斑点权重图。
13.本技术的一些实施例动态的从多张与当前处理帧(即第k帧)相邻的历史帧光斑点检测图中选择至少部分张历史帧光斑点检测图,并将选出的至少部分历史帧光斑点检测图与当前帧光斑点检测图进行融合,从而改善待虚化视频中当前帧原始图像与相邻帧原始图像之间存在的光斑闪烁现象。
14.在一些实施例中,所述从所述m张历史帧光斑点检测图中选择x张历史帧光斑点检测图,包括:根据光斑点在不同帧原始图像上的分布信息从所述m张历史帧光斑点检测图中选择所述x张历史帧光斑点检测图。
15.本技术的一些实施例通过光斑的帧间差异检测机制确定优化闪烁所需要的历史帧的帧数,使得可以采用尽可能少的历史帧解决相邻帧的光斑闪烁问题。
16.在一些实施例中,所述从所述m张历史帧光斑点检测图中选择x张历史帧光斑点检测图,包括:若所述第k帧光斑点检测图和与第j帧历史帧光斑点检测图之间的差异值满足差异阈值,则将从第j帧至第(k-1)帧光斑点检测图作为所述x张历史帧光斑点检测图,其中,所述第j帧光斑点检测图属于所述m张历史帧光斑点检测图中的一帧图像。
17.本技术的一些实施例根据当前帧光斑点检测图与历史帧光斑点检测图确定光斑点在不同帧上分布的差异性,提升了得到的差异性结果的准确性。
18.在一些实施例中,若j的取值为i为大于或等于0的整数,其中,所述确认第k帧光斑点检测图和第j帧历史帧光斑点检测图之间的差异值满足差异阈值,包括:i从0开始取值重复如下过程,直至通过如下方式得到的所述差异值满足所述差异阈值:计算所述第k帧光斑点检测图和第帧光斑点检测图上各像素点对应像素值的差值的绝对值,得到第i差值;计算所述第k帧光斑点检测图和与第帧光斑点检测图上各像素点对应像素值的差值的绝对值,得到第i+1差值;计算所述第i差值与所述第i+1差值的差,并计
算所述第i差值与所述第i+1差值的和;根据所述差与所述和的比值得到所述差异值;其中,“[]”运算符号表示取整的操作。
[0019]
本技术的一些实施例选择距离当前帧即第k帧存储的最远的历史帧光斑点检测图或选择位于历史帧包括的中间帧得到差异值,减少获取值的计算量,提升了差异值计算的速度和并提升了得到差异值的准确性。
[0020]
在一些实施例中,所述从所述m张历史帧光斑点检测图中选择x张历史帧光斑点检测图,还包括:确认所述第k帧光斑点检测图和第j帧历史帧光斑点检测图之间的差异值均不满足差异阈值,则将所述第k-1帧光斑点检测图作为所述x张历史帧光斑点检测图,其中,所述第j帧光斑点检测图属于所述m张历史帧光斑点检测图中的一帧图像。
[0021]
本技术的一些实施例如果确认已存储到的历史帧光斑点检测图与当前帧光斑点检测图(即第k帧)的差异性均不大,则选择距离当前帧(即第k帧)最近的一张历史帧光斑点检测图来调整第k帧光斑点检测图以得到第k帧光斑点权重图,这样一方面改善了光斑闪烁问题且使数据处理量最小。
[0022]
在一些实施例中,所述根据所述第k帧光斑点融合图得到所述第k帧光斑点权重图,包括:对所述第k帧光斑点融合图进行曲线拉伸得到第k帧光斑点融合拉伸图;根据所述第k帧光斑点融合拉伸图得到所述第k帧光斑点权重图。
[0023]
本技术的一些实施例通过拉伸增强整体图像的亮度且拉开亮度的层级,使得最后卷积光斑更加有层次感。
[0024]
在一些实施例中,所述根据所述第k帧光斑点融合图得到所述第k帧光斑点权重图,包括:对所述第k帧光斑点融合图或者对所述第k帧光斑点融合图拉伸得到的第k帧光斑点融合拉伸图进行平滑处理得到所述第k帧光斑点权重图。
[0025]
本技术的一些实施例通过平滑处理进一步提升得到的视频的光斑显示效果。
[0026]
在一些实施例中,所述对所述第k帧光斑点融合图进行平滑处理得到所述第k帧光斑点权重图,包括:将第k-1帧光斑点融合图和所述第k帧光斑点融合图上对应像素点的值进行不同比例的加权平均得到各像素点的加权平均值,并将所述各像素点的加权平均值作为所述第k帧光斑点权重图上对应像素点的权重值;将第k-1帧光斑点融合拉伸图和所述第k帧光斑点融合图上相同像素点的值进行不同比例的加权平均得到各像素点的加权平均值,并将所述各像素点的加权平均值作为所述第k帧光斑点权重图上对应像素点的权重值;或者,所述对第k帧光斑点融合图拉伸得到的第k帧光斑点融合拉伸图进行平滑处理得到所述第k帧光斑点权重图,包括:将第k-1帧光斑点融合图和所述第k帧光斑点融合拉伸图上相同像素点的值进行不同比例的加权平均得到各像素点的加权平均值,并将所述各像素点的加权平均值作为所述第k帧光斑点权重图上对应像素点的权重值;或者将第k-1帧光斑点融合拉伸图和所述第k帧光斑点融合拉伸图上相同像素点的值进行不同比例的加权平均得到各像素点的加权平均值,并将所述各像素点的加权平均值作为所述第k帧光斑点权重图上对应像素点的权重值。
[0027]
本技术的一些实施例通过引入不同比例的权平均算法来根据历史帧光斑点检测图对当前帧光斑点检测图进行平滑处理,进一步改善了合成视频中的光斑显示效果,减少了合成的目标视频中相邻帧间光斑闪烁现象。
[0028]
在一些实施例中,所述方法还包括:重复获取所述目标图像的过程,得到目标视
频,其中,所述目标视频包括多张所述目标图像。
[0029]
本技术的一些实施例通过可以获取光斑闪烁效果得到明显改善的视频文件。
[0030]
第二方面,本技术的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的方法。
[0031]
第三方面,本技术的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述第一方面任一实施例所述的方法。
[0032]
第四方面,本技术的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如上述第一方面任一实施例所述的方法。
[0033]
第五方面,本技术的一些实施例提供一种视频虚化模式下光斑闪烁处理的装置,所述装置包括:第k帧光斑点权重图获取模块,被配置为根据m张历史帧光斑点检测图和第k帧光斑点检测图得到第k帧光斑点权重图,其中,所述m张历史帧光斑点检测图是对m帧原始图像分别进行光斑点检测得到的,所述第k帧光斑点检测图是对第k帧原始图像进行光斑点检测得到的,所述m帧原始图像是位于所述第k帧原始图像之前且与所述第k帧原始图像相邻的一帧或连续多帧图像,m为大于或等于1的整数,其中,所述第k帧目标对象光斑虚化渲染图为获取的目标图像。
附图说明
[0034]
为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0035]
图1为本技术实施例提供的图像处理系统的组成示意图;
[0036]
图2为本技术实施例提供的图像处理的方法的流程图之一;
[0037]
图3为本技术实施例提供的图像处理的方法的流程图之二;
[0038]
图4为本技术实施例提供的图像处理的装置的组成框图;
[0039]
图5为本技术实施例提供的电子设备的组成示意图。
具体实施方式
[0040]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
[0041]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0042]
近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(artificial intelligence,ai)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算
机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、行为识别、三维重建、虚拟现实、增强现实、同步定位与地图构建(slam)、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安防、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。
[0043]
相关技术中,基于移动端(例如,手机等电子设备)的视频虚化过程需要对视频包括的各帧图像进行目标对象虚化(例如,人像视频像虚化技术),而目标对象虚化技术(例如,人像视频像虚化技术)主要包括目标对象分割技术(例如,人像分割技术)和模拟景深渲染技术,目标对象分割技术目前主流方法以深度学习模型为主,模拟景深虚化渲染技术主要通过类似高斯模糊的方法来进行仿真。
[0044]
为了完成视频虚化过程需要对视频中各帧图像分别进行虚化得到各帧的虚化图像,而获取各帧虚化图像需要首先得到相应帧图像的光斑点权重图,之后再基于光斑点权重图对背景分割图像进行渲染得到背景光斑虚化渲染图,将背景光斑虚化渲染图与目标对像分割图像(例如,人像分割图像)融合得到与该帧对应的虚化图像(即得到目标对象光斑虚化渲染图)。本技术的发明人在研究中发现由于目前移动端(例如,手机)上获取各帧光斑点权重图时仅考虑该帧的光斑分布情况(即仅通过该帧的光斑点检测图),因此导致视频虚化效果(例如,人像虚化效果)存在较多效果问题,诸如视频虚化效果不美观、不同帧之间存在较严重的光斑闪烁现象等问题。
[0045]
本技术的一些实施例利用时序信息对各帧光斑点检测图进行优化,即利用历史帧光斑点检测图优化当前处理帧的光斑点检测图(即第k帧光斑点检测图),得到与当前待虚化图像对应的融合了历史帧光斑分布特征的当前处理帧光斑点权重图(即得到第k帧光斑点权重图),可以有效改善序列光斑的稳定性和闪烁程度至少能够解决视频光斑闪烁严重的问题,让算法生成的视频光斑更加稳定、更加逼近真实光斑效果。
[0046]
请参看图1,图1为本技术的一些实施例提供的一种图像处理系统100,该图像处理系统100包括:手机终端10以及服务器20。
[0047]
手机终端10具有图像或视频拍摄单元11,在本技术的一些实施例中可以通过该图像拍摄单元11拍摄一段待虚化的视频22(例如,待虚化的人像视频),之后该手机终端10将待虚化的视频22发送给服务器20。在本技术的一些实施例中可以通过该图像拍摄单元11拍摄一张待虚化的图像(图中未示出),之后再将待虚化的图像发送给服务器20。
[0048]
服务器20可以对接收到的待虚化视频22进行各帧图像的背景虚化操作,得到各帧具有较好光斑虚化效果的目标对象光斑虚化渲染图并将这些目标对象光斑虚化渲染图组成目标视频反馈给手机终端10,至此手机终端10就得到一段具有良好光斑显示效果的目标视频(例如,在目标视频中不同帧间的光斑闪烁现象得到改善)。
[0049]
需要说明的是,待虚化的视频22包括多帧原始图像,目标视频包括将各帧原始图像分别虚化后的目标对象光斑虚化渲染图。可以理解的是,由于本技术的一些实施例中,在获取当前处理帧的目标对象光斑虚化渲染图时,所依据的光斑点权重图是通过当前帧处理
帧的光斑点检测图和与当前处理帧相邻的前一帧或多帧历史帧光斑点检测图共同确定的,因此在目标视频中相邻帧的目标对象光斑虚化渲染图的闪烁缺陷得到有效改善。
[0050]
下面以一个具体帧示例性说明本技术一些实施例提供的获取各帧目标对象光斑虚化渲染图并获取目标视频的过程。例如,为了对第q帧原始图像(属于待虚化的视频中任一帧原始图像)进行目标对象光斑渲染需要获取与第q帧原始图像对应的第q帧光斑点权重图,之后再根据第q帧光斑点权重图对光斑渲染得到该帧的背景光斑虚化渲染图,然后再将该帧的背景光斑虚化渲染图与该帧的目标对象分割图进行融合得到该帧的目标对象光斑虚化渲染图,重复该过程获取待虚化视频中各帧的目标对象光斑虚化渲染图就得到了目标视频。需要说明的是,相关技术中在获取第q帧的光斑点权重图时仅考虑第q帧的光斑点检测图,而在本技术的一些实施例中为了获取第q帧的光斑点权重图还需要考虑第q帧之前帧的光斑点检测图对第q帧光斑点权重图的影响,因此利用本技术这些实施例得到的目标视频能够改善视频中相邻帧存在的光斑闪烁现象。
[0051]
可以理解的是,手机终端10的拍摄单元11位于手机的背面,在另一些实施例中该摄像头也可以位于手机终端10的正面等其他位置,本技术实施例并不限定图像拍摄单元11在手机终端10上的具体位置。手机终端10可以为任一类型的具有图像拍摄功能的电子设备,例如,该手机终端10也可以为具有图像拍摄功能的笔记本电脑等,本技术的实施例对此不作限定。
[0052]
服务器20与手机终端10之间通过有线网络(图中未示出)或者无线网络进行连接,并通过该连接来传输待虚化图像和目标对象光斑虚化渲染图。
[0053]
需要说明的是,在本技术的一些实施例中,手机终端10也可以利用自身的处理器来执行本技术一些实施例提供的图像处理的方法,进而得到目标视频或者得到目标图像。可以理解的是,在这些实施例中手机终端10不向用户输出待虚化的视频,而是通过手机终端10的处理器对待虚化的视频中各帧图像对应的光斑点检测图依据历史帧光斑点检测图进行调整(即执行本技术一些实施例提供的视频虚化模式下光斑闪烁处理的方法)并最终向用户输出目标视频或者目标图像。不难理解的是,此时并不需要独立设置一台服务器20来执行本技术实施例的视频虚化模式下光斑闪烁处理的方法。
[0054]
下面结合图2示例性阐述由服务器20或者由手机终端10等终端设备执行的视频虚化模式下光斑闪烁处理的方法。
[0055]
如图2所示,本技术的一些实施例提供一种图像处理的方法,该方法包括:s101,根据m张历史帧光斑点检测图和第k帧光斑点检测图得到第k帧光斑点权重图;s102,根据所述第k帧光斑点权重图和所述第k帧原始图像得到第k帧目标对象光斑虚化渲染图。可以理解的是,为了得到虚化效果更好的目标视频本技术实施例的图像处理方法还包括:s103,重复上述s101以及s102对应的过程得到多帧目标对象光斑虚化渲染图,并根据所述多帧目标对象光斑虚化渲染图得到目标视频。也就是说,通过重复获取目标图像的过程得到包括多张目标图像的目标视频。
[0056]
不难理解的是,由于本技术实施例在获取每一帧的光斑点权重图时考虑了位于该帧之前的光斑点检测图,因此能够解决电子设备在视频虚化模式下生成的光斑闪烁严重的问题。
[0057]
可以理解的,在执行s101之前还需要获取与所述m帧原始图像和所述第k帧原始图
像中各帧原始图像分别对应的光斑点检测图。
[0058]
下面示例性阐述上述过程涉及的各步骤。
[0059]
首先,示例性阐述获取与各帧原始图像对应的光斑点检测图的过程。需要说明的是,本技术一些实施例由手机终端执行获取各帧光斑点检测图的过程。
[0060]
也就是说,在本技术的一些实施例中,在s101之前,视频虚化模式下光斑闪烁处理的方法还包括:
[0061]
第一步,对所述m帧原始图像和所述第k帧原始图像中任一帧原始图像进行图像分割得到背景分割图。例如,该第一步包括如下步骤a)至步骤c)。需要说明的是,在本技术的一些实施例中与各帧原始图像对应的光斑点检测图也可以是采用相关技术中披露的方法得到,也就是说获取各帧光斑点检测图的方法并不限定于本技术实施例记载的方法。在本技术的另一些实施例中,与上述m帧原始图像和所述第k帧原始图像中每一帧原始图像对应的光斑点检测图是通过该第一步方法得到的。
[0062]
a),手机摄像头捕获图像。
[0063]
用户对焦人像点击视频录制,手机设备获取到一帧原始图像,即获取一帧待虚化的rgb格式图像i
image
,即得到待虚化的图像i
image

[0064]
b),根据人像分割模型对待虚化的图像i
image
进行前后景分离得到人像二值图像,即根据相关技术的图像分割模型(即深度学习模型)对待虚化的图像进行人像(即前景)和背景分割,得到人像分割掩码。
[0065]
相关技术的深度学习模型(例如,unet或resnet等网络)对待虚化的图像i
image
进行人像分割,得到单通道人像二值图i
mask
,其中,在该单通道人像二值图上主体区域(即与人像对应的区域)的所有像素点的值为1,而除人像外的背景区域的所有像素点的值为0。
[0066]
c),利用i
image
×
(1-i
mask
)到除人像外的背景分割图i
bg
,在该背景分割图上与人像对应的区域需要填充0。
[0067]
第二步,基于所述背景分割图中的每个像素点的多个通道中的最大值得到单通道图。也就是说,针对每个像素点,从所述背景分割图的多个通道中选择最大值得到单通道图。例如,该第二步包括如下步骤d)。
[0068]
d)基于背景分割图i
bg
的r、g和b三个通道,按像素逐个遍历求出三个通道中的最大值,即得到单通道图i
maxch_bg

[0069]
第三步,至少根据所述单通道图上各像素点的值获取与所述任一帧原始图像对应的光斑点检测图。需要说明的是,该第三步骤示例性包括如下e),或者示例性包括如下步骤e)和步骤f),或者示例性包括步骤e)、步骤f)以及步骤g)。
[0070]
也就是说,本技术的一些实施例通过获取与背景分割图对应的单通道图来检测光斑点进而得到光斑点检测图,可以提升检测得到的光斑点的准确性。具体地,在本技术的一些实施例中,上述第三步示例性包括:对所述单通道图进行模糊化处理,得到模糊单通道图;针对任一像素点,确认在所述单通道图上所述任一像素点的值大于第一阈值,且确认在所述模糊单通道图上所述任一像素点的值小于或等于第二阈值,则确认所述任一像素点属于光斑点,其中,所述第二阈值小于所述第一阈值。需要说明的是,各像素点的值可以是像素值也可以是权重值,其中,权重值即将整幅图像上所有像素点的像素值进行归一化处理后得到的各像素点的值。也就是说,本技术的一些实施例利用光斑的属性(即位于光斑中心
的像素值大而位于该光斑中心相邻像素点的像素值较小的特征)通过构建的模糊单通道图像和单通道图像综合判断各像素点是否属于光斑点,提升了检测得到的光斑点的准确性。
[0071]
e)对上述步骤d)得到的单通道图i
maxch_bg
进行光斑点(或称为光斑点)检测,得到该帧的光斑点检测图,详细流程如下:
[0072]
i.对单通道图i
maxch_bg
做n*n(例如,可以为3*3)的高斯模糊,得到模糊单通道图i
smooth_maxch_bg

[0073]
ii.对单通道图i
maxch_bg
和模糊单通道图i
smooth_maxch_bg
进行遍历,假如位于(x,y)位置的像素点的值满足以下条件,则认为该像素点是一个候选光斑点(即属于一个光斑点),并得到由所有候选光斑点组成的光斑点检测图i
init_spots

[0074][0075]
上述if语句为c语言的条件判断语句,该判断语句的功能在于:当判断两个不等式同时成立时,则执行分号后边的赋值语句。上述value操作表示对括号内的参量进行归一化操作,具体地,value(i
maxch_bg
)(x,y)表示对单通道图上所有像素点的值进行归一化处理后,像素点(x,y)在该归一化图上的值(或称为归一化像素值,也可以称为权重值),不难理解的是该值是属于大于或等于0且小于或等于1的一个数值。value(i
maxch_smooth_bg
)(x,y)表示对模糊单通道图上所有像素点的值归一化处理后,像素点(x,y)在该图上的值(或称为归一化像素值,也可以称为权重值),不难理解的是该值是属于大于或等于0且小于或等于1的一个数值。上述if语句需要判断,像素点(x,y)在单通道图上的归一化像素值大于设置的第一阈值bokeh_thresh1,且该像素点在模糊单通道图上的归一化像素值小于设置的第二阈值bokeh_thresh2,且结合上述语句不难发现这个两个阈值均属于小于1的两个数值范围,且第二阈值包括的最大值小于第一阈值包括的最小值。另外,通过上述语句可以看出,当像素点(x,y)同时满足判断语句(即if语句)的两个条件时,则确定该像素点属于光斑点,对于该光斑点需要将单通道图上像素点(x,y)的值赋值给光斑点检测图i
init_spots
上相同像素点。
[0076]
需要说明的是,对于不满足上述if语句的两个条件的所有像素点则判定不属于光斑点,在光斑点检测图上这些像素点的值为0,不难理解的是通过光斑点检测图可以确定一张由判定得到的所有光斑点组成的图。
[0077]
f)对光斑点检测图i
init_spots
或者光斑点检测图i
init_spots
包括的稠密区域进行稀疏化操作得到稀疏光斑点检测图。
[0078]
例如,基于开源库opencv(即open source computer vision library)自带的图像放缩操作resize操作,将光斑点检测图i
init_spots
先下采样4倍(即目标采样倍率的一个具体示例)然后再上采样4倍,这样就可以简单直接的利用resize自带的双线性插值来做筛点,将光斑点密集聚集区域进行稀疏化,以防止后续渲染出现大片光斑成团区域出现过曝和没有层次感的问题。
[0079]
下面示例性阐述获取稠密区域的过程。
[0080]
判断i
init_spots
图像中光斑点的聚集稠密情况,包括:将待虚化的图像按照宽和高的一半分成尺寸相同的4个小图;求解每个小图的质心坐标,即代表区域内像素集中的中心,具体操作:求解每个小图的零阶矩m
00
和一阶矩m
10
、m
01
;基于如下公式得到质心坐标:
分别以各自的质心坐标点为中心,在100*100范围内计算非零值的个数sum_spots。
[0081]
求四个小图的稠密区采样阈值thresh=sum_spots/10000,若其中至少有一个thresh大于10%,则判定为i
init_spots
存在稠密区域,会导致光斑成团过曝等效果问题,需要对i
init_spots
或该图包括的稠密区域进行稀疏化操作。
[0082]
g),对离散光斑点进行补点处理更新步骤f)得到的光斑点检测图。
[0083]
由于对稠密点进行步骤f)步骤的操作会使原本的稀疏离散点也会变少,且权重值也会变小,所以需要对这些光斑点进行补点操作。补点操作是对步骤d得到的稀疏光斑点检测图i'
init_spots
进行如下操作:
[0084]
iii.对光斑点检测图i
init_spots
进行像素遍历,若遍历的像素点(x,y)在它半径为m(例如,m取值为3)个像素点的邻域内光斑点(或称为光斑点)的个数不超过l(例如,l取值为8)个,则认为该像素点为离散稀疏点,需要在稀疏光斑点检测图i'
init_spots
上该位置(x,y)和该像素点周围进行补点。需要说明的是,补点即提升在稀疏化光斑点检测图上这些像素点的值,具体做法如下。
[0085]
iv.更新稀疏光斑点检测图i'
init_spots
上的离散稀疏点(x,y)的值(该值的类型包括权重值或者像素值),例如,将光斑点检测图i
init_spots
上该离散稀疏点对应的像素点的值赋值给稀疏光斑点检测图上相同的像素点,目的是对稀疏化的离散点进行权重增益。
[0086]
v.更新稀疏光斑点检测图i'
init_spots
上的离散稀疏点(x,y)周围点的值(该值的类型包括权重值或者像素值),在距该离散稀疏点半径为p(例如,p的取值为1)的邻域范围内进行相同权重的赋值,即提升了在稀疏光斑点检测图上与离散稀疏点对应的像素点(x,y)周围的多(例如,当p取值为1时该值为8)个像素点的权重值,目的是为了让离散的光斑更加高亮。
[0087]
基于上述步骤便可得到相应帧的光斑点检测图i
spots
,获取该图目的是为了在进行卷积虚化时,对产生光斑区域进行权重因子增强,区别于非光斑的普通虚化效果。
[0088]
需要说明的是,在本技术的一些实施例中可以将e)步骤得到的i
init_spots
作为s101所需的各帧光斑点检测图。在本技术的另一些实施例中,也可以将f)步骤得到的稀疏光斑点检测图作为s101所需的各帧光斑点检测图。在本技术的又一些实施例中可以将对离散光斑点进行补点处理后,即将g)步骤得到图像作为s101所需的光斑点检测图。上述从a)、b)、c)、d)、e)、f)以及g)为可以依次执行的步骤,且在这些步骤中同样的符号表示同一副图像。
[0089]
也就是说,在本技术的一些实施例中可以将执行步骤a)至步骤e)这些步骤后得到的i
init_spots
作为s101所需的光斑点检测图,在本技术的另一些实施例中可以将执行步骤a)至步骤f))这些步骤后得到的稀疏光斑点检测图作为s101所需的各帧光斑点检测图,在本技术的又一些实施例中可以将执行步骤a)至步骤g)这些步骤后得到的图像作为s101所述的光斑点检测图。
[0090]
其次,示例性阐述s101的实现过程。
[0091]
s101记载的所述m张历史帧光斑点检测图是对m帧原始图像分别进行光斑点检测(例如,采用上述步骤a)至步骤e)等实施例)得到的,所述第k帧光斑点检测图是对第k帧原
始图像进行光斑点检测(例如,采用上述步骤a)至步骤e)等实施例)得到的,所述m帧原始图像和所述第k帧原始图像位于同一待虚化视频(例如,图1的待虚化的视频22)中且所述m帧原始图像是位于所述第k帧原始图像之前且与所述第k帧原始图像邻近的一帧或连续多帧图像,m为大于或等于1的整数。需要说明的是,邻近包括相邻或者距离第k帧原始图像较近的原始图像。第k帧原始图像为待虚化视频中的任一帧原始图像,且k的取值跟对帧的编号相关,例如,在一些实施例中k的取值为大于等于0的整数(可以理解的是,当k取值为0时则属于视频的起始帧因此不存在对应的历史帧,本技术的一些实施例第k帧是起始帧之后的其余各帧),可以理解的是也可以将待虚化视频的起始帧定义为第1帧。例如,若k=5且m=2,即当前处理帧为第5帧原始图像,且执行s101即根据两张历史帧光斑点检测图对当前处理帧光斑点检测图(即第5帧光斑点检测图)进行调整以得到第5帧光斑点权重图,其中,第5帧光斑点检测图是对待虚化的视频22中的第5帧原始图像进行光斑点检测得到的,第4帧光斑点检测图是对待虚化的视频中的第4帧原始图像进行光斑点检测得到的,第3帧光斑点检测图是对待虚化的视频中的第3帧原始图像进行光斑点检测得到的。
[0092]
需要说明的是,在一些实施例中,第k帧原始图像对应的帧号属于该帧原始图像在待虚化视频中的绝对帧号,例如,待虚化视频共包括100帧原始图像,当前处理的帧为第20帧时则第k帧原始图像即第20帧原始图像。在本技术的另一些实施例中,第k帧原始图像对应的帧号是与该帧对应的光斑点检测图在缓存队列中的缓存帧号。例如,待虚化的视频序列共包括100帧,用于缓存光斑点检测图队列的长度为8且在该队列中的各帧图像按照存储时间从早到晚依次从0开始编号,则不难理解的是当前处理的帧的帧号每次都是k=7,即当前处理帧的帧号为7,即此时s101涉及的第k帧光斑点检测图即第7帧光斑点检测图,可以理解的是与该第7帧光斑点检测图对应的原始图像在待虚化视频中的绝对帧号可能不是7,此时对原始帧的编号也采用在缓存队列中的帧号。
[0093]
在本技术的一些实施例中,当k取值不同时从m张历史帧光斑点检测图中选择不同数目的部分帧对当前帧的光斑点检测图进行修正。在本技术的另一些实施例中,无论k的取值为多少都选取相同数目的历史帧光斑点检测图来修正当前帧的光斑点检测图。也就是说,在本技术的一些实施例中,s101示例性包括:直接将m张历史帧光斑点检测图与第k帧光斑点检测图融合,得到第k帧光斑点融合检测图,再根据第k帧光斑点融合检测得到第k帧光斑点权重图。在本技术的另一些实施例中,s101示例性包括:先从m张历史帧光斑点检测图中选择x张历史帧光斑点检测图,将选出的x张历史帧光斑点检测图与第k帧光斑点检测图融合,得到第k帧光斑点融合检测图,再根据第k帧光斑点融合检测得到第k帧光斑点权重图。
[0094]
下面示例性阐述从m张历史帧光斑点检测图中动态选择当前处理帧(即第k帧)所需的历史光斑点检测图像的数量的过程。例如,本技术的一些实施例通过光斑的帧间差异检测机制动态确定优化闪烁所需要的历史帧的帧数,使得可以采用尽可能少的历史帧解决相邻帧的光斑闪烁问题。
[0095]
具体地,在本技术的一些实施例中,s101示例包括:
[0096]
第一步,从所述m张历史帧光斑点检测图中选择x张历史帧光斑点检测图,其中,所述x张历史帧光斑点检测图与所述第k帧光斑点检测图邻近,其中,x为大于或等于1且小于等于m的整数,且邻近的含义与上文描述相同。例如,在本技术的一些实施例中该第一步示
例包括:根据光斑点在不同帧原始图像之间分布的差异性从所述m张历史帧光斑点检测图中选择所述至少部分张历史帧光斑点检测图。具体地,在本技术的一些示例中该第一步示例性包括:确认s101所述的第k帧光斑点检测图(即与当前处理帧所对应的光斑点检测图)和第j帧历史帧光斑点检测图之间的差异值满足差异阈值,则将从第j帧至第(k-1)帧光斑点检测图作为所述x张历史帧光斑点检测图,其中,所述第j帧光斑点检测图属于所述m帧光斑点检测图中的一帧图像。例如,j的取值为大于或等于k-m且小于等于k-1。
[0097]
可以理解的是,在本技术的一些实施例中,可以获取第k帧光斑点检测图与上述m张历史帧光斑点检测图中各历史帧光斑点检测图的差异值,直至找到满足差异阈值的差异值。在本技术的另一些实施例中,可以获取第k帧光斑点检测图与m张历史帧光斑点检测图中的部分历史帧光斑点检测图的差异值,直至从这部分历史帧光斑点检测图中找到满足差异阈值的差异值。也就是说,在本技术的一些实施例中,上述确认所述第k帧光斑点检测图和第j帧历史帧光斑点检测图之间的差异值满足差异阈值示例性包括:逐一确认第k帧光斑点检测图与m张历史帧光斑点检测图中各光斑点检测图的差异值是否满足差异阈值要求。在本技术的一些实施例中,上述确认所述第k帧光斑点检测图和第j帧历史帧光斑点检测图之间的差异值满足差异阈值示例性包括:确认第k帧光斑点检测图与m张历史帧光斑点检测图中部分帧光斑点检测图的差异值是否满足差异阈值要求。
[0098]
下面以计算当前处理帧光斑点检测图(即第k帧光斑点检测图)与部分历史帧光斑点检测图的差异值直至找到满足差异阈值的差异值为例,示例性说明从m张历史帧光斑点检测图中获取至少部分历史帧光斑点检测图的过程。
[0099]
例如,在本技术的一些实施例中,j的取值为i为大于或等于0的整数。例如,若m=8时且i=0时,即判断第k帧光斑点检测图与第k-8帧历史帧光斑点检测图之间的差异值,若m=8时且当i=1时,即判断第k帧光斑点检测图与第k-4帧历史帧光斑点检测图之间的差异值。需要说明的是,为大于等于0的数,因此可以确定i的最大取值。
[0100]
下面示例性阐述当j的取值为时如何得到量化所述第k帧光斑点检测图和第j帧历史帧光斑点检测图之间的差异值。
[0101]
s101所述的确认第k帧光斑点检测图和第j帧历史帧光斑点检测图之间的差异值满足差异阈值示例性包括:i从0开始取值重复如下过程,直至通过如下方式得到的所述差异值满足所述差异阈值:计算所述第k帧光斑点检测图和第帧光斑点检测图上各像素点对应像素值的差值的绝对值,得到第i差值;计算所述第k帧光斑点检测图和与第帧光斑点检测图上各像素点对应像素值的差值的绝对值,得到第i+1差值;计算所述第i差值与所述第i+1差值的差,并计算所述第i差值与所述第i+1差值的和;根据所述差与所述和的比值得到所述差异值;其中,“[]”运算符号表示取整操作。需要说明的是,上述取整操作包括向上取整或者向下取整,而这些公式也包含在本技术上文提供如下构思中:
即通过获取不同帧原始图像上光斑点分布的差异性来从m张历史帧光斑点检测图中选择至少部分历史帧光斑点检测图,以将这些历史帧光斑点检测图与第k帧光斑点检测图融合得到第k帧光斑点权重图。
[0102]
例如,m=8,k=16且i=0,则首先通过如下方式得到的第零差异值:计算所述第16帧光斑点检测图和与第8帧原始图像对应的第8帧光斑点检测图上各像素点的差值的绝对值,得到第i差值;计算所述第16帧光斑点检测图和与第12帧原始图像对应的第12帧光斑点检测图上各像素点的差值的绝对值,得到第i+1差值;计算所述第i差值与所述第i+1差值的差,并计算所述第i差值与所述第i+1差值的和;根据所述差与所述和的比值得到第零差异值,确认第零差异值不满足所述差异阈值。进一步的需要采用如下方法计算i=1时,对应的第一差异值:计算所述第16帧光斑点检测图和与第12帧原始图像对应的第12帧光斑点检测图上各像素点的差值的绝对值,得到第i差值;计算所述第16帧光斑点检测图和与第14帧原始图像对应的第14帧光斑点检测图上各像素点的差值的绝对值,得到第i+1差值;计算所述第i差值与所述第i+1差值的差,并计算所述第i差值与所述第i+1差值的和;根据所述差与所述和的比值得到第一差异值,确认第一差异值满足所述差异阈值,则将从第12帧至第15帧共3帧历史帧光斑点检测图作为s101涉及的m张历史帧光斑点检测图。
[0103]
可以理解的是,如果经过多次循环最终确认所述第k帧光斑点检测图和所有第j帧历史帧光斑点检测图之间的差异值均不满足差异阈值,此时可以选择距离第k帧最近的一帧历史帧光斑点检测图作为从m张历史帧光斑点检测图中选取的历史帧光斑点检测图。例如,在本技术的一些实施例中,视频虚化模式下光斑闪烁处理的方法还包括:确认所述第k帧光斑点检测图和所有第j帧历史帧光斑点检测图之间的差异值均不满足差异阈值,则将所述第k-1帧光斑点检测图作为所述x张历史帧光斑点检测图,其中,所述第j帧光斑点检测图属于所述m帧光斑点检测图中的一帧图像。也就是说,本技术的一些实施例如果确认已存储到的历史帧光斑点检测图与当前帧光斑点检测图的差异性均不大,则选择距离当前帧(即第k帧)最近的一张历史帧光斑点检测图来调整第k帧光斑点检测图以得到第k帧光斑点权重图,这样一方面改善了光斑闪烁问题且使数据处理量最小。
[0104]
需要说明的是,在本技术的一些实施例中,还可以将上述步骤获取的第k帧光斑点检测图和m张历史帧光斑点检测图放入长度为m+1的队列中,之后再从该队列中选择部分历史帧光斑点检测图作为调整第k帧光斑点检测图的参考帧(该参考帧即从m张历史帧光斑点检测图中选取的至少部分历史帧光斑点检测图)。此时,可以根据队列中各历史帧光斑点检测图在队列中的排序编号来计算上述差异值。下文会结合示例对该过程进行说明,为避免重复在此不做过多赘述。
[0105]
第二步,融合所述x张历史帧光斑点检测图和所述第k帧光斑点检测图得到第k帧光斑点融合图。
[0106]
例如,对通过第一步得到的所述至少部分张(即x张)历史帧光斑点检测图和所述第k帧光斑点检测图上相同像素点的值分别进行加权平均处理得到各像素点的加权平均值,再根据各像素点的加权平均值得到所述第k帧光斑点融合图。可以理解的是,本领域技术人员也可以采用其它的融合方式。
[0107]
第三步,根据所述第k帧光斑点融合图得到所述第k帧光斑点权重图。例如,在本技术的一些实施例中,直接将第k帧光斑点融合图进行像素值归一化处理得到第k帧光斑点权
重图。在本技术的另一些实施例中,对第k帧光斑点融合图进行像素值归一化并拉伸,将拉伸图作为第k帧光斑点权重图。在本技术的又一些实施例中,对第k帧光斑点融合图进行像素值归一化、拉伸并根据历史帧处理结果对拉伸图进行平滑处理,将平滑处理后的图作为第k帧光斑点权重图。
[0108]
下面示例性阐述s101如何根据选出的x张历史帧光斑点检测图来调整第k帧光斑点检测图,以得到第k帧光斑点权重图。
[0109]
需要说明的是,本技术的一些实施例通过融合当前帧(即第k帧)光斑点检测图上的像素值与从m张历史帧光斑点检测图中筛选出的至少部分图像上的像素值,得到当前帧光斑点权重图,有效改善了前后帧之间出现的光斑闪烁现象,提升了视频光斑显示效果。
[0110]
例如,在本技术的一些实施例中,s101示例性包括:
[0111]
第一步,融合所述x张历史帧光斑点检测图和所述第k帧光斑点检测图得到第k帧光斑点融合图。例如,在本技术的一些实施例中,该第一步示例性包括:对所述m张历史帧光斑点检测图和所述第k帧光斑点检测图上对应像素点的值分别进行加权平均处理得到各像素点的加权平均值,再根据各像素点的加权平均值得到所述第k帧光斑点融合图。也就是说,本技术的一些实施例通过加权平均的算法融合第k帧光斑点检测图和m张历史帧光斑点检测图,使得得到的第k帧光斑点融合图的光斑分布特征与之前的历史帧的光斑分布特征尽可能接近,有效改善了合成视频存在的光斑闪烁现象。
[0112]
第二步,根据所述第k帧光斑点融合图得到所述第k帧光斑点权重图。
[0113]
例如,在本技术的一些实施例中,所述根据所述第k帧光斑点融合图得到所述第k帧光斑点权重图包括:对所述第k帧光斑点融合图或者对所述第k帧光斑点融合图拉伸得到的第k帧光斑点融合拉伸图进行平滑处理得到所述第k帧光斑点权重图。
[0114]
在本技术的一些实施例中,上述对所述第k帧光斑点融合图进行平滑处理得到所述第k帧光斑点权重图的过程示例性包括:将第k-1帧光斑点融合图和所述第k帧光斑点融合图上对应像素点的值进行不同比例的加权平均得到各像素点的加权平均值,并将所述各像素点的加权平均值作为所述第k帧光斑点权重图上对应像素点的权重值;或者,将第k-1帧光斑点融合拉伸图和所述第k帧光斑点融合图上相同像素点的值进行不同比例的加权平均得到各像素点的加权平均值,并将所述各像素点的加权平均值作为所述第k帧光斑点权重图上对应像素点的权重值。
[0115]
在本技术的一些实施例中,上述对第k帧光斑点融合图拉伸得到的第k帧光斑点融合拉伸图进行平滑处理得到所述第k帧光斑点权重图的过程示例性包括:将第k-1帧光斑点融合图和所述第k帧光斑点融合拉伸图上相同像素点的值进行不同比例的加权平均得到各像素点的加权平均值,并将所述各像素点的加权平均值作为所述第k帧光斑点权重图上对应像素点的权重值;或者,将第k-1帧光斑点融合拉伸图和所述第k帧光斑点融合拉伸图上相同像素点的值进行不同比例的加权平均得到各像素点的加权平均值,并将所述各像素点的加权平均值作为所述第k帧光斑点权重图上对应像素点的权重值。
[0116]
也就是说,本技术的一些实施例通过引入不同比例的权平均算法来根据历史帧光斑点检测图对当前帧光斑点检测图进行平滑处理,进一步改善了合成视频中的光斑显示效果,减少了合成的目标视频中相邻帧间光斑闪烁现象。
[0117]
例如,在本技术的一些实施例中,通过如下公式得到所述第k帧光斑点权重图:
[0118][0119]
其中,表征所述第k-1帧光斑点融合拉伸图,表征所述第k帧光斑点融合拉伸图,i
result_spot
表征所述第k帧光斑点权重图,n的取值范围为大于等于2且小于等于5。本技术的一些实施例通过引入平滑公式进一步改善目标视频中相邻帧间出现的光斑闪烁现象。
[0120]
下面示例性s102根据第k帧光斑点权重图和第k帧原始图像获取第k帧目标对象光斑虚化渲染图的实现过程。可以理解的是,经过执行s101已经得到了第k帧光斑点权重图。
[0121]
h)对第k帧原始图像(即待虚化的图像)进行饱和度增强得到饱和度增强图i'
image
,获取该图的目的是增加背景人像虚化的艳丽程度,以及光斑色彩的多样性。
[0122]
i)利用饱和度增强图和公式i'
image
×
(1-i
mask
)得到除目标对象(例如,人像)外的饱和度增强背景分割图i'
bg
,在该图上人像区域填充0。
[0123]
j)对饱和度增强背景分割图i'
bg
进行伽马gamma变换(例如,gamma=1.6),将背景的亮度进行非线性拉伸,得到拉伸背景分割图i'
gamma_bg

[0124]
k)对背景进行如下的光斑区域亮度增益操作:
[0125]
vi.将原图i
image
转为yuv格式图像,其中单通道y图命名为i
gray

[0126]
vii.将i
gray
归一化到[0,1],得到i
light_weight
,然后整体+1,值域范围在[1,2]。
[0127]
viii.根据i
light_weight
*i'
gamma_bg
得到亮度增益后的图像i
image4render
,即得到第k帧待渲染的背景图像i
image4render

[0128]
l)至少根据第k帧光斑点权重图以及第k帧待渲染的背景图像i
image4render
执行光斑渲染方法,得到第k帧背景光斑虚化渲染图。
[0129]
需要说明的是,为了执行光斑渲染方法还需要获取景深图像,该过程示例性包括如下操作:基于i
image
进行深度估计,利用深度学习方法(例如,mono depth、midas等模型)得到深度图i
depth
,手机摄像头定焦的时会返回图像中人像的坐标位置(x0,y0),通过以下公式得到景深图像i
coc

[0130][0131]
其中,coc表示景深的大小,也就是渲染所需光斑半径的大小。
[0132]
例如,将第k帧光斑点权重图、i
image4render
和i
coc
作为输入,送入基于卷积的光斑渲染方法,并再次进行伽马gamma变换(例如,gamma=1/1.6),最终得到第k帧背景光斑虚化渲染图。
[0133]
o)将饱和度增益后的目标对象(例如人像)与第k帧背景光斑虚化渲染图进行融合得到第k帧目标对象光斑虚化渲染图。
[0134]
不难理解的是,通过重复执行上述过程可以获取待虚化视频中与各帧对应的目标对象光斑虚化渲染图,至此就得到了目标视频。
[0135]
下面结合图3示例性阐述由手机终端执行的图像处理的方法。
[0136]
本技术的一些实施例能够解决手机端视频虚化模式下生成的光斑闪烁严重的问题,模拟光斑效果逼近单反的拍摄效果。例如,在本技术的一些实施例中,首先利用深度学习模型(例如,unet、resnet框架分割模型)对拍摄的各帧原始图像进行人像分割,利用深度
估计模型得到视差估计图coc分布图,然后通过卷积方式进行单张图像的虚化渲染,其中,在本技术的一些实施例中与为了获取当前处理帧原始图像对应的光斑点权重图,需要将当场处理帧光斑点检测图与历史帧光斑点检测图融合,由于这样得到当前处理帧光斑点权重图融合了历史帧光斑点检测图因为可以解决视频光斑闪烁问题,使得视频人像虚化效果更加自然、虚化光斑效果更加稳定。下面结合图3示例性阐述由手机执行的视频虚化模式下光斑闪烁处理的方法。
[0137]
s201,手机摄像头捕获当前处理帧原始图像(即第k帧原始图像)。
[0138]
可以理解的是,当前处理帧原始图像用户对准人像点击视频录制后,手机设备后台获取的一段视频中的某一帧原始图像(即第k帧原始图像)。
[0139]
假设当前时刻手机设备获取到待虚化的rgb格式图像i
image
,该待虚化的rgb格式图像即第k帧原始图像。
[0140]
s202,根据当前处理帧原始图像获取当前处理帧光斑点检测图。可以理解的是,通过光斑点检测方法得到各帧的光斑点检测点图。
[0141]
下面示例性阐述获取当前处理帧光斑点检测图的过程,可以理解的是,以下示例也同样适用于其他各帧历史帧光斑点检测图的获取过程。
[0142]
1.对当前处理帧原始图像i
image
进行人像分割,利用深度学习模型(如unet、resnet等框架)得到单通道二值图i
mask
,其中,在单通道二值图上主体(即人像)对应像素点的像素值为1且背景为0。
[0143]
2.利用i
image
×
(1-i
mask
)得到除人像外的背景图i
bg
,人像区域填充0;
[0144]
3.基于i
bg
的r、g和b三个通道,按像素逐个遍历求出三个通道中的最大值,即单通道图i
maxch_bg

[0145]
4.基于i
maxch_bg
进行光斑点检测,得到对应帧光斑点检测图,详细流程如下:
[0146]
4-1对单通道i
maxch_bg
做模糊化处理(例如,用3*3的卷积和对单通道图像进行高斯模糊)得到模糊单通道图像i
smooth_maxch_bg

[0147]
4-2对i
maxch_bg
和i
smooth_maxch_bg
进行遍历,假如位于(x,y)位置的像素满足以下条件,则认为是一个候选光斑点(即光斑点),并得到当前帧光斑点检测图i
init_spots
[0148][0149]
需要说明的是,可以进一步的对4-2得到的当前帧光斑点检测图进行进一步处理得到更加优化的当前帧光斑点检测图(例如,当前处理帧光斑点检测图进行稀疏化处理以及补点操作,具体可参考上述获取光斑点检测图的示例,为避免重复在此不做过多赘述),相应的s101所需的光斑点检测图属于更加优化的当前处理帧光斑点检测图。
[0150]
s203,获取历史帧光斑点检测图。可以理解的是,各历史帧光斑点检测图的获取方式可参考上述第s202步骤。为避免重复在此不做过多赘述。
[0151]
s204,创建序列帧缓存队列q。
[0152]
例如,q取值为10,将历史帧光斑点检测(9帧)和当前处理帧光斑点检测图存入在固定长度队列容器q中。
[0153]
也就是说,创建一个全局缓存队列q,用来缓存生成的光斑点检测检测图,q长度为10且首地址始终存储当前处理帧的光斑点检测图hightlight spots,依次类推q的末尾帧
存储距离当前帧最远的历史帧光斑点检测图。
[0154]
s205,根据帧间差异性从缓存度列q中选择至少部分张(对应上述x张)历史帧光斑点检测图。
[0155]
也就是说,通过帧间差异检测机制确定优化闪烁所需要的帧数m(m《len(q)),len(q)表示缓存队列q的长度,q=m。
[0156]
每帧闪烁优化处理所需要的的帧数是不确定的,需要通过q中连续序列的差异信息进行自适应选择,具体包括如下两步:
[0157]
第一步:以q长度为10,经过如下四次计算多副差异图,具体为:
[0158]
第一次将预存在q中的首尾帧做差的绝对值,生成新的mat图如下公式:
[0159][0160]
也就是说,根据当前处理帧光斑点检测图与缓存队列中最早历史帧光斑点检测图上相同位置点(或称为相同像素点)的值的差得到最大差异光斑点分布图该最大差异光斑点分布图上的各像素点的值为正数或0。
[0161]
然后第二次将q中的中间帧与当前帧做绝对值的差,生成新的mat图如下图公式:
[0162][0163]
其中n
cur
表示为队列中当前帧的光斑检测点序号(即在缓存队列中的被存储的序号,且各历史帧光斑点检测图是按照产生顺序依次存放的),n0表示第一次做绝对差值时被减对象的序号,可以简化为如下公式:
[0164][0165]
依次类推,
[0166]
第三次做绝对差化简为:
[0167][0168]
第四次做绝对差化简为:
[0169][0170]
第二步,设置固定阈值参数thresh_diff为0.35(作为差异阈值的一个具体事例,该差异阈值的取值范围为大于等于0.2或者小于等于0.45),需满足以下不等式:
[0171][0172]
其中,s∈{0,1,2,3}且按顺序执行,若s=0时成立,则需要序号0~9十帧的信息提供给闪烁优化模块(即从9帧历史帧光斑点检测图中选择全部,并将0~9十帧光斑点检测图进行融合,以获取当前处理帧第9帧的光斑点权重图),即后续闪烁优化模块至少被配置为通过融合这10帧的光斑点检测图得到与第9帧对应的光斑点权重图。若s=1时成立,则需要序号4~9六帧的信息提供给闪烁优化模块(即从9帧历史帧光斑点检测图中选择5帧最近历史帧图像,并将4~9六帧光斑点检测图进行融合,以获取当前处理帧第9帧的光斑点权重
图),即后续闪烁优化模块至少被配置为通过融合这6帧的光斑点检测图得到与第9帧对应的光斑点权重图;若s=2时成立,则需要序号6~9四帧的信息提供给闪烁优化模块(即从9帧历史帧光斑点检测图中选择3帧最近历史帧图像,并将6~9四帧光斑点检测图进行融合,以获取当前处理帧第9帧的光斑点权重图),即后续闪烁优化模块至少被配置为通过融合这4帧的光斑点检测图得到与第9帧对应的光斑点权重图;若s=3时成立,则需要序号7~9三帧的信息提供给闪烁优化模块(即从9帧历史帧光斑点检测图中选择3帧最近历史帧图像,并将7~9三帧光斑点检测图进行融合,以获取当前处理帧第9帧的光斑点权重图),即后续闪烁优化模块至少被配置为通过融合这3帧的光斑点检测图得到与第9帧对应的光斑点权重图;如果还不满足,就只需要8、9两帧的信息提供给闪烁优化模块(即从9帧历史帧光斑点检测图中选择最近一帧历史帧图像,并将8~9两帧光斑点检测图进行融合,以获取当前处理帧第9帧的光斑点权重图),即后续闪烁优化模块至少被配置为通过融合这两帧的光斑点检测图得到与第9帧对应的光斑点权重图。可以理解的是,在这些实例中第9帧是当前处理帧,且第9帧光斑点检测图的帧号是在缓存队列中的编号。
[0173]
需要说明的是,在本技术的一些实施例中可以在确定s=0时,当前处理帧光斑点检测图与第0帧光斑点检测图的差异值满足差异阈值(在缓存队列中的帧号,不是在待虚化视频中的绝对帧号),则不用计算和并将第0帧至当前处理帧对应的所有光斑点检测图融合,得到当前处理帧光斑点融合图。计算值即计算所述第k帧光斑点检测图和第帧光斑点检测图上各像素点对应像素值的差值的绝对值,得到第i差值。计算值即计算所述第k帧光斑点检测图和与第帧光斑点检测图上各像素点对应像素值的差值的绝对值,得到第i+1差值。
[0174]
s206,将至少部分张历史帧光斑点检测图和当前帧光斑点检测图加权平均生成当前帧光斑点融合检测图。
[0175]
例如,根据s205可以获取包含当前处在光斑点检测图在内的连续m+1帧的光斑点,利用m+1帧光斑点检点图作为依据获取闪烁优化的权重图,即将连续m+1帧全部做加权平均生成一个包含m+1帧信息的当前处理帧光斑点融合检测图。
[0176]
s207,将当前处理帧光斑点融合检测图进行曲线拉伸增强,得到当前处理帧光斑点融合拉伸图。
[0177]
也就是说,将s206得到的光斑点融合检测图做一次曲线拉伸以提高整体值的大小,将得到的当前处理帧光斑点融合拉伸图记为
[0178]
s208,获取上一帧光斑点融合拉伸图(即与当前处理帧相邻的前一帧)。可以理解的是,上一帧光斑点融合拉伸图的获取过程与获取当前处理帧融合拉伸图的过程相同,具体请参考上文,为避免重复在此不做过多赘述。
[0179]
s209,将当前处理帧光斑点融合拉伸图与上一帧光斑点融合拉伸图进行不同比例加权平均处理,得到当前帧光斑点权重图。
[0180]
例如,利用如下公式进行不同比例的加权平均处理:
[0181][0182]
其中,表示当前处理帧光斑点融合拉伸图,表示前一帧光斑点融合拉伸图。
[0183]
s210,根据人像分割模型对当前处理帧原始图像进行前后景分离,得到背景分割图像和人像分割图像。
[0184]
s211,对当前帧原始图像进行度增强、分割、伽马校正以及拉伸等预处理,最终得到当前处理帧待渲染的背景图像i
image4render
,具体实现过程可参考上文记载的获取第k帧待渲染的背景图像i
image4render
的过程,为避免重复在此不做过多赘述。
[0185]
s212,采用光斑渲染方法得到当前处理帧目标对象光斑虚化渲染图。例如,对当前处理帧人像分割图和当前处理帧背景光斑渲染图进行融合合并,得到最终的人像光斑虚化渲染图(即作为目标对象光斑虚化渲染图的一个具体示例)。也就是说,根据当前处理帧待渲染的背景图像i
image4render
和当前处理帧光斑点权重图采用光斑渲染方法得到当前处理帧目标对象光斑虚化渲染图,具体过程可以参考针对s102的示例性阐述。
[0186]
也就是说,将s209得到的当前处理帧光斑点权重图和预处理后的当前处理帧待渲染的背景图像i
image4render
送入光斑渲染方法,得到当前处理帧背景光斑渲染图。可以理解的是,将s101光斑点权重图进行图像渲染使得目标视频中光斑闪烁问题会有明显的改善。
[0187]
s213,重复上述过程得到多帧目标对象光斑虚化渲染图,并根据所述多帧目标对象光斑虚化渲染图得到目标视频。
[0188]
请参考图4,图4示出了本技术实施例提供的图像处理的装置,应理解,该装置与上述图2方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该视频虚化模式下光斑闪烁处理的装置包括:第k帧光斑点权重图获取模块101、第k帧目标对象光斑虚化渲染图模块102。在本技术的一些实施例中,该装置还包括目标视频获取模块103。
[0189]
第k帧光斑点权重图获取模块101,被配置为根据m张历史帧光斑点检测图和第k帧光斑点检测图得到第k帧光斑点权重图,其中,所述m张历史帧光斑点检测图是对m帧原始图像分别进行光斑点检测得到的,所述第k帧光斑点检测图是对第k帧原始图像进行光斑点检测得到的,所述m帧原始图像和所述第k帧原始图像位于同一待虚化视频中且所述m帧原始图像是位于所述第k帧原始图像之前且与所述第k帧原始图像邻近的一帧或连续多帧图像,m为大于或等于1的整数。
[0190]
第k帧目标对象光斑虚化渲染图模块102,被配置为根据所述第k帧光斑点权重图和第k帧原始图像得到第k帧目标对象光斑虚化渲染图。
[0191]
目标视频获取模块103,被配置为获取多帧目标对象光斑虚化渲染图,并根据所述多帧目标对象光斑虚化渲染图得到目标视频。
[0192]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0193]
本技术的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如上述任一实施例所述的方法。
[0194]
本技术的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述任一实施例所述的方法。
[0195]
如图5所示,本技术的一些实施例提供一种电子设备500,包括存储器510、处理器520以及存储在所述存储器510上并可在所述处理器520上运行的计算机程序,其中,所述处理器520通过总线530从存储器510读取程序并执行所述程序时可实现如上述任一实施例所述的方法。
[0196]
处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。
[0197]
存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本技术实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现图2中所示的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
[0198]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0199]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0200]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0201]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0202]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
[0203]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1