一种视频处理方法、电子设备及计算机存储介质与流程

文档序号:29868275发布日期:2022-04-30 16:30阅读:85来源:国知局
一种视频处理方法、电子设备及计算机存储介质与流程

1.本技术涉及视频处理技术领域,尤其涉及一种视频处理方法、电子设备及计算机存储介质。


背景技术:

2.用户在使用手机、平板等电子设备拍摄视频的过程中,或者在拍摄得到视频后,由于对实际的拍摄背景不满意或者有其他特殊需求,则可能需要替换视频中实际的拍摄背景。示例性的,在室内环境下拍摄得到一段舞蹈演员跳蒙古舞的视频,为了使背景与蒙古舞相匹配,需要将背景由室内环境替换为草原。现有技术中,针对上述需求,可以将视频中的人物(如舞蹈演员)从视频的每一帧中分割出来,然后放到预设背景图像(如草原)中。例如,将一帧视频图像中的舞蹈演员放到草原背景中后,可以得到如图1中左边所示的效果。
3.与此同时,通常情况下,在拍摄视频的过程中,会通过移动电子设备,如改变电子设备的拍摄位置和/或拍摄角度,来拍摄得到视角更全面的视频。例如,在拍摄舞蹈演员跳舞的视频时,会不断移动电子设备,以追踪到舞蹈演员最完美的角度(如正脸)。
4.然而,发明人在实施本技术实施例的过程中发现,在移动电子设备拍摄视频的场景中,使用现有技术中替换视频背景的方案至少存在如下问题:电子设备的拍摄位置和/或拍摄角度发生了改变,但是替换后的背景始终是不变的预设背景图像,那么替换后的背景无法与拍摄位置和/或拍摄角度相匹配。从而会导致替换背景后的视频虚假感强。例如,将一帧视频图像中的舞蹈演员放到草原背景中后,可以得到如图1中左边所示的效果。将另一帧视频图像中的舞蹈演员放到草原背景中后,可以得到如图1中右边所示的效果。很显然,替换后的两帧图像中,人像的位置、朝向和/或大小都是不同的,但是背景却一模一样,虚假感较强。


技术实现要素:

5.本技术实施例提供一种视频处理方法、电子设备及计算机存储介质,可以提升替换视频背景后的效果。
6.第一方面,本技术实施例提供一种视频处理方法,应用于电子设备,电子设备中包括待处理视频,待处理视频包括第一源图像和第二源图像,第一源图像和第二源图像是待处理视频的两帧图像。在对待处理视频处理的过程中,电子设备可以替换第一源图像的背景,得到第一目标图像。第一目标图像包括第一背景,第一背景是电子设备将预设背景(为3d背景)按照第一相机位姿投影得到的,第一相机位姿是第一源图像对应的相机位姿。以及,电子设备可以替换第二源图像的背景,得到第二目标图像。第二目标图像包括第二背景,第二背景是电子设备将预设背景按照第二相机位姿投影得到的,第二相机位姿是第二源图像对应的相机位姿,第二相机位姿和第一相机位姿不同。
7.综上所述,采用本技术实施例的方法,源图像对应的相机位姿不同,那么替换后的背景的位姿也不相同。如此,替换后的背景可以与源图像对应的相机位姿相适应。从而可以
提升替换背景后得到的目标图像的真实性。
8.在第一方面的一种可能的设计方式中,上述待处理视频还包括第三源图像,第三源图像是待处理视频的第一帧图像。源图像对应的相机位姿都是指拍摄该源图像时相机的位置和姿态,相较于拍摄第一帧图像时相机的位置和姿态的变化。那么,第一源图像对应的相机位姿,即第一相机位姿是指拍摄第一源图像时相机的位置和姿态,相较于拍摄第三源图像时相机的位置和姿态的变化。以及,第二源图像的相机位姿,即第二相机位姿是指拍摄第二源图像时相机的位置和姿态,相较于拍摄第三源图像时相机的位置和姿态的变化。
9.在第一方面的另一种可能的设计方式中,由于以第一帧图像(即第三源图像)对应的相机位姿作为基准值,即没有位置和姿态的变化,那么电子设备在替换第三源图像的背景,得到第三目标图像的过程中,直接以预设原点为相机的光点对预设背景投影到得到第三背景。该第三背景即为替换后的背景。也就是说,第三目标图像包括第三背景。
10.由此可见,采用本实施例的方法,电子设备可以完成对第一帧图像的背景的替换。
11.在第一方面的另一种可能的设计方式中,上述在电子设备替换第一源图像的背景之前,还包括:电子设备根据多组第一匹配点对,计算第一相机位姿。例如,采用pnp方法计算得到第一相机位姿。每组第一匹配点对包括第三源图像的一个特征点和第一源图像的一个特征点。电子设备将预设背景按照第一相机位姿投影得到第一背景。
12.由此可见,采用本实施例的方法,电子设备可以完成对第一相机位姿的计算,然后按照计算结果来对预设背景进行投影,得到合理的第一背景。
13.进一步的,在得到第一相机位姿后,还可以优化第一相机位姿,使第一相机位姿更为合理。然后在投影时,则将预设背景按照优化后的第一相机位姿投影。
14.在第一方面的另一种可能的设计方式中,在对源图像人像分割而得到人像前景和背景两部分后,从分割出的背景中提取特征点,然后匹配得到匹配点对,用于计算相机位姿。也就是说,匹配点对中包括的特征点应该都是源图像的背景中的特征点。例如,每组第一匹配点包括第三源图像的背景中的一个特征点和第一源图像的背景中的一个特征点。并且,计算得到的相机位姿最后是用于投影得到替换后的背景的。如此,可以减少人像前景对得到替换后的背景的影响,提升处理的准确性。
15.在第一方面的另一种可能的设计方式中,两帧(尤其是非连续帧)源图像的图像内容可能存在很大差异,导致两帧源图像中特征点的关联性较小,该情况下,根据匹配点对计算得到的相机位姿极有可能存在很大误差。基于此,电子设备在确定两帧源图像(如第三源图像和第一源图像)的差异较小时,才将预设背景按照根据匹配点对计算得到的相机位姿投影得到替换后的背景。其中,确定两帧源图像的差异较小包括两帧图像的匹配点对的组数和/或根据匹配点对计算得到的相机位姿满足预设条件,如匹配点对的组数超过预设数量,根据匹配点对计算得到的相机位姿使重投影损失函数的值小于预设阈值。反之,若差异较大,即不满足预设条件,则进一步根据源图像对应的imu数据来计算得到相机位姿,再将预设背景按照根据imu数据计算得到的相机位姿投影得到替换后的背景。从而确保始终以较合理的相机位姿来投影得到替换后的背景。
16.示例性的,上述电子设备将预设背景按照第一相机位姿投影得到第一背景,包括:电子设备在确定多组第一匹配点对的组数和/或根据多组第一匹配点对计算得到的第一相机位姿满足第一预设条件的情况下,才将预设背景按照根据所述多组第一匹配点计算得到
的所述第一相机位姿投影得到第一背景。
17.又示例性的,上述电子设备将预设背景按照第一相机位姿投影得到第一背景,包括:电子设备在确定多组第一匹配点对的组数和/或根据多组第一匹配点对计算得到的第一相机位姿不满足第一预设条件的情况下,则根据第一源图像对应的惯性测量imu数据,更新第一相机位姿,得到更新后的第一相机位姿。电子设备将预设背景按照更新后的第一相机位姿(即根据imu数据计算得到的相机位姿)投影得到第一背景。
18.在第一方面的另一种可能的设计方式中,上述第二源图像为待处理视频中,第一源图像的下一帧图像。在确定多组第一匹配点对的组数和/或根据多组第一匹配点对计算得到的第一相机位姿不满足第一预设条件的情况下,在电子设备替换第二源图像的背景之前,还包括:电子设备根据多组第二匹配点对,计算第三相机位姿,第三相机位姿为拍摄第二源图像时相机的位置和姿态,相较于拍摄第一源图像时相机的位置和姿态的变化,每组第二匹配点对包括第一源图像的一个特征点和第二源图像的一个特征点。电子设备将预设背景按照第二相机位姿投影得到第二背景,第二相机位姿是电子设备对第三相机位姿和第一相机位姿进行位姿换算后得到的。
19.由此可见,采用本实施例的方法,在确定当前帧源图像与之前的源图像(如第一帧源图像)的差异较大之后,则以当前帧为起始帧,并通过位姿换算的方式来得到后续帧源图像对应的相机位姿,以提高相机位姿计算的合理性。
20.在第一方面的另一种可能的设计方式中,由于连续帧源图像的差异通常是较小的,则通常情况下可以确定出多组第二匹配点对的组数和/或第二相机位姿满足第二预设条件,即确定出第二源图像和第一源图像的差异较小。
21.在第一方面的另一种可能的设计方式中,上述待处理视频还包括第四源图像,第四源图像是待处理视频中,第二源图像的下一帧图像,第四源图像在第四相机位姿下拍摄得到。在确定出第一源图像和第三源图像(即第一帧图像)的差异较大,并在完成第二源图像的处理之后,上述方法还包括:电子设备根据多组第三匹配点对,计算第五相机位姿,第五相机位姿为拍摄第四源图像时相机的位置和姿态,相较于拍摄第一源图像时相机的位置和姿态的变化,每组第三匹配点对包括第四源图像的一个特征点和第一源图像的一个特征点。电子设备将预设背景按照第四相机位姿投影得到第四背景,第四相机位姿是电子设备对第五相机位姿和第一相机位姿进行位姿换算后得到的。电子设备替换第四源图像的背景,得到第四目标图像,第四目标图像包括第四背景。
22.由此可见,采用本实施例的方法,在确定图像的差异较大之后,至此再次确定出图像的差异较大之前,针对任一帧源图像(如第四源图像),都可以通过位姿换算的方式来计算相机位姿,以提高相机位姿计算的合理性。
23.在第一方面的另一种可能的设计方式中,类似的,电子设备将预设背景按照第四相机位姿投影得到第四背景,包括:电子设备确定多组第三匹配点对的组数和/或第四相机位姿满足第三预设条件,电子设备将预设背景按照第四相机位姿投影得到第四背景。
24.在第一方面的另一种可能的设计方式中,类似的,电子设备将预设背景按照第四相机位姿投影得到第四背景,包括:电子设备确定多组第三匹配点对的组数和/或第四相机位姿不满足第三预设条件,电子设备根据第四源图像对应的imu数据,更新第四相机位姿,得到更新后的第四相机位姿。电子设备将预设背景按照更新后的第四相机位姿投影得到第
四背景。
25.在第一方面的另一种可能的设计方式中,替换背景后的目标图像中还包括源图像中人像前景的光影,从而可以进一步提升目标图像的真实性。示例性的,第一源图像中包括第一人像前景,第一目标图像中包括第一人像前景的光影。第二源图像中包括第二人像前景,第二目标图像中包括第二人像前景的光影。
26.在第一方面的另一种可能的设计方式中,预设背景是三维背景。从而可以实现三维背景按照不同位姿投影,得到不同投影画面。
27.第二方面,本技术实施例还提供一种电子设备,所述电子设备中包括待处理视频,所述电子设备包括:存储器和一个或多个处理器,所述存储器与所述处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
28.第三方面,本技术实施例提供一种芯片系统,该芯片系统应用于包括显示屏和存储器的电子设备;所述芯片系统包括一个或多个接口电路和一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
29.第四方面,本技术提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
30.第五方面,本技术提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
31.可以理解地,上述提供的第二方面所述的电子设备,第三方面所述的芯片系统,第四方面所述的计算机存储介质,第五方面所述的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
32.图1为一种视频处理的效果示意图;图2为本技术实施例提供的一种视频处理方法的原理图之一;图3为本技术实施例提供的一种手机的硬件结构图;图4为本技术实施例提供的一种视频处理方法的原理图之二;图5为本技术实施例提供的一种匹配点对的示意图;图6为本技术实施例提供的一种视频处理方法的原理图之三;图7为本技术实施例提供的一种视频处理方法的原理图之四;图8为本技术实施例提供的一种视频处理方法的原理图之五;图9为本技术实施例提供的一种视频处理方法的原理图之六;图10为本技术实施例提供的一种视频处理方法的原理图之七;图11为本技术实施例提供的一种视频处理方法的原理图之八;
图12为本技术实施例提供的一种视频处理方法的原理图之九;图13为本技术实施例提供的一种视频处理方法的效果示意图;图14为本技术实施例提供的一种视频处理方法的原理图之十;图15为本技术实施例提供的一种视频处理方法的原理图之十一;图16为本技术实施例提供的另一种视频处理方法的效果示意图;图17为本技术实施例提供的一种视频处理方法的原理图之十二;图18为本技术实施例提供的一种芯片系统的组成示意图。
具体实施方式
33.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
34.在对本技术实施例说明之前,先在此说明本技术实施例中涉及的技术术语:1、相机位姿。
35.本技术实施例中,相机位姿是指第n帧图像对应的相机位姿。更详细的,第n帧图像对应的相机位姿包括:相较于相机拍摄第1帧图像时的位置和姿态而言,相机在拍摄第n帧视频图像时位置和姿态的变化。n是大于1的整数。通常情况下,位置的变化包括沿地理坐标系的各个轴(如x轴、y轴、z轴)的位移,位置的变化可以用平移向量来表示。姿态的变化包括绕坐标系的各个轴(如x轴、y轴、z轴)的角度变化,即俯仰角、偏航角、滚动角的变化,姿态的变化可以用旋转矩阵来表示。
36.应注意,本文中的相机可以是独立的电子设备。或者,相机也可以是集成在电子设备,如手机、平板中的相机模块。
37.2、惯性测量单元(inertial measurement unit,imu)。
38.imu可以设置于相机中,用于测量相机的角速度以及加速度。陀螺仪及加速度计是imu的主要元件。通常情况下,一个imu包含了三个单轴的加速度计和三个单轴的陀螺仪。加速度计检测相机的加速度信号,而陀螺仪检测相机的角速度信号。
39.3、imu数据。
40.imu数据是指imu检测到的加速度信号和角速度信号。本技术实施例中,在相机拍摄视频的每一帧图像时,imu都可以采集到对应的imu数据。每一帧图像对应的imu数据表示:相机在拍摄该帧图像时,相机的加速度信号和角速度信号。
41.参见图2,为了解决现有技术中针对移动电子设备拍摄视频的场景,替换视频背景后虚假感强的技术问题,本技术实施例提供一种视频处理方法。该方法可应用于手机、平板等可实现视频处理的电子设备。其中,在替换待处理视频的第n帧图像的背景前,电子设备根据第n帧图像对应的相机位姿,计算虚拟背景(可以称为预设背景,预设背景是3d背景)的投影画面(如图2中的背景投影处理)。然后,在替换第n帧图像的背景时,电子设备将投影画面和第n帧图像中的人像融合,则可得到替换背景后的视频图像(如图2中的第一图像)。如此,不仅完成了背景图像的替换。而且,人像是在第n帧图像对应的相机位姿下拍摄得到的,投影画面也是在第n帧图像对应的相机位姿下投影得到的,也就是说,人像前景和背景都是
在同样的相机位姿下得到的,因此匹配度较高,图像的真实性更强。
42.示例性的,本技术实施例中的电子设备可以是手机、相机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)\虚拟现实(virtual reality,vr)设备等设备,本技术实施例对该电子设备的具体形态不作特殊限制。下文中,将主要以电子设备是手机为例,来说明本技术方案。
43.请参见图3,为本技术实施例提供的一种手机300的硬件结构图。如图3所示,手机300可以包括处理器310,外部存储器接口320,内部存储器321,通用串行总线(universal serial bus,usb)接口330,充电管理模块340,电源管理模块341,电池342,天线1,天线2,移动通信模块350,无线通信模块360,音频模块370,扬声器370a,受话器370b,麦克风370c,耳机接口370d,传感器模块380,按键390,马达391,指示器392,摄像头393,显示屏394,以及用户标识模块(subscriber identification module,sim)卡接口395等。
44.可以理解的是,本实施例示意的结构并不构成对手机300的具体限定。在另一些实施例中,手机300可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
45.处理器310可以包括一个或多个处理单元,例如:处理器310可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
46.本技术实施例中,可以由处理器来完成替换背景的相关运算和处理。
47.可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对手机300的结构限定。在另一些实施例中,手机300也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
48.充电管理模块340用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块340可以通过usb接口330接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块340可以通过手机300的无线充电线圈接收无线充电输入。充电管理模块340为电池342充电的同时,还可以通过电源管理模块341为手机300供电。
49.电源管理模块341用于连接电池342,充电管理模块340与处理器310。电源管理模块341接收电池342和/或充电管理模块340的输入,为处理器310,内部存储器321,外部存储器,显示屏394,摄像头393,和无线通信模块360等供电。电源管理模块341还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块341也可以设置于处理器310中。在另一些实施例中,电源管理模块341和充电管理模块340也可以设置于同一个器件中。
50.手机300的无线通信功能可以通过天线1,天线2,移动通信模块350,无线通信模块360,调制解调处理器以及基带处理器等实现。
51.无线通信模块360可以提供应用在手机300上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块360可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块360经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器310。无线通信模块360还可以从处理器310接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
52.传感器模块380可以包括陀螺仪传感器380b和加速度传感器380e。
53.陀螺仪传感器380b可以用于确定手机300的运动姿态。在一些实施例中,可以通过陀螺仪传感器380b确定手机300围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器380b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器380b检测手机300抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消手机300的抖动,实现防抖。陀螺仪传感器380b还可以用于导航,体感游戏场景。
54.加速度传感器380e可检测手机300在各个方向上(一般为三轴)加速度的大小。当手机300静止时可检测出重力的大小及方向。还可以用于识别手机300的姿态,应用于横竖屏切换,计步器等应用。
55.在一些实施例中,待处理视频,即待替换背景的视频可以由手机300拍摄得到。也就是说,由手机300拍摄得到待处理视频,并对其替换背景。在本实施例中,手机300中的陀螺仪传感器380b和加速度传感器380e则可以构成imu。由加速度传感器380e采集加速度信号。由陀螺仪传感器380b采集角速度信号。从而可以在手机300拍摄视频的过程中,采集到加速度信号和角速度信号,即imu数据。
56.应注意,实际实施时,也可以由其它(即除手机300之外的)可拍摄视频的电子设备来拍摄得到待处理视频,然后传输给手机300来完成替换背景的处理。本技术实施例对此不作具体限定。
57.手机300通过gpu,显示屏394,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏394和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器310可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
58.手机300可以通过isp,摄像头393,视频编解码器,gpu,显示屏394以及应用处理器等实现拍摄功能。isp 用于处理摄像头393反馈的数据。摄像头393用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。在一些实施例中,手机300可以包括1个或n个摄像头393,n为大于1的正整数。
59.外部存储器接口320可以用于连接外部存储卡,例如micro sd卡,实现扩展手机300的存储能力。外部存储卡通过外部存储器接口320与处理器310通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
60.内部存储器321可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器310通过运行存储在内部存储器321的指令,从而执行手机300的各种功能应用以及数据处理。例如,处理器310可以通过执行存储在内部存储器321中的指令,响应于用户展开显示屏394的操作,在显示屏384显示不同的内容。内部存储器321可以包括存储程序区
和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储手机300使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器321可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
61.手机300可以通过音频模块370,扬声器370a,受话器370b,麦克风370c,耳机接口370d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
62.按键390包括开机键,音量键等。按键390可以是机械按键。也可以是触摸式按键。手机300可以接收按键输入,产生与手机300的用户设置以及功能控制有关的键信号输入。马达391可以产生振动提示。马达391可以用于来电振动提示,也可以用于触摸振动反馈。指示器392可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。sim卡接口395用于连接sim卡。sim卡可以通过插入sim卡接口395,或从sim卡接口395拔出,实现和手机300的接触和分离。手机300可以支持1个或n个sim卡接口,n为大于1的正整数。
63.本技术实施例的视频处理方法可以在具有上述硬件结构的手机200中实现。
64.在本技术实施例中,待处理视频可以是手机正在拍摄的实时视频。或者,待处理视频可以是已拍摄完成的离线视频。该离线视频可以由手机拍摄得到,或者由除手机之外的其它电子设备拍摄得到。并且,待处理视频可以包括多帧图像,比如可以包括第1帧图像至第z帧图像。下面将结合附图,从第1帧图像开始,详细说明本技术实施例的视频处理方法。
65.参见图4,针对第1帧图像(可以称为第三源图像),处理过程包括背景投影(如图4中的401)、人像分割(如图4中的402)和前背景融合(如图4中的403)。在本技术实施例中,最开始将第1帧作为起始帧,并将第1帧图像对应的相机位姿(包括位置和姿态)作为位姿的参考值,第n(n为大于1的整数)帧图像对应的相机位姿则是指相较于参考值中的位置和姿态,相机在拍摄第n帧图像时位置和姿态的变化。由于第1帧图像对应的相机位姿是位姿的参考值,那么,针对第1帧图像,在背景投影时,投影的偏移量则为零。基于此,在本技术实施例中,可以直接将虚拟背景正投影到投影面(即显示图像的平面)上,生成投影画面(可以称为第三背景)。通俗而言,正投影是指模拟将相机(如相机的光点)放置在预设原点拍摄虚拟背景。预设原点可以是地理坐标系中的任一点。而在针对后续各帧图像的处理过程中,则是在此预设原点的基础上,并以地理坐标系为参考系,模拟相机按照各帧图像对应的相机位姿来移动并拍摄虚拟背景,从而得到虚拟背景按照各帧图像对应的相机位姿投影得到的投影画面。其中,虚拟背景是用于替换的背景。通常情况下,虚拟背景可以是预置在手机的视频处理应用中的,或者,虚拟背景可以是手机从视频处理应用的服务器中获取的。
66.应注意,本技术实施例中,在针对各帧图像处理时,虚拟背景始终都是在预设位置处的。如此,才能保证始终是对相同位置的相同背景,从不同的角度投影。
67.针对第1帧图像,通过人像分割处理,如采用portraitfcn、matting等人像分割算法来实现人像分割处理,将第1帧图像分割为人像和真实背景两部分。
68.以及,针对第1帧图像,在前背景融合时,将背景投影得到的投影画面和人像分割得到的人像融合,则可得到替换背景后的第1帧图像(可以称为第三目标图像)。也就是说,针对第1帧图像,将该第1帧图像的背景替换为虚拟背景正投影得到的投影画面,即可得到
替换背景后的第1帧图像。例如,可使用opencv,通过传统的图像处理实现背景替换。
69.进一步的,在本技术实施例中,需要依据起始帧(如当前为第1帧,后续可以更新)图像和第n帧图像之间的匹配点对来计算第n帧图像对应的相机位姿。其中,一组匹配点对由第1帧图像中的第一特征点和第n帧图像中与该第一特征点对应的第二特征点组成。
70.示例性的,参见图5,相机拍摄的第1帧图像中,船帆的最高点在a1点,然后相机位姿发生变化后,相机拍摄得到第n帧图像,在第n帧图像中,船帆的最高点在a2点。那么,a1和a2构成一组匹配点对。其中,a1为第一特征点,a2为第二特征点。
71.基于此,继续参见图4,针对第1帧图像,处理过程还包括特征点提取(如图4中的404)。特征点提取是从人像分割得到的真实背景中提取特征点,并确定特征点的坐标和特征点的特征值向量,以用于第n帧(n为大于1的正整数)图像的处理。其中,可采用尺度不变特征变换算法(scale invariant feature transform,sift)、快速特征点提取和描述算法(oriented fast and rotated brief ,orb)或者加速稳健特征算法(speeded-up robust features,surf)等特征提取算法来完成特征点提取。例如,采用sift查找真实背景中一些突出的,且不会因光照、仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等作为特征点。特征点提取完成后,则可得到第1帧图像中各个特征点的二维坐标和各个特征点的特征值向量。其中,j表示第1帧图像的第j个特征点,j=[1,j],j为第1帧图像的特征点总数量。二维坐标表示第j个特征点在第1帧图像中的位置。特征值向量表示第j个特征点的颜色、亮度等特征。在本技术实施例中,从图像中分割出真实背景后,再从真实背景中提取特征点作为图像的特征点,可以避免人像的干扰。
[0072]
至此,则完成了针对第1帧图像的处理。
[0073]
接着,参见图6,针对第2帧及其之后的任一帧图像(记为第n帧图像),主要包括如下处理过程:人像分割(如图6中的601)、相机位姿计算(如图6中的602)、背景投影(如图6中的603)以及前背景融合(如图6中的604)。
[0074]
其中,通过人像分割(如图6中的601),可将第n帧图像分割为人像和真实背景两部分。同样的,可采用portraitfcn、matting等人像分割算法来实现人像分割处理,下文中不再赘述。通过相机位姿计算(如图6中的602),可计算得到第n帧图像对应的相机位姿。即,相较于拍摄第1帧图像时的位置和姿态,相机在拍摄第n帧图像时的位置和姿态的变化。其中,图像对应的相机位姿中位置的变化可用平移向量表示,图像对应的相机位姿中姿态的变化可用旋转矩阵表示。在经过相机位姿计算得到第n帧图像对应的相机位姿后,可以通过背景投影来得到虚拟背景在第n帧图像对应的相机位姿下的投影画面,以实现虚拟背景与人像都在同样的相机位姿下拍摄得到,提高人像融合到虚拟背景中的贴合度。在背景投影(如图6中的603)的过程中,可以将虚拟背景中的各个像素点按照第n帧图像对应的相机位姿进行投影,得到投影画面。通俗而言,就是模拟相机从预设原点开始按照第n帧图像对应的相机位姿移动,并在移动完成后拍摄预设位置处的虚拟背景,从而得到投影画面。其中,第n帧图像对应的相机位姿移动包括:按照平移向量指示的位移平移以及按照旋转矩阵指示的角度变化旋转。实际实施时,可采用三维软件,并以预设原点、第n帧图像对应的相机位姿、虚拟背景以及虚拟背景所在预设位置作为输入数据,从而可输出得到虚拟背景的投影画面。最后,通过前背景融合(如图6中的604),将第n帧图像中的人像和投影画面融合得到替换背景
后的第n帧图像。同样的,可使用opencv,通过传统的图像处理实现背景替换,下文中不再赘述。
[0075]
参见图7,相机位姿计算(如图6中的602)进一步可以包括如下步骤:特征点提取(如图7中的701)、特征点匹配(如图7中的702)以及位姿求取(如图7中的703)。
[0076]
针对第n帧图像,特征点提取(如图7中的701)是提取第n帧图像的特征点,确定第n帧图像中的特征点的二维坐标以及特征值向量。其中,j表示第1帧图像的第j个特征点,j=[1,j],j为第n帧图像的特征点总数量。二维坐标表示第j个特征点在第n帧图像中的位置。特征值向量表示第j个特征点的颜色、亮度等特征。同样的,可采用尺度不变特征变换算法(scale invariant feature transform,sift)、快速特征点提取和描述算法(oriented fast and rotated brief ,orb)或者加速稳健特征算法(speeded-up robust features,surf)等特征提取算法来完成特征点提取,下文中不再赘述。
[0077]
针对第n帧图像,特征点匹配(如图7中的702)是将第n帧图像的特征点和起始帧图像的特征点匹配,得到若干组匹配点对。示例性的,可计算起始帧图像的特征点和第n帧图像的特征点两两之间的欧式距离,确定起始帧图像和第n帧图像的若干组匹配点对。例如,起始帧图像的一个特征点和第n帧图像的一个特征点的欧式距离记为,可通过如下公式(1)计算得到:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(1)其中,表示起始帧图像的一个特征点的特征值向量。
[0078]
利用上述公式(1),可计算得到起始帧图像中的特征点和第n帧图像中的特征点两两之前的欧式距离。利用欧式距离的计算结果,针对起始帧图像中的任一特征点(可记为),可从第n帧图像的所有特征点中找到与之间的欧式距离最小的特征点和距离次小的特征点和距离次小的特征点。并且,当和满足如下条件1时,则可以确定第n帧图像中的特征点和起始帧图像中的特征点为一组匹配点对。条件1如下:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
条件1,上述条件1中,m为预设阈值,0《m《1。
[0079]
反之,若和不满足条件1,那么则可确定第n帧图像中不存在与起始帧图像中的特征点构成匹配点对的特征点。
[0080]
经过上述过程中,则可以得到起始帧图像和第n帧图像的若干组匹配点对。
[0081]
应注意,上述得到匹配点对的方式仅为示例性的。实际实施时,本领域技术人员可采用其他技术来实现,本技术实施例并不以此为限。
[0082]
针对第n帧图像,位姿求取(如图7中的703)则是根据起始帧图像和第n帧图像的若干组匹配点对来计算第n帧图像对应的相机位姿。为了方便说明,将第n帧图像对应的相机
位姿中位置的变化用平移向量表示,将第n帧图像对应的相机位姿中姿态的变化用旋转矩阵表示。
[0083]
继续参见图7,在一些实施例中,相机位姿计算(如图6中的602)还包括位姿联合优化(如图7中的704)。针对第n帧图像,位姿联合优化是对位姿求取得到的和进行优化,以提高位姿计算的合理性。为了方便说明,将对优化后的结果用平移向量表示,将对优化后的结果用旋转矩阵。
[0084]
每一帧图像,都有对应的imu数据,imu数据包括加速度信号和角速度信号。将imu数据中的加速度信号对预设时间段求一次积分,可以得到预设时间段的速度。将imu数据中的加速度信号对预设时间段求两次积分,可以得到预设时间段的位移。将imu数据中的角速度信号对预设时间段求一次积分可得到预设时间段的角度变化。示例性的,若预设时间段为拍摄第1帧图像至拍摄第n帧图像的时间段,针对第n帧图像对应的imu数据中的加速度信号,将其在预设时间段内求两次积分,则可以得到拍摄第1帧图像至拍摄第n帧图像的时间段内的位移,记为。针对第n帧图像对应的imu数据中的角速度信号,将其在预设时间段内求一次积分,则可以得到拍摄第1帧图像至拍摄第n帧图像的时间段内的角度变化,记为。由于积分运算会造成误差,则与拍摄第1帧图像至拍摄第n帧图像的时间段内的真实位移是有差距的,与拍摄第1帧图像至拍摄第n帧图像的时间段内的真实角度变化是有差距的。但是,通常情况下,和都与真实值之间都只是存在因积分运算导致的一定误差,并不会与真实值之间存在很大的差异。也就是说,是接近于真实位移的,是接近真实角度变化的。应理解,位移即为位置的变化,角度变化即为姿态的变化。那么,如果位姿求取得到的与的差异较大,或者,与的差异较大,则表明位姿求取得到的和可能是不准确的。
[0085]
基于此,在本实施例中,针对第n帧图像,可以计算和的差值

tn,若

tn大于第一预设差值,如1cm,则确定需要优化相机位姿。若

tn小于第一预设差值,则确定无需优化相机位姿。和/或,针对第n帧图像,可以计算与的差值

rn,若

rn大于第二预设差值,如3
°
,则确定需要优化相机位姿。若

rn小于第二预设差值,则确定无需优化相机位姿。
[0086]
若确定需要优化相机位姿,则进一步计算得到优化后的平移向量和旋转矩阵。
[0087]
示例性的,可求取使如下重投影损失函数最小的和:其中,为第u帧图像的第v个特征点的二维坐标。s为起始帧的帧序号,例如,起始帧是第1帧,那么s=1。j为第u帧图像的特征点总数。为三维坐标经位姿变
换后投影到第u帧图像上的二维坐标。其中,三维坐标是起始帧上的特征点的三维坐标。可通过如下方法来确定:示例性的,可采用线性三角形法(linear triangulation methods,可简称为三角法)来计算三维坐标。三角法可以通过一组空间点在两帧图像中的二维坐标,求解这组空间点的世界坐标(即三维坐标)。也就是说,针对起始帧图像和第i帧图像的任一组匹配点对,都可以采用三角法计算得到该组匹配点对中两个特征点的三维坐标。每一组匹配点对的两个特征点中,有一个属于起始帧图像,那么则相当于计算得到了起始帧图像中一个特征点的三维坐标。如此,针对起始帧图像和第i帧图像的若干组匹配点对,采用三角法则可以计算得到起始帧图像中若干个特征点的三维坐标,即。在一种具体的实现方式中,第i帧图像是起始帧图像的下一帧图像。例如,起始帧是第1帧,那么第i帧是第2帧。又例如,下文中起始帧更新为第no帧,那么第i帧则是第n0+1帧。
[0088]
关于重投影损失函数,可采用高斯-牛顿法,l-m(levenberg-marquardt)方法等非线性优化方法来求取。在求取得到使重投影损失函数最小的和后,则可根据使投影损失函数最小的和计算和。例如,起始帧为第1帧时,可以直接将使投影损失函数最小的和输出为和。从而得到优化后的相机位姿。
[0089]
反之,若确定无需优化相机位姿,则无需计算使重投影损失函数最小的和,而可以直接将和输出为和。
[0090]
在另一些实施例中,也可以省略位姿联合优化的步骤。如此,可以简化视频处理的运算,节省运算资源。下文中,主要以包括位姿联合优化的步骤的实施例来说明本技术方案。
[0091]
继续参见图7,在一些实施例中,相机位姿计算(如图6中的602)还包括检测是否跟丢(如图7中的705)。检测是否跟丢是指检测第n帧图像和起始帧图像的差异是否满足预设条件。若满足预设条件,则表明第n帧图像和起始帧图像的差异较小,检测到未跟丢;若不满足预设条件,则表明第n帧图像和起始帧图像的差异较大,检测到跟丢。其中,第n帧图像和起始帧图像的差异可通过第n帧图像和起始帧图像的匹配点对的组数、前述根据匹配点对计算得到的第n帧图像对应的相机位姿和,和/或或者优化后的和来衡量。下面列举几种具体的检测方式:方式一,检测起始帧图像和第n帧图像的匹配点对的组数是否高于预设数量,如6组、8组、10组等。若未高于预设数量,则不满足预设条件。若高于预设数量,则满足预设条件。
[0092]
方式二,检测

tn是否大于第三预设差值,第三预设差值大于第一预设差值。例如,第一预设差值是1cm,第三预设差值是20cm。若

tn大于第三预设差值,表明与根据imu数据积分得到的位移的差距过大,即的计算出现了严重误差,极有可能是因为第n帧图像和起始帧图像的差异较大而导致的,则不满足预设条件。反之,则满足预设条件。和/或,检测

rn是否大于第四预设差值,第四预设差值大于第二预设差值。例如,第二预设
差值是3
°
,第四预设差值是10
°
。若

rn大于第四预设差值,表明与根据imu数据积分得到的位移的差距过大,即的计算出现了严重误差,极有可能是因为第n帧图像和起始帧图像的差异较大而导致的,则不满足预设条件。反之,则满足预设条件。
[0093]
方式三,检测位姿联合优化中重投影损失函数的最小值是否大于预设误差,如0.1。若重投影损失函数的最小值大于预设误差,则不满足预设条件。反之,则满足预设条件。
[0094]
应注意,在实际实施时,也可以将上述三种方式结合使用。例如,当通过任一种方式确定跟丢时,则认为检测到跟丢。反之,当通过所有方式均未确定跟丢时,才认为检测到未跟丢。
[0095]
继续参见图7,若检测到未跟丢,则可以将和输出为n帧图像对应的相机位姿。也就是说,将根据起始帧图像和第n帧图像的若干组匹配点对计算得到的第n帧图像对应的相机位姿(或者进一步优化后的相机位姿)输出为第n帧图像对应的相机位姿。若检测到跟丢,则根据imu数据计算相机位姿(如图7中的706),将和输出为第n帧图像对应的相机位姿。
[0096]
也就是说,对于未跟丢的情况,主要是将根据匹配点对计算得到的相机位姿,或者进一步优化后的相机位姿输出为第n帧图像对应的相机位姿。但是,对于跟丢的情况,主要是将根据imu数据计算得到的相机位姿输出为第n帧图像对应的相机位姿。
[0097]
至此,需要说明的是,通常情况下,相邻两帧图像的关联性较强,因此不会出现跟丢的情况。那么,针对起始帧的下一帧图像处理时,会检测到未跟丢。例如,起始帧是第1帧,那么通常在第2帧图像时会检测到未跟丢。
[0098]
在另一些实施例中,也可以省略检测是否跟丢的步骤。如此,可以简化视频处理的运算,节省运算资源。下文中,主要以包括检测是否跟丢的步骤的实施例来说明本技术方案。
[0099]
至此,则完成了针对第n帧图像的处理。
[0100]
下面,以n取不同值来进一步详细说明第2帧以及之后各帧图像的处理过程:针对第2帧图像,即n=2时,通过人像分割,可将第2帧图像分割为人像和真实背景两部分。
[0101]
然后,参见图8,针对第2帧图像,在相机位姿计算的过程中,经过特征点提取(如图8中的701a),可从第2帧图像的真实背景中提取到多个特征点,得到多个特征点的二维坐标和特征值向量。经过特征点匹配(如图8中的702a),可得到起始帧(此时为第1帧)图像和第2帧图像的若干组匹配点对。在得到起始帧图像和第2帧图像的若干组匹配点对之后,经过位姿求取(如图8中的703a),可得到第2帧图像对应的相机位姿。为了方便说明,将第2帧图像对应的相机位姿中位置的变化用平移向量t2表示,将第2帧图像对应的相机位姿中姿态的变化用旋转矩阵r2表示。
[0102]
应注意,此时起始帧是第1帧,那么第2帧为起始帧的下一帧。继续参见图8,在得到起始帧图像和第2帧图像的若干组匹配点对后,可以采用三角法计算得到起始帧(即第1帧)图像中多个特征点的三维坐标(如图8中的801),以用于后续优化相机位姿和用于后续
帧(如第3帧)图像对应的相机位姿的计算。
[0103]
具体的,将起始帧图像和第2帧图像的若干组匹配点对,通过对极几何约束求取出本质矩阵e。其中,t表示转置计算。由起始帧图像和第2帧图像的若干组匹配点对中,起始帧图像的若干特征点的二维坐标组成。由起始帧图像和第2帧图像的若干组匹配点对中,第2帧图像的若干特征点的二维坐标组成。并且,每组匹配点对包括的两个特征点的二维坐标在和中的位置对应。然后,分解本质矩阵e则可以得到平移向量和旋转矩阵。在一种具体的实现方式中,可以直接将平移向量视为t2。
[0104]
但是,本领域技术人员应该理解的是:旋转矩阵可以表示第2帧图像对应的相机位姿中姿态的变化。由于对极几何约束中使用的都是二维坐标,而仅通过二维坐标是无法获得真实物体的实际大小的,这就使得平移向量与第2帧图像对应的相机位姿中位置的变化之间有α的倍数关系。
[0105]
也就是说,和之间具有如下关系:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(2)基于此,在另一种具体的实现方式中,可以先求得α,然后根据α和计算得到。
[0106]
下面详细介绍一种求解的过程:针对第2帧图像对应的imu数据中的加速度信号,将其对拍摄第1帧图像至拍摄第2帧图像的时间段求两次积分,则可以得到拍摄第1帧图像至拍摄第2帧图像的时间段内的位移,记为。通常情况下,由于积分运算会造成误差,与拍摄第1帧图像至拍摄第2帧图像的时间段内的真实位移是有差距的。但是,为了求解得到,可以认为近似等于,并且都是拍摄第1帧图像至拍摄第2帧图像的时间段内的真实位移。那么,上述公式(2)变形可得到如下公式(3):
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(3)将和代入公式(3),可以求得α。然后,将α和代入公式(2),则可以求得。采用该实现方式,可以提高计算得到的相机位姿的合理性。
[0107]
继续参见图8,针对第2帧图像,在相机位姿计算的过程中,经过位姿联合优化(如图8中的704a)可以对和进行优化,得到优化后的平移向量和旋转矩阵,以提高位姿计算的合理性。经过检测是否跟丢(如图8中的705a)可以检测到第2帧图像和起始帧图像的差异是否满足预设条件。由于当前的起始帧为第1帧,第1帧图像和第2帧图像是相邻两帧图像,图像之间的关联性较强,那么,针对第2帧图像,在检测是否跟丢时,通常会检测到未跟丢。如图8所示,针对第2帧图像,检测是否跟丢的结果仅有“否”(即检测到未跟丢)的情况。因此,经过相机位姿计算处理,最终的第2帧图像对应的相机位姿即为位姿联合优化得到的和,而无需将根据imu数据计算得到和并输出。
[0108]
在经过相机位姿计算得到第2帧图像对应的相机位姿后,通过背景投影来得到虚
拟背景在第2帧图像对应的相机位姿下的投影画面。也就是模拟相机从预设原点开始按照和移动,并在移动完成后拍摄预设位置处的虚拟背景。最后,通过前背景融合,将第2帧图像中的人像和投影画面融合得到替换背景后的第2帧图像。
[0109]
至此,则完成了针对第2帧图像的处理。
[0110]
接着,针对第k帧图像(第一源图像),即n=k,k为大于或等于3的整数,且k小于或等于n0,n0为下一次检测到跟丢时的图像帧的帧序号。针对第k帧图像,通过人像分割,可将第k帧图像分割为人像和真实背景两部分。
[0111]
然后,参见图9,针对第k帧图像,经过特征点提取(如图9中的701b),可得到第k帧图像中多个特征点的二维坐标和特征值向量。经过特征点匹配(如图9中的702b),可得到起始帧(当前为第1帧)图像和第k帧图像的若干组匹配点对(可以称为多组第一匹配点对)。与第2帧图像的相机位姿计算过程不同的是:由于在针对第2帧图像的处理过程中,已经计算得到了起始帧图像中多个特征点的三维坐标,那么,针对第k帧图像,在位姿求取(如图9中的703b)时,可以结合起始帧图像中多个特征点的三维坐标以及起始帧图像和第k帧图像的若干组匹配点对来快速计算得到第k帧图像对应的相机位姿(可以称为第一相机位姿)。而无需计算中间量α,从而可以简化相机位姿的计算。为了方便说明,第k帧图像对应的相机位姿中位置的变化可以用平移向量表示,第k帧图像对应的相机位姿中姿态的变化可以用旋转矩阵表示。
[0112]
示例性的,可采用pnp(perspective-n-point)方法计算和。pnp方法是求解3d到2d点对运动的方法。它描述了当已知多个3d(即三维)空间点以及它们的投影位置时,如何估计相机位姿。在本实施例中,多个3d空间点即为,投影位置即为起始帧图像中指示的目标特征点在第k帧图像中的匹配点的二维坐标,采用pnp方法估计得到的相机位姿即为和。
[0113]
继续参见图9,针对第k帧图像,在相机位姿计算的过程中,经过位姿联合优化(如图9中的704b)可以对和进行优化,得到优化后的平移向量和旋转矩阵,以提高位姿计算的合理性。经过检测是否跟丢(如图9中的705b)可以检测到第k帧图像和起始帧图像的差异是否满足预设条件(可以称为第一预设条件)。示例性的,检测第1帧图像和第k帧图像的匹配点对的组数是否满足预设条件。若第1帧图像和第k帧图像的匹配点对的组数高于预设数量,如6组、8组、10组等,确定满足预设条件,则不存在跟丢。关于检测是否跟丢的具体实现,可参见前文关于第n帧图像的处理过程的相关说明,此处不多赘述。
[0114]
继续参见图9,若检测到未跟丢(即满足预设条件),则可以将和输出为第k帧图像对应的相机位姿。也就是说,将根据匹配点对计算得到的第k帧图像对应的相机位姿(或者进一步优化后的相机位姿)输出为第k帧图像对应的相机位姿。若检测到跟丢(即不满足预设条件),则进一步根据imu数据计算相机位姿(如图9中的706b)。如,将和输出为第k帧图像对应的相机位姿。
[0115]
在经过相机位姿计算得到第k帧图像对应的相机位姿后,通过背景投影来得到虚
拟背景在第k帧图像对应的相机位姿下的投影画面(可以称为第一背景)。也就是模拟相机从预设原点开始按照和或者和移动,并在移动完成后拍摄预设位置处的虚拟背景。最后,通过前背景融合,将第k帧图像中的人像和投影画面融合得到替换背景后的第k帧图像(可以称为第一目标图像)。
[0116]
至此,则完成了针对第k帧图像的处理。
[0117]
在n=k=n0时检测到跟丢后,针对第n0+1帧图像及之后的图像,若仍以第1帧图像作为起始帧,根据第n0+1帧图像及之后的图像与第1帧图像的若干组匹配点对来计算相机位姿。那么将因第n0+1帧图像及之后的图像与第1帧图像的差异很大,导致之后计算的相机位姿都存在严重误差。
[0118]
基于此,参见图10,当在n=k=n0时检测到跟丢后,则更新起始帧为第n0帧(如图10中的1001),然后则可以开始第n0+1帧图像(可以称为第二源图像)的处理。具体的,在更新起始帧后,与前文中对第2帧图像及第k帧图像的处理过程主要不同的点主要包括以下几处:第一处,在后续针对第n0+1帧至第n1帧(下一次检测出跟丢时的图像帧的帧序号)中任一帧图像处理时,以起始帧为第n0帧来计算相机位姿。示例性的,先计算相较于拍摄起始帧(即第n0帧)图像时的位置和姿态,相机在拍摄第n0+1帧至第n1帧中任一帧图像时的位置和姿态的变化。在此基础上经过位姿换算,“加上”新的起始帧(即第n0帧)图像对应的相机位姿,得到该任一帧图像对应的相机位姿。即,相较于拍摄第1帧图像时的位置和姿态,相机在拍摄该任一帧图像时的位置和姿态的变化。
[0119]
第二处,在针对第n0+1帧至第n1帧中任一帧图像的处理过程中,在特征点匹配时,需要将新的起始帧(第n0帧)图像的特征点和该任一帧图像的特征点进行匹配,而不是将第1帧图像的特征点和该任一帧图像的特征点进行匹配。
[0120]
第三处,在检测是否跟丢时,需要检测新的起始帧(第n0帧)图像与该任一帧图像的差异是否满足预设条件,而不是检测第1帧图像与该任一帧图像的差异是否满足预设条件。
[0121]
下面分别以n=n0+1和n=z(z在n0+2至n1中取值)来说明更新起始帧之后的处理过程。
[0122]
针对第n0+1帧图像,即n=n0+1时,通过人像分割,可将第n0+1帧图像分割为人像和真实背景两部分。
[0123]
然后,参见图11,针对第n0+1帧图像,在相机位姿计算的过程中,经过特征点提取(如图11中的701c),从第n0+1帧图像的真实背景中提取到多个特征点,得到多个特征点的二维坐标和特征值向量。经过特征点匹配(如图11中的702c),可以得到起始帧(当前为第n0帧)图像和第n0+1帧图像的若干组匹配点对(可以称为多组第二匹配点对)。
[0124]
应注意,此时起始帧是第n0帧,那么第n0+1帧为起始帧的下一帧。继续参见图11,在得到第n0帧图像和第n0+1帧图像的若干组匹配点对后,可以采用三角法计算得到起始帧(即第n0帧)中多个特征点的三维坐标(如图11中的1101),以用于后续优化相机位姿和用于后续帧(如第n0+2帧)图像对应的相机位姿的计算。
[0125]
继续参见图11,针对第n0+1帧图像,在位姿求取(如图11中的703c)时,先计算相较
于拍摄起始帧图像时的位置和姿态,相机在拍摄第n0+1帧图像时的位置和姿态的变化。为了方便说明,将相较于拍摄起始帧图像时的位置,相机在拍摄第n0+1帧图像时的位置的变化记为平移向量,将相较于拍摄起始帧图像时的姿态,相机在拍摄第n0+1帧图像时的姿态的变化记为旋转矩阵。然后,采用如下公式(4)进行位姿换算,“加上”新的起始帧(即第n0帧)图像对应的相机位姿,得到该任一帧图像对应的相机位姿,从而得到第n0+1图像对应的相机位姿(可以称为第二相机位姿):
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(4)上述公式(4)中,平移向量用于表示第n0帧图像对应的相机位姿中位置的变化,旋转矩阵用于表示第n0帧图像对应的相机位姿中姿态的变化。平移向量用于表示第n0+1帧图像对应的相机位姿中位置的变化,旋转矩阵用于表示第n0+1帧图像对应的相机位姿中姿态的变化。其中,和可以称为第三相机位姿。
[0126]
关于和的计算,与第2帧图像对应的相机位姿的计算过程类似,可通过对极几何约束以及α的求取来计算得到,此处不再赘述。
[0127]
继续参见图11,针对第n0+1帧图像,在相机位姿计算的过程中,经过位姿联合优化(如图11中的704c)可以对位姿求取得到的和进行优化,得到优化后的平移向量和旋转矩阵,以提高位姿计算的合理性。
[0128]
应注意,由于此时起始帧为n0帧,三维坐标为第n0帧图像中的特征点对应的三维坐标,那么计算得到的使重投影损失函数最小的也只是对的优化结果,以及也只是对的优化结果。因此,在得到使重投影损失函数最小的和之后,需要进一步将=,=代入上述公式(4)中,经过位姿换算得到的即为,即为。而不能直接将使重投影损失函数最小的和输出为和。
[0129]
继续参见图11,经过检测是否跟丢(如图11中的705c)可以检测到第n0+1帧图像和起始帧图像的差异是否满足预设条件(可以称为第二预设条件)。同样的,由于起始帧为第n0帧,第n0帧图像和第n0+1帧图像是相邻两帧图像,图像之间的关联性较强,那么,针对第n0+1帧图像,在检测是否跟丢时,通常会检测未跟丢。如图11所示,检测是否跟丢的结果仅有“否”(即检测到未跟丢)的情况。
[0130]
在经过相机位姿计算得到第n0+1帧图像对应的相机位姿后,通过背景投影来得到虚拟背景按照第n0+1帧图像对应的相机位姿投影得到的投影画面(可以称为第二背景)。也就是模拟相机从预设原点开始按照和移动,并在移动完成后拍摄预设位置处的虚拟背景。最后,通过前背景融合,将第n0+1帧图像中的人像和投影画面融合得到替换背景后的第2帧图像(可以称为第二目标图像)。
[0131]
至此,则完成了针对第n0+1帧图像的处理。
[0132]
针对第z帧图像(可以称为第四源图像),即n=z时,通过人像分割,可将第z帧图像分割为人像和真实背景两部分。
[0133]
然后,参见图12,针对第z帧图像,在相机位姿计算的过程中,经过特征点提取(如图12中的701d),从第z帧图像的真实背景中提取到多个特征点,得到多个特征点的二维坐标和特征值向量。经过特征点匹配(如图12中的702d),可以得到起始帧(当前为第n0帧)图像和第z帧图像的若干组匹配点对(可以称为多组第三匹配点对)。
[0134]
继续参见图12,针对第z帧图像,在位姿求取(如图11中的703d)时,可以先计算相较于拍摄起始帧图像时的位置和姿态,相机在拍摄第z帧图像时的位置和姿态的变化(可以称为第五相机位姿)。然后,进行位姿换算,“加上”新的起始帧(即第n0帧)图像对应的相机位姿,得到该任一帧图像对应的相机位姿,从而得到第z帧图像对应的相机位姿(可以称为第四相机位姿)。
[0135]
应注意,与对第k帧图像的处理类似的,由于在针对第n0+1帧图像的处理过程中,已经计算得到了起始帧图像中多个特征点的三维坐标,那么,针对第z帧图像,在位姿求取时,可以结合起始帧图像中多个特征点的三维坐标以及起始帧图像和第z帧图像的若干组匹配点对,来快速计算得到相较于拍摄第n0帧图像时,相机在拍摄第z帧图像时位置和姿态的变化。例如,采用pnp方法快速计算得到。而无需计算中间量α,从而可以简化相机位姿的计算。
[0136]
继续参见图12,针对第z帧图像,在相机位姿计算的过程中,经过位姿联合优化(如图12中的704d),可以对位姿求取得到的和进行优化,得到优化后的平移向量和旋转矩阵,以提高位姿计算的合理性。与针对第n0+1帧图像的处理类似的,在得到使重投影损失函数最小的和后,也需要进一步通过位姿换算来得到和。
[0137]
继续参见图12,经过检测是否跟丢(如图12中的705d)可以检测到第z帧图像和第n0帧图像的差异是否满足预设条件(可以称为第三预设条件)。
[0138]
若检测到未跟丢(即满足预设条件),则可以将和输出为第z帧图像对应的相机位姿。反之,若检测到跟丢(即不满足预设条件),则进一步根据imu数据计算相机位姿(如图12中的706d)。如,将和输出为第z帧图像对应的相机位姿。
[0139]
在经过相机位姿计算得到第z帧图像对应的相机位姿后,通过背景投影来得到虚拟背景在第z帧图像对应的相机位姿下的投影画面(可以称为第四背景)。也就是模拟相机从预设原点开始按照和或者和移动,并在移动完成后拍摄预设位置处的虚拟背景。最后,通过前背景融合,将第z帧图像中的人像和投影画面融合得到替换背景后的第z帧图像(可以称为第四目标图像)。
[0140]
至此,则完成了针对第z帧图像的处理。
[0141]
进一步的,针对第z帧图像,若在检测是否跟丢时检测到未跟丢,则针对下一帧图像,继续采用类似上述针对第z帧图像的处理过程来完成处理。若在n=z=n1时检测到跟丢,后续则更新起始帧为第n1帧,然后继续针对第n1+1帧图像至第n2帧图像(下一次检测到跟丢时的图像帧)进行处理。其处理过程类似上述第n0+1帧图像至第n1帧图像的处理过程,此
处不再一一罗列。以此类推,至此完成待处理视频的所有帧图像的处理。
[0142]
经过上述处理,则可输出得到由替换了背景后的各帧图像组成的视频。并且,每一帧替换了背景后的图像中,前景和背景都是在同样的相机位姿下拍摄得到的。因此,前景和背景的贴合度会较高,真实性更强。示例性的,图13为针对待处理视频中的两帧图像替换背景后的效果图,左右两幅效果图的背景并非一样,而是在尺寸、元素、远近效果上存在差异。如,左边的第一图像中背景包括的元素的尺寸与人像的尺寸相适应,都较小;而右边的第一图像中背景包括的元素的尺寸与人像的尺寸相适应,都较大。从而使得真实性更强。
[0143]
至此,需要说明的是,前文中仅以第一源图像是第k帧图像,第二源图像是第n0+1帧图像来说明,但是本技术实施例并不以此为限。实际实施时,第一源图像和第二源图像可以是待处理视频的第2帧及之后的图像中的任意两帧图像。例如,第一源图像可以是第2帧图像,第二源图像可以是第5帧图像。又例如,第一源图像是第4帧图像,第二源图像是第3帧图像。也就是说,采用本技术实施例的方法,针对待处理视频的中的第一源图像和第二源图像,在替换背景后,可以得到在对应的相机位姿下投影得到的背景。例如,针对第一源图像,则替换后的背景可以是第一相机位姿下投影得到的第一背景,第一相机位姿是第一源图像对应的相机位姿。针对第二源图像,则替换后的背景可以是第二相机位姿下投影得到的第二背景,第二相机位姿是第二源图像对应的相机位姿。如此,可以使针对不同源图像替换后的背景与其相机位姿相匹配,提高处理后的视频的真实性。
[0144]
进一步的,在实际的拍摄场景中,由于太阳、灯光等照射,使得拍摄的人像会存在光影。基于此,在一些实施例中,参见图14,针对待处理视频的任一帧图像(如第n帧图像),在经过前文中的处理得到替换背景后的第n帧图像后,可以进行光效渲染(如图14中的1401),为替换背景后的第n帧图像添加第n帧图像中的人像前景的光影效果,进一步提升图像的真实性。为了方便说明,可以将第一源图像中的人像前景称为第一人像前景,将第二源图像中的人像前景称为第二人像前景。
[0145]
参见图15,光效渲染进一步包括人像建模(如图15中的1501)、光照估计(如图15中的1502)和渲染(如图15中的1503)三个过程。
[0146]
其中,光照估计是估计拍摄第n帧图像时光源的位置。示例性的,可以训练得到预设人工智能(artificial intelligence,ai)模型,该预设ai模型具有根据输入的图像,预估输出光源位置的功能。本技术实施例中,可以获取多个图像样本,还可以标注每个图像样本对应的光源位置样本。然后,将多个图像样本作为输入样本,将多个光源位置样本作为输出样本,训练神经网络模型。当实际的训练输出与输出样本的差距达到预设目标后,结束训练,结束训练时得到的模型即为预设ai模型。之后,则可以将第n帧图像输入到预设ai模型,运行该预设ai模型,则可输出得到拍摄第n帧图像时光源的位置。
[0147]
其中,人像建模是根据从第n帧图像中分割出的人像进行建模,得到二维人像对应的三维模型。
[0148]
其中,渲染是根据光源位置和三维模型确定人像的光影。即,在第一图像(即替换背景后的第n帧图像)中渲染当光源在光源位置下时,照射到人像位置处的三维模型后形成的阴影,得到第二图像(即具有光影的图像)。例如,第二图像如图16所示,包括阴影


[0149]
至此,为了便于对本技术方案的理解,下面结合图17,来示例性的说明本技术方案的完整实现过程。如图17所示,对待处理视频的第n帧图像完成人像分割处理,分割得到人
像和背景两部分。根据分割出的背景和imu数据完成相机位姿计算处理,计算得到平移向量和旋转矩阵。对虚拟背景完成背景投影处理,将虚拟背景中的各个点按照平移向量和旋转矩阵来投影,则得到对应虚拟背景的投影画面。针对投影画面和人像分割处理得到的人像完成前背景融合处理,得到替换背景后的第n帧图像,即图17中的第一图像。第一图像包括人像前景和替换后的背景(投影画面)的图像。进一步的,可针对第一图像完成光效渲染处理,为第一图像添加人像在光源(如太阳、灯光)照射下的光影,生成具有光影效果的图像,即图17中的第二图像。其中,在光效渲染的过程中,可对人像建模,生成人像的三维模型,以模拟三维的人体。以及,可对第n帧图像完成光照估计,预估得到光源位置。然后在光效渲染处理时,模拟光源在光源位置照射到三维模型形成的阴影,即可得到人像在光源(如太阳、灯光)照射下的光影。
[0150]
本技术实施例还提供一种电子设备,该电子设备可以包括:存储器和一个或多个处理器。存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中设备执行的各个功能或者步骤。
[0151]
本技术实施例还提供一种芯片系统,如图18所示,该芯片系统1800包括至少一个处理器1801和至少一个接口电路1802。处理器1801和接口电路1802可通过线路互联。例如,接口电路1802可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路1802可用于向其它装置(例如处理器1801)发送信号。示例性的,接口电路1802可读取存储器中存储的指令,并将该指令发送给处理器1801。当所述指令被处理器1801执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本技术实施例对此不作具体限定。
[0152]
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的图像处理方法。
[0153]
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的图像处理方法。
[0154]
另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的图像处理方法。
[0155]
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0156]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0157]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划
分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0158]
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0159]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0160]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0161]
最后应说明的是,以上实施例仅用以说明本技术的技术方案而非限制,尽管参照较佳实施例对本技术进行了详细说明,本领域的普通技术人员应当理解,可以对本技术的技术方案进行修改或等同替换,而不脱离本技术技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1