基于深度神经网络提供单目图像深度估计的系统和方法转让专利

申请号 : CN202010268091.2

文献号 : CN111798502A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 任昊宇M.艾尔卡米李正元

申请人 : 三星电子株式会社

摘要 :

本文提供了一种用于确定图像的深度信息的方法和系统。根据一个实施例,该方法包括:接收输入图像,将输入图像归类到多个深度范围中的一深度范围,以及基于输入图像被归类到的深度范围通过应用深度估计来确定图像的深度图。

权利要求 :

1.一种用于确定图像的深度信息的方法,包括:接收输入图像;

将所述输入图像归类到多个深度范围中的一深度范围;以及通过应用针对所述输入图像被归类到的所述深度范围优化的网络确定所述输入图像的深度图。

2.根据权利要求1所述的方法,其中,基于粗略深度估计执行将所述输入图像归类到所述多个深度范围中的一深度范围。

3.根据权利要求2所述的方法,其中,通过应用深度估计确定输入图像的深度图还包括:利用由所述粗略深度估计生成的粗略深度图作为深度细化单目图像深度估计(SIDE)网络的输入。

4.根据权利要求3所述的方法,其中,通过应用深度估计确定输入图像的深度图还包括利用所述粗略深度图和所述输入图像作为RGB深度(RGBD)增强SIDE网络的RGBD输入。

5.根据权利要求2所述的方法,其中,通过计算所述输入图像的最大深度并将所述最大深度与深度范围阈值进行比较来执行所述粗略深度估计。

6.根据权利要求1所述的方法,其中,将所述输入图像归类到所述深度范围包括将所述输入图像归类到一预定义场景。

7.根据权利要求6所述的方法,其中,基于多数投票执行将所述输入图像归类到一预定义场景。

8.根据权利要求6所述的方法,其中,基于加权投票执行将所述输入图像归类到一预定义场景。

9.根据权利要求1所述的方法,其中,通过应用所述网络确定输入图像的深度图还包括:利用单目图像深度估计(SIDE)网络对所述输入图像进行编码;以及利用所述SIDE网络,用深度回归解码分支对编码的图像进行解码。

10.根据权利要求1所述的方法,其中,通过应用所述网络确定输入图像的深度图还包括:利用单目图像深度估计(SIDE)网络对所述输入图像进行编码;以及利用所述SIDE网络,用深度归类解码分支对编码的图像进行解码。

11.一种用于确定图像的深度信息的系统,包括:存储器;和

处理器,被配置成:

接收输入图像;

将所述输入图像归类到多个深度范围中的一深度范围;以及通过应用针对所述输入图像被归类到的所述深度范围优化的网络确定输入图像的深度图。

12.根据权利要求11所述的系统,其中,所述处理器被配置成基于粗略深度估计将所述输入图像归类到所述多个深度范围中的一深度范围。

13.根据权利要求12所述的系统,其中,所述处理器被配置成通过利用由粗略深度估计生成的粗略深度图作为深度细化单目图像深度估计(SIDE)网络的输入来确定输入图像的深度图。

14.根据权利要求13所述的系统,其中,所述处理器还被配置成通过利用所述粗略深度图和所述输入图像作为RGB深度(RGBD)增强SIDE网络的RGBD输入来确定输入图像的深度图。

15.根据权利要求12所述的系统,其中,通过计算所述输入图像的最大深度并将所述最大深度与深度范围阈值进行比较来执行所述粗略深度估计。

16.根据权利要求11所述的系统,其中,所述处理器被配置成通过将所述输入图像归类到一预定义场景来将所述输入图像归类到所述深度范围。

17.根据权利要求16所述的系统,其中,基于多数投票执行将所述输入图像归类到一预定义场景。

18.根据权利要求16所述的系统,其中,基于加权投票执行将所述输入图像归类到一预定义场景。

19.根据权利要求11所述的系统,其中,所述处理器被配置成通过以下步骤确定输入图像的深度图:利用单目图像深度估计(SIDE)网络对所述输入图像进行编码;以及利用所述SIDE网络,用深度回归解码分支对编码的图像进行解码。

20.根据权利要求11所述的系统,其中,所述处理器被配置成通过以下步骤确定输入图像的深度图:利用单目图像深度估计(SIDE)网络对所述输入图像进行编码;以及利用所述SIDE网络,用深度归类解码分支对编码的图像进行解码。

说明书 :

基于深度神经网络提供单目图像深度估计的系统和方法

[0001] 优先权
[0002] 本申请是基于2019年4月9日向美国专利商标局提交的美国临时专利申请第62/831,598号和2019年9月18日提交的美国专利申请第16/574,770号,并要求其优先权,其全部内容通过引用结合于此。

技术领域

[0003] 本公开通常涉及计算机视觉。具体地,本公开涉及基于深度神经网络提供单目图像深度估计的系统和方法。

背景技术

[0004] 单目图像深度估计(Single image depth estimation,SIDE)是用于理解图像中的场景的几何结构的重要部分。具体地,深度图(depth map)可以用于推断三维(three-dimensional,3D)结构,其是3D视觉中许多论题(诸如图像重建、图像渲染和浅景深)的基本元素。然而,SIDE是个问题,因为单目二维(two-dimensional,2D)图像可以从无限多个不同的3D场景中产生。通过使用深度卷积神经网络(convolutional neural network,CNN),基于深度学习的方法在解决诸如学习将图像映射到连续深度图的CNN的SIDE问题时已经实现了性能改进。
[0005] 对捕获的场景中的元素的真实世界深度的估计具有应用,诸如将前景(近)对象与背景(远)对象分离的能力。准确的深度估计允许场景中感兴趣的前景对象与背景分离。准确的前景-背景分离允许人们处理捕获的图像来模拟诸如Bokeh效果的效果。Bokeh是背景的柔和离焦模糊(out-of-focus blur),其通过使用具有快速镜头和宽光圈的相机中的正确设置以及使相机更靠近主题并使主题更远离背景以模拟浅景深来掌握。因此,准确的深度估计允许处理来自非专业摄影师或具有较小镜头的相机(诸如,移动电话相机)的图像,以获得聚焦于主题的具有Bokeh效果的在审美上更讨人喜欢的图像。准确的深度估计的其他应用包括3D对象重建和虚拟现实应用,在这些应用中希望改变背景或主题,并根据希望的虚拟现实来渲染它们。从捕获的场景进行准确的深度估计的其他应用包括汽车自动化、监控相机、自动驾驶应用、以及通过改进对象检测准确度和其与相机距离的估计来增强安全性。
[0006] 在设计用于SIDE的深度CNN时存在两个问题。SIDE方法可以针对个体数据集训练不同的网络,这使得模型特定于某些领域。结果,诸如室内和室外模式的不同数据集之间的巨大差异限制了SIDE网络的泛化能力。在一个数据集上实现可观性能的模型在另一数据集上将表现不佳。
[0007] 此外,现有的SIDE网络利用非常深的架构作为主干。这些网络的规模非常大。此外,一些SIDE网络包含完全连接的层。因此,在预测期间需要滑动窗口策略,以使测试图像尺寸与训练相同。结果,这种网络的效率和灵活性并不是希望的。

发明内容

[0008] 根据一个实施例,一种方法包括:接收输入图像,将输入图像归类到多个深度范围中的一深度范围,以及基于输入图像被归类到的深度范围,通过应用深度估计来确定图像的深度图。
[0009] 根据一个实施例,一种系统包括:存储器和处理器,该处理器被配置成:接收输入图像,将输入图像归类到多个深度范围中的一深度范围,并且基于输入图像被归类到的深度范围,通过应用深度估计来确定图像的深度图。

附图说明

[0010] 结合附图,从以下详细描述中,本公开的某些实施例的以上和其他方面、特征以及优点将变得更加明显,附图中:
[0011] 图1示出根据实施例的演示Bokeh效果的图像的图;
[0012] 图2示出根据实施例的使用室内网络和室外网络的深度估计的图;
[0013] 图3示出根据实施例的提供深度估计的图;
[0014] 图4示出根据实施例的用于执行图像的深度估计的方法的流程图;
[0015] 图5示出根据实施例的SIDE网络的图;
[0016] 图6示出根据实施例的upproj层的图;
[0017] 图7示出根据实施例的具有跳跃连接的upproj层的图;
[0018] 图8示出根据实施例的使用深度细化SIDE网络的深度估计的图;
[0019] 图9示出根据实施例的使用RGB深度(RGB-depth,RGBD)增强SIDE网络的深度估计的图;以及
[0020] 图10示出根据一个实施例的网络环境中的电子设备的框图。

具体实施方式

[0021] 在下文中,参考附图详细描述了本公开的实施例。应当注意,相同的元素将由相同的附图标记表示,尽管它们在不同的附图中示出。在以下描述中,提供诸如详细配置和组件的特定细节仅仅是为了帮助全面理解本公开的实施例。因此,对于本领域技术人员来说,显而易见的是,在不脱离本公开的范围的情况下,可以对本文描述的实施例进行各种改变和修改。此外,为了清楚和简明,省略了对众所周知的功能和构造的描述。下面描述的术语是考虑到本公开中的功能而定义的术语,并且可以根据用户、用户的意图或习惯而不同。因此,术语的定义应根据整个本说明的内容来确定。
[0022] 本公开可以具有各种修改和各种实施例,其中实施例将在下面参考附图详细描述。然而,应当理解,本公开不限于实施例,而是包括本公开范围内的所有修改、等同和替代。
[0023] 尽管包括诸如第一、第二等序数的术语可以用于描述各种元素,但是结构元素不受这些术语的限制。这些术语仅用于区分一个元素和另一元素。例如,第一结构元素可以被称为第二结构元素,而不会脱离本公开的范围。类似地,第二结构元素也可以被称为第一结构元素。如本文所使用的,术语“和/或”包括一个或更多个相关项的任何一个和所有组合。
[0024] 本文使用的术语仅仅用于描述本公开的各种实施例,而不是旨在限制本公开。单数形式旨在包括复数形式,除非上下文另有明确指示。在本公开中,应当理解,术语“包括”或“具有”指示特征、数字、步骤、操作、结构元素、部分或它们的组合的存在,并且不排除一个或更多个其他特征、数字、步骤、操作、结构元素、部分或它们的组合的存在或添加的可能性。
[0025] 除非有不同的定义,否则本文使用的所有术语具有与本公开所属领域的技术人员所理解的相同的含义。诸如在通用词典中定义的那些术语将被解释为具有与相关技术领域中的上下文含义相同的含义,并且不被解释为具有理想的或过于正式的含义,除非在本公开中明确定义。
[0026] 根据一个实施例的电子设备可以是各种类型的电子设备中的一个。电子设备可以包括例如便携式通信设备(例如,智能电话)、计算机、便携式多媒体设备、便携式医疗设备、相机、可穿戴设备或家用电器。根据本公开的一个实施例,电子设备不限于上述那些。
[0027] 本公开中使用的术语不意图限制本公开,而是旨在包括对应实施例的各种变化、等同或替代。关于附图的描述,相似的附图标记可用于指代相似或相关的元素。对应于项目的名词的单数形式可以包括一个或更多个事物,除非相关上下文清楚地指示其他情况。如本文所使用的,诸如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”以及“A、B或C中的至少一个”的短语中的每一个都可以包括在这些短语中的对应短语中一起枚举的项目的所有可能组合。如本文所使用的,诸如“第一”、“第二”的术语可用于将对应组件与另一组件区分开来,但并不意图在其他方面(例如,重要性或顺序)限制组件。其意图是,如果元素(例如,第一元素)被称为与另一元素(例如,第二元素)“耦合”、“连接”或“耦合到”、“连接到”另一元素(例如,第二元素),则无论是否具有术语“可操作地”或“通信地”,都指示该元素可以直接(例如,有线地)、无线地或经由第三元素与另一元素耦合。
[0028] 如本文所使用的,术语“模块”可以包括以硬件、软件或固件实施的单元,并且可以与其他术语互换使用,例如,“逻辑”、“逻辑块”、“部分”和“电路”。模块可以是适于执行一个或更多个功能的单个整体组件,或其最小单元或部分。例如,根据一个实施例,模块可以以专用集成电路(application-specific integrated circuit,ASIC)的形式实施。
[0029] 图1示出根据实施例的演示Bokeh效果的图像的图。准确的深度估计具有许多应用。图像100显示了Bokeh效果。Bokeh是通过使远处的主题离焦、同时使较近处的主题更清晰或聚焦来使图像中的背景主题模糊的处理。图像Bokeh的关键特征是从深度图中提取的准确的前景-背景分割。Bokeh效果的性能由估计的深度的准确度决定。
[0030] 图2示出根据实施例的使用室内网络和室外网络的深度估计的图。因为单目2D图像可以从无限多个不同的3D场景产生,所以SIDE存在问题。由于非常难以获得准确的深度图,大多数现有的Bokeh系统使用多个相机而不是单个相机。这限制了应用场景。尽管一些现有的SIDE系统可以以特定的数据集生成可观的结果,但是当给定来自不同数据集的图像时,这些系统工作得很糟糕。例如,当提供属于室外场景的输入图像200时,与通过室外网络执行的图像204处的估计深度相比,以室内图像训练的神经网络不能良好地执行,如图像202处的估计深度所示。因此,有必要设计同时在各种环境下都能工作良好的健壮的SIDE系统。
[0031] 图3示出根据实施例的提供深度估计的图。深度估计系统300包括两阶段健壮SIDE框架。在第一阶段304,深度估计系统300将输入图像302归类到不同的深度范围306(例如,室内图像可以被归类为“低深度范围”)。尽管描绘了最低深度范围、中等深度范围和最高深度范围,但是可以利用任何数量和类型的范围。在第二阶段308,对于每个深度范围,本系统应用针对图像被归类到的深度范围而优化的SIDE网络,以获得准确的深度图,并且输出深度310。
[0032] 图4示出根据实施例的用于执行图像的深度估计的方法的流程图400。在402,系统接收图像输入。尽管下面描述的实施例涉及接收图像作为输入,但是应当理解,系统可以接收图像的一部分作为输入,并且本文描述的步骤可以单独地或彼此独立地对图像的部分执行。
[0033] 在404,系统将输入图像归类到多个深度范围中的一个。系统可以通过将图像归类到一预定义的场景(例如,天空、冰山、房间)来将图像归类到一深度范围。由于场景可能与特定的或预定义的深度范围相关联(例如,天空具有最高的深度范围,房间场景具有相对低的深度范围),所以可以从场景类别中推断出输入图像的确切深度范围。
[0034] 系统可以基于多数投票算法将图像归类到一预定义场景。在一个示例中,在Places-365数据集中训练WideResNet-18。该数据集包括大量预定义的或标记的场景或场景类别。场景或场景类别基于它们相关联的深度范围被进一步标记。给定输入图像,系统使用前特定数量的预测场景来对输入图像的深度范围归类进行投票。例如,如果系统使用前15个预测场景,那么如果在前15个预测场景中有超过7个低深度范围投票,则系统将图像归类为低深度范围。
[0035] 系统可以基于加权投票算法将图像归类到一预定义场景。di和mi代表场景类别i的统计中值和最大(或X-百分位)深度。pi是当前场景被场景归类网络归类为第i个场景的概率。那么当前场景的中值深度可以如等式(1)中那样被估计:
[0036]
[0037] 并且当前场景的估计的最大(或X-百分位)深度可以如等式(2)中那样被估计:
[0038]
[0039] 其中,对所有的候选场景进行求和。使用估计的中值和最大(或X-百分位)深度,系统可以通过将被估计图像的中值深度或最大深度与各种预定义的深度范围阈值进行比较来选择深度范围的量化仓(bin)。
[0040] 替代地,系统可以使用粗略深度估计将图像归类到一深度范围。由于难以以一蹴而就地获得准确的估计深度,所以系统可以首先获得粗略的估计深度图,然后使用它来决定深度范围。任何SIDE网络都可以用作粗略深度估计网络。当使用粗略的估计深度图来决定深度范围时,系统可以参考一些统计量,诸如最大深度或最小深度,因为高深度范围的图像,诸如室外图像,将具有相对更高的最大深度。
[0041] 系统可以使用室内图像和室外图像(例如,来自健壮视觉挑战(Robust Vision Challenge))的验证数据来计算最大的估计深度的统计量,然后选择决定低深度范围/高深度范围的阈值(例如,如果阈值是深度值X,并且估计深度图的最大深度低于X,则系统将图像归类为低深度范围)。
[0042] 在使用粗略深度估计获得深度范围的更一般的方式中,系统可以构建从粗略深度图到离散深度范围的映射。这可以通过学习从粗略深度图到深度范围的归类器来实现,如D=F(d),其中D是估计深度范围,d是粗略深度图,并且F是归类器,诸如支持向量机(support vector machine,SVM)、多类提升和随机森林。
[0043] 在406,系统基于输入图像被归类到的深度范围确定图像的深度图。
[0044] 图5示出根据实施例的SIDE网络的图。系统利用基于编码器-解码器架构的高效SIDE网络(深度方向(DW)-SIDENet)。SIDE网络500包括编码分支502、深度归类解码分支504和深度回归解码分支506。
[0045] 编码分支502包括编码块508和若干深度方向可分离的卷积层(例如,编码块510、512、514和516),以从输入图像501提取有识别力的特征518。由于低深度范围图像与高深度范围图像具有不同的特性(例如,室内图像与室外图像具有不同的情境),所以低深度范围网络的编码分支502与高深度范围网络略有不同。例如,系统可以将高深度范围编码模块的输出特征图尺寸设置为x4下采样,并将低深度范围编码模块的尺寸设置为x32下采样。
[0046] 网络使用深度归类分支504和深度回归分支506进行解码。这两个分支的网络架构大部分相同,但输出特征图和损失函数不同。深度归类解码分支504包括利用具有跳跃连接的upproj-con层进行解码的上采样解码块520、522、524和526以及利用upproj层进行解码以输出深度图529的解码块528。深度回归解码分支506包括利用具有跳跃连接的upproj-con层进行解码的上采样解码块530、532、534和536以及利用upproj层进行解码以输出深度图539的解码块538。在归类分支504中,SIDE网络500在将连续深度量化成若干仓(bin)之后执行深度归类。当计算归类分支504的损失函数时,网络使用量化的深度概率和量化的深度值的加权和作为针对每个像素位置的预测的量化的深度。在回归分支506中,网络直接将输出特征图回归为连续视差图。
[0047] DW-SIDENet 500的损失函数是深度值归类损失(Huber)和深度回归损失的线性组合,并由等式(3)给出:
[0048]
[0049] 其中, 是图像i的地面真值深度, 是量化的地面真值深度,di,.cls和di,reg是来自两个分支的输出。深度图529由归类分支504确定,并且深度图539由回归分支506确定。
[0050] 图6示出根据实施例的upproj层的图。upproj层600从前一解码块接收X输入602。在604,输入被上采样至输出尺寸,然后由3×3卷积层606处理。3×3卷积层606的输出由第一5×5卷积层608和第二5×5卷积层610处理。第一5×5卷积层608的输出由3×3卷积层612处理,其输出与第二5×5卷积层610的输出组合。然后,产生输出层614,给出最终估计深度
616。
[0051] 图7示出根据实施例的具有跳跃连接的upproj层的图。upproj层700从前一解码块接收X输入702。X输入702被上采样至输出尺寸703,然后由3×3卷积层704处理。层700从编码模块接收Y输入706,该输入由1×1卷积层708处理,并在3×3卷积层704处串联(concatenated)。层700接收ZRGB输入709。输入709在710被下采样至输出尺寸,由1×1卷积层712处理,并在3×3卷积层704处串联。3×3卷积层704的输出由第一5×5卷积层714和第二5×5卷积层716处理。第一5x5卷积层714的输出由3×3卷积层718处理,其输出与层716的输出组合,产生解码块的输出720。
[0052] 在网络500中,解码块528和解码块538利用upproj层600。解码块520、522、524和526以及解码块530、532、534和536利用具有跳跃连接的upproj层700。
[0053] 在系统使用用于将图像归类到一深度范围的粗略深度估计的示例中,在粗略深度估计期间生成的粗略深度图可以用作SIDE网络的输入,并且作为结果可以使用不同的SIDE网络。
[0054] 图8示出根据实施例的使用深度细化SIDE网络提供深度估计的图。深度估计系统800接收输入图像802,并使用粗略深度估计804将图像归类到一深度范围。然后,系统使用从该步骤生成的粗略深度图806,通过SIDE网络808进行深度细化深度估计。
[0055] 图9示出根据实施例的使用RGB深度(RGB-depth,RGBD)增强SIDE网络提供深度估计的图。深度估计系统900接收输入图像902,并使用粗略深度估计904将图像归类到一深度范围。然后,系统使用从该步骤生成的粗略深度图906以及输入图像902来通过SIDE网络908进行RGBD增强深度估计。RGBD增强中的D通道可以使用来自粗略深度图的密集的RGB图像但稀疏的采样像素、或者使用来自粗略深度图的密集的RGB图像以及所有像素。
[0056] 图10示出根据一个实施例的网络环境1000中的电子设备1001的框图。参考图10,网络环境1000中的电子设备1001可以经由第一网络1098(例如,短程无线通信网络)与电子设备1002通信,或者经由第二网络1099(例如,远程无线通信网络)与电子设备1004或服务器1008通信。电子设备1001可以经由服务器1008与电子设备1004通信。电子设备1001可以包括处理器1020、存储器1030、输入设备1050、声音输出设备1055、显示设备1060、音频模块1070、传感器模块1076、接口1077、触觉模块1079、相机模块1080、功率管理模块1088、电池
1089、通信模块1090、订户识别模块(subscriber identification module,SIM)1096或天线模块1097。在一个实施例中,可以从电子设备1001中省略组件中的至少一个(例如,显示设备1060或相机模块1080),或者可以向电子设备1001添加一个或多个其他组件。在一个实施例中,组件中的一些可以实施为单个集成电路(integrated circuit,IC)。例如,传感器模块1076(例如,指纹传感器、虹膜传感器或照度传感器)可以嵌入显示设备1060(例如,显示器)中。
[0057] 处理器1020可以执行例如软件(例如,程序1040)以控制电子设备1001的与处理器1020耦合的至少一个其他组件(例如,硬件或软件组件),并且可以执行各种数据处理或计算。作为数据处理或计算的至少一部分,处理器1020可将从另一组件(例如,传感器模块
1076或通信模块1090)接收的命令或数据加载到易失性存储器1032中,处理存储在易失性存储器1032中的命令或数据,并将结果数据存储在非易失性存储器1034中。处理器1020可以包括主处理器1021(例如,中央处理单元(central processing unit,CPU)或应用处理器(application processor,AP)),以及独立于主处理器1021操作或与主处理器1021结合操作的辅助处理器1023(例如,图形处理单元(graphics processing unit,GPU)、图像信号处理器(image signal processor,ISP)、传感器集线器处理器或通信处理器(communication processor,CP))。附加地或替代地,辅助处理器1023可以适配为消耗比主处理器1021更少的功率,或者执行特别的功能。辅助处理器1023可以实施为独立于主处理器1021或主处理器1021的一部分。
[0058] 辅助处理器1023可以在主处理器1021处于非活动(例如,睡眠)状态时替代主处理器1021,或者在主处理器1021处于活动状态(例如,执行应用)时与主处理器1021一起,控制与电子设备1001的组件中的至少一个组件(例如,显示设备1060、传感器模块1076或通信模块1090)相关的功能或状态中的至少一些。根据一个实施例,辅助处理器1023(例如,图像信号处理器或通信处理器)可以实施为功能上与辅助处理器1023相关的另一组件(例如,相机模块1080或通信模块1090)的一部分。
[0059] 存储器1030可以存储由电子设备1001的至少一个组件(例如,处理器1020或传感器模块1076)使用的各种数据。各种数据可以包括例如软件(例如,程序1040)和用于与之相关的命令的输入数据或输出数据。存储器1030可以包括易失性存储器1032或非易失性存储器1034。
[0060] 程序1040可以作为软件被存储在存储器1030中,并且可以包括例如操作系统(operating system,OS)1042、中间件1044或应用1046。
[0061] 输入设备1050可以从电子设备1001的外部(例如,用户)接收将由电子设备1001的其他组件(例如,处理器1020)使用的命令或数据。输入设备1050可以包括例如麦克风、鼠标或键盘。
[0062] 声音输出设备1055可以向电子设备1001的外部输出声音信号。声音输出设备1055可以包括例如扬声器或接收器。扬声器可用于一般目的,诸如播放多媒体或录音,并且接收器可用于接收来电呼叫。根据一个实施例,接收器可以实施为与扬声器分离或者扬声器的一部分。
[0063] 显示设备1060可以向电子设备1001的外部(例如,用户)在视觉上提供信息。显示设备1060可以包括例如显示器、全息设备或投影仪,以及控制显示器、全息设备和投影仪中的对应一个的控制电路。根据一个实施例,显示设备1060可以包括适配为检测触摸的触摸电路,或者适配为测量由触摸引起的力的强度的传感器电路(例如,压力传感器)。
[0064] 音频模块1070可以将声音转换成电信号,反之亦然。根据一个实施例,音频模块1070可以经由输入设备1050获得声音,或者经由声音输出设备1055输出声音或经由与电子设备1001直接(例如,有线)或无线耦合的外部电子设备1002的耳机输出声音。
[0065] 传感器模块1076可以检测电子设备1001的操作状态(例如,功率或温度)或电子设备1001外部的环境状态(例如,用户的状态),然后生成与检测到的状态对应的电信号或数据值。传感器模块1076可以包括例如姿态传感器、陀螺仪传感器、大气压力传感器、磁传感器、加速度传感器、抓握传感器、接近传感器、颜色传感器、红外(infrared,IR)传感器、生物传感器、温度传感器、湿度传感器或照度传感器。
[0066] 接口1077可以支持用于电子设备1001与外部电子设备1002直接(例如,有线)或无线耦合的一个或更多个特定协议。根据一个实施例,接口1077可以包括例如高清晰度多媒体接口(high definition multimedia interface,HDMI)、通用串行总线(universal serial bus,USB)接口、安全数字(secure digital,SD)卡接口或音频接口。
[0067] 连接端1078可以包括连接器,电子设备1001可以经由该连接器与外部电子设备1002物理连接。根据一个实施例,连接端1078可以包括,例如,HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
[0068] 触觉模块1079可以将电信号转换成可以由用户经由触觉或动觉来识别的机械刺激(例如,振动或移动)或电刺激。根据一个实施例,触觉模块1079可以包括例如电动机、压电元件或点激励器。
[0069] 相机模块1080可以捕获静止图像或运动图像。根据一个实施例,相机模块1080可以包括一个或多个透镜、图像传感器、图像信号处理器或闪光灯。
[0070] 功率管理模块1088可以管理供应给电子设备1001的功率。功率管理模块1088可以实施为例如功率管理集成电路(power management integrated circuit,PMIC)的至少一部分。
[0071] 电池1089可以向电子设备1001的至少一个组件供电。根据一个实施例,电池1089可以包括例如不可充电的一次电池、可充电的蓄电池或燃料电池。
[0072] 通信模块1090可以支持在电子设备1001和外部电子设备(例如,电子设备1002、电子设备1004或服务器1008)之间建立直接(例如,有线)通信信道或无线通信信道,并经由所建立的通信信道执行通信。通信模块1090可以包括独立于处理器1020(例如,AP)操作的一个或多个通信处理器,并且支持直接(例如,有线)通信或无线通信。根据一个实施例,通信模块1090可以包括无线通信模块1092(例如,蜂窝通信模块、短程无线通信模块或全球导航卫星系统(global navigation satellite system,GNSS)通信模块)或有线通信模块1094(例如,局域网(local area network,LAN)通信模块或电力线通信(power line communication,PLC)模块)。这些通信模块中的对应一个通信模块可以经由第一网络1098(例如,短程通信网络,诸如BluetoothTM、无线保真(Wi-Fi)直连或红外数据协会(Infrared Data Association,IrDA)的标准)或第二网络1099(例如,远程通信网络,诸如蜂窝网络、互联网或计算机网络(例如,LAN或广域网(WAN))与外部电子设备通信。这些不同类型的通信模块可以实施为单个组件(例如,单个IC),或者可以实施为彼此分离的多个组件(例如,多个IC)。无线通信模块1092可以使用存储在订户识别模块1096中的订户信息(例如,国际移动订户身份(international mobile subscriber identity,IMSI))识别和认证通信网络(例如,第一网络1098或第二网络1099)中的电子设备1001。
[0073] 天线模块1097可以向电子设备1001的外部(例如,外部电子设备)发送信号或功率或从其接收信号或功率。根据一个实施例,天线模块1097可以包括一个或更多个天线,并且由此,例如可以由通信模块1090(例如,无线通信模块1092)选择适用于在通信网络(例如,第一网络1098或第二网络1099)中使用的通信方案的至少一个天线。然后,信号或功率可以经由所选择的至少一个天线在通信模块1090和外部电子设备之间发送或接收。
[0074] 上述组件中的至少一些可以相互耦合,并且经由外围设备间通信方案(例如,总线、通用输入和输出(general purpose input and output,GPIO)、串行外围设备接口(serial peripheral interface,SPI)或移动工业处理器接口(mobile industry processor interface,MIPI))在它们之间通信传达信号(例如,命令或数据)。
[0075] 根据一个实施例,可以经由与第二网络1099耦合的服务器1008在电子设备1001和外部电子设备1004之间发送或接收命令或数据。电子设备1002和1004中的每一个可以是与电子设备1001相同类型或不同类型的设备。要在电子设备1001处执行的操作中的全部或一些可以在外部电子设备1002、1004或1008中的一个或多个处执行。例如,如果电子设备1001应该自动执行功能或服务,或者响应于来自用户或另一设备的请求执行功能或服务,则代替执行所述功能或服务或除了执行功能或服务之外,电子设备1001可以请求一个或更多个外部电子设备执行所述功能或服务的至少一部分。接收请求的一个或更多个外部电子设备可以执行所请求的功能或服务的至少一部分,或者与请求相关的附加功能或附加服务,并将执行的结果传送给电子设备1001。电子设备1001可以在对结果进行或不进行进一步处理的情况下提供结果,作为对请求的回复的至少一部分。为此,例如,可以使用云计算、分布式计算或客户端-服务器计算技术。
[0076] 一个实施例可以实施为软件(例如,程序1040),包括存储在机器(例如,电子设备1001)可读的存储介质(例如,内部存储器1036或外部存储器1038)中的一个或更多个指令。
例如,电子设备1001的处理器可以调用存储在存储介质中的一个或更多个指令中的至少一个,并在处理器的控制下使用或不使用一个或更多个其他组件来执行它。因此,机器可以被操作以根据所调用的至少一个指令来执行至少一个功能。一个或更多个指令可以包括由编译器生成的代码或可由解析器执行的代码。机器可读存储介质可以以非暂时性存储介质的形式提供。术语“非暂时性”指示存储介质是有形设备,并且不包括信号(例如,电磁波),但是该术语不区分数据被半永久地存储在存储介质中的情况和数据被临时存储在存储介质中的情况。
[0077] 根据一个实施例,本公开的方法可以被包括并提供在计算机程序产品中。计算机程序产品可以作为产品在卖方和买方之间交易。计算机程序产品可以以机器可读存储介质(例如,紧致盘只读存储器(CD-ROM))的形式分发,或者经由应用商店(例如,Play StoreTM)或直接在两个用户设备(例如,智能电话)之间在线分发(例如,下载或上传)。如果在线分发,则计算机程序产品的至少一部分可以临时生成或至少临时存储在诸如制造商的服务器的存储器、应用商店的服务器或中继服务器的机器可读存储介质中。
[0078] 根据一个实施例,上述组件中的每个组件(例如,模块或程序)可以包括单个实体或多个实体。可以省略上述组件中的一个或更多个,或者可以添加一个或更多个其他组件。替代地或附加地,多个组件(例如,模块或程序)可以集成到单个组件中。在这种情况下,集成的组件仍然可以以与它们在集成之前由多个组件中的对应一个组件执行的方式相同或相似的方式来执行多个组件中的每个组件的一个或更多个功能。由模块、程序或另一组件执行的操作可以顺序地、并行地、重复地或启发式地执行,或者操作中的一个或更多个可以以不同的顺序执行或省略,或者可以添加一个或更多个其他操作。
[0079] 尽管在本公开的详细描述中已经描述了本公开的某些实施例,但是在不脱离本公开的范围的情况下,可以以各种形式修改本公开。因此,本公开的范围不应仅仅基于所描述的实施例来确定,而是基于所附权利要求及其等同物来确定。