掌桥专利:专业的专利平台
掌桥专利
首页

视频流的帧中的对象位置确定

文献发布时间:2023-06-19 11:55:48


视频流的帧中的对象位置确定

技术领域

本发明总体上涉及一种用于视频流的帧中的对象位置确定的方法、对象定位器、计算机程序、计算机程序产品和用户设备。

背景技术

增强现实(AR)是物理的现实世界环境的直接或间接的实况视图,其对象通过计算机生成的感知信息来增强(即在感知上得到丰富)。叠加的感知信息可以是建设性的,即对自然环境的附加,也可以是破坏性的,即对自然环境的掩盖。

已经开发了越来越多的用于用户设备(例如,智能电话和平板计算机)的AR应用,以将虚拟对象叠加在现实世界视图上。这些应用中的核心技术挑战是:

1)识别现实世界对象及其在屏幕上的位置,在本领域中通常表示为对象检测(OD)或对象识别;

2)跟踪感兴趣的对象,在本领域中通常表示为对象跟踪(OT);以及

3)利用人造对象、标签或其他类型的感知信息来增强场景。

先前,对象检测领域中的一些最佳解决方案被认为是基于具有方向梯度直方图(HOG)特征的可变形部件模型(DPM)。在过去几年中,基于卷积神经网络(CNN)技术的更精确解决方案被认为是对象检测领域中的最新技术。这些解决方案检测视频流的给定帧或图片中的对象,但是需要大量处理能力来实时操作。因此,CNN通常在配备有具有大量存储器的现代图形处理单元(GPU)的服务器上运行。

在一些AR应用中,对象检测需要在便携式用户设备上实时运行。典型的示例是工业AR应用,例如,其可以是用于技术人员修复复杂硬件系统的支持工具。那么,便携式用户设备(例如手持设备或头戴式设备的形式)包括用于捕获被输入到对象检测的视频的相机。如果这种便携式用户设备的相机改变其位置,则对象检测需要在视频流的几乎每个帧中运行,以便找到对象当前在场景中的位置。然而,由于对象检测的处理复杂度以及便携式用户设备的有限的处理能力和电源,很多时候不可能在每个帧中运行对象检测。

传统上,通过不在每个帧上运行对象检测,而是周期性地运行对象检测,并且作为替代在连续的对象检测运行之间跟踪检测到的对象,来解决该问题。然而,与对象检测相比,对象跟踪通常较不准确,并且对象可能很容易丢失。此外,对象跟踪无法处理被跟踪对象的遮挡或检测到进入场景的新对象。此外,例如,如果场景是静态的,则周期性运行对象检测在计算上不是有效的,因为对象跟踪可以容易地处理这种静态场景。周期性运行对象检测的另一个问题是,如果新对象在所安排的对象检测运行之间进入场景,则这些对象将不会被及时可视化。

因此,需要适合于在便携式用户设备中实现的更有效的对象位置确定。

发明内容

总体目的是提供一种适合于在便携式用户设备中实现的对象位置确定。

本发明的各方面以及本文所公开的实施例实现了该目的和其他目的。

本发明的一方面涉及一种对象定位方法。所述方法包括:针对视频流的至少一个帧并且基于表示由所述至少一个帧表示的场景与由视频流的参考帧表示的场景之间的改变的至少一个参数,决定对至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在参考帧中检测到的至少一个对象的位置的变换。

本发明的另一方面涉及一种对象定位器,所述对象定位器包括处理电路和存储器,所述存储器包括可由所述处理电路执行的指令。所述处理电路操作用于:针对视频流的至少一个帧并且基于表示由所述至少一个帧表示的场景与由视频流的参考帧表示的场景之间的改变的至少一个参数,决定对至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在参考帧中检测到的至少一个对象的位置的变换。

本发明的另一方面涉及一种用户设备,所述用户设备包括根据上述的对象定位器和被配置为记录视频并生成视频流的相机。

本发明的又一方面涉及一种计算机程序,所述计算机程序包括指令,所述指令在由至少一个处理电路执行时,使所述至少一个处理电路:针对视频流的至少一个帧并且基于表示由所述至少一个帧表示的场景与由所述视频流的参考帧表示的场景之间的改变的至少一个参数,决定对至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在所述参考帧中检测到的所述至少一个对象的位置的变换。

本发明的另一方面涉及一种计算机程序产品,所述计算机程序产品上存储有包括指令的计算机程序,所述指令在处理电路上执行时使所述处理电路:针对视频流的至少一个帧并且基于表示由所述至少一个帧表示的场景与由所述视频流的参考帧表示的场景之间的改变的至少一个参数,决定对至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在所述参考帧中检测到的所述至少一个对象的位置的变换。

本发明提供了一种用于确定对象在视频流的帧中的位置的多模式技术。该多模式技术利用变换模式来补充对象检测模式,在所述变换模式中,将参考帧中的对象的位置变换或投影到当前帧中的位置。根据本发明,通过变换模式降低了确定对象在帧中的位置时的计算复杂度,从而使得能够在具有有限的计算和功率资源的便携式用户设备中实现。多模式技术还实现被完全或部分遮挡的对象的感知信息的可视化。

附图说明

通过参考以下结合附图的描述,可以最好地理解实施例及其进一步的目的和优点,在附图中:

图1是在服务器中具有对象检测的客户端-服务器架构的概述;

图2是包括对象检测器的用户设备的概述;

图3示意性地示出了包括要确定其位置的对象的视频流的帧的场景;

图4示意性地示出了利用在对象检测中确定的边界框进行增强的图3的场景;

图5示意性地示出了在相机旋转之后并且利用在对象检测中确定的边界框进行增强的视频流的后续帧的场景;

图6示意性地示出了利用基于变换操作确定的边界框进行增强的图5中的场景;

图7A和图7B示意性地示出了在对象的部分遮挡之后并且利用基于变换操作(图7A)或基于对象检测(图7B)确定的边界框进行增强的视频流的后续帧的场景;

图8是示出了根据实施例的对象定位方法的流程图;

图9是示出了根据实施例的图8所示的方法的附加可选步骤的流程图;

图10是示出了根据另一实施例的图8所示的方法的附加可选步骤的流程图;

图11是示出了根据各个实施例的对象定位方法的流程图;

图12是示出了根据实施例的图8所示的方法的附加可选步骤的流程图;

图13是示出了根据实施例的图8所示的方法的附加可选步骤的流程图;

图14是示出了根据实施例的图8所示的方法的附加可选步骤的流程图;

图15是根据实施例的对象定位器的框图;

图16是根据另一实施例的对象定位器的框图;

图17是根据另一实施例的对象定位器的框图;

图18示意性地示出了实施例的基于计算机程序的实现方式;

图19是根据另一实施例的对象定位器的框图;

图20示意性地示出了网络设备之间的分布式实现;

图21是根据实施例的具有一个或多个基于云的网络设备的无线通信系统的示例的示意图;

图22是示出了根据一些实施例的经由中间网络连接到主机计算机的电信网络的示例的示意图;以及

图23是示出了根据一些实施例的通过部分无线连接经由基站与用户设备通信的主机计算机的示例的示意图。

具体实施方式

贯穿附图,相同的附图标记用于类似或对应的元素。

通常,除非明确给出和/或从使用了术语的上下文中暗示不同的含义,否则本文中使用的所有术语将根据其在相关技术领域中的普通含义来解释。除非另有明确说明,否则对一/一个/所述元件、设备、组件、装置、步骤等的所有引用应被开放地解释为指代元件、设备、组件、装置、步骤等中的至少一个实例。除非必须明确地将一个步骤描述为在另一个步骤之后或之前和/或隐含地一个步骤必须在另一个步骤之后或之前,否则本文所公开的任何方法的步骤不必以所公开的确切顺序执行。在适合的情况下,本文公开的任何实施例的任何特征可以应用于任何其他实施例。同样地,任何实施例的任何优点可以适用于任何其他实施例,反之亦然。通过下文的描述,所附实施例的其他目的、特征和优点将显而易见。

本发明总体上涉及一种用于视频流的帧中的对象位置确定的方法、对象定位器、计算机程序、计算机程序产品和用户设备。

图1中示出了用于增强现实(AR)的用户设备-服务器架构。由图1中的便携式无线用户设备1表示的用户设备1包括或连接到用于捕获视频并记录视频流的相机2。然后,将视频流的图片或视频帧(为简单起见,本文称为帧)从用户设备1发送到对象检测(OD)服务器5。该帧传输可以涉及将视频流流发送给OD服务器5,即,基本上将视频流的所有帧发送给OD服务器5。在备选实施例中,将单独的、通常带有时间戳的帧发送给OD服务器5以进行对象检测。

OD服务器5包括用于对接收到的帧或其至少一部分执行对象检测的对象检测器4。该对象检测涉及检测已处理的帧中的对象并确定检测到的对象的信息,包括对象位置表示、检测概率和对象类型。对象位置表示在本领域中通常称为边界框,定义了已处理帧的区域或已处理帧内的区域。检测概率表示由对象位置表示所限定的帧的区域或该帧内的区域包括对象的可能性。对象类型定义检测到的对象的类型或类别,例如汽车、行人、房屋等。

该所谓的检测信息(即对象位置表示、检测概率和对象类型)连同对已执行的对象检测是针对哪个帧的指示(例如,在相关帧的时间戳方面)被返回给用户设备1。然后,用户设备1使用检测信息来增强呈现在屏幕上的视频。

OD服务器5可以访问脱机训练的基于卷积神经网络(基于CNN)的对象检测器和具有大量存储器的现代图形处理单元(GPU)。这样的CNN通常包括在大型带注释数据集上离线训练的数千万个参数,该大型带注释数据集是例如PASCAL VOC(Everingham等,“ThePASCAL Visual Object Classes(VOC)challenge”,International Journal of ComputerVision(2010)88:303-338)或者ImageNet(Deng等,“ImageNet:A large-scalehierarchical image database”,in 2009 IEEE Conference on Computer Vision andPattern Recognition(2009))。

基于CNN的对象检测器4的示例包括Faster R-CNN(Ren等,“Faster R-CNN:Towards real-time object detection with region proposal networks”,IEEETransactions on Pattern Analysis and Machine Intelligence(2017)39(6):1137-1149)、SSD(Liu等,“SSD:Single shot multibox detector”,Proceedings of theEuropean Conference on Computer Vision(ECCV)(2016))和YOLO9000(Redmon和Farhadi,“YOLO9000:Better,faster,stronger”,2017 IEEE Conference on ComputerVision and Pattern Recognition(CVPR)(2017))。

在另一个实施示例中,如图2所示,在用户设备1中实现对象检测器4。因此,然后用户设备1包括用于捕获视频并生成视频流的相机2和为了检测其中的对象的目的而处理视频流的帧的对象检测器4二者。因此,该实现放宽了将帧发送给远程OD服务器5并从其接收检测信息的需要,但是作为替代,需要实现包括由对象检测器4在用户设备1处使用的离线训练的对象检测模型的对象检测器4。

增强现实在便携式用户设备1中发现了越来越多的应用。典型的示例是工业AR应用,在其中AR构成了技术人员修复复杂硬件系统的支持工具。在这种场景中,对象检测应实时地运行,通常实时地运行在便携式用户设备1上,这对对象检测器4的复杂度施加了限制。在大多数情况下,用户设备1的可携带性以及从而相机2的可携带性导致在技术人员从事修复硬件系统时的大量移动。然而,同样在这些情况下,视频中的对象仍应被准确检测和可视化。如果相机2改变其相对于所拍摄的硬件系统的位置,则通常应在视频流的每个帧中运行对象检测,以便检测和分类当前场景中的对象。然而,由于对象检测的复杂度和便携式用户设备1的电池限制,这通常是不可能的。

本发明通过在对象检测模式和变换模式(也称为投影模式)之间的自适应切换来解决在便携式用户设备1中实现AR应用时的上述缺点。这允许AR应用在便携式用户设备1中实时运行,并且能够实时对对象的位置进行可视化。

图8是示出了根据实施例的对象定位方法的流程图。该方法包括步骤S1,其针对视频流的至少一个帧执行,如线L1示意性所示。步骤S1包括:针对至少一个帧并且基于表示由所述至少一个帧表示的场景与由视频流的参考帧表示的场景之间的改变的至少一个参数,决定对至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在参考帧中检测到的至少一个对象的位置的变换。

因此,根据本发明,帧中至少一个对象的位置可以通过以下方式来确定:应用对象检测(即所谓的对象检测模式),或者通过将对象在视频流的先前帧(即参考帧)中已经确定的位置变换为当前帧中的位置(即所谓的变换模式)。对象检测模式和变换模式之间的决定或选择是基于表示从参考帧到当前帧的场景中的改变的至少一个参数。

如在对象检测模式中使用的对象检测是准确的,但是计算密集并且耗电。然而,在变换模式中使用的位置变换的计算复杂度相对较低。因此,本发明使得能够通过位置变换来替换视频流的许多帧中的计算密集的对象检测,从而降低在便携式用户设备1中实现AR的计算要求和功耗。

参考帧是视频流的先前帧,并且更优选地是视频流中的已经对其应用了对象检测的先前帧。因此,应用于该参考帧的对象检测检测参考帧中的至少一个对象,并生成针对至少一个检测到的对象的对象位置表示,并且通常还生成针对每个检测到的对象的检测概率和对象类型。

图3示出了包括多个连接器11、13、15、17、19的基带切换器10形式的硬件系统的示例,作为便携式用户设备要检测和增强的场景的对象的说明性示例。图4示出了应用于图3中的场景的对象检测的结果,可视化所检测到的对象11、13、15、17、19周围的边界框21、23、25、27、29。图4所示的边界框21、23、25、27、29是在应用于参考帧的对象检测中生成的对象位置表示的示例。因此,该对象位置表示定义参考帧中的相应区域或边界框,该区域或边界框包括具有由检测概率表示的可能性并且具有由对象类型表示的类型的对象。

因此,在实施例中,由对象检测生成的对象位置表示是边界框。每个边界框表示定义帧的区域的四个参数值。在这样的实施例中,图8的步骤S1包括:基于至少一个参数来决定对定义至少一个帧中的区域的边界框的确定是基于应用于至少一个帧的对象检测,还是基于参考帧中的边界框的变换。

边界框可以例如是向量的形式,该向量定义了该区域的坐标和该区域的大小。该坐标(x

在视频流的帧中的对象检测中传统上使用的对象检测模型和算法针对每个检测到的对象输出边界框、检测概率和对象类型,如本文先前所提及。边界框在大多数情况下是由如上所述的四个参数定义的矩形或正方形。这在成像的场景如图5所示旋转的情况下检测对象时可能施加限制。那么,边界框可能不与场景中检测到的任何旋转对象对齐。变换模式的优点是,应用于参考帧中的对象的边界框的变换可以涉及各种操作,例如旋转、重新缩放、平移等。这意味着,即使边界框在参考帧中定义了矩形区域,在应用变换模式时,当前帧中的经变换的边界框不一定需要定义矩形区域。与之形成明显对比,经变换的边界框可以在当前帧中定义四边形区域。这种四边形区域的说明性但非限制性示例包括不规则四边形(梯形)、梯形(梯形)、等腰梯形(等腰梯形)、平行四边形、菱形、长菱形、风筝形、矩形和正方形。这在图6中示意性地示出,其中来自图4的矩形和二次边界框21、23、25、27、29已经被变换为图6所示的菱形边界框21、23、25、27、29。

因此,在实施例中,图8中的步骤S1包括:基于至少一个参数来决定是基于应用于至少一个帧的对象检测来确定定义该至少一个帧中的矩形区域的边界框,还是基于参考帧中的边界框的变换来确定定义至少一个帧中的四边形区域的边界框。

在对象检测模式中使用的对象检测可以根据在对象检测器中实现的任何对象检测算法。例如,对象检测可以是滑动窗口对象检测的形式,例如在Viola和Jones,“RapidObject Detection using a Boosted Cascade of Simple Features”,in Proceedingsof the 2001 IEEE Computer Society Conference on Computer Vision and PatternRecognition,CVPR2001,Kauai,HI,U.S.;或Fischler和Bolles,“Random SampleConsensus:A Paradigm for Model Fitting with Applications to Image Analysisand Automated Cartography,Communications of the ACM(1981)24(6):381-395中所公开的。备选地,对象检测可以是基于CNN的对象检测的形式,例如先前提到的Faster R-CNN、SSD或YOLO9000。

可以通过在如图2所示的用户设备1中实现的对象检测器4来运行在对象检测模式中使用的对象检测。在另一实施例中,对象检测在如在如图1所示的对象检测服务器5中实现的远程对象检测器4处运行。在这样的实施例中,用户设备1将应当经受对象检测的帧发送给远程对象检测器4,并从其接收对象检测信息,即对象位置表示,并且通常还接收如本文先前所公开的检测概率和对象类型。远程运行对象检测具有利用强大的GPU(例如在OD服务器5中)的优点,从而使用计算密集的对象检测模型和算法以可接受的帧速率运行。缺点是需要将帧发送给远程对象检测器4,并从中返回检测信息,这在网络拥塞和网络负载沉重的情况下,可以延长检测信息向用户设备1的传递。

图5示出了由于用于拍摄基带切换器10的便携式用户设备1的移动而导致的场景的旋转。图5示出了应用于旋转的场景的对象检测的结果。对象检测的显着限制在于,在对象检测期间确定的边界框是矩形的,因此在处理旋转的场景时不太有效。在图5中,只有一个对象15被正确地检测到并利用边界框25可视化。图6示出了与图5相同的旋转的场景,但是当代替应用对象检测模式中的对象检测时,通过将(参见图4)对象11、13、15、17、19在参考帧中的位置变换为图6中的当前帧中的位置来确定对象11、13、15、17、19的位置。如图6所示,变换模式可以有效地处理场景旋转,并且仍然可视化相对于参考帧中的位置已经被变换(例如旋转)的边界框21、23、25、27、29。

使用变换模式的另一个显著优点是,该模式可以处理对象13、15、17的遮挡,如图7A所示。在图7A中,另一个对象30完全遮挡具有附图标记15的对象,并且部分遮挡对象13、17。然而,通过将这些对象13、15、17的位置从图4中的参考帧变换为当前帧,针对这些对象13、15、17的边界框23、25、27仍然可以被正确地可视化。这在使用对象检测模式或使用现有技术的对象跟踪时是不可能的,如图7B所示。因此,在图7B中,仅对象11、19被正确地检测到,而仅检测到对象13、17的一部分。由于对象15被对象30隐藏,因此无法检测到对象15。该图还示出了针对检测到的对象11、13、17、19、30的边界框21、23、27、29、32。

图9是示出了根据实施例的图8中的方法的附加可选步骤的流程图。该实施例包括在步骤S10中基于从参考帧导出的参考关键点和从至少一个帧导出的关键点来估计或确定变换矩阵。该变换矩阵定义参考帧中的位置到至少一个帧中的位置的变换。该方法然后继续进行图8中的步骤S1。在该实施例中,步骤S1包括:基于至少一个参数来决定对至少一个对象在至少一个帧中的位置的确定是基于应用于至少一个帧的对象检测,还是基于使用变换矩阵对在参考帧中检测到的至少一个对象的位置的变换。

变换矩阵H定义参考帧中的位置或定位L

根据不同的实施例,可以在步骤S10中估计各种类型的变换矩阵。在典型示例中,变换矩阵定义帧之间的位置的几何变换。几何变换是其域和范围是点集的函数。最常见的是,几何变换的域和范围都是R

在步骤S10中,基于从参考帧和从至少一个帧导出的关键点来估计变换矩阵。这些关键点是可以被标识并优选地在视频流中被逐帧跟踪的非常独特的点或特征。因此,从视频流中的参考帧导出所谓的参考关键点。在特定实施例中,参考关键点是从参考帧中提取或在参考帧中标识的。例如,可以使用Shi-Tomasi算法(Shi和Tomasi,“Good Features toTrack”,in 1994 Proceedings of IEEE Conference on Computer Vision and PatternRecognition,CVPR94,Seattle,WA,U.S.)在参考帧中标识参考关键点。

对应或匹配的关键点也从至少一个帧导出。在实施例中,在视频流的后续帧中跟踪或跟随在参考帧中标识的参考关键点,直到到达当前帧。可以根据各种关键点、特征或对象跟踪算法(例如Lucas-Kanade光流算法(Lucas和Kanade,“An Iterative ImageRegistration Technique with an Application to Stereo Vision”,in Proceedingsof the 7

如本文所使用的匹配或对应的关键点是指参考帧中与当前帧中相同的关键点或特征。例如,即使框的位置可能从参考帧到当前帧已经改变,被标识为参考帧中的参考关键点的框的左上角与当前帧中的相同框的左上角相匹配并且与当前帧中的相同框的左上角相对应。

可以在步骤S10中基于从参考帧导出的参考关键点和从至少一个帧导出的关键点来估计变换矩阵。在步骤S10中可以使用各种矩阵估计方法。例如,可以借助于最小二乘估计(LSE)来估计变换矩阵的元素。作为示例,假设n个匹配的关键点是从参考帧和当前帧中导出的:

以及

其中,

其中,变换矩阵为

然后,变换矩阵将参考帧中的位置(x

在实施例中,步骤S1包括:基于从变换矩阵导出的至少一个参数来决定对至少一个对象在至少一个帧中的位置的确定是基于应用于至少一个帧的对象检测,还是基于使用变换矩阵对在参考帧中检测到的至少一个对象的位置的变换。

因此,在该实施例中,将从变换矩阵导出的至少一个参数用作表示由至少一个帧表示的场景与由参考帧表示的场景之间的改变的参数。

在实施例中,将变换矩阵参数化为:

其中

t

t

这里s

这些参数(即缩放因子、旋转角度和平移)中的任何一个、或这些参数的任意组合都可以用作图8的步骤S1中的对至少一个对象的位置的确定是基于对象检测还是基于变换的决定的基础。

代替使用从变换矩阵导出的至少一个参数或作为使用从变换矩阵导出的至少一个参数的替代方案,可以将表示由至少一个帧所表示的场景与由参考帧表示的场景之间的改变的另一个参数或其他参数用作图8的步骤S1中的决定的基础。例如,如图10的步骤S20所示,可以从用户设备的至少一个传感器接收至少一个参数。在该实施例中,用户设备1包括一个或多个传感器2、3,其可用于生成或确定至少一个参数。这种传感器2、3的示例性但非限制性示例包括加速度计、磁力计、陀螺仪和相机,参见图1和图2。

例如,包括Android和iOS的无线通信设备(例如智能电话)的操作系统提供应用编程接口(API)以获得无线通信设备的近似旋转角度。这些操作系统还提供对来自各种传感器(例如相机、加速计、磁力计和陀螺仪)的原始数据的访问,该原始数据可用于估计无线通信设备的位置,从而估计无线通信设备的平移。

例如,函数getDefaultSensor(SENSOR_TYPE_ROTATION_VECTOR)报告运行Android的无线通信设备相对于东-北-上坐标框架的朝向。它通常是通过将加速度计、陀螺仪和磁力计读数集成在一起来获得的。有关更多信息,参见

还有一种趋势是,在无线通信设备(例如智能手机)中运行的操作系统包括同时定位与建图(SLAM)功能。SLAM包括从无线通信设备中的相机和其他传感器二者估计位置和朝向的算法。例如,Android支持ARCore库(https://developers.google.com/ar/reference/java/com/google/ar/core/Camera#getDisplayOrientedPose()),而iOS支持ARKit库(

因此,给定如从至少一个传感器获得的用户设备的位置和朝向,例如通过计算场景旋转、场景平移和/或场景缩放,可以计算出表示由至少一个帧表示的场景和由参考帧表示的场景之间的改变的至少一个参数。

图11是示出了根据各个实施例的对象定位方法的流程图。在实施例中,如图8所示的步骤S1包括如图11所示的步骤S31、S33、S35和S36。在该实施例中,步骤S31包括:如果由至少一个帧表示的场景相对于由参考帧表示的场景的任何旋转超过阈值旋转,则基于在参考帧中检测到的至少一个对象的位置的变换来确定所述至少一个对象在所述至少一个帧中的位置。

在实施例中,该方法还包括可选步骤S30,其包括将场景的旋转与阈值旋转进行比较。如果场景的旋转超过阈值旋转,则该方法继续进行步骤S31。

因此,如果由当前帧表示的场景相对于由参考帧表示的场景已经旋转得比阈值旋转更多,则根据所谓的变换模式(即,基于在参考帧中检测到的至少一个对象的位置的变换)来确定至少一个对象在当前帧中的位置。

图6示出了场景相对于图4所示的参考帧的旋转。如图6清楚所示,在步骤S31中应用到对象11、13、15、17、19周围的边界框21、23、25、27、29上的变换可以旋转并可选地平移边界框21、23、25、27、29,使其即使在场景旋转之后也在对象11、13、15、17、19周围出现。如果作为替代如图5所示使用了对象检测模式,则无法有效地处理这种场景旋转。如图6所示,变换模式可以有效地处理场景旋转,并且仍然可视化相对于参考帧中的位置已经被变换(例如旋转)的边界框21、23、25、27、29。

如果场景的旋转未超过阈值旋转,例如在可选步骤S30中所验证,则如果由至少一个帧表示的场景相对于参考帧表示的场景的任何缩小超过阈值缩小,在步骤S33中基于应用于至少一个帧的对象检测来确定至少一个对象在至少一个帧中的位置。

在实施例中,该方法还包括可选步骤S32,其包括将场景的缩小与阈值缩小进行比较。如果场景的缩小超过阈值缩小,则该方法继续进行步骤S33。

因此,如果由当前帧表示的场景表示由参考帧表示的场景的缩小版本,则根据对象检测模式(即,基于应用于当前帧的对象检测)来确定至少一个对象在当前帧中的位置。

在大或重度的缩小(超过阈值缩小)的情况下,使用对象检测模式而不是变换模式的原因是,通过缩小,存在新对象进入场景的很大概率并且其中这些对象不出现在由参考帧表示的场景中。因此,对于这些进入场景的新对象,在由参考帧表示的场景中没有对应的对象。典型的示例是具有这样的参考帧,在该参考帧中,相机放大图3中的基带切换器10的左侧部分。在这种情况下,场景中出现的唯一对象将是对象11。如果然后相机缩小以捕获整个基带切换器10,则新对象13、15、17、19将出现在场景中。在变换模式中应用的场景之间的位置变换仅对在由参考帧表示的场景中已经出现并检测到的对象有效。这意味着,对于最有可能引入新对象的重度的缩小操作,在步骤S33中作为替代应使用对象检测,以便确定至少一个对象在当前帧中的位置。

如果场景的缩小不超过阈值缩小,例如在可选步骤S32中所验证,则如果由至少一个帧表示的场景相对于由参考帧表示的场景的任何平移超过阈值平移,在步骤S35中,基于应用于至少一个帧的对象检测来确定至少一个对象在至少一个帧中的位置。

在实施例中,该方法还包括可选步骤S34,其包括将场景的平移与阈值平移进行比较。如果场景的平移超过阈值平移,则该方法继续进行步骤S35。

场景的平移可以是场景在x方向上的平移、场景在y方向上的平移、或任何与方向无关的平移。例如,假设基带切换器10的左上角对应于参考帧中的像素(2,9),并且对应于当前帧中的像素(25,17)。在这种情况下,场景在x方向上的平移为25-2=23个像素,场景在y方向上的平移为17-9=8个像素,并且通常的平移可以例如是

在大平移的情况下,使用对象检测模式而不是变换模式的原因与针对缩小的原因基本相同,即,具有新对象进入当前帧的风险,并且其中这些对象在参考帧中没有出现或未被检测到。

如果场景的平移不超过阈值平移,例如在可选步骤S34中所验证,则在步骤S36中,基于在参考帧中检测到的至少一个对象的位置的变换来确定至少一个对象在至少一个帧中的位置。

换句话说,在实施例中,仅在重度的缩小和平移的情况下使用对象检测模式,而在重度的旋转的情况下以及在不使用对象检测模式的所有其他情况下使用变换模式。

可选步骤S30、S32和S34中的比较顺序可以改变,例如按照以下顺序中的任何一种改变:S30、S34和S32;S32、S30和S34;S32、S34和S30;S34、S30和S32;或S34、S32和S30。

图12是示出了根据实施例的图8所示的方法的附加可选步骤的流程图。该实施例包括将至少一个参数与相应的阈值进行比较。该方法然后继续进行图8中的步骤S1。在该实施例中,步骤S1包括:基于比较来决定对至少一个对象在至少一个帧中的位置的确定是基于应用于至少一个帧的对象检测,还是基于在参考帧中检测到的至少一个对象的位置的变换。

如图11所示,可以根据步骤S30、S32和S34中的任何一个来执行步骤S40。

在实施例中,至少一个参数包括旋转角度

在备选或附加的实施例中,至少一个参数包括水平缩放因子s

在该实施例中,缩放因子的低值表示重度的缩小。

在备选或附加的实施例中,至少一个参数包括水平平移t

因此,如上所述,可以在决定或选择使用对象检测模式还是变换模式时单独使用以上参数示例中的任何一个。在另一个实施例中,以上参数中的至少两个可以用于决定或选择使用对象检测模式还是变换模式,例如旋转和缩小、旋转和平移、或缩小和平移,或所有三个参数都可以用于决定或选择使用对象检测模式还是变换模式。

在该后一种情况下,至少一个参数包括水平缩放因子s

在实施例中,该方法包括如图13所示的附加步骤S50和S51。步骤S50包括将表示在视频流中从参考帧到至少一个帧的时间段的时间参数T

在另一个实施例中,当决定或选择使用对象检测模式还是变换模式时,将时间参数与缩放因子和平移一起使用。在该实施例中,该方法包括:如果

因此,该实施例在决定对至少一个对象的位置的确定是根据对象检测模式还是根据变换模式之前,引入了初始检查或准则。该初始检查验证参考帧仍然是最近的,即从视频流中的参考帧到视频流中的当前帧经过不太长的时间。例如,如果参考帧在视频流中的帧号为5,而当前帧的帧号为305,则该参考帧对于当前帧中的任何对象可能不是良好的参考,因为在这300个帧期间,场景很有可能改变很大。在这种情况下,作为替代,最好将对象检测应用于当前帧,以便确定任何对象的位置。

时间参数可以表示秒形式的时间,例如T

在实施例中,如果例如在图11中的步骤S33或S35中,将对象检测应用于至少一个帧,则该至少一个帧可以用作视频流的后续帧或接下来的帧的参考帧。

在实施例中,参考帧是视频流中已经对其应用了对象检测以确定至少一个对象的位置的最近的帧。因此,如果视频流的当前帧具有帧号j,则在该实施例中,参考帧是已经对其应用了对象检测并且帧号为j-k的帧,其中k是尽可能低的数。尽管通常优选地将已经对其应用了对象检测的最近的帧用作针对视频流中的任何后续帧的参考帧,但是实施例不限于此。这意味着,作为替代,可以将已经对其应用了对象检测的另一个帧而不是最近的先前的参考帧用作参考帧,即,使用帧号为j-l的帧代替帧号为j-k的帧作为参考帧,其中l>k,并且帧号为j-k和j-l的帧均包含使用对象检测而检测到的至少一个对象,例如在图11中的步骤S35的步骤S33中。该后一实施例在结合使用上述时间参数T

图14是示出了图8所示的方法的附加可选步骤的流程图。步骤S2包括:基于至少一个对象在至少一个帧中的位置,利用感知信息来增强该至少一个帧。然后可以输出增强后的至少一个帧,以在用户设备的屏幕上进行显示。

因此,通过使用根据基于对象检测模式或变换模式的实施例确定的任何对象的位置,可以基于对象的位置,利用感知信息来增强至少一个帧。

在特定实施例中,可以基于在对象检测中确定的对象的类型来选择用于增强至少一个帧的感知信息的类型。

如本文所使用的感知信息涉及可用于增强场景的任何信息或数据。这种感知信息的非限制性但说明性的示例包括检测到的建筑物的名称、检测到的人的姓名等。

感知信息的示例可以是如图3至图7B所示的对象周围的边界框21、23、25、27、29。可视化的边界框21、23、25、27、29可以可选地利用由边界框21、23、25、27、29包围的对象11、13、15、17、19的信息或标识符进行补充。该信息或标识符可以例如标识基带切换器10中的连接器的名称或类型。

在特定实施例中,所提出的方法包括四个主要步骤:

A.对象检测:在参考帧中运行对象检测,以获得感兴趣对象的边界框。

B.投影:使用稀疏的点对点匹配找到将参考帧(例如经受对象检测步骤A的最后一个帧)投影到当前帧的变换矩阵H。使用变换矩阵将在参考帧中检测到的边界框投影到当前帧。

C.帧评估:评估变换矩阵中或来自传感器的参数,并决定何时在对象检测步骤A和投影步骤B之间进行切换。

D.可视化:在当前帧中绘制检测到的或所投影的边界框,并将其渲染在屏幕上。

在该特定实施例中,作为说明性示例,可以通过滑动窗口对象检测或基于CNN的对象检测来执行对象检测步骤。对象检测以帧为输入,并输出检测到的对象的边界框。投影步骤基于变换矩阵的估计。在该特定实施例中,通过首先从参考帧中提取非常独特的点(即关键点),并在后续帧中对其进行跟踪,来获得该变换矩阵。接下来,根据从参考帧中提取并在当前帧中跟踪的匹配的关键点来估计变换矩阵。

在实施例中,可以根据以下操作来实现所提出的算法的四个主要步骤:

1.从视频源(例如用户设备的相机)获取参考帧,作为当前帧。

2.在当前帧上运行对象检测以找到对象和边界框。

3.例如使用Shi-Tomasi算法从当前帧中提取参考关键点。

4.绘制边界框,并在用户设备的屏幕上渲染增强后的帧。

5.针对每个后续帧,进行:

a.例如使用Lucas-Kanade算法找到关键点的当前位置。

b.使用来自步骤3的参考关键点及其当前位置例如使用LSE或RANSAC来估计变换矩阵。

c.根据变换矩阵和/或传感器数据来计算s

d.如果

e.如果

f.使用变换矩阵将步骤2中的边界框变换或投影到当前帧中。

g.绘制边界框,并在用户设备的屏幕上渲染增强后的帧。

在该特定算法的另一个实施例中,执行经过的时间T

实施例的另一方面涉及一种对象定位器,所述对象定位器包括处理电路和存储器,所述存储器包括可由所述处理电路执行的指令。所述处理电路操作用于:针对视频流的至少一个帧并且基于表示由所述至少一个帧表示的场景与由视频流的参考帧表示的场景之间的改变的至少一个参数,决定对至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在参考帧中检测到的至少一个对象的位置的变换。

在实施例中,所述处理电路操作用于:基于从参考帧导出的参考关键点和从至少一个帧导出的关键点来估计变换矩阵。该变换矩阵定义参考帧中的位置到至少一个帧中的位置的变换。在该实施例中,所述处理电路还操作用于:基于至少一个参数来决定对至少一个对象在至少一个帧中的位置的确定是基于应用于至少一个帧的对象检测,还是基于使用变换矩阵对在参考帧中检测到的至少一个对象的位置的变换。

在实施例中,所述处理电路还操作用于:基于从变换矩阵导出的至少一个参数来决定对至少一个对象在至少一个帧中的位置的确定是基于应用于至少一个帧的对象检测,还是基于使用变换矩阵对在参考帧中检测到的至少一个对象的位置的变换。

在实施例中,所述处理电路操作用于:从用户设备的至少一个传感器接收所述至少一个参数。

在实施例中,所述处理电路操作用于:如果由所述至少一个帧表示的场景相对于由参考帧表示的场景的任何旋转超过阈值旋转,则基于在参考帧中检测到的所述至少一个对象的位置的变换来确定所述至少一个对象在所述至少一个帧中的位置,否则,如果由所述至少一个帧表示的场景相对于由所述参考帧表示的场景的任何缩小超过阈值缩小,则基于应用于所述至少一个帧的对象检测来确定所述至少一个对象在所述至少一个帧中的位置,否则,如果由所述至少一个帧表示的场景相对于由所述参考帧表示的场景的任何平移超过阈值平移,则基于应用于所述至少一个帧的对象检测来确定所述至少一个对象在所述至少一个帧中的位置,否则,基于在所述参考帧中检测到的所述至少一个对象的位置的变换来确定所述至少一个对象在所述至少一个帧中的位置。

在实施例中,所述处理电路操作用于:将所述至少一个参数与相应的阈值进行比较。在该实施例中,所述处理电路还操作用于:基于所述比较来决定对所述至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在所述参考帧中检测到的所述至少一个对象的位置的变换。

在实施例中,所述至少一个参数包括旋转角度

在实施例中,所述至少一个参数包括水平缩放因子s

在实施例中,所述至少一个参数包括水平平移t

在实施例中,所述至少一个参数包括水平缩放因子s

在实施例中,所述处理电路操作用于:将表示在视频流中从所述参考帧到所述至少一个帧的时间段的时间参数T

在实施例中,所述处理电路在该实施例中操作用于:如果

在实施例中,所述处理电路操作用于:基于所述至少一个参数来决定对定义所述至少一个帧中的区域的边界框的确定是基于应用于所述至少一个帧的对象检测,还是基于所述参考帧中的边界框的变换。

在实施例中,所述处理电路操作用于:基于所述至少一个参数来决定是基于应用于所述至少一个帧的对象检测来确定定义所述至少一个帧中的矩形区域的边界框,还是基于所述参考帧中的边界框的变换来确定定义所述至少一个帧中的四边形区域的边界框。

在实施例中,所述处理电路操作用于:基于所述至少一个对象在所述至少一个帧中的位置来使用感知信息增强所述至少一个帧。

实施例的另一方面涉及一种对象定位器,所述对象定位器被配置为:针对视频流的至少一个帧并且基于表示由所述至少一个帧表示的场景与由视频流的参考帧表示的场景之间的改变的至少一个参数,决定对至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在参考帧中检测到的至少一个对象的位置的变换。

应当理解,本文描述的方法、方法步骤和设备、设备功能可以以各种方式实现、组合和重新布置。

例如,实施例可以用硬件、或用由适合的处理电路执行的软件、或其组合来实现。

本文所述的步骤、功能、过程、模块和/或框可以使用任何常规技术在硬件中实现,例如使用分立电路或集成电路技术,包括通用电子电路和专用电路二者。

备选地,或者作为补充,本文描述的步骤、功能、过程、模块和/或框中的至少一些可以在软件中实现,例如由合适的处理电路(例如一个或多个处理器或处理单元)来执行的计算机程序。

处理电路的示例包括但不限于:一个或多个微处理器、一个或多个数字信号处理器(DSP)、一个或多个中央处理单元(CPU)、视频加速硬件、和/或任意合适的可编程逻辑电路,例如一个或多个现场可编程门阵列(FPGA)或者一个或多个可编程逻辑控制器(PLC)。

还应当理解,可以重新使用实施所提出技术的任何常规设备或单元的通用处理能力。例如,也可以通过对现有软件进行重新编程或通过添加新的软件组件来重用现有的软件。

图15是示出了根据实施例的对象定位器100的示例的示意框图。在该特定示例中,对象定位器100包括处理电路101(例如处理器)以及存储器102。存储器102包括能够由处理电路101执行的指令。

可选地,对象定位器100还可以包括通信电路,由图15中的相应输入/输出(I/O)单元103表示。I/O单元103可以包括用于与有线或无线通信网络中的其他设备、服务器和/或网络节点进行有线和/或无线通信的功能。在特定示例中,I/O单元103可以基于用于与一个或多个其他节点进行通信(包括发送和/或接收信息)的无线电电路。I/O单元103可以互连到处理电路101和/或存储器102。作为示例,I/O单元103可以包括以下中的任何一个:接收机、发射机、收发机、I/O电路、输入端口、和/或输出端口。

图16是示出了根据实施例的基于硬件电路实现的对象定位器110的示意框图。合适的硬件电路的具体示例包括:一个或多个适合配置的或可能可重新配置的电子电路、例如,专用集成电路(ASIC)、现场可编程门阵列(FPGA);或任何其他硬件逻辑,诸如基于互连的分立逻辑门和/或触发器的用以与合适的寄存器(REG)和/或存储器单元(MEM)一起执行专用功能的电路。

图17是示出了基于处理电路(一个或多个)122、123和硬件电路124、125的组合并与适合的存储器单元121相结合的对象定位器的又一示例的示意框图。因此,整体功能在用于在一个或多个处理电路122、123上执行的编程软件与一个或多个预配置的或可能可重新配置的硬件电路124、125之间划分。实际的硬件-软件划分可以由系统设计人员根据众多因素来决定,所述因素包括处理速度、实施成本和其他要求。

图18是根据实施例的对象定位器200的基于计算机程序的实现方式。在该具体示例中,用计算机程序240来实现本文描述的步骤、功能、过程、模块和/或框中的至少一些,其中计算机程序240被加载到存储器220中,用于由包括一个或多个处理电路210的处理电路执行。处理电路(一个或多个)210和存储器220彼此互连,以实现正常的软件执行。可选的I/O单元230还可以互连到处理电路(一个或多个)210和/或存储器220,以实现相关数据(例如帧和检测信息)的输入和/或输出。

术语“处理电路”应该在一般意义上解释为能够执行程序代码或计算机程序指令以执行特定的处理、确定或计算任务的任何电路、系统或设备。

因此,处理电路210被配置为:在执行计算机程序240时执行例如本文描述的明确定义的处理任务。

处理电路不必须是专用于仅执行上述步骤、功能、过程和/或框,而是还可以执行其他任务。

在实施例中,计算机程序240包括指令,该指令在由至少一个处理电路210执行时使至少一个处理电路210:针对视频流的至少一个帧并且基于表示由所述至少一个帧表示的场景与由所述视频流的参考帧表示的场景之间的改变的至少一个参数,决定对至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在所述参考帧中检测到的所述至少一个对象的位置的变换。

所提出的技术还提供了包括计算机程序240的载体250,也被称为计算机程序产品。载体250是电子信号、光信号、电磁信号、磁信号、电信号、无线电信号、微波信号或计算机可读存储介质中的一种。

作为示例,软件或计算机程序240存储在诸如存储器220的计算机可读存储介质(具体地,非易失性介质)上。计算机可读介质可包括一个或多个可移除或不可移除的存储器设备,包括(但不限于):只读存储器(ROM)、随机存取存储器(RAM)、致密盘(CD)、数字多功能盘(DVD)、蓝光盘、通用串行总线(USB)存储器、硬盘驱动器(HDD)存储设备、闪存、磁带或任何其它常规存储器设备。计算机程序240可以因此被加载到操作存储器220中,用于由处理电路210执行。

计算机程序产品250已在其上存储有包括指令的计算机程序240,该指令在处理电路201上执行时,使处理电路:针对视频流的至少一个帧并且基于表示由所述至少一个帧表示的场景与由所述视频流的参考帧表示的场景之间的改变的至少一个参数,决定对至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在所述参考帧中检测到的所述至少一个对象的位置的变换。

当由一个或多个处理器执行时,本文介绍的流程图可以被认为是计算机流程图。对应的设备可以被定义为一组功能模块,其中由处理器执行的每个步骤与功能模块相对应。在这种情况下,功能模块被实现为在处理器上运行的计算机程序。

因此,驻留在存储器中的计算机程序可以被组织为适合的功能模块,所述功能模块被配置为,当被处理器执行时,执行本文所述的步骤和/或任务的至少一部分。

图19是对象定位器130的框图。对象定位器130包括决定模块131,其用于:针对视频流的至少一个帧并且基于表示由所述至少一个帧表示的场景与由视频流的参考帧表示的场景之间的改变的至少一个参数,决定对至少一个对象在所述至少一个帧中的位置的确定是基于应用于所述至少一个帧的对象检测,还是基于在参考帧中检测到的至少一个对象的位置的变换。

另一方面涉及用户设备1,参见图1和图2,其包括根据本发明的对象定位器,例如结合图15至图19中的任何一个所描述的。在实施例中,用户设备1还包括或连接到被配置为记录视频并生成视频流的相机2。在实施例中,用户设备1还包括或连接到被配置为生成至少一个参数的至少一个传感器2、3。

在实施例中,用户设备选自由计算机、膝上型计算机、智能电话、移动电话、平板计算机、多媒体播放器、机顶盒和游戏机组成的组。

在诸如网络节点和/或服务器之类的网络设备中提供计算服务(硬件和/或软件)也变得日益普遍,其中资源被作为服务通过网络提供给远程位置。作为示例,这意味着如本文所述的功能可被分布或重新定位到一个或多个分离的物理节点或服务器。该功能可被重新定位或分布到可位于分离的物理节点的一个或多个联合工作的物理和/或虚拟机器中,即在所谓的云中。这有时也被称为云计算,云计算是一种支持对诸如网络、服务器、存储设备、应用和通用或定制服务等可配置计算资源的池的随时随地的按需网络访问的模型。

存在在这种上下文中有用的不同形式的虚拟化,包括以下一种或多种:

·将网络功能整合为运行在定制或通用硬件上的虚拟化软件。这有时被称为网络功能虚拟化。

·将在分离的硬件上运行的一个或多个应用堆栈(包括操作系统)共同定位在单个硬件平台上。这有时被称为系统虚拟化或平台虚拟化。

·硬件和/或软件资源的共同定位,目的是使用一些高级的域级调度和协调技术来获得提高的系统资源利用率。这有时被称为资源虚拟化、或者集中式和协调式资源池化。

虽然将功能集中到所谓的通用数据中心经常是期望的,但在其他场景中实际上将功能分布在网络的不同部分上可能是有利的。

网络设备通常可以被视为通信地连接到网络中的其他电子设备的电子设备。作为示例,网络设备可以用硬件、软件或其组合来实现。例如,网络设备可以是专用网络设备或通用网络设备或其混合。

专用网络设备可以使用定制处理电路和专有操作系统(OS)来执行软件以提供本文公开的特征或功能中的一个或多个。

通用网络设备可以使用公共现成(COTS)处理器和标准OS来执行软件,所述软件被配置为提供本文公开的特征或功能中的一个或多个。

作为示例,专用网络设备可以包括硬件、物理网络接口(NI)以及其上存储有软件的非暂时性机器可读存储介质,所述硬件包括处理或计算资源,其通常包括一个或多个处理器构成的集合,所述物理网络接口(NI)有时被称为物理端口。物理NI可被视为网络设备中的用于进行网络连接的硬件,所述网络连接例如通过无线网络接口控制器(WNIC)以无线方式来进行或者通过将缆线插入连接到网络接口控制器(NIC)的物理端口来进行。在操作期间,软件可以被硬件执行,以实例化一个或多个软件实例的集合。每个软件实例以及执行该软件实例的硬件的部分可以形成单独的虚拟网络元件。

作为另一示例,通用网络设备可以例如包括硬件和NIC以及其上存储有软件的非暂时性机器可读存储介质,所述硬件包括一个或多个处理器(通常是COTS处理器)构成的集合。在操作期间,处理器执行软件以实例化一个或多个应用的一个或多个集合。虽然一个实施例不实现虚拟化,但是备选实施例可以使用不同形式的虚拟化——例如由虚拟化层和软件容器来表示。例如,一个这样的备选实施例实现操作系统级别的虚拟化,在这种情况下,虚拟化层表示允许创建多个软件容器的操作系统内核或在基础操作系统上执行的垫(shim),每个软件容器可被用来执行应用集合之一。在示例实施例中,每个软件容器(也称为虚拟化引擎、虚拟专用服务器或空间(jail))是用户空间实例(通常是虚拟存储空间)。这些用户空间实例可以彼此分离并与执行操作系统的内核空间分离。除非明确允许,否则在给定用户空间中运行的应用集合不能访问其他进程的存储器。另一个这样的备选实施例实现完全虚拟化,在这种情况下:1)虚拟化层表示管理程序(有时称为虚拟机监视器(VMM)),或者管理程序在主机操作系统之上执行;以及,2)每个软件容器表示由管理程序执行的并且可以包括客户操作系统的被称为虚拟机的软件容器的紧密(tightly)隔离形式。

根据又一实施例,提供了一种混合网络设备,其在网络设备(例如,在网络设备内的卡或电路板)中既包括定制处理电路/专有OS也包括COTS处理器/标准OS。在这种混合网络设备的某些实施例中,平台虚拟机(VM)(如实现专用网络设备的功能的VM)可以向混合网络设备中存在的硬件提供半虚拟化。

图25是示出了一般情况下可以如何在不同网络设备之间分布或划分功能的示例的示意图。在该示例中,至少有两个单独的但互连的网络设备300、310,它们可以将不同的功能或者相同功能的部分在网络设备300与310之间划分。可能存在额外的网络设备320,其是这种分布式实现的一部分。网络设备300、310、320可以是同一无线或有线通信系统的一部分,或者一个或多个网络设备可以是位于无线或有线通信系统外部的所谓的基于云的网络设备。

如本文所使用的,术语“网络设备”可以指与通信网络相连接的任何设备,包括但不限于接入网络、核心网络和类似网络结构中的设备。术语网络设备还可以包括基于云的网络设备。

图21是示出了无线通信系统的示例的示意图,所述无线通信系统包括与一个或多个基于云的网络设备300协作的无线电接入网络(RAN)41和核心网络42和可选的操作支持系统(OSS)43。该图还示出了连接到RAN 41并且能够与RAN节点40进行无线通信的用户设备1,该RAN节点40例如是网络节点、基站、节点B(NB)、演进型节点B(eNB)、下一代节点B(gNB)等。

在图21中被示为基于云的网络设备300的网络设备300可以备选地结合例如RAN节点40实现或在RAN节点40处实现。

具体地,所提出的技术可以应用于特定应用和通信场景,包括在无线网络内提供各种服务,包括所谓的过顶(OTT)服务。例如,所提出的技术实现和/或包括无线通信中的相关用户数据和/或控制数据的传输和/或发送和/或接收。

在下文中,现在将参照图22和图23描述说明性的非限制性示例的集合。

图22是示出了根据一些实施例的经由中间网络连接到主机计算机的电信网络的示例的示意图。

参照图22,根据实施例,通信系统包括电信网络QQ410(例如,3GPP类型的蜂窝网络),电信网络QQ410包括接入网络QQ411(例如,无线电接入网络)和核心网络QQ414。接入网络QQ411包括多个基站QQ412a、QQ412b、QQ412c(例如,NB、eNB、gNB或其他类型的无线接入点),每个基站定义对应覆盖区域QQ413a、QQ413b、QQ413c。每个基站QQ412a、QQ412b、QQ412c通过有线或无线连接QQ415可连接到核心网络QQ414。位于覆盖区域QQ413c中的第一UEQQ491被配置为以无线方式连接到对应基站QQ412c或被对应基站QQ412c寻呼。覆盖区域QQ413a中的第二UE QQ492以无线方式可连接到对应基站QQ412a。虽然在该示例中示出了多个UE QQ491、QQ492,但所公开的实施例同等地适用于唯一的UE处于覆盖区域中或者唯一的UE正连接到对应基站QQ412的情形。

电信网络QQ410自身连接到主机计算机QQ430,主机计算机QQ430可以以独立服务器、云实现的服务器、分布式服务器的硬件和/或软件来实现,或者被实现为服务器集群中的处理资源。主机计算机QQ430可以处于服务提供商的所有或控制之下,或者可以由服务提供商或代表服务提供商来操作。电信网络QQ410与主机计算机QQ430之间的连接QQ421和QQ422可以直接从核心网络QQ414延伸到主机计算机QQ430,或者可以经由可选的中间网络QQ420进行。中间网络QQ420可以是公共、私有或承载网络中的一个或多于一个的组合;中间网络QQ420(若存在)可以是骨干网或互联网;具体地,中间网络QQ420可以包括两个或更多个子网络(未示出)。

图22的通信系统作为整体实现了所连接的UE QQ491、QQ492与主机计算机QQ430之间的连接。该连接可被描述为过顶(OTT)连接QQ450。主机计算机QQ430和所连接的UEQQ491、QQ492被配置为使用接入网络QQ411、核心网络QQ414、任何中间网络QQ420和可能的其他基础设施(未示出)作为中介,经由OTT连接QQ450来传送数据和/或信令。在OTT连接QQ450所经过的参与通信设备未意识到上行链路和下行链路通信的路由的意义上,OTT连接QQ450可以是透明的。例如,可以不向基站QQ412通知或者可以无需向基站QQ412通知具有源自主机计算机QQ430的要向所连接的UE QQ491转发(例如,移交)的数据的输入下行链路通信的过去的路由。类似地,基站QQ412无需意识到源自UE QQ491向主机计算机QQ430的输出上行链路通信的未来的路由。

图23是示出了根据一些实施例的通过部分无线连接经由基站与用户设备通信的主机计算机的示例的示意图。

现将参照图23来描述根据实施例的在先前段落中所讨论的UE、基站和主机计算机的示例实现方式。在通信系统QQ500中,主机计算机QQ510包括硬件QQ515,硬件QQ515包括通信接口QQ516,通信接口QQ516被配置为建立和维护与通信系统QQ500的不同通信设备的接口的有线或无线连接。主机计算机QQ510还包括处理电路QQ518,其可以具有存储和/或处理能力。具体地,处理电路QQ518可以包括适用于执行指令的一个或多个可编程处理器、专用集成电路、现场可编程门阵列或它们的组合(未示出)。主机计算机QQ510还包括软件QQ511,其被存储在主机计算机QQ510中或可由主机计算机QQ510访问并且可由处理电路QQ518来执行。软件QQ511包括主机应用QQ512。主机应用QQ512可操作为向远程用户(例如,UE QQ530)提供服务,UE QQ530经由在UE QQ530和主机计算机QQ510处端接的OTT连接QQ550来连接。在向远程用户提供服务时,主机应用QQ512可以提供使用OTT连接QQ550来发送的用户数据。

通信系统QQ500还包括在电信系统中提供的基站QQ520,基站QQ520包括使其能够与主机计算机QQ510和与UE QQ530进行通信的硬件QQ525。硬件QQ525可以包括:通信接口QQ526,其用于建立和维护与通信系统QQ500的不同通信设备的接口的有线或无线连接;以及无线电接口QQ527,其用于至少建立和维护与位于基站QQ520所服务的覆盖区域(图23中未示出)中的UE QQ530的无线连接QQ570。通信接口QQ526可以被配置为促进到主机计算机QQ510的连接QQ560。连接QQ560可以是直接的,或者它可以经过电信系统的核心网络(图23中未示出)和/或经过电信系统外部的一个或多个中间网络。在所示实施例中,基站QQ520的硬件QQ525还包括处理电路QQ528,处理电路QQ528可以包括适用于执行指令的一个或多个可编程处理器、专用集成电路、现场可编程门阵列或它们的组合(未示出)。基站QQ520还具有内部存储的或经由外部连接可访问的软件QQ521。

通信系统QQ500还包括已经提及的UE QQ530。硬件QQ535可以包括无线电接口QQ537,其被配置为建立和维护与服务于UE QQ530当前所在的覆盖区域的基站的无线连接QQ570。UE QQ530的硬件QQ535还包括处理电路QQ538,其可以包括适用于执行指令的一个或多个可编程处理器、专用集成电路、现场可编程门阵列或它们的组合(未示出)。UE QQ530还包括软件QQ531,其被存储在UE QQ530中或可由UE QQ530访问并可由处理电路QQ538执行。软件QQ531包括客户端应用QQ532。客户端应用QQ532可操作为在主机计算机QQ510的支持下经由UE QQ530向人类或非人类用户提供服务。在主机计算机QQ510中,执行的主机应用QQ512可以经由端接在UE QQ530和主机计算机QQ510处的OTT连接QQ550与执行客户端应用QQ532进行通信。在向用户提供服务时,客户端应用QQ532可以从主机应用QQ512接收请求数据,并响应于请求数据来提供用户数据。OTT连接QQ550可以传送请求数据和用户数据二者。客户端应用QQ532可以与用户进行交互,以生成其提供的用户数据。

注意,图23所示的主机计算机QQ510、基站QQ520和UE QQ530可以分别与图22的主机计算机QQ430、基站QQ412a、QQ412b、QQ412c之一和UE QQ491、QQ492之一相似或相同。也就是说,这些实体的内部工作可以如图23所示,并且独立地,周围网络拓扑可以是图22的网络拓扑。

在图23中,已经抽象地绘制OTT连接QQ550,以示出经由基站QQ520在主机计算机QQ510与UE QQ530之间的通信,而没有明确地提到任何中间设备以及经由这些设备的消息的精确路由。网络基础设施可以确定该路由,该路由可以被配置为向UE QQ530隐藏或向操作主机计算机QQ510的服务提供商隐藏或向这二者隐藏。在OTT连接QQ550活动时,网络基础设施还可以(例如,基于负载均衡考虑或网络的重新配置)做出其动态地改变路由的决策。

UE QQ530与基站QQ520之间的无线连接QQ570根据贯穿本公开所描述的实施例的教导。各种实施例中的一个或多个实施例改进了使用OTT连接QQ550向UE QQ530提供的OTT服务的性能,其中无线连接QQ570形成OTT连接QQ550中的最后一段。

出于监视一个或多个实施例改进的数据速率、时延和其他因素的目的,可以提供测量过程。还可以存在用于响应于测量结果的变化而重新配置主机计算机QQ510与UEQQ530之间的OTT连接QQ550的可选网络功能。用于重新配置OTT连接QQ550的测量过程和/或网络功能可以以主机计算机QQ510的软件QQ511和硬件QQ515或以UE QQ530的软件QQ531和硬件QQ535或以这二者来实现。在实施例中,传感器(未示出)可被部署在OTT连接QQ550经过的通信设备中或与OTT连接QQ550经过的通信设备相关联地来部署;传感器可以通过提供以上例示的监视量的值或提供软件QQ511、QQ531可以用来计算或估计监视量的其他物理量的值来参与测量过程。对OTT连接QQ550的重新配置可以包括消息格式、重传设置、优选路由等;该重新配置不需要影响基站QQ520,并且其对于基站QQ520来说可以是未知的或不可感知的。这种过程和功能在本领域中可以是已知的和已被实践的。在特定实施例中,测量可以涉及促进主机计算机QQ510对吞吐量、传播时间、时延等的测量的专有UE信令。该测量可以如下实现:软件QQ511和QQ531在其监视传播时间、差错等的同时使得能够使用OTT连接QQ550来发送消息(具体地,空消息或“假”消息)。

以上描述的实施例将被理解为本发明的几个说明性示例。本领域技术人员将理解,在不脱离本发明的范围的前提下,可以对实施例作出各种修改、组合和改变。尤其是,在技术上可行的情况下,在其他配置中可以组合不同实施例中的不同部分解决方案。然而,本发明的范围由所附权利要求限定。

相关技术
  • 视频流的帧中的对象位置确定
  • 将高分辨率视频流自动实时帧分割成组成特征并修改各个帧中的特征以同时创建来自相同的视频源的多个不同线性视图的方法和系统
技术分类

06120113106273