图像合成方法和设备与流程

文档序号:18452209发布日期:2019-08-17 01:20阅读:170来源:国知局
图像合成方法和设备与流程

本公开总体涉及图像处理技术,更具体地涉及自动图像合成方法和设备。



背景技术:

在许多商业、工业和科学应用中,通常期望从不同的图像帧中提取出关注对象,并将这些对象组合为一个图像帧。

例如,随着运动摄像机和基于智能电话的摄像机的流行,所谓的“多重摄影(multiplicity photography)”越来越引起重视。特别地,为了执行多重摄影,人们可能对对象(例如,拍摄者本人)多次拍照,该对象在场景中的不同位置处和/或以不同姿势出现。然后人们将所述对象的图像组合成一张照片。所得到的照片示出了同一对象的多个图像,这看起来以及与其他人分享而言都很有趣。

又如,在体育报道中,摄影者可以拍摄运动员的动作(例如,扣篮)的多个瞬间,然后在一张照片中示出所述多个瞬间。例如,产品设计者可以拍摄产品的不同面,然后将产品的多个视图组合成一张图片进行比较。再如,生物化学家可以记录在细胞中游动的分子的视频片段,然后使用视频片段来生成示出在细胞内多个位置处出现的同一分子的图像。这样,生物化学家可以方便地研究在分子移动期间分子的构造变化。

所公开的方法和系统解决了以上列出的一个或多个需求。



技术实现要素:

与本公开的一个实施例一致,提供了一种图像合成方法。所述方法可以包括:接收具有公共背景的多个输入帧。所述方法还可以包括:确定所述输入帧的数量。所述方法还可以包括:基于所述数量,选择检测所述输入帧的前景的方法。所述方法还可以包括:利用所选的方法来生成输出帧,该输出帧包括所述前景中多个前景的组合。

与本公开的另一实施例一致,提供了用于合成图像的设备。所述设备可以包括存储指令的存储器。所述设备还可以包括处理器,该处理器被配置为执行指令以:接收具有公共背景的多个输入帧;确定所述输入帧的数量;基于所述数量,选择检测所述输入帧的前景的方法;以及利用所选的方法来生成输出帧,该输出帧包括所述前景中多个前景的组合。

与本公开的又一实施例一致,提供了存储用于合成图像的指令的非瞬态计算机可读存储介质。所述指令使处理器执行操作,所述操作包括:接收具有公共背景的多个输入帧;确定所述输入帧的数量;基于所述数量,选择检测所述输入帧的前景的方法;以及利用所选的方法来生成输出帧,该输出帧包括所述前景中多个前景的组合。

可以理解,上述一般描述和后续详细描述都只是示例性和说明性的,而并不限制所要求保护的发明。

附图说明

附图被并入且构成了本说明书的一部分,其示出了与本公开一致的实施例,并与说明书一起用于解释本公开的原理。

图1是根据示例性实施例的用于合成图像的系统的框图。

图2是根据示例性实施例的图像合成方法的流程图。

图3是根据示例性实施例的用于减小图像帧的图像大小的方法的流程图。

图4A-4C是根据示例性实施例的示出对图3的方法的实现的示意图。

图5是根据示例性实施例的基于中值滤波器的前景检测方法500的流程图。

图6是根据示例性实施例的示出对图5的方法的实现的示意图。

图7是根据示例性实施例的基于帧差法的前景检测方法的流程图。

图8是根据示例性实施例的施加到两个图像帧的帧差过程的示意图示。

图9是根据示例性实施例的基于边缘滤波器的前景检测方法900的流程图。

图10是根据示例性实施例的背景和前景生成的示意图示。

图11A-11D示出了利用所公开的方法实现的示例性结果。

具体实施方式

现在将详细参考示例性实施例,在附图中示出了所述实施例的例子。后续描述参考附图,除非另有说明,否则在不同的图中的相同附图标记表示相同或相似的元件。在示例性实施例的后续描述中阐述的实现方式并不表示与本发明一致的所有实现方式。相反,它们仅是与在所附权利要求中记叙的本发明相关的方面相一致的设备和方法的例子。

本公开涉及用于自动合成图像的方法和系统。在本公开中使用的“合成图像”或“图像合成”指的是从多个源帧提取对象(即,前景)并将提取出的对象合成到单个输出帧的技术。源帧可能具有相同的背景场景,但是具有在背景场景中不同位置出现的对象。

图像合成通常要求一系列复杂的手动操作。例如,一种方法要求用户利用诸如“蛇形(Snakes)”或“图割”的技术手动从多个源帧逐一切出关注对象。然后,用户需要将提取出的对象粘贴到同一图像帧上。这种方法要求用户仔细识别和提取每个源帧的前景,因此这是一项沉闷且容易出错的任务。

另一种方法是从短视频片段合成图像。特别地,所述方法将基于重要性的权重分配给不同的视频帧和每帧中的不同像素。然后,所述方法基于权重,不同地组合每个视频帧和像素贡献。该方法便于使用。然而,当来自若干视频帧的对象在空间上重叠时,加权组合可能使得重叠区域具有较差的质量或看起来不真实。为了解决这个问题,用户通常不得不从组合过程中手动排除一个或多个视频帧。

另一方法使用多个可购得的摄像机、智能电话、应用等提供的全景摄影特征。特别地,可以拍摄覆盖场景的不同部分的多个源帧,然后将其拼接(即,结合到一起)以形成全景。然而,该方法使用起来是复杂且费时的。例如,如果用户自身是需要被合成的目标物体,那么他需要不断移动位置,以保证自己出现在每一幅需合成的源图像中。此外,如果两个相邻源帧在空间中没有很好地分离,则重叠区域可能因为图像质量和/或在源帧间的照明条件的差异而具有较差的视觉效果。

本公开提供了用于解决一个或多个上述问题的技术过程。特别地,所公开的方案自动提取多个源帧的前景,并将提取出的前景组合到输出帧中。基于源帧的数量,所公开的过程可以自动选择适当的方法来检测前景并确定前景的位置信息。基于所述位置信息,所公开的过程可以自动确定前景之间的重叠量,并从组合过程中排除引起高度重叠的前景。然后,所公开的过程可以在输出帧中自动逐一地组合剩余前景。如下文更详细描述的,所公开的过程可以消除复杂的手动操作和后期制作过程的需要,并因此改善用户体验。此外,所公开的过程可以快速执行,并具有较低的计算负荷,因此适合用于便携式设备(如智能电话)中。

图1是根据示例性实施例的用于合成图像的系统100的框图。参考图1,系统100包括摄像机110、计算设备120、网络130和用户设备140。

摄像机110是被配置为捕捉图像帧的设备,并可以是静物摄像机、视频摄像机或其它成像设备。如本文所使用的,“图像帧”可以整体或部分地指代静态或动态视觉表示,包括但不限于照片、图片、图形、视频帧、全息图、虚拟现实图像、增强现实图像、其它视觉表示或其组合。仅示例而言,摄像机110可以被配置为捕捉具有原始分辨率1024×768、3840×2160、7680×4320或其它适当分辨率的图像帧。

例如,摄像机可以是数字摄像机、动作摄像机、网络摄像机、智能电话、平板计算机、膝上型计算机、装备有网络摄像机的视频游戏控制台等。摄像机110可以被配置为经由网络130将捕捉到的图像帧发送到计算设备120和/或用户设备140。在一个实施例中,摄像机110可以被配置为将图像帧流实时发送给计算设备120和/或用户设备140。

在一些实施例中,摄像机110和计算设备120可以被封装到单个设备中,该单个设备被配置为执行在本申请中公开的摄像机110和计算设备120的功能。在一些实施例中,摄像机110还可以包括一个或多个处理器以及存储器,其被配置为执行在本申请中描述的一个或多个方法。例如,摄像机110可以被配置为生成包含相同对象的多个源帧,并将图像帧发送给用户设备140。

计算设备120可以被配置为分析从摄像机110接收到的源帧。例如,计算设备120可以被配置为将源帧转换为具有较低分辨率(例如426×240)的版本。计算设备120还可以被配置为确定源帧的数量,并基于所述数量选择合适的前景检测方法来检测和提取源帧的前景。计算设备120还可以被配置为生成包含一些或所有提取出的前景的输出帧。

在一些实施例中,计算设备120可以是网络摄像机、数字摄像机、计算机服务器、台式计算机、笔记本计算机、平板计算机、移动电话、个人数字助理(PDA)等。计算设备120包括处理器121、存储器122以及通信端口123等。在操作中,处理器121根据本文公开的技术执行计算机指令(即,程序代码),并执行功能。计算机指令包括例程、程序、对象、部件、数据结构、过程、模块和函数,其执行在本文中的特定功能。

例如,处理器121可以接收并分析由摄像机110捕捉到的多个源帧,并检测所述源帧的前景,如本公开别处所描述的。处理器121可以包括一个或多个已知的处理设备(例如,微处理器)或作为所述处理设备的一部分。在一个实施例中,处理器121可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等。

存储器122被配置为存储将被处理器121执行的一个或多个计算机程序,以实现本文公开的示例性功能。例如,存储器122可以被配置为存储可由处理器121执行的程序,以检测和提取源帧的前景。存储器122还可以被配置为存储处理器121在本公开中描述的方法中使用的数据和/或参数。例如,存储器122可以用于存储提取出的前景的位置信息。处理器121可以访问位置信息,并基于所述位置信息来确定前景之间的重叠程度。

存储器122可以是易失性或非易失性的、磁、半导体、磁带、光、可移除、不可移除或其它类型的存储设备或有形(即,非瞬态)计算机可读介质,包括但不限于,ROM、闪存、动态RAM以及静态RAM。

通信端口123可以被配置为通过网络130将数据发送给摄像机110和用户设备140等或者从其接收数据。网络130可以是允许发送和接收数据的任何类型的有线或无线网络。例如,网络130可以是有线网络、局域无线网络(例如,蓝牙TM、WiFi、近场通信(NFC)等)、蜂窝网络、互联网等或者是其组合。还可以想到其它提供在分离部件之间传输数据的介质的已知的通信方法。

用户设备140可以被配置为从摄像机110和/或计算设备120经由网络130接收数据(例如,图像和/或视频数据)。用户设备140还被配置为向用户呈现图像和/或视频片段。用户设备140还被配置为与用户交互以经由其用户界面(UI)呈现图像和/或视频片段。例如,用户设备140可以在UI中显示合成帧。在一个实施例中,用户设备140还可以显示源帧,从而用户可以指定将要被组合的前景,和/或选择一组源帧以执行图像合成。例如,UI可以包括触摸屏,用户可以在其上选择进行图像合成的源帧。

用户设备140可以是任何类型的计算设备。例如,用户设备140可以是智能电话、平板计算机、个人计算机、可穿戴设备(例如,谷歌眼镜TM或智能手表和/或附属部件)等,或其组合。在一个实施例中,用户设备140和计算设备120可以一起包含于计算设备中,所述计算设备被配置为执行如本申请中所公开的用户设备140和计算设备120的示例性功能。用户设备140包括处理器141、存储器142、通信端口143、输入144和显示器145等。

处理器141根据本文公开的技术执行计算机指令(程序代码),并执行用户设备140的功能。例如,处理器141可以被配置为执行所公开的图像合成方法。处理器141还可以配置为经由网络130从计算设备120和/或摄像机110接收图像数据。处理器141还可以控制显示器145以在UI中呈现图像数据。处理器141还可以被配置为经由输入144从用户接收一个或多个输入,并控制显示器145基于接收到的输入在UI中呈现图像和/或视频片段。处理器141可以包括一个或多个已知的处理设备(例如,微处理器)或作为所述处理设备的一部分。在一些实施例中,处理器141可以包括任意类型的单核或多核处理器、移动设备微控制器、中央处理单元等。

存储器142被配置为存储由处理器141执行的一个或多个计算机程序,从而实现在本申请中公开的用户设备140的示例性功能。例如,存储器142可以被配置为存储由处理器141执行的程序,从而实现所公开的图像合成方法。存储器142还可以被配置为存储处理器141执行的程序,以控制显示器145呈现图像和/或视频片段。存储器142还可以被配置为存储处理器141在本公开中描述的方法中所使用的数据和/或参数。存储器142可以是易失性或非易失性的、磁、半导体、磁带、光、可移除、不可移除或其它类型的存储设备,或有形(即,非瞬态)计算机可读介质,包括但不限于:ROM、闪存、动态RAM以及静态RAM。

通信端口143被配置为通过网络130向摄像机110和用户设备140等发送数据或从其接收数据。输入144被配置为从用户接收输入,并将与所接收到的输入相关的数据/信号发送到处理器141以供进一步处理。例如,用户可以使用触摸屏(即,输入144的一部分)来发起执行所公开的图像合成过程的应用。作为响应,输入144将与用户的动作相关的数据发送到处理器141,然后处理器141可以开始处理源帧。显示器145可以是被配置为基于处理器141所馈送的显示数据在UI中显示图像和/或视频片段等的任何设备。

图2是根据示例性实施例的图像合成方法200的流程图。可以通过相同或不同设备执行方法200的步骤。在示例性实施例中,方法200可以由摄像机110、计算设备120和用户设备140中的一个或多个执行。仅出于说明目的,后续描述假设方法200由用户设备140执行。

参考图2,方法200可以包括以下步骤。在步骤202中,用户设备140获得多个源帧。在一个实施例中,用户设备140可以安装有用于执行方法200的应用。当用户经由输入144激活应用时,用户设备140可以用各种方法获得多个源帧。例如,用户设备140可以经由网络130连接到摄像机110。摄像机110可以捕获源帧,并将源帧实时发送到用户设备140。作为另一示例,源帧可以预先存储在存储器142中。用户设备140可以直接访问存储器142来取回源帧。

因为期望提取源帧的前景并将其放置在同一输出帧中,所以输出帧和源帧应该覆盖相同的背景场景,即,包含相同的背景。此外,源帧应该具有相同的图像大小。在一些实施例中,可以通过固定摄像机110的成像方向和拍摄参数,同时改变感兴趣对象的位置和/或姿势(即,前景),来捕捉源帧。例如,摄像机110可以放置在三脚架上以避免不想要的振动和移动,从而捕捉到的源帧可以精确地包含相同的背景。

在步骤204中,用户设备140减小源帧的图像大小。

因为检测前景涉及帧中前景的像素位置而不是前景的图像细节,所以用户设备140可以在执行前景检测之前减小源帧的大小(即,分辨率)。例如,如果源帧初始具有3840×2160的分辨率,则用户设备140可以将分辨率减小为426×240。用户设备140可以基于对较低分辨率源帧的分析而获得前景的像素位置信息。用户设备140然后可以根据所获得的像素位置信息,从较高分辨率(例如,3840×2160)的源帧中提取前景。以这种方式,可以降低执行前景检测的计算需求,同时没有牺牲合成图像的质量。

用户设备140可以利用任何合适的方法来减小源帧的图像大小。例如,图3是根据示例性实施例的用于减小源帧图像大小的方法300的流程图。参考图3,方法300可以包括以下步骤302-304。

在步骤302中,用户设备140根据采样规则从源帧中采样一组像素。所述采样规则例如可以是“在列和行方向隔像素选择”。

每个像素具有表示像素特定属性的一个或多个像素值,例如像素的亮度(即,辉度)和色度(即,颜色)。仅出于说明的目的,后续描述假设像素值是灰度值,最低可能像素值是0(黑色),且最大可能像素值是255(白色)。灰度值表示像素的亮度。

图4A-4C是示出根据示例性实施例的方法300的实现的示意图。图4A示出了源帧的一部分。参考图4A,每个小方块对应于像素。源帧的这一部分包括32个像素。每个像素给定了序号。在图示例子中,用户设备140从图像中隔像素选择。因此,参考图4B,选择了8个像素,即,像素1、3、5、7、17、19、21、23。以这种方式,源帧的大小成比例减小。

在步骤304中,用户设备140对每预定数量的经采样的像素的像素值进行平均。例如,所述预定数量可以是“4”。因此,用户设备140可以将每四个所选像素分组到一起,并计算这四个所选像素的像素值的算数平均值。用户设备140可以使用平均的像素值来生成减小的源帧。

参考图4C,通过对初始像素1、3、17和19的像素值求平均,以及对初始像素5、7、21和23的像素值求平均,用户设备140将八个所选的像素减少到两个像素。因此,剩余两个像素。每个剩余像素具有平均的像素值。以这种方式,进一步减小源帧的大小。从图4A-4C可以看出,减小的帧的大小由所选像素的数量而不是初始源帧的大小而确定。

方法300通过选择性对像素采样然后对经采样的像素的像素值求平均,来减少源帧中像素的数量。这样,方法300不仅成比例地减小源帧的图像大小,而且保持了在源帧中示出的不同模式。虽然在该减小期间可能会丢失一些纹理细节,但是保持了前景和背景之间的纹理差别,从而允许检测到前景。因此,在所公开的运动确定方法中使用减小图像可以降低计算工作负荷,但是仍会提供可靠的结果。

返回参考图2,实践中,步骤204是可选的。因此,在后续描述中使用的术语“源帧”可以指代初始(即,原始或较高分辨率)源帧或减小的(即,较低分辨率)源帧。除非不同分辨率对实现公开方案而言十分关键的情形,否则后续描述并不区分初始源帧和减小的源帧。

在步骤206中,用户设备140确定源帧的数量N。当N>5时,方法200进行到步骤208。当5≥N≥3时,方法200进行到步骤210。当N=2时,方法200进行到步骤212。

在步骤208中,当N>5时,用户设备140使用基于中值滤波器的前景检测方法来检测并提取源帧的前景。

在检测到每个源帧的前景之前,用户设备140需要学习背景场景。可以将中值滤波器应用于源帧以获得表示源帧的背景的参考帧。特别地,对于每个像素,中值滤波器取源帧中对应像素的像素值的中值。在为每个像素确定了中值像素值之后,用户设备140可以生成包括中值像素值的背景帧。

中值滤波可以去除极值点。除非源帧的前景完全重叠(即,具有相同的像素位置),否则当源帧的数量足够大时,与像素相关联的所有像素值中的像素极值可能对应于前景。因此,中值像素值可能对应于背景。此外,除了去除对应于前景的像素值外,中值滤波还去除最大噪声波动。因此,通常,使用的源帧越多,中值像素值能够越接近地表示背景。实践中,当N>5时,中值滤波器可以视为用于获得背景帧的可靠方法。

图5是根据示例性实施例的基于中值滤波器的前景检测方法500的流程图。参考图5,方法500可以包括以下步骤502-508。

在步骤502中,用户设备140用结合图6描述的方式确定源帧的中值像素值。

在步骤504中,用户设备140生成包括中值像素值的背景帧。

图6是根据示例性实施例的示出用于生成背景帧的基于中值滤波器的过程的示意图。仅出于说明的目的,假设图2中的源帧具有2×2像素的大小,其标记为a、b、c和d。如图6所示,将七个源帧601-607表示为七个2×2矩阵,每个小方形中的数字表示对应像素的像素值。用户设备140处理源帧601-607的像素值并构造2×2矩阵,其构成了参考背景帧610。

特别地,对于参考背景帧610的每个像素am、bm、cm和dm,用户设备140计算像素值,该像素值等于源帧601-607的对应像素的中值。例如,参考背景帧610的左上像素am的像素值是28,即,帧601-607的对应的左上像素a1–a7的像素值11、199、175、26、30、12和20的中值。

继续参考图6,虽然每个源帧601-607可以包含前景,例如,源帧601中的像素值255以及源帧603中的像素值175,但是前景的像素值是与每个像素相关联的一组像素值中的最大值,并因此由中值滤波器进行滤波。结果背景帧610不包含对应于前景的任意像素值。

可以通过等式1表示步骤502-504:

BG=Median(I1,...,Ii,...,IN) 等式1

其中“BG”表示背景帧,而“Ii”表示源帧。

在步骤506中,用户设备140从每个源帧中减去背景帧,以生成相应的减去背景帧。

为了执行源帧的背景减去,用户设备140可以计算源帧中像素值和背景帧中对应像素值之间的绝对值差。绝对差是在0-255之间的值,并因此形成灰度帧。用户设备140然后可以将绝对差转换为二进制值。

特别地,用户设备140可以将所述绝对值差与预定阈值进行比较。用户设备140然后可以将大于或等于预定阈值的绝对值差转换为第一值,例如值“1”。用户设备还可以将小于预定阈值的绝对值差转换为第二值,例如,值“0”。结果二进制值形成二进制帧。这种二进制转换可以消除像素值中的噪声。此外,如果前景对应于移动对象,则二进制转换能够消除由移动对象所引起的阴影。用户设备140可以将二进制帧当作相应源帧的背景减去帧。

在步骤508中,基于相应的背景减去帧,用户设备140检测每个源帧的前景。

背景减去帧呈现前景和背景的良好分离。例如,在背景减去帧中,用户设备140可以将具有值0的像素视为背景且将具有值1的像素视为前景。这样,用户设备140可以检测每个源帧的前景。

可以通过等式2表示步骤506-508:

Fi=Difference(Ii,BG) 等式2

其中“Fi”表示从差帧中检测到的前景。

在步骤210(图2)中,当5≥N≥3时,用户设备140使用基于帧差法的前景检测方法来检测和提取源帧的前景。

图7是根据示例性实施例的基于帧差法的前景检测方法700的流程图。参考图7,方法700可以包括以下步骤702-704。

在步骤702中,用户设备140计算每两个源帧之间的差,以生成多个差帧。

可以用类似于步骤506(图5中的方法500)的方式实现步骤702。特别地,用户设备140可首先计算两个源帧之间的逐像素绝对值差。用户设备140然后可以将绝对值差与预定阈值进行比较,并将每个绝对值差转换为二进制值。以这种方式获得的差帧是二进制帧。例如,在每个差帧中,用户设备140可以将具有值0的像素当作背景,且将具有值1的像素当作前景。

可以用等式3表示步骤702:

Dij=Difference(Ii,Ij) 等式3

其中“Dij”表示根据源帧Ii和Ij生成的差帧。

在步骤704中,用户设备140基于与源帧相关联的至少两个差帧来检测每个源帧的前景。

差帧Dij包含源帧Ii的前景和源帧Ij的前景,但是并不分辨前景和源帧之间的对应关系。为了确定对应关系,用户设备140可以使用另一差帧,例如根据源帧Ii和Ik计算出的Dik。差帧Dik包含源帧Ii的前景和源帧Ik的前景。因此,Dij和Dik公共的前景是源帧Ii的前景,也就是,用户设备140可以检测Dij中的前景与Dik中的前景之间的重叠,并将前景的重叠部分当作源帧Ii的前景。用户设备140还可以检测重叠部分的像素位置,并将其用作源帧Ii的前景的像素部分。

可以通过等式4表示上述过程:

Fi=Common(Dij,Dik) 等式4

在一些实施例中,用户设备140可以使用与源帧Ii相关联的多于两个的差帧来确定前景Fi,从而实现较高的检测准确度。

作为对实现方法700的图示,如果使用了三个源帧,则用户设备140可以首先根据后续等式5生成三个差帧:

D12=Difference(I1,I2)

D23=Difference(I2,I3)

D31=Difference(I3,I1) 等式5

用户设备140然后可以根据等式6确定每个源帧的前景:

F1=Common(D12,D31)

F2=Common(D12,D23)

F3=Common(D13,D31) 等式6

如该例子所示,方法700可应用于使用多于两个源帧的情形。在实践中,当5≥N≥3时,由于源帧数量较少,所以基于中值滤波器的前景检测方法(例如,方法300)可能不适合,但是基于帧差法的前景检测方法(例如,方法700)可以提供良好的结果。

在步骤212(图2)中,当N=2时,用户设备140使用基于边缘滤波器的前景检测方法来检测和提取源帧的前景。

两个源帧只能用于生成一个差帧。因此,如在步骤704(图7)中所讨论的,用户设备140不能确定在差帧中示出的前景和相应的源帧之间的对应关系。这一困难将在图8中进一步示出。

图8是施加到两个源帧的帧差过程的示意图示。参考图8,当仅有两个源帧801和802可用时,用户设备140可以基于源帧801和802计算差帧810。差帧810可以包含两个前景11和12(即,两个白色区域)。传统上,用户必须手动确定和设置前景和源帧之间的对应关系。为了最小化用户输入,本公开提供了用于确定对应关系的自动实现的方法。

图9是根据示例性实施例的基于边缘滤波器的前景检测方法900的流程图。例如,当仅有两个源帧可用于图像合成时,可以使用方法900。参考图9,方法900可以包括以下步骤。

在步骤902中,用户设备140计算两个源帧之间的差以生成差帧。步骤902的实现类似于步骤702(图7中的方法700)。差帧可以包括两个前景,每个对应于两个源帧之一。两个前景可以彼此很好地分离,如在差帧810(图8)中的前景11和12。两个前景还可以具有一些重叠。在这种情况下,重叠区域可以被示为在两个白色区域之间的黑色区域。

在步骤904中,用户设备140搜索两个源帧中两个前景的边缘。因为源帧中背景和前景通常具有不同的亮度和颜色,所以源帧中的发生不连续性的点线(即,边缘)(例如,颜色或亮度的急剧变化)可以对应于前景的边界。用户设备140可以使用边缘滤波器,例如Laplacian滤波器、Sobel滤波器以及Canny边缘滤波器,来检测图像帧是否以及在何处包含边缘。

在两个源帧的每一个中,用户设备140可以在与差帧内的两个前景的边缘相对应的区域中运行边缘滤波器。也就是,用户设备140不需要在整个源图像上运行边缘滤波器,因此可以节省计算时间。

基于步骤904的搜索结果,用户设备140在步骤906处确定在差帧中的前景与两个源帧之间的对应关系。

参考图8中所示的例子,当用户设备140在源帧801和802中运行边缘滤波器以检测前景11时,从源帧802返回的值可能高于从源帧801返回的值。因此,用户设备140可以确定前景11属于源帧802。类似地,当用户设备140运行边缘滤波器来检测前景12时,从源帧801返回的值可能高于从源帧802返回的值。因此,用户设备140可以确定前景12属于源帧801。

在确定了前景11、12和源帧801、802之间的对应关系之后,用户设备140可以容易地操纵源帧来生成背景帧或显示两个前景11、12的帧。

图10是关于背景和前景生成的示意图示。参考图10,基于对应关系,用户设备140可以确定前景11位于源帧802的左侧,并且前景12位于源帧801的右侧。因此,用户设备140可以组合源帧801的左侧和源帧802的右侧以生成仅示出背景的帧803。类似地,用户设备140可以组合源帧801的右侧和源帧802的左侧,以生成示出源帧801和802的前景的帧804。

返回图2,在步骤214中,用户设备140确定检测到的前景的位置信息。

在检测到前景之后,用户设备140可以在“图像块(blob)”中提取前景。图像块是在二进制帧(即,在步骤208-212中生成的二进制帧)上对应于前景的区域。用户设备140可以执行图像块分析以确定图像块的特征,例如图像块的面积(即,构成图像块的像素数量)、周长、位置和形状。

在步骤216中,用户设备140确定检测出的前景间的重叠量,并基于重叠量选择一个或多个前景。

用户设备140可以基于检测到的前景的位置信息,确定重叠量。特别地,在图像块分析期间,用户设备140可以研究图像块中的连通像素,并为每个检测到的前景识别最大连通成分。用户设备140然后可以确定最大连通成分的开始点和结束点的像素坐标。基于这些坐标,用户设备140还可以确定两个检测到的前景是否重叠,并估计它们的重叠量。

用户设备140可以从图像组合中排除引起大量重叠的前景,从而改善输出帧的图像质量。在一个实施例中,当用户设备140确定前景F1和F2具有较大的重叠面积时,用户设备140可以进一步确定F1和F2是否与其它前景重叠,从而确定F1和F2相应的整体重叠程度。如果F1的整体重叠程度高于F2的,则用户设备140可以从图像组合中排除F1,但是保持F2用于组合。

在另一实施例中,用户设备140还可以确定每个前景与剩余前景重叠的百分比。如果前景的百分比高于预定阈值,则用户设备140可以从组合过程中排除前景。

在另一实施例中,用户设备140可以基于前景图像大小来选择要组合的前景。例如,即使前景不重合,如果前景的图像大小与输出帧大小的比例高于预定阈值,则用户设备140仍可以从组合过程中排除前景。在一些情况下,由于前景检测的误差,即使检测结果表明两个前景未重叠,这两个前景实际上在输出帧中组合时仍可能重叠。通过消除大尺寸的前景,用户设备140可以降低输出帧的“拥挤度”,并确保在输出帧中没有发生重叠。在一些情况下,由于前景检测的误差,即使检测结果表明前景没有出现重叠,前景实际上重叠了。

在步骤218中,用户设备140在输出帧中组合所选的前景。用户设备140以指定顺序逐一组合所选的前景。例如,用户设备140可以基于前景的图像位置确定所述顺序。特别地,用户设备140可以发现每个前景或对应于前景的图像块的中央,并确定所述中央的像素坐标。基于中央位置,用户设备140可以确定所选的前景的相对位置。用户设备140然后例如可以将所选的前景从左到右插入到输入帧中。

在步骤220中,用户设备140呈现输出帧。例如,用户设备140可以在显示器145中显示输出帧。用户设备140还可以经由通信端口143将输出帧发送到其它设备,从而用户能够与他人共享该输出帧。

图11A-11D示出了利用所公开的方法实现的示例性结果。图11A示出了三个源帧1101-1103。因此,基于帧差法的前景检测方法用于检测前景。图11B示出了三个二进制帧1111-1113,分别包含源帧1101-1103的前景。图11C示出了基于检测到的前景生成的背景帧1121。图11D示出了包含三个检测到的前景的输出帧1131。

方法200提供了用于在输出帧中合成多个前景的可靠的、方便且快速的方案。特别地,基于输出帧的数量,方法200采用适当的方式来检测前景。当存在大量输入帧时,基于中值滤波器的前景检测方法可以可靠地提供背景。当存在少量输入帧时,基于帧差法的前景检测方法虽然比基于中值滤波器的方法低效,但是可以提供可靠的结果。当仅使用两个输入帧时,基于边缘滤波器的前景检测方法可以提供对前景的快速确定。此外,在具有降低分辨率的帧上可以使用所有这三种方法,从而进一步增加处理速度。此外,方法200基于前景间的实际和/或可能的重叠量选择前景进行组合。这样,可以进一步改善图像质量。

本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围的前提下进行各种修改和改变。本发明的范围旨在仅由所附的权利要求来限制。

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