针对计算机视觉的遮挡处置转让专利

申请号 : CN201680005872.4

文献号 : CN107111880B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朴勇民丹尼尔·瓦格纳

申请人 : 高通股份有限公司

摘要 :

本发明揭示一种用于针对同时定位与映射而执行遮挡处置的系统、设备和方法。可根据依据图像关键帧创建的深度掩模来检测被遮挡的地图点。将场景分为若干区段可优化所述深度掩模。可根据强度来调整深度掩模点的大小。可用可能地图点的优化子集来检验可视性。可响应于确定第一点的周围图像补丁的初始可视性,来将可视性传播到附近点。还可根据网格来组织和优化可视性。

权利要求 :

1.一种用于计算机视觉对象遮挡处置的方法,所述方法包括:将可从3D地图观察的地图点投影到关键帧的点,其中所述关键帧包括具有相关联相机视点的图像;

从所述关键帧的所述点中的每一者,创建包括多个深度图点的深度图,其中每一深度图点包括表示从所述关键帧的相关联相机视点到来自所述3D地图的相应地图点的距离的值,且其中如果深度图点表示多个相应地图点距离,那么所述值包括所述多个相应地图点距离中的最小者;

识别所述关键帧中的潜在可见点,所述潜在可见点包括所述关键帧的在所述深度图内具有代表性距离的所述点;

选择多个所述潜在可见点来测试所述图像中的可视性;

测试所选择的多个所述潜在可见点的可视性,其中所述测试包括确定所述多个所述潜在可见点中的每一者是否包括来自所述关键帧的周围图像补丁,其对应于来自所述3D地图的图像补丁;以及根据来自所述可视性测试的结果来映射环境。

2.根据权利要求1所述的方法,其中选择所述多个所述潜在可见点包括:将所述关键帧细分为若干区段,且其中每一区段包括待测试可视性的阈值数目个地图点。

3.根据权利要求1所述的方法,其中测试所选择的多个所述潜在可见点的可视性进一步包括:将所述测试的结果传播到邻近于所述相应潜在可见点的阈值数目个点。

4.根据权利要求1所述的方法,其中创建所述深度图进一步包括:将所述关键帧细分为若干区段,其中将具有深度值的阈值数目个所述点分配给所述区段中的每一者。

5.根据权利要求1所述的方法,其中创建所述深度图进一步包括:相对于所述点的所述值来定所述深度图点的大小。

6.根据权利要求1所述的方法,其进一步包括:

根据处理能力或可靠性设定,配置:待测试可视性的若干区段、待测试的阈值数目个潜在可见点、待传播可视性结果的与测试可见点相邻的阈值数目个点、具有深度值的阈值数目个点,或其任何组合。

7.根据权利要求1所述的方法,其中如果所述深度图点表示多个相应地图点距离,那么最大距离表示被遮挡的点。

8.一种用于计算机视觉遮挡处置的装置,其包括:存储器;以及

处理器,其耦合到所述存储器且经配置以:

将可从3D地图观察的地图点投影到关键帧的点,其中所述关键帧包括具有相关联相机视点的图像;

从所述关键帧的所述点中的每一者,创建包括多个深度图点的深度图,其中每一深度图点包括表示从所述关键帧的相关联相机视点到来自所述3D地图的相应地图点的距离的值,且其中如果深度图点表示多个相应地图点距离,那么所述值包括所述多个相应地图点距离中的最小者;

识别所述关键帧中的潜在可见点,所述潜在可见点包括所述关键帧的在所述深度图内具有代表性距离的所述点;

选择多个所述潜在可见点来测试所述图像中的可视性;

测试所选择的多个所述潜在可见点的可视性,其中所述测试包括确定所述多个所述潜在可见点中的每一者是否包括来自所述关键帧的周围图像补丁,其对应于来自所述3D地图的图像补丁;以及根据来自所述可视性测试的结果来映射环境。

9.根据权利要求8所述的装置,其中所述装置进一步经配置以:将所述关键帧细分为若干区段,且其中每一区段包括待测试可视性的阈值数目个地图点。

10.根据权利要求8所述的装置,其中所述装置进一步经配置以:将所述测试的结果传播到邻近于所述相应潜在可见点的阈值数目个点。

11.根据权利要求8所述的装置,其中所述装置进一步经配置以:将所述关键帧细分为若干区段,其中将具有深度值的阈值数目个所述点分配给所述区段中的每一者。

12.根据权利要求8所述的装置,其中创建所述深度图进一步包括:相对于所述点的所述值来定所述深度图点的大小。

13.根据权利要求8所述的装置,其中所述装置进一步经配置以:根据处理能力或可靠性设定,配置:待测试可视性的若干区段、待测试的阈值数目个潜在可见点、待传播可视性结果的与测试可见点相邻的阈值数目个点、具有深度值的阈值数目个点,或其任何组合。

14.根据权利要求8所述的装置,其中当所述深度图点表示多个相应地图点距离时,最大距离表示被遮挡的点。

15.一种机器可读非暂时性存储媒体,其中存储有程序指令,所述程序指令可由处理器执行以进行以下操作:将可从3D地图观察的地图点投影到关键帧的点,其中所述关键帧包括具有相关联相机视点的图像;

从所述关键帧的所述点中的每一者,创建包括多个深度图点的深度图,其中每一深度图点包括表示从所述关键帧的相关联相机视点到来自所述3D地图的相应地图点的距离的值,且其中如果深度图点表示多个相应地图点距离,那么所述值包括所述多个相应地图点距离中的最小者;

识别所述关键帧中的潜在可见点,所述潜在可见点包括所述关键帧的在所述深度图内具有代表性距离的所述点;

选择多个所述潜在可见点来测试所述图像中的可视性;

测试所选择的多个所述潜在可见点的可视性,其中所述测试包括确定所述多个所述潜在可见点中的每一者是否包括来自所述关键帧的周围图像补丁,其对应于来自所述3D地图的图像补丁;以及根据来自所述可视性测试的结果来映射环境。

16.根据权利要求15所述的媒体,其进一步包括用以进行以下操作的指令:将所述关键帧细分为若干区段,且其中每一区段包括待测试可视性的阈值数目个地图点。

17.根据权利要求15所述的媒体,其进一步包括用以进行以下操作的指令:将所述测试的结果传播到邻近于所述相应潜在可见点的阈值数目个点。

18.根据权利要求15所述的媒体,其进一步包括用以进行以下操作的指令:将所述关键帧细分为若干区段,其中将具有深度值的阈值数目个所述点分配给所述区段中的每一者。

19.根据权利要求15所述的媒体,其中创建所述深度图进一步包括:相对于所述点的所述值来定所述深度图点的大小。

20.根据权利要求15所述的媒体,其进一步包括用以进行以下操作的指令:根据处理能力或可靠性设定,配置:待测试可视性的若干区段、待测试的阈值数目个潜在可见点、待传播可视性结果的与测试可见点相邻的阈值数目个点、具有深度值的阈值数目个点,或其任何组合。

21.根据权利要求15所述的媒体,其中当所述深度图点表示多个相应地图点距离时,最大距离表示被遮挡的点。

22.一种用于针对计算机视觉执行遮挡处置的设备,所述设备包括:用于将可从3D地图观察的地图点投影到关键帧的点的装置,其中所述关键帧包括具有相关联相机视点的图像;

用于从所述关键帧的所述点中的每一者创建包括多个深度图点的深度图的装置,其中每一深度图点包括表示从所述关键帧的相关联相机视点到来自所述3D地图的相应地图点的距离的值,且其中如果深度图点表示多个相应地图点距离,那么所述值包括所述多个相应地图点距离中的最小者;

用于识别所述关键帧中的潜在可见点的装置,所述潜在可见点包括所述关键帧的在所述深度图内具有代表性距离的所述点;

用于选择多个所述潜在可见点来测试所述图像中的可视性的装置;

用于测试所选择的多个所述潜在可见点的可视性的装置,其中所述测试包括确定所述多个所述潜在可见点中的每一者是否包括来自所述关键帧的周围图像补丁,其对应于来自所述3D地图的图像补丁;以及用于根据来自所述可视性测试的结果来映射环境的装置。

23.根据权利要求22所述的设备,其中选择所述多个所述潜在可见点包括:用于将所述关键帧细分为若干区段的装置,且其中每一区段包括待测试可视性的阈值数目个地图点。

24.根据权利要求22所述的设备,其中测试所选择的多个所述潜在可见点的可视性进一步包括:用于将所述测试的结果传播到邻近于所述相应潜在可见点的阈值数目个点的装置。

25.根据权利要求22所述的设备,其中创建所述深度图进一步包括:用于将所述关键帧细分为若干区段的装置,其中将具有深度值的阈值数目个所述点分配给所述区段中的每一者。

26.根据权利要求22所述的设备,其中用于创建所述深度图的装置进一步包括:用于相对于所述点的所述值来定所述深度图点的大小的装置。

27.根据权利要求22所述的设备,其进一步包括:用于根据处理能力或可靠性设定来配置以下各项中的一或多者的装置:待测试可视性的若干区段、待测试的阈值数目个潜在可见点、待传播可视性结果的与测试可见点相邻的阈值数目个点、具有深度值的阈值数目个点,或其任何组合。

28.根据权利要求22所述的设备,其中如果所述深度图点表示多个相应地图点距离,那么最大距离表示被遮挡的点。

说明书 :

针对计算机视觉的遮挡处置

[0001] 相关申请案的交叉参考
[0002] 本申请案主张2015年1月29日申请的标题为“针对计算机视觉的遮挡处置(OCCLUSION HANDLING FOR COMPUTER VISION)”的第14/609,371号美国专利申请案的优先权,所述申请案以引用的方式并入本文中。

技术领域

[0003] 本文所揭示的标的物大体上涉及计算机视觉中的被遮挡对象和环境检测。

背景技术

[0004] 计算机视觉是包含用于获取、分析、处理和理解图像(例如,现实世界图像捕捉)以提供事件或结果的方法和系统的领域。举例来说,一个计算机视觉技术是即时定位与地图构建(SLAM),其可处理单个相机的输入且随着相机以六自由度(6DOF)移动而连续地建立环境的三维(3D)模型(例如,重新建构的地图)。SLAM系统可在绘制3D模型的同时跟踪相机相对于3D模型的位姿。然而,当新的(非映射)对象遮挡现有3D模型时,SLAM系统可产生错误,因为SLAM系统尝试跟踪新的遮挡对象后面的预先存在/经重构的3D模型。当SLAM系统尝试跟踪3D模型的特征时,可出现错误,因为SLAM系统可能不再跟踪被新对象遮挡的特征。在一些情况下,遮挡错误致使SLAM系统无法跟踪3D模型,且遮挡对象不是重构的。
[0005] 消除因新对象遮挡而出现的跟踪错误通常需要超出某些裝置(例如受限处理能力便携式或移动装置)上实时可为可能的情况的对场景的广泛处理。举例来说,检测遮挡对象通常需要证实相机视野中的每个地图点的可视性。此广泛可视性证实涉及搜索每个经重构地图点与当前相机图像中的每个点的对应性。因此,针对计算机视觉的新的且改进的遮挡处置是合意的。

发明内容

[0006] 本文中所揭示的实施例可涉及一种为计算机视觉执行遮挡处置的方法。所述方法可包含将可从3D地图观察的地图点投影到关键帧的点,其中所述关键帧包括具有相关联相机视点的图像。所述方法还可包含:从所述关键帧的所述点中的每一者,创建包括多个深度图点的深度图,其中每一深度图点包括表示从所述关键帧的相关联相机视点到来自所述3D地图的相应地图点的距离的值,且如果深度图点表示多个相应地图点距离,那么所述值包括所述多个相应地图点距离中的最小者。所述方法还可包含:识别所述关键帧中的潜在可见点,所述潜在可见点包括所述关键帧的具有在所述深度图内的代表性距离的点;以及选择多个潜在可见点来测试所述图像中的可视性。所述方法还可包含测试所述选定多个潜在可见点的可视性,其中所述测试包括:确定所述多个潜在可见点中的每一者是否包括来自关键帧的周围图像补丁,其对应于来自3D地图的图像补丁;以及根据来自可视性测试的结果来映射环境。
[0007] 本文中所揭示的实施例可进一步涉及一种为计算机视觉执行遮挡处置的装置。所述装置可包含将可从3D地图观察的地图点投影到关键帧的点的指令,其中所述关键帧包括具有相关联相机视点的图像。所述装置可包含用以进行以下操作的指令:从所述关键帧的所述点中的每一者,创建包括多个深度图点的深度图,其中每一深度图点包括表示从所述关键帧的相关联相机视点到来自所述3D地图的相应地图点的距离的值,且如果深度图点表示多个相应地图点距离,那么所述值包括所述多个相应地图点距离中的最小者。所述装置可包含指令,其用以:识别所述关键帧中的潜在可见点的,所述潜在可见点包括关键帧点中具有深度图内的代表性距离的点;且选择多个潜在可见点来测试所述图像中的可视性。所述装置可包含指令,其用以:测试所述选定多个潜在可见点的可视性,其中所述测试包括确定所述多个潜在可见点中的每一者是否包括来自关键帧的周围图像补丁,其对应于来自3D地图的图像补丁;以及根据来自可视性测试的结果映射环境。
[0008] 本文中所揭示的实施例还可涉及一种为计算机视觉执行遮挡处置的设备。所述设备可包含用于将可从3D地图观察的地图点投影到关键帧的点的装置,其中所述关键帧包括具有相关联相机视点的图像。所述设备可包含:用于从所述关键帧的所述点中的每一者创建包括多个深度图点的深度图的装置,其中每一深度图点包括表示从所述关键帧的相关联相机视点到来自所述3D地图的相应地图点的距离的值,且如果深度图点表示多个相应地图点距离,那么所述值包括所述多个相应地图点距离中的最小者。所述设备可包含:用于识别所述关键帧中的潜在可见点的装置,所述潜在可见点包括所述关键帧的具有深度图内的代表性距离的点;以及用于选择多个所述潜在可见点来测试所述图像中的可视性的装置。所述设备可包含:用于测试所述选定多个潜在可见点的可视性的装置,其中所述测试包括:确定所述多个潜在可见点中的每一者是否包括来自关键帧的周围图像补丁,其对应于来自3D地图的图像补丁;以及用于根据来自可视性测试的结果来映射环境的装置。
[0009] 本文所揭示的实施例可进一步涉及一种包括非暂时性存储媒体的制品,所述非暂时性存储媒体具有可执行以实施为计算机视觉执行遮挡处置的指令。所述媒体可包含将可从3D地图观察的地图点投影到关键帧的点的指令,其中所述关键帧包括具有相关联相机视点的图像。所述媒体可包含用以进行以下操作的指令:从所述关键帧的所述点中的每一者,创建包括多个深度图点的深度图,其中每一深度图点包括表示从所述关键帧的相关联相机视点到来自所述3D地图的相应地图点的距离的值,且如果深度图点表示多个相应地图点距离,那么所述值包括所述多个相应地图点距离中的最小者。所述媒体可包含指令,其用以:识别关键帧中的潜在可见点,所述潜在可见点包括关键帧的具有深度图内的代表性距离的点;以及选择多个潜在可见点来测试所述图像中的可视性。所述媒体可包含指令,其用以:
测试所述选定多个潜在可见点的可视性,其中所述测试包括确定所述多个潜在可见点中的每一者是否包括来自关键帧的周围图像补丁,其对应于来自3D地图的图像补丁;以及根据来自可视性测试的结果映射环境。
[0010] 其它特征和优势将从附图和具体实施方式中显而易知。

附图说明

[0011] 图1是在一个实施例中,其中可实践针对计算机视觉的遮挡处置(OHCV)的方面的系统的框图;
[0012] 图2A说明在一个实施例中,具有第一视点和三维(3D)地图的第一关键帧;
[0013] 图2B说明在一个实施例中,具有第二视点的第二关键帧;
[0014] 图2C说明在一个实施例中,相机视图中的地图点的表示;
[0015] 图2D说明在一个实施例中,图2C的具有其与相机图像平面的相对深度的地图点;
[0016] 图2E说明在一个实施例中,与图2B的环境相关联的3D地图;
[0017] 图2F说明在一个实施例中,不考虑遮挡的情况下的新图像点提取;
[0018] 图2G说明在一个实施例中,图2B的场景的深度图;
[0019] 图2H说明在另一个实施例中,表示图2B中说明的环境中的点的深度值的掩模;
[0020] 图2I说明在一个实施例中,从执行深度图比较确定的被遮挡点;
[0021] 图2J说明在一个实施例中,图2B的场景中的潜在可见点;
[0022] 图2K说明在另一个实施例中,选择图2B中说明的场景内的点以供可视性测试处理;
[0023] 图2L说明可视性测试所发现的被遮挡点;
[0024] 图2M说明在一个实施例中,将从输入关键帧提取的新图像点;
[0025] 图3说明在一个实施例中,用于执行OHCV的方法的流程图;
[0026] 图4说明在一个实施例中,用于执行OHCV深度过滤的方法的流程图;以及[0027] 图5说明在一个实施例中,用于执行OHCV可视性测试的方法的流程图。

具体实施方式

[0028] 词语“示范性”或“实例”在本文中用于表示“充当实例、例子或说明”。本文中描述为“示范性”或描述为“实例”的任何方面或实施例未必应被解释为比其它方面或实施例优选或有利。
[0029] 在一个实施例中,针对计算机视觉的遮挡处置(本文中描述为“OHCV”)用深度地图来过滤被遮挡的地图点,且确定点子集的可视性。3D地图中的3D点具有已知深度值(例如由于同时定位与映射(SLAM)或其它映射方法)。在一个实施例中,OHCV将3D点的深度与深度掩模/地图中的等效点(例如占据相对于相机视点的相同位置的点)的深度进行比较。响应于比较两个或更多个等效点,将具有较大深度的点(例如较远离相机位置的点)分类为被遮挡。通过优化可视性测试来处理在深度掩模中不具有对应深度的点。
[0030] 在一些实施例中,OHCV相对于所述点的相应深度值来设定每一点在深度图内的大小。举例来说,最接近相机视点的点在深度图中以较大覆盖区域(例如作为具有比较远离相机视点的点大的外周的圆)表示。
[0031] 在一个实施例中,为在用深度图进行预先过滤之后剩余的未被遮挡点的子集检验相对于相机视点的点可视性。检验点可视性以捕获在深度图预先过滤之后剩余的3D地图点,其可能被另一未知的(即,尚未重构的)对象遮挡。
[0032] 图1是说明其中可实践本发明的实施例的系统的框图。所述系统可为装置(例如装置100),其可包含通用处理器161和存储器164。装置100还可包含耦合到一或多个总线177的若干装置传感器或进一步耦合到实施为模块或引擎的OHCV 170的信号线。如图1中所示,为了清楚起见,OHCV 170与处理器161和/或硬件162分开,但可组合和/或实施在处理器161和/或硬件162中。在一些实施例中,OHCV 170的特征由软件165和/或固件163中的指令实施。在一些实施例中,控制单元160经配置以实施执行OHCV的方法。举例来说,控制单元160可经配置以实施如下关于图3、图4和图5所述的装置100的功能。
[0033] 装置100可为:移动装置、无线装置、手机、扩增现实装置(AR)、个人数字助理、可穿戴式装置(例如,眼镜、手表、帽子或类似的身体附接装置)、移动计算机、平板计算机、个人计算机、膝上型计算机、数据处理装置/系统、或具有处理能力的任何类型的装置。
[0034] 在一个实施例中,装置100是移动/便携式平台。装置100可包含用于捕获图像的装置(例如,相机114),并且可视情况包含传感器111,例如加速计、陀螺仪、电子指南针或其它类似的运动感测元件。
[0035] 装置100可包括多个相机,例如双前置相机和/或前置和后置相机,其也可并入有各种传感器。相机可能够捕获静止和视频图像两者。相机可为能够以30帧每秒(fps)捕获图像的红绿蓝加深度(RGBD)或立体摄像机。由相机捕获的图像可处于原始未经压缩格式,且可在被处理和/或存储在存储器164中之前经压缩。OHCV可用处理器161使用无损或有损压缩技术来执行图像压缩。
[0036] 处理器161也可接收来自传感器111的输入。传感器111可包括3轴加速计、3轴陀螺仪和/或磁力计。传感器111可将速度、定向和/或其它位置相关信息提供给处理器161。传感器111可输出与相机114对每一图像帧的捕获相关联的测得信息。传感器111的输出可部分地由处理器161用来确定相机114和/或装置100的位姿。
[0037] 相机114的位姿(本文中还描述为“相机视点”)是指相机114相对于参考框架的位置和定向(即,位姿)。可为6DOF确定相机位姿,其是指三个平移分量(其可由参考框架的X、Y、Z坐标给出)和三个角度组件(例如相对于同一参考框架的横摇、纵摇和横摆)。
[0038] 处理器161可使用基于相机114所捕获的图像的视觉跟踪解决方案来确定和/或跟踪相机114和/或装置100的位姿。举例来说,在处理器161上运行的映射模块可实施和执行基于计算机视觉的跟踪、基于模型的跟踪和/或同时定位与映射(SLAM)方法。SLAM指一类技术,其中创建环境的3D地图(例如,由装置100建模的环境的3D地图)同时追踪相机相对于所述地图的位姿。SLAM模块173所实施的方法可基于相机114所捕获的色彩或灰度级图像数据,且可用于产生相机的6DOF位姿测量的估计。传感器111的输出可用于估计、校正和/或以其它方式调整所估计的位姿。相机114所捕获的图像可用于再校准或执行传感器111的偏置调整。
[0039] 装置100可进一步包含用户接口150,所述用户接口包含用于显示扩增现实图像的装置,例如,显示器112。用户接口150还可包含键盘、小键盘152或用户可经由其将信息输入到装置100中的其它输入装置。如果需要,通过触摸屏/传感器将虚拟小键盘集成到显示器112中可免除键盘或小键盘152。例如,在装置100是移动平台(例如,蜂窝式电话)的情况下,用户接口150还可包含麦克风154和扬声器156。装置100可包含与本发明无关的其它元件,例如卫星定位系统接收器、电力装置(例如,电池),以及通常与便携式和非便携式电子装置相关联的其它组件。
[0040] 装置100可充当移动或无线装置,并且可通过无线网络经由基于或以其它方式支持任何合适的无线通信技术的一或多个无线通信链路来通信。举例来说,在一些方面中,装置100可为客户端或服务器并且可与无线网络相关联。在一些方面中,网络可包括人体局域网络或个人局域网络(例如,超宽带网络)。在一些方面,网络可包括局域网或广域网。无线装置可支持或以其它方式使用多种无线通信技术、协议或标准中的一或多个,例如,3G、LTE、高级LTE、4G、CDMA、TDMA、OFDM、OFDMA、WiMAX和WiFi。类似地,无线装置可支持或以其它方式使用多种对应调制或多路复用方案中的一或多者。移动无线装置可以无线方式与其它移动装置、蜂窝电话、其它有线和无线计算机、因特网网站等通信。
[0041] 如上文所描述,装置100可为便携式电子装置(例如,智能电话、专用扩增现实(AR)装置、游戏装置或具有AR处理和显示能力的其它装置)。实施本文中所描述的AR系统的装置可用于多种环境(例如,商场、街道、办公室、家庭,或用户可携带其便携式装置的任何地方)中。用户可在广泛多种情境中与其装置100的多个特征介接。在AR情况中,用户可使用其装置通过其装置的显示器来检视现实世界的表示。用户可通过使用其装置的相机与其带有AR功能的装置交互以接收现实世界图像/视频,且以将额外的或替代信息叠加到装置上所显示的现实世界图像/视频上的方式来处理图像。当用户在其装置上检视AR实施方案时,可在装置显示器上实时替代或更改现实世界对象或场景。虚拟对象(例如,文本、图像、视频)可插入到装置显示器上所描绘的场景的表示中。
[0042] 在一个实施例中,OHCV从例如SLAM的技术产生3D地图。举例来说,SLAM(例如6自由度(6DOF)跟踪和映射)可将从关键帧观察到的特征关联到3D地图,并使用特征点关联来确定与相应相机图像有关的相机位姿。通过6DOF映射,OHCV可用新的或额外的对象和环境重构来更新/维持3D地图。举例来说,响应于检测关键帧内的被遮挡对象,OHCV可触发对象的重构和/或关键帧内的新对象的映射。新发现的对象可并入到3D地图中。所述3D地图可含有从两个或更多个关键帧三角测量的3D特征点。举例来说,关键帧可选自图像或视频流或馈送以表示观察到的场景。对于关键帧,OHCV可计算与所述图像相关联的相应6DOF相机位姿。OHCV可通过将来自3D图的特征投影到图像或视频帧中并依据所检验的2D-3D对应性更新相机位姿来确定相机位姿。
[0043] 图2A说明在一个实施例中,具有第一视点和3D地图的第一关键帧。举例来说,所说明的关键帧可为具有在时间Ti-1捕获的第一视点(Vi-1)的第一关键帧(Ki-1)。图2A进一步说明对象(例如对象205和对象215),其表示在时间Ti-1,SLAM系统(例如3D地图)内的完全或部分经重构对象。举例来说,对象205可先前在时间Ti-1之前的时间T0由SLAM系统重构。图2A进一步说明潜在遮挡对象(例如对象215),其表示时间Ti-1时环境200内的部分经重构对象。举例来说,在图2A中说明的时间Ti-1,SLAM系统尚未完全重构潜在遮挡对象,或归因于在映射环境时提供所述对象的受限信息的视点的角度,所述对象可具有受限/局部重构。在一些实施例中,所述视点可包含完全未重构的对象(例如不存在受限或部分经重构的对象)。
[0044] 图2B说明在一个实施例中,具有第二视点的第二关键帧。举例来说,图2B可说明具有在时间T1(例如T1可在与图2A相关联的时间Ti-1之后)捕获的视点Vi的第二关键帧(Ki)。OHCV可读取关键帧Ki,并提取关键帧Ki中的新图像点,同时避免与已经经重构的地图点重叠。图2B说明相机视点在T1已经从时间Ti-1时图2A的较高视图移位到较低。如图2B中所说明,对象215现在至少部分地遮挡3D地图的经重构部分(例如对象205)。如在图2A中在时间Ti-1,SLAM系统在时间T1尚未完全重构遮挡对象。
[0045] 图2C说明在一个实施例中,相机视图中的地图点的表示。图2C说明可从相机视图(例如从相机中心203沿检视方向207)可观察哪些点。点211-1到211-4投影到相机图像平面204。相比之下,点209-1到209-2位于可见区域(例如左边界202和右边界206)之外。点210-1到210-2位于相机后面(例如相机图像平面204后面)。
[0046] 图2D说明在一个实施例中,图2C的具有其与相机图像平面的相对深度的地图点。深度208在本文中说明并描述为可观察点在相机的检视方向(例如方向207)上的距离。可根据已知相机位置和定向来计算深度。
[0047] 图2E说明在时间T1与图2B的环境相关联的3D地图。图2E说明含有具有点(例如参考3D地图点210)的经重构对象205的环境201,其可由SLAM系统用来跟踪经重构对象205。图2E说明可在相机的视见体(即,视线)内观察到的关键帧点KPi的子集。在一个实施例中,经重构的对象215不在环境的3D地图内表示,因为在时间T1,最初未发现对象215,且尚未在SLAM系统的3D地图内重构。在一些实施例中,因为遮挡对象仅部分经重构,所以对象的一些区域对于SLAM系统来说基本上是未知的(例如对象215的正面区段未由任何3D点表示)。图
2E也说明一些3D点被遮挡。举例来说,与对象215的顶部相关联的点216遮挡与对象205相关联的点217。
[0048] 图2F说明不考虑遮挡的新图像点重构。举例来说,如图2F中所示,SLAM系统不知晓(例如,尚未确定)与不可见地图点的重叠。如下文将示出,OHCV可从深度图比较检测遮挡,以便减少可视性测试在输入关键帧内执行的次数。在一些实施例中,除执行深度图比较之外或代替执行深度图比较,OHCV利用如关于下文的图3和图5更详细描述的可视性测试估计和传播技术。
[0049] 图2G说明在一个实施例中,图2B的场景的深度图。举例来说,深度图Di可表示KPi的所有点的距离。在一个实施例中,深度图Di含有表示从相机视点到场景或环境内的物理区域的深度值的数据点。举例来说,点220、221、222和223可指示从相机视点到对象215上的相应位置的深度值(例如英寸、厘米或其它距离测量)如图2E中所说明,点220具有最大强度(例如几乎黑色),且最远离相机视点。点221表示比点220更接近相机视点,然而不像点223那么近的点。点222表示指示相机视点的相对接近点的低强度深度值。如图2E中所示,点222以及对象205的顶部区段处的其它点最接近于相机视点。
[0050] 图2H说明在另一个实施例中,表示图2B中说明的环境中的点的深度值的掩模。举例来说,表示深度值的掩模中的点可相对于其相应深度值画得较大(例如点226)较小(例如点224)。较接近的点(例如对象215的点226和点227)可相对于较远离相机视点的(较小)点(例如点224和点225)画得较大。
[0051] 图2I说明在一个实施例中,从执行深度图比较确定的被遮挡点。举例来说,图2G可表示在Di中不具有对应像素的被遮挡点Oi(例如点230)。如图2G中所说明,点Oi被其它地图点遮挡(例如,O=KP-PV)。举例来说,图2G包含被点216遮挡的点217,如图2E所说明。
[0052] 图2J说明在一个实施例中,图2B的场景中的潜在可见点。举例来说,将图2I中所说明的潜在可见点确定为不被3D地图内的其它地图点遮挡。响应于去除、省略或丢弃图2G中所说明的被遮挡点,OHCV可对所得潜在可见点进行可视性测试。图2J进一步说明可用于测试可视性的地图点235周围的图像补丁238。举例来说,3D地图中的地图点235周围的图像补丁238可变形或变换为与当前关键帧的图像的外观匹配。OHCV可计算地图点的预期位置周围的搜索区239上方的归一化交叉相关(NCC)。如果找到对应性(例如位置具有高NCC),那么所述地图点(例如点235)被视为可见。距选定点235阈值半径内的点(例如点236和237)可能共享可视性特性,因为它们共享点235周围的图像补丁238的像素。举例来说,将对象(框)215的左上边缘说明为包含于图像补丁238中,且可在使来自关键帧的图像补丁与来自3D地图的相应图像补丁匹配时,成为有用的视觉识别符/标记。在一些实施例中,当对关键帧内的点执行可视性测试时,OHCV将所述关键帧细分为若干区段或网格,来安排对点对应性群组的测试,如下文论述的图2K中所说明。
[0053] 图2K说明在另一个实施例中,选择图2B中说明的场景内的点以供可视性测试处理。在一个实施例中,OHCV利用区段/网格以及可视性测试结果传播来优化确定关键帧中的点的可视性的过程。OHCV可将关键帧细分为独立部分/区段。在一个实施例中,OHCV用相等大小框或矩形的网格(例如网格区段260)来细分关键帧,然而其它配置、形状或大小也可为可能的。在一个实施例中,OHCV对区段/网格的配置设定取决于执行OHCV的特定装置的处理能力。举例来说,图2K中说明的网格区段260包含具有未知可视性的四个点266到269。
[0054] 响应于选择特定区段/网格配置(例如根据区段大小和数目的可配置设定),可确定关键帧与3D地图之间的点对应性。在一些实施例中,OHCV将每一网格区段的子区段内的点与同一网格区段内的一或多个其它点进行比较。OHCV可将比较结果从一或多个点传播到其它附近或邻近点。举例来说,在图2K中说明的网格区段260内,OHCV可经配置以测试一或多个点对应性。在一个实施例中,代替于测试每个点(其可为处理密集的过程),当被测点的数目满足或超过阈值(即,被测点的阈值数目)时,OHCV跳过/略过点子集的可视性测试。OHCV可通过推断每一点的值/状态与附近或邻近点相同或类似,来估计或推断其余未测点的可视性值/状态。OHCV测试一或多个点的子集,并将结果传播到每一网格区段内的其它邻近或附近点。在图2K中说明的实例网格中,在网格区段260内的四个点266到269中,可明确测试一个到三个点的可视性,且可将每一点的结果复制、扩展或拷贝到所述附近或邻近点中的一或多者。举例来说,响应于确定根据可视性测试点266可见,OHCV可将可视性结果传播到邻近点267、268和269。因此,尽管仅明确测试点266的可视性,但在点266的结果的传播之后,将为网格区段260中的所有四个点266到269指派与266相同或类似的可视性测试值/结果。
[0055] 在一个实施例中,OHCV利用以下各项中的一或多者:测试区段的数目、测试区段的大小,或点的阈值数目,作为调谐参数来适应执行OHCV的系统或硬件的给定处理能力。举例来说,在相对较低处理能力装置(例如低端移动装置)上,与较高性能装置(例如旗舰或优势移动装置)相比,OHCV可传播较多可视性值。在一些实施例中,OHCV也可参考指定要传播的可视性值的阈值数目的可靠性配置设定,和/或网格布置设定。
[0056] 图2L说明在一个实施例中,可视性测试所发现的遮挡点。举例来说,除从深度图找到的遮挡点之外,可视性测试可发现关键帧内的其余遮挡点。如图2L中所说明,被遮挡点是对象205前方的框的非经重构区段。
[0057] 图2M说明在一个实施例中,将从输入关键帧提取的新图像点。OHCV可避免提取最终可见地图点280,且从框的前侧提取点275。相比于图2H,OHCV已能够正确地检测可见地图点,使得重构可避免与不可见地图点重叠(例如在被对象205覆盖的区域)。
[0058] 图3说明在一个实施例中,针对计算机视觉的遮挡处置的流程图。在框305处,实施例(例如OHCV)将可从3D地图观察的地图点投影到关键帧的点,其中所述关键帧包括具有相关联相机视点的图像。
[0059] 从3D地图中的3D点和相机的位置(例如关键帧视点),投影包含计算3D点在相机图像中何处出现(例如相机/关键帧图像中的3D点的2D位置)。投影过程可包含将3D点从3D世界坐标变换为3D相机坐标,接着投影到2D相机空间中,且接着变换到2D像素空间中。举例来说,公式可为mi=K*P(T*Mi),其中Mi是3D中的点,T是相机/关键帧位姿矩阵,P()是获取3D点并通过z坐标来划分从而产生2D点的投影功能,K是相机/关键帧校准矩阵,且mi是相机关键帧图像中的Mi的2D像素坐标。
[0060] 在一些实施例中,响应于投影3D地图点或作为投影3D地图点的一部分,OHCV确定从相机视点到3D地图可观察哪些关键帧点(例如点211-1到211-4,如图2C和2D中所说明)。举例来说,所有3D地图点均不可从当前相机视点观察,因为它们不在帧内(例如点209-1到
209-2,如图2C和2D中所说明)。
[0061] 关键帧可包含在图像内检测到的3D点(例如具有三维空间中的坐标的点)。举例来说,可通过处理相机图像以检测所述图像内的一或多个特征点来确定关键帧。在一个实施例中,OHCV获得包含与环境中的一或多个对象相关联的3D地图点的环境的三维(3D)地图(还被称作参考地图)。举例来说,3D地图可为来自SLAM或其它计算机视觉映射系统的经重构地图。可(例如在装置100的存储器164中)本地存储和检索所述参考/经重构地图。在一些实施例中,从服务器或外部/远程装置接收/检索3D地图。
[0062] 在框310处,实施例从关键帧点中的每一者创建包括多个深度图点的深度图,其中每一深度图点包括表示从关键帧的相关联相机视点到来自3D地图的相应地图点的距离,且其中如果深度图点表示多个相应地图点距离,那么所述值包括所述多个相应地图点距离中的最小者。举例来说,OHCV可创建深度图像,其中将3D地图点表示为具有表示从相机视点到环境内的点的距离的圆的强度的小圆。可通过将3D地图点的距离与来自深度图的深度进行比较来检测被遮挡的地图点。举例来说,可从投影到同一3D地图点上的相机视点观察的关键帧点以及最接近于所述相机视点的相应3D地图距离存储在深度图中。作为比较两个点之间的距离的结果,将与距相机视点较远距离(例如最大距离)相关联的关键帧点确定为被遮挡。下文关于图4以额外细节描述深度图过滤。
[0063] 在一些实施例中,创建深度图还包含将关键帧细分为若干区段,其中将具有深度值的阈值数目的点分配给所述区段中的每一者。此外,可确定相对于所述点的值的每一深度点的大小。举例来说,可将较接近的点(较小距离值)画得比较远的点(较大距离值)大。
[0064] 在框315处,实施例识别关键帧中的潜在可见点,所述潜在可见点包括关键帧的在深度图内具有代表性距离的点。举例来说,OHCV可使用深度比较的结果来识别被遮挡的地图点。
[0065] 在框320处,所述实施例选择多个潜在可见点来测试图像中的可视性。在一些实施例中,选择所述多个潜在可见点包含:将关键帧细分为若干区段,其中每一区段包括阈值数目的地图点来测试可视性。
[0066] 在框325处,实施例测试所述选定多个潜在可见点的可视性,其中所述测试包括确定所述多个潜在可见点中的每一者是否包括来自关键帧的周围图像补丁,其对应于来自3D地图的图像补丁。可视性检验例如通过搜索当前图像或关键帧中的3D地图点和周围图像补丁的对应性来寻找可见(未被遮挡)3D地图点。OHCV可对选定点和图像补丁执行可视性测试,并将可视性结果传播(例如将可见或不可见的结果指派)到“附近”或“邻近”地图点和图像补丁。举例来说,如果所述点在选定点的接近性阈值内,那么可将点和图像补丁定义为“附近”或“邻近”另一点。可从点或从补丁确定接近性。举例来说,接近性可根据像素的阈值数目或两个点之间的距离的其它测量,或可根据图像补丁是否具有邻近于另一相邻图像补丁内的像素的阈值数目的像素来确定。在一个实施例中,通过基于深度点和接近性优化预先过滤,可检验3D点和周围图像补丁的总数的子集,且实现图像的可视性结果,而不必检验所述图像中的整个集合的点和图像补丁中的每一者。在一些实施例中,作为可视性测试的目标的点和相关联图像补丁的数目受网格方案限制。举例来说,可将图像帧(例如输入关键帧)分成若干网格,且相对于属于每一网格内的点的数目来执行阈值数目的可视性测试(例如含有5个点的网格可具有阈值数目3个测试或某一其它数目的点和阈值)。
[0067] 在一些实施例中,使用网格来优化要测试的点的数目。在一个实施例中,网格的区段的数目或要测试的3D地图点的阈值数目可根据处理能力或可靠性设定来配置。举例来说,低处理能力装置可具有为效率优化的配置,使得所述装置可足够快地处理关键帧来为用户提供充分的检视体验。高处理能力装置可具有为准确性优化的配置,使得所述装置可检验额外可视性点,同时还为用户提供充分的检视体验。下文相对于图5更详细地描述可视性测试。
[0068] 在一些实施例中,测试所述选定多个潜在可见点的可视性进一步包含:将所述多个潜在可见点中的每一者在所述图像中是否具有对应点的结果传播到邻近于相应潜在可见点的阈值数目的点。
[0069] 在框330处,实施例根据可视性测试的结果来映射环境。
[0070] 在一些实施例中,根据OHCV主机装置(例如装置100)的处理能力或可靠性设定,OHCV可根据上述各项中的一或多者来配置:要测试可视性的区段的数目、要测试的潜在可见点的阈值数目、要传播可视性结果的邻近点的阈值数目、具有深度值的点的阈值数目,或其任何组合。举例来说,低处理能力裝置可配置有较大区段,从而与高处理能力裝置相比,导致较小数目的区段要测试。并且,无关于实际处理能力,OHCV可经配置以通过调整本文所述的配置设置中的一些,来以有利于速度的增强或减少的可靠性来执行。
[0071] 图4说明在一个实施例中,OHCV深度过滤的流程图。在框405处,实施例获得要过滤的关键帧。所述关键帧可含有与所述图像内的元素或对象相关联的点(例如特征点)。在一个实施例中,响应于接收到关键帧,初始化深度掩模产生。举例来说,所获得的关键帧可为例如图2B中说明的相机视图。
[0072] 举例来说,可从来自相机传感器的相机图像或视频帧处理关键帧。关键帧可包含关于所捕获图像的相机视点(例如位姿)的信息。OHCV可从输入图像提取特征来创建关键帧。如本文所使用的特征(例如,特征点或关注点)作为图像的所关注或显著部分。从所捕捉图像提取的特征可表示沿着三维空间(例如,轴线X、Y以及Z上的坐标)的不同的点,且每个特征点可具有相关联的特征位置。关键帧中的特征与先前捕获的关键帧的特征匹配或未能匹配(即,相同或对应)。特征检测可为图像处理操作以检查每一像素来确定特征是否以具体像素存在。特征检测可处理整个所捕获图像,或替代地,处理所捕捉图像的某些部分或局部。
[0073] 对于每一所捕获的图像或视频帧,一旦已检测到特征,就可提取特征周围的局部图像补丁。可使用例如尺度不变特征变换(SIFT)等熟知技术来提取特征,所述技术使特征局部化且产生其描述。如果需要,可使用其它技术,例如,快速鲁棒特征(SURF)、梯度位置定向直方图(GLOH)、归一化互相关(NCC)或其它可比较技术。当确定图像的所提取的特征的数目超过阈值(例如100个点特征或其它数目的点)时,可将所述图像和特征保存为关键帧。
[0074] 在一个实施例中,根据参考地图(例如由计算机视觉映射系统创建和维持的3D地图)的经重构(例如3D地图)点以及来自所述特征点的3D坐标,OHCV将这些点投影到当前相机位姿(例如与当前关键帧相关联的相机视点)。每一关键帧点具有所述图像/关键帧上的2D坐标的距离。
[0075] 在框410处,所述实施例可视情况根据距离确定深度点大小。举例来说,图2F说明深度点大小设计,其中较大的点指示所述图像的较接近相机视点的部分,且较小的点指示所述图像的较远离相机视点的部分。
[0076] 在框415处,所述实施例用网格来划分关键帧。举例来说,OHCV可将所述关键帧分为相等大小的区段来进行深度点计算。在一个实施例中,每一区段可具有可配置数目的深度点。
[0077] 在框420处,所述实施例选择网格区段来比较。OHCV可选择一区段,且在选择下一区段之前,处理所述区段内的点,直到所有区段被处理为止。
[0078] 在框425处,所述实施例将地图点距离与深度掩模距离进行比较。如上文所介绍,OHCV可确定深度掩模,例如图2E或图2F中说明的掩模。OHCV可将3D地图点的距离与深度掩模中的等效点进行比较,且寻找比掩模像素远的点(例如在当前相机位姿中被遮挡)。当OHCV确定哪些点正遮挡时,可为深度图中的所有点指派相同大小(例如具有5个像素或某一其它可配置值的半径的圆)。在一些实施例中,所述圆可具有取决于其距离值的不同半径。举例来说,点的较小的圆进一步远离。如果两个点极接近,但一个点的圆并不完全画在另一点上方,那么将所述另一点被视为不被遮挡。如果两个点正好投影到相同像素坐标上(由于其圆也可具有相同大小),那么此情况可发生。然而,如果存在许多点,那么情况可为例如,彼此接近的3个点覆盖另一点(其进一步远离)将还覆盖的整个区域。因此,被覆盖的点的空心圆完全被那其它3个点覆盖,且所述点接着被视为被遮挡。
[0079] 在框430处,所述实施例确定是否应处理当前区段内的额外点。举例来说,每一区段可具有若干点来进行比较,且OHCV可迭代通过每一点,直到已比较网格选择为止。
[0080] 在框435处,所述实施例确定所述网格内的区段完成,且确定是否应比较额外区段。如果额外比较排队,那么所述实施例返回到框320,且选择下一区段来比较。否则,所述实施例继续到框340,且输出经过滤的结果。
[0081] 图5说明在一个实施例中,OHCV可视性测试的流程图。在框505处,所述实施例(例如OHCV)接收来自关于图3描述的深度过滤的其余点。
[0082] 在框510处,所述实施例用网格来划分关键帧。在一个实施例中,OHCV能够通过根据网格的区段安排区段来测试来调整计算时间。对于网格的每一区段,可配置设定可确定将在区段内处理多少个点。举例来说,尽管区段内可存在1000个点,但所述配置可设定最大100个点来处理。在一个实施例中,可允许的点可随机分布。在其它实施例中,要处理的可允许点可充分分布跨越网格的区段。
[0083] 在框515处,所述实施例选择网格区段来进行可视性测试。举例来说,所述实施例可迭代通过每一区段,直到已测试了所有区段为止。
[0084] 在框520处,所述实施例测试点的可视性。可测试区段内的每一点,或可根据可视性测试的配置来测试每一点的子区段。
[0085] 在框525处,所述实施例将可视性测试结果从块420传播到附近点。举例来说,响应于检测到可见点,假定接近可见点的其它点也是可见的。另外,假定被遮挡点附近的点被遮挡。因此,对要测试的所有潜在点的子集执行可视性测试,从而加速总可视性测试时间并降低处理器要求。
[0086] 在框530处,所述实施例确定网格区段内是否仍有额外点要测试。如果较多的网格点在区段内排队来测试,那么实施例返回到框520。
[0087] 在框535处,所述实施例结束处理所述网格的区段,且确定是否有额外区段排队来测试。如果应测试额外区段,那么所述实施例返回到框515。
[0088] 在框540处,所述实施例输出关键帧可视性结果。举例来说,所述输出可为二进制遮挡掩模图像。
[0089] 如上文所描述,装置100可为便携式电子装置(例如,智能电话、专用扩增现实(AR)装置、游戏装置、例如眼镜的可穿戴式装置,或具有AR处理和显示能力的其它装置)。实施本文所描述的AR系统的装置可用于多种环境中,例如,商场、街道、房间,或用户可携带便携式装置的任何地方。在AR情境中,用户可使用装置100来通过其装置的显示器观察现实世界的表示。用户可通过使用其装置的相机来与其具备AR能力的装置交互,以接收现实世界图像/视频并将额外或替代信息叠加或重叠到装置上的所显示的现实世界图像/视频上。当用户在其装置上检视AR实施方案时,可在装置显示器上实时替代或更改现实世界对象或场景。虚拟对象(例如,文本、图像、视频)可插入到装置显示器上所描绘的场景的表示中。
[0090] 装置100和相机114的移动可致使显示器实时更新3D地图中的目标(例如一或多个对象或场景)的扩增。通过装置远离初始参考图像位置的移动,装置可从交替视图中捕获额外图像。在提取特征并根据额外关键帧三角测量之后,可实现增大的扩增准确性(例如,对象周围的边界可更精确地拟合、场景中的对象的表示将显得更真实,且目标放置可相对于相机114位姿更准确)。
[0091] 在一个实施例中,对象或图形可插入或集成到由相机114捕捉的视频流(或图像)中且在显示器112上显示。OHCV可任选地促使用户为了额外的信息而扩增目标。举例来说,用户可能够添加用户内容来扩增目标的表示。用户内容可为图像、3D对象、视频、文本,或可与目标的表示整合或重叠或代替目标的表示的其它内容类型。
[0092] 显示器可通过从原始场景的顺畅跟踪实时更新。举例来说,指示牌上的文本可用替代文本替换,或可将3D对象战略性地放入场景中且在装置100上显示。当用户改变相机114的位姿时,可调整或扩增图形或对象,来与相机114的相对移动匹配。举例来说,如果虚拟对象插入到扩增现实显示器中,那么远离虚拟对象的相机移动可减小虚拟对象相对于相机114所行进距离的大小。举例来说,与从虚拟对象退后半步相比,从虚拟对象退后四步应引起虚拟对象大小的更大减小,所有其它变量是相同的。运动图形或动画可在由OHCV表示的场景内制成动画。举例来说,动画对象可在扩增实境显示器中所描绘的场景内“移动”。本领域的技术人员将认识到,可以除AR以外的方式(例如,机器人定位)来实施本文中所描述的实施例。
[0093] OHCV可实施为软件、固件、硬件、模块或引擎。在一个实施例中,先前OHCV描述可通过装置100中的通用处理器161实施以实现先前所要的功能(例如,与图3、图4和图5中说明的功能)。在其它实施例中,所描述的子组件中的一或多者的特征可组合或分割成不同个别组件、模块或引擎。
[0094] 所属领域的技术人员将理解,可使用多种不同技术和技艺中的任一者来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
[0095] 所属领域的技术人员将进一步了解,结合本文所揭示的实施例描述的各种说明性逻辑块、模块、引擎、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚地说明硬件与软件的此互换性,上文已大致关于其功能性而描述了各种说明性组件、块、模块、引擎、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用以及强加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施方案决策不应被解释为会引起脱离本发明的范围。
[0096] 结合本文中所公开的实施例描述的各种说明性逻辑块、模块、电路、元件和/或组件可用通用处理器(例如处理器161)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文所描述的功能的任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置。
[0097] 结合本文所揭示的实施例(例如如图3到5中所示)描述的方法或算法的步骤可直接体现于硬件中、由处理器执行的软件模块中,或两者的组合中。软件模块或其它程序指令可驻存在随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、快闪存储器、寄存器、硬盘、可装卸式磁盘、CD-ROM、DVD-ROM、蓝光,或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻存于ASIC中。ASIC可驻存于用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻存于用户终端中。
[0098] 在一或多个示范性实施例中,所描述的功能或模块可在含有硬件(例如硬件162)、软件(例如软件165)、固件(例如固件163)或其任何组合的数据处理装置中实施。如果以软件实施为计算机程序产品,那么功能或模块可作为一或多个指令或代码存储在计算机上可读媒体(例如非暂时性机器可读存储媒体)上或经由其传输。计算机可读媒体可包含计算机存储媒体和通信媒体两者,通信媒体包含有助于将计算机程序从一处传送到另一处的任何媒体或制品。存储媒体可为可通过计算机或数据处理装置/系统存取的任何可用媒体。举例来说且非限制,此类非暂时性计算机可读媒体可包括RAM、ROM、EEPROM、EPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于运载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。并且,任何连接可恰当地被称为可执行计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或如红外线、无线电以及微波的无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或如红外线、无线电以及微波的无线技术包含于媒体的定义中。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在非暂时计算机可读媒体的范围内。
[0099] 提供所揭示实施例的先前描述是为了使所属领域的任何技术人员能够制作或使用本发明。所属领域的技术人员将容易地了解对这些实施例的各种修改,并且可在不脱离本发明的精神或范围的情况下将本文所定义的一般原理应用于其它实施例中。因此,本发明无意限于本文中所展示的实施例,而应被赋予与本文中所揭示的原理和新颖特征一致的最广泛范围。