利用陀螺仪的相机自动校准的制作方法

文档序号:18744882发布日期:2019-09-21 02:13阅读:486来源:国知局
利用陀螺仪的相机自动校准的制作方法

本申请要求享有于2017年2月16日递交的、题为“Camera Auto-Calibration with Gyroscope”的美国临时申请第62/459,879号的利益,通过引用的方式将其全部内容并入本文。



背景技术:

为了处理数字图像,需要对包括在电子设备内的相机进行校准。通常,相机在电子设备的制造商处已经被校准。然而,该校准增加了制造过程并且不支持对相机的后续校准。



技术实现要素:

各个实施例包括用于对相机进行校准的方法以及具有用于实现所述方法的处理器的电子设备。各个实施例可以包括:接收第一图像帧;在所述第一图像帧中选择至少一个点;接收第二图像帧;确定所述至少一个点在所述第二图像帧中的位置;在所述处理器中从陀螺仪接收与所述第一图像帧和所述第二图像帧之间的时间相对应的、所述相机的旋转速度的测量结果;基于所述相机的旋转速度的所述测量结果和所述至少一个点在所述第一图像帧中的所述位置,来计算所选择的至少一个点在所述第二图像帧中的预测位置;基于所选择的至少一个点在所接收的第二图像帧中的预测位置之间的差值,来计算用于所述相机的校准参数;以及使用所计算的校准参数来处理来自所述相机的数据。

一些实施例还可以包括:在存储器中存储所述至少一个点在所述第二图像帧中的所述确定位置;以及在所述存储器中存储所选择的至少一个点在所述第二图像帧中的所述预测位置,其中,基于所选择的至少一个点在所述第二图像帧中的所述预测位置与所选择的至少一个点在所接收的第二图像帧中的确定位置之间的差值,来计算用于所述相机的校准参数包括:基于所述至少一个点在所述第二图像帧中的所存储的确定位置和所述至少一个点在所述第二图像帧中的预测位置,来计算所述校准参数。

一些实施例还可以包括:计算所计算的用于所述相机的校准参数的质量或置信度值;确定所计算的校准参数的所述质量或置信度值是否超过门限值;响应于确定所计算的校准参数的所述质量或置信度值超过所述门限值,使用所计算的校准参数来对上文概述的方法的至少一些操作进行重复,以处理来自所述相机的数据,以生成下一图像帧;以及响应于确定所计算的校准参数的所述质量或置信度值未超过所述门限值,使用所计算的校准参数或先前计算的校准参数来处理来自所述相机的数据。

在一些实施例中,基于所选择的至少一个点在所述第二图像帧中的所述预测位置与所选择的至少一个点在所接收的第二图像帧中的确定位置之间的差值,来计算用于所述相机的校准参数可以包括:将所选择的至少一个点在所述第二图像帧中的所述预测位置和所选择的至少一个点在所接收的第二图像帧中的所述确定位置应用于卡尔曼滤波器(Kalman filter)。在这些实施例中,所述卡尔曼滤波器可以是扩展型卡尔曼滤波器。

在一些实施例中,使用所计算的校准参数来处理来自所述相机的数据可以包括:使用所计算的校准参数来处理来自所述相机的数据,以矫正由镜头导致的畸变。在一些实施例中,使用所计算的校准参数来处理来自所述相机的数据可以包括:使用所计算的校准参数作为计算机视觉算法或机器视觉算法的输入。

在一些实施例中,所述处理器和所述陀螺仪可以被包括在所述相机内。在一些实施例中,所述相机可以是电子设备,并且所述处理器和所述陀螺仪可以在所述电子设备中。在一些实施例中,所述相机可以在包括航空电子单元的无人机上,并且基于所选择的至少一个点在所述第二图像帧中的所述预测位置与所选择的至少一个点在所接收的第二图像帧中的确定位置之间的差值,来计算用于所述相机的校准参数可以包括:基于从所述航空电子单元接收的平移速度信息、加速度信息、或者平移速度信息和加速度信息二者来计算所述校准参数。

各个实施例还可以包括电子设备,其具有相机、陀螺仪、存储器、以及被配置有处理器可执行指令的处理器,所述处理器可执行指令用于执行上文概述的方法的操作。各个实施例包括处理设备,其用于在电子设备中使用并且被配置为执行上文概述的方法的操作。各个实施例包括电子设备,其具有用于执行上文概述的方法的功能的单元。

附图说明

被并入本文并构成本说明书的一部分的附图示出了示例性实施例,并且连同上文所给出的一般性描述和下文所给出的详细描述一起,用于解释各个实施例的特征。

图1是示出了根据各个实施例的电子设备的组件的组件框图。

图2是示出了适于与各个实施例一起使用的相机的组件的组件框图。

图3是示出了根据各个实施例的用于对电子设备的相机进行校准的方法的过程流图。

图4是示出了根据各个实施例的用于对电子设备的相机进行校准的方法的过程流图。

图5是示出了适于与各个实施例一起使用的电子设备的组件的组件框图。

图6是适于与各个实施例一起使用的无人机的组件框图。

图7是适于与各个实施例一起使用的立体照相电子设备的组件框图。

图8是示出了适于实现各个实施例的处理设备的组件框图。

具体实施方式

将参照附图详细描述各个实施例。只要有可能,贯穿附图将使用相同的附图标记来指代相同或相似的部件。对特定示例和实施例进行的引用是出于说明性的目的,并非旨在限制权利要求书的范围。

各个实施例包括可以在电子设备的处理器上实现的用于对相机进行校准而不需要已知目标的方法。各个实施例可以包括陀螺仪,其被配置为测量相机如何移动,其中,可以通过对物体在该相机所捕获的连续图像帧上的运动与相应的陀螺仪读数进行比较来确定相机校准参数。通过校准方法确定的校准参数可以用于处理来自相机的原始图像数据,以产生数字图像。校准参数可以直接用在相机所产生的图像帧上,以便例如矫正由镜头导致的任何畸变。校准参数还可以用作使用相机图像数据的算法的输入参数。例如,基于视觉的定位算法要求良好的校准参数,以便产生准确的结果。

各个实施例不要求已知目标并且校准可以由电子设备自动执行(例如,没有用户干预)和/或在后台中执行(例如,在用户不知情的情况下)。各个实施例可以通过在工厂外执行校准来降低制造成本和复杂度,并且使相机能够随着时间被校准。另外,各个实施例使用在常规的校准方法中不可用的另外的校准参数。例如,校准参数可以包括相机和陀螺仪之间的相对朝向、时间关系或者与图像捕获和陀螺仪测量相对应的对齐参数。

相机已经被实现在各种电子设备中,例如智能电话、无人机、汽车、家庭安全系统甚至吸尘器。相机所捕获的图像不再是仅用于照相或记录视频。替代地,可以从相机所捕获的图像中提取信息,以在没有用户交互的情况下做出另外的决策或执行另外的动作。例如,计算机视觉(CV)算法或机器视觉(MV)算法可以针对各种应用(包括定位、映射、物体检测、三维重构等)来从捕获的图像中提取信息。由于CV或MV依靠对真实世界物体如何显现在捕获的图像中进行建模,因此当对相机捕获的图像进行处理时,需要高水平的准确度。

为了达到高水平的准确度,通常采用如下过程来对数字相机进行校准:识别与相机相对应的、为了提供从数字图像到真实世界物体的准确且一致的映射所需要的校准参数的过程。例如,在处理原始图像数据时使用校准参数,使得真实世界中的直线在所生成的图像中也显现为直的,并且真实世界中的圆形物体在所生成的图像中不变成椭圆形。例如,基于视觉的定位算法可以要求良好的校准参数,以便将物体(或相机)正确地放置在真实世界内。校准参数可以包括内在参数(例如,取决于相机的元件的参数,例如主点、焦距、镜头畸变等)和/或外在参数(例如,与相机相对于其他传感器的位置和/或朝向相对应的参数或者图像捕获和传感器读数之间的时间关系)。

由于制造差异,因此每个相机都是独特的并且需要个别地进行校准。通常,校准是在制造商处执行的,其中,相机被置于距具有已知大小、形状和质地的目标物体已知的距离处。常用的目标是棋盘。当在校准期间采用棋盘时,可以将目标的已知形状和尺寸与目标的结果图像进行比较,以计算用于相机的校准参数。

然而,在制造期间执行校准要求可能是耗时的另外的步骤。另外,终端用户可能无法获得在制造商处的校准中使用的特殊设备和软件,因此通常仅执行一次相机校准。在制造处执行的校准可能不是永远有效的,这是因为相机的一些尺寸特性可能因物理或环境变化而随时间改变。例如,显著的加速或减速事件(例如,碰撞或掉落)或者温度或湿度因素的巨大变化可能影响相机的镜头与图像传感器之间的尺寸和角度。这对于安装在机器或机器人上的相机来说可能是尤其成问题的。例如,与智能电话相比,室外设备(例如,飞行的无人机或汽车)可能面对严酷的环境条件。

其他校准方法要求用户干预。另外,通过用户差错引入的不准确度可能使校准质量降级。这样的校准方法可能仅基于尽力而为的值来仅计算校准参数。因此,可能没有确定或考虑校准参数计算的质量,并且因此,可能仍然存在校准参数的不期望的误差。

在一些常规的相机校准方法中,可以捕获预定数量的数据并在线下处理这些数据以执行校准。如果没有捕获到足够的数据,则可能需要重新开始校准方法。这种类型的校准不提供对相机的连续校准。一些相机校准方法要求相机的纯旋转,而没有任何平移,这在实验室以外(例如,真实世界设定中)是很难达到的。

各个实施例通过提供用于自动对相机进行校准而不需要已知的校准目标或用户参与的方法,来克服常规的相机校准方法的缺点。

各个实施例可以实现在各种电子设备内,在图1中示出了所述电子设备的示例100。适于与各个实施例一起使用的电子设备100可以包括一个或多个相机101、陀螺仪106、处理器108和存储器116,每个所述相机101都包括图像传感器102和光学系统104。电子设备100的示例包括相机、视频摄录像机、数字相机、包括相机的蜂窝电话、包括相机的智能电话、包括相机的计算机(例如,桌上型计算机、膝上型计算机等)、包括相机的平板设备、媒体播放器、电视机、游戏控制台、可穿戴设备、虚拟现实设备、增强现实设备、混合现实设备、监控摄相机、智能家电、智能应用、医疗设备、机顶盒、基于地面的机器(例如,机器人、运载工具、汽车等)、飞机、无人机或无人驾驶飞行器(UAV)等、或其组合。

电子设备100可以包括一个或多个相机101,每个所述相机101可以包括至少一个图像传感器102和至少一个光学系统104(例如,一个或多个镜头)。电子设备100的相机101可以获得一个或多个数字图像(本文中有时称为图像帧)。相机101可以采用不同类型的图像捕获方法,例如滚动快门(rolling-shutter)技术或全局快门(global-shutter)技术。

通常,光学系统104(例如,镜头)被配置为将来自位于相机101的视场内的场景和/或物体的光线聚焦在图像传感器102上。图像传感器102包括大量的光线系统,所述光线系统被配置为响应于光线来生成信号,所述信号被处理以获得存储在存储器116(例如,图像缓冲器)中的数字图像。光学系统104可以耦合到处理器108和/或由处理器108控制,以便例如提供自动聚焦动作。

光学系统104可以包括一个或多个镜头。例如,光学系统104可以包括广角镜头、广FOV镜头、鱼眼镜头等、或其组合。另外,光学系统104可以捕获全景图像,包括200-360度图像。

虽然未在图1中示出,但是电子设备100可以包括图像数据缓冲器,其是与存储器116分开的存储器。图像数据缓冲器可以是相机101的一部分并且可以被配置为对来自图像传感器102的图像数据进行缓冲(即,暂时存储)。经缓冲的图像数据可以被提供给处理器108或者可以是可由处理器108访问的。

电子设备100可以包括相机软件应用和/或显示器,例如用户接口118。当执行相机应用时,图像传感器102可以捕获位于光学系统104的视场内的物体的图像。所捕获的图像可以被呈现在用户接口118的显示器上。在一些配置中,可以以相对高的帧速率快速连续地显示所捕获的图像,使得在任何给定的时刻,相机101的视场内的场景和/或物体被呈现在显示器上。在各个实施例中,可以显示与所捕获的图像相对应的另外的或替代的信息。例如,可以使用用户接口118来呈现一个或多个关注区域(例如,边界框)和/或深度信息(例如,距一个或多个选择的物体的一个或多个估计距离)。

陀螺仪106可以被配置为测量电子设备100的旋转运动。例如,陀螺仪106可以捕获多个角速度测量结果,包括x轴分量、y轴分量和z轴分量。在各个实施例中,陀螺仪测量结果可以被存储在可由处理器108访问的存储器(例如,缓冲器或存储器116)中。

在各个实施例中,相机101捕获的图像序列和陀螺仪106获得的角运动测量结果可以被盖上时间戳,以使电子设备100的处理器108能够确定从一个图像帧到下一个图像帧,相机101关于三个轴旋转的度数。

在各个实施例中,处理器108可以耦合到(例如,与以下各项进行电子通信)一个或多个图像传感器102、一个或多个光学系统104、陀螺仪106和存储器116。另外,电子设备100可以包括耦合到处理器108的用户接口118(例如,输入/输出设备、显示器、触摸屏等)和在处理器108上执行的计算机视觉(CV)应用或机器视觉(MV)应用120。处理器108可以是通用单芯片或多芯片微处理器(例如,ARM)、专用微处理器(例如,数字信号处理器(DSP))、微控制器、可编程门阵列等。处理器108可以被称为中央处理单元(CPU)。尽管在图1中示出了单个处理器108,但是电子设备100可以包括多个处理器(例如,多核处理器)或不同类型的处理器(例如,ARM和DSP)的组合。

处理器108可以被配置为实现各个实施例的方法来对电子设备100的相机101进行校准。例如,处理器108可以包括和/或实现相机自动校准器110、图像处理器112和/或再校准检测器114。相机自动校准器110、图像处理器112和/或再校准检测器114可以用硬件或固件来实现、实现成在处理器108上执行的模块、和/或用硬件、软件和/或固件的组合来实现。

存储器116可以存储数据(例如,图像数据和相机校准因子)和可以由处理器108执行的指令。各个实施例中的可以存储在存储器116中的指令和/或数据的示例可以包括图像数据、陀螺仪测量结果数据、相机自动校准指令(包括物体检测指令、物体跟踪指令、物体位置预测器指令、时间戳检测器指令、校准参数计算指令、校准参数/置信度得分估计器指令)、校准参数/置信度得分方差门限数据、当前帧数据的检测的物体位置、下一帧数据中的先前的物体位置、所计算的校准参数数据等。存储器116可以是能够存储电子信息的任何电子组件,包括例如随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光存储介质、RAM中的闪存设备、与处理器包括在一起的板上存储器、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器等等,包括以上各项的组合。

在一些实施例中,处理器108可以被配置有CV/MV应用120,所述CV/MV应用120可以被配置为对电子设备100(例如,机动车、机器人、无人机等)的运动进行编程或控制,包括用于使得电子设备101在相机自动校准过程期间旋转的控制。

可以对电子设备100的元件或组件中的一者或多者进行合并和/或拆分。例如,可以将相机自动校准器110、图像处理器112和再校准检测器114合并成单个模块和/或硬件组件。另外地或替代地,可以将相机自动校准器110、图像处理器112和再校准检测器114中的一者或多者拆分成执行其操作的子集的元件或组件。

图2示出了根据各个实施例的电子设备100的相机自动校准器110。参照图1和2,相机自动校准器110可以用电子设备100的硬件组件和/或软件组件来实现,其操作可以由电子设备100的一个或多个处理器(例如,处理器108)控制。为了实现相机自动校准,可以通过将物体在图像帧之间的运动与物体的基于陀螺仪测量结果的预测运动进行比较,来动态地计算校准参数。另外,可以基于物体的选择的点的预测位置和测量位置来估计与所计算的校准参数相关联的质量或置信度得分。

当物体在光学系统104的视场内时,相机101的图像传感器102可以捕获包括该物体的一系列图像帧。可以快速地捕获图像帧,例如每秒30-60帧。图像传感器102可以向处理器108和/或相机自动校准器110的当前帧物体检测器202提供与图像帧相关联的图像数据。为了便于引用,顺序的图像帧可以被称为第一图像帧和第二图像帧,或者被称为在先图像帧和下一图像帧。然而,这样的引用是任意的,这是因为在后续处理操作中,第二图像帧或下一图像帧变成在先图像帧或第一图像帧。

当前帧物体检测器202可以识别与出现在任何两个图像帧(例如,第一图像帧和第二图像帧)内的物体相关联的一个或多个点。例如,高对比度像素中的一者或组合可以被识别用于在图像帧的序列内进行跟踪。任何已知的形状辨别方法或技术可以用于识别图像帧内的物体或细节的部分以用于跟踪。例如,Kanade-Lucas-Tomasi(KLT)特征跟踪器可以用于识别和跟踪图像帧内的物体或细节。另外,当前帧物体检测器202可以测量或检测所识别的与图像帧内的物体相关联的一个或多个点的位置(例如,坐标值)。可以将所识别的与每个图像帧内的物体相关联的一个或多个点的检测到的位置存储在存储器缓冲器208的当前帧部分212的检测到的物体位置中。

校准参数计算器220可以基于来自两个图像帧的图像数据、所识别的与两个图像帧内的物体相关联的一个或多个点的检测到的位置、以及相机101在两个图像帧之间的旋转运动的陀螺仪测量结果,来计算校准参数。例如,校准参数计算器220可以计算外在校准参数和内在校准参数。在计算了关于第一图像帧的校准参数之后,可以将所计算的校准参数存储在存储器缓冲器208的校准参数部分216中。

在各个实施例中,主点校准参数可以与图像中的光学中心的位置相对应,并且可以是基于以下各项来计算的:与两个图像帧相关联的图像数据和/或所识别的与两个图像帧内的物体相关联的一个或多个点的检测到的位置。校准参数计算器220还可以基于与图像帧相关联的图像数据和/或所识别的与图像帧内的物体相关联的一个或多个点的检测到的位置,来计算与图像帧相对应的焦距校准参数和/或镜头畸变校准参数。

在计算校准参数时,校准参数计算器220可以考虑捕获图像帧的时间和捕获陀螺仪的旋转速度测量结果的时间之间的时间关系。例如,每个图像帧可以包括用于指示何时捕获到图像帧的时间戳。可以由与图像传感器102相关联的处理器或处理器108来提供每个图像帧的时间戳。另外,陀螺仪106的旋转速度测量结果可以包括用于指示何时进行陀螺仪测量的时间戳。例如,陀螺仪106可以包括时间戳数据连同测量结果数据,或者处理器108可以在来自陀螺仪106的信号被接收时向所述信号指派时间戳。当计算相机101在两个图像帧之间发生的旋转量时,时间戳检测器218(或在处理器108内执行的模块)可以将与图像帧相关联的时间戳和与陀螺仪106测量结果相关联的时间戳进行比较。

在各个实施例中,与图像帧或者陀螺仪测量结果相关联的时间戳可以是单个值或时间段或值的范围。例如,捕获图像所花费的时间(例如,1/30秒或1/60秒)可以大于获得单个陀螺仪旋转速度测量结果所花费的时间(例如,2毫秒),因此,多个陀螺仪测量结果可以与两个顺序图像帧的时间戳相对应。另外地或替代地,时间戳检测器218可以监测与图像帧相关联的时间戳和与陀螺仪测量结果相关联的时间戳,以确定与图像帧相关联的时间戳和与陀螺仪测量结果相关联的时间戳之间的初始同步或关联。

另外,相机101获得图像数据的方式可以影响何时在图像帧中捕获物体。当电子设备100的相机101在滚动快门模式下工作时,在一个时间间隔上曝光每条水平线(或垂直列)。与相机在滚动快门模式下工作时生成的图像帧相关联的时间戳基于每条线的中心曝光时间,其中,时间戳包括两个值,基于第一水平线(或垂直列)和最后水平线(或垂直列)的中心曝光时间的对图像帧的开始的指示和对帧的结束的指示。

使用所识别的与第一图像帧内的物体相关联的一个或多个点和第一图像帧与下一(第二)图像帧之间的旋转速度的陀螺仪测量结果,下一帧物体位置预测器206(例如,在处理器108中执行的模块或操作)可以预测与物体相关联的一个或多个点将出现在第二图像帧内的何处。该计算可以是基于所测量的旋转速度来对每个点的位置的改变进行的简单线性估计。在所有校准参数之后,可以在扩展型卡尔曼滤波器(EKF)中估计相机的平移运动。可以在最终输出中省略平移运动估计,这是因为其质量可能不如校准参数好。

随后,可以将被跟踪物体的预测位置与后续图像帧或第二图像帧中的位置进行比较,以确定预测位置和观察位置之间的差值。物体的检测到的一个或多个点中的每个点在图像帧中的位置(即,像素)将取决于用于处理图像数据的校准参数。因此,被跟踪物体的点的预测位置与观察位置之间的差值反映校准参数中的误差。校准参数/置信度得分估计器222(例如,在处理器108中执行的模块或操作)可以计算新的校准参数集合,所述新的校准参数集合将所识别的与物体相关联的点在第一图像帧和第二图像帧之间的预测位置和测量位置之间的差值归零。另外,校准参数/置信度得分估计器222可以基于被跟踪物体的点的预测位置和观察位置之间的差值,来估计先前校准参数的质量或置信度得分。例如,所估计的置信度得分可以用于推导第一帧中的预测物体位置和所识别的与在第一帧中检测到的物体相关联的一个或多个点的位置之间的误差。作为另一示例,可以确定所计算的校准参数和初始校准参数之间的加权平均,其中,加权值是基于所估计的置信度得分的。所计算的先前校准参数的质量或置信度得分可以用于确定相机101的校准参数是否达到可接受的质量水平。

校准参数/置信度得分估计器222可以将质量或置信度得分与校准参数/置信度得分方差门限(其可以被存储在存储器缓冲器208的部分210处)进行比较。只要所估计的校准参数的质量或置信度得分和/或置信度得分不在方差门限内,就可以利用所计算的新的校准参数集合来更新存储在216处的校准参数,并且可以使用该新的校准参数集合来处理下一图像帧,将被跟踪物体的点的预测位置与下一图像帧中的观察位置进行比较,以及计算另一校准参数集合和质量或置信度得分来重复该过程。当所估计的校准参数的质量和/或置信度得分在方差门限内时,可以结束相机校准过程,并且随后,图像处理器112可以使用存储在存储器中(例如,在存储器缓冲器208的部分216处)的校准参数来执行对原始图像帧数据的成像处理。

因此,在各个实施例中,可以在循环中执行相机校准方法,直到获得了足够的图像质量为止。一旦使用通过校准方法确定的校准参数获得了足够的图像质量,就使用那些校准参数来处理来自相机的图像传感器102的原始图像数据,以生成数字图像。在一些实施例中,可以定期地(例如,每天、每月、每年等)或者在触发事件(例如,加电,加速计检测到高加速事件,高度、温度和/或湿度的改变等)之后执行校准方法。在一些实施例中,如果没有检测到触发事件,则可以省略或跳过相机校准方法。例如,如果触发事件是相机的移动或运动,则相机校准方法可以仅响应于检测到相机的移动或运动而被发起和执行。

一些实施例可以仅依靠来自陀螺仪106的测量结果来预测物体的所识别的点在图像帧中的位置。然而,在一些实施例中,可以在校准方法中使用来自其他传感器的测量结果。例如,可以将来自加速计的相机加速度的测量结果与陀螺仪所提供的旋转速度测量结果结合,以更好地预测物体在每个图像帧中的位置。作为另一示例,在其中相机(例如,101)被置于能够快速运动的运载工具(例如,无人机或汽车)的一些实施例中,可以将(例如,无人机的航空电子模块所提供的)关于运载工具的速度的信息与陀螺仪所提供的旋转速度测量结果(以及来自加速计的加速度数据)结合,以更好地预测物体在每个图像帧中的位置。

图3是示出了根据各个实施例的对用于电子设备(例如,图1中的电子设备100)的相机进行校准的方法300。参照图1-3,方法300可以由电子设备100或相机101的一个或多个处理器(例如,处理器108等)来实现。

在框302中,可以假定或从存储器获得初始校准参数。例如,可以从存储器获得初始校准参数(其中,在先前执行的相机自动校准方法之后,已经将数据存储在所述存储器中),或者可以由设备制造商或其他实体来提供初始校准参数。作为另一示例,可以由相机制造商来提供默认校准参数。在又一示例中,可以将校准参数设置为任意值,例如零。

在框304中,处理器可以接收图像帧和相关联的时间戳。例如,当物体进入光学系统104的视场中时,图像帧可以由相机101的图像传感器102捕获并且由图像传感器102提供给处理器。

在框306中,处理器可以选择图像帧的一个或多个点。例如,在处理器和/或固件中执行的当前帧物体检测器202可以识别图像帧内的具有适于跟踪的特性的一个或多个点。

在框308中,下一图像帧和相关联的时间戳可以由图像传感器捕获并且被提供给处理器。在一些实施例中,下一图像帧可以是图像传感器所生成的紧接着的下一图像帧。在一些实施例中,提供给处理器的下一图像帧可以跳过图像传感器所捕获的一个或多个图像帧,由此为被跟踪物体在经处理的图像帧之间的运动提供更多的时间。

在框310中,物体的被跟踪点的位置可以位于下一帧中。例如,一旦使用当前校准参数对原始图像数据进行了处理,物体跟踪器204就可以确定在第一图像帧中所识别的一个或多个点在下一图像帧内的位置。

在框312中,处理器可以从陀螺仪(例如,106)接收与下一图像帧相对应的旋转速度测量结果和相关联的时间戳。在一些实施例中,处理器可以在初始(第一)图像帧捕获和下一(第二)图像帧捕获之间的时间期间,从陀螺仪接收旋转速度的连续测量结果。作为框312中的操作的一部分,处理器可以计算在初始(第一)图像帧捕获和下一(第二)图像帧捕获之间的时间期间关于三个轴的平均旋转速度。

在框314中,处理器可以基于相机的测量旋转速度来预测选择的点在下一图像帧中的位置。例如,处理器可以计算相机在第一图像帧和第二图像帧之间发生的旋转量,并且作为结果,计算每个点应当在图像平面上移动的方向和移动了多远。

在框316中,可以将选择的点在下一图像帧中观察到的位置和选择的点的预测位置存储在存储器(例如,数据库)中。例如,可以将与当前帧相关联的观察物体位置存储在存储器缓冲器208的检测到的物体位置地点212处,并且可以将下一帧中的预测物体位置存储在存储器缓冲器208的预测物体位置地点214处。

在框318中,处理器可以使用所存储的物体点在下一图像帧中的观察位置和预测位置来计算新校准参数和新校准参数的置信度得分。例如,校准参数/校准得分估计器(例如,222)可以对新校准参数进行估计,所述新校准参数将被跟踪物体在下一图像帧中的观察位置和预测位置之间的差值归零,并且基于被跟踪物体在下一帧中的观察位置和预测位置之间的差值的大小,来对来自校准参数的置信度得分进行估计。

在确定框320中,处理器可以确定所估计的校准参数/置信度得分是否在门限方差内。例如,处理器可以将所估计的校准参数/置信度得分与存储在存储器缓冲器208的位置210处的校准参数/置信度得分方差门限进行比较。

响应于确定所估计的校准参数/置信度得分不在门限方差内(即,确定框320=“否”),在框322中,处理器108可以对用于处理原始图像数据的校准参数进行更新,并且通过使用被更新的校准参数来处理来自图像传感器(例如,102)的原始图像数据来在框308中获得下一图像帧,来重复校准过程。因此,基于物体在现在在先的图像帧中的预测位置和观察位置之间的差值计算的新校准参数可以用于处理下一图像帧的原始图像数据,并且重复对预测位置和观察位置进行比较的过程。

响应于确定所估计的校准参数/置信度得分在门限方差内(即,确定框320=“是”),在框324中,处理器可以结束校准过程,并且使用存储在存储器中的所计算的校准参数来执行对来自图像传感器(例如,102)的原始图像数据的后续图像处理。例如,所计算的校准参数可以用于处理来自相机的数据,以矫正由镜头导致的畸变。作为另一示例,所计算的校准参数可以用作计算机视觉算法或机器视觉算法的输入。所存储的校准参数可以是在框318中计算的校准参数或者是在方法300的先前迭代中计算的校准参数。

可选地,在确定框326中,处理器可以确定是否已发生事件触发再校准。例如,再校准检测器114可以确定是否已发生时间触发事件或物理触发事件。响应于确定尚未发生触发事件(即,确定框326=“否”),在框324中,处理器可以使用所计算的校准参数来继续执行图像处理。响应于确定已发生触发事件(即,确定框326=“是”),返回到框304中,处理器可以通过获得图像帧和时间戳来重复校准过程。

图4是示出了根据各个实施例的对用于电子设备(例如,图1中的电子设备100)的相机进行校准的另一种方法400。参照图1-4,方法400可以由相机(例如,101)或电子设备(例如,100)的一个或多个处理器(例如,处理器108等)来实现。在方法400中,可以如针对方法300的类似编号的框所描述的那样来执行框302-314的操作。

在框416中,处理器可以将卡尔曼滤波器应用于选择的点在下一帧中确定位置和预测位置,以计算被更新的校准因子和所估计的校准参数的误差之间的协方差。在各个实施例中,卡尔曼滤波器可以是扩展型卡尔曼滤波器(EKF)。

在一些实施例中,可以利用状态变量x=[cx,cy,fx,fy,d1,d2,d3,d4,wx,wy,wz,td,vx,vy,vz]T来对EKF进行初始化,其中:

cx是主点的x轴坐标;

cy是主点的y轴坐标;

fx是沿x轴的焦距;

fy是沿y轴的焦距;

d1是第一畸变参数;

d2是第二畸变参数;

d3是第三畸变参数;

d4是第四畸变参数;

wx是与相机-陀螺仪朝向相关联的x轴坐标;

wy是与相机-陀螺仪朝向相关联的y轴坐标;

wz是与相机-陀螺仪朝向相关联的z轴坐标;

td是相机-陀螺仪时间偏移;

vx是与惯性参考系中的相机速度相关联的x轴坐标;

vy是与惯性参考系中的相机速度相关联的y轴坐标;以及

vz是与惯性参考系中的相机速度相关联的z轴坐标。

可以使用内在矩阵来确定主点参数和焦点参数。

如果相机实现鱼眼镜头,则可以使用鱼眼畸变模型d=[d1,d2,d3,d4]来确定畸变参数,其中,畸变模型可以是基于投影模型的。然而,可以使用任何模型来确定畸变参数。

相机-陀螺仪朝向参数可以是在轴-角度表示中指定的。

通过实现包括所有校准参数(包括相机速度v)的状态变量,校准方法可以依赖于相机在完整的六个自由度内移动时由相机捕获的图像。通过省略相机速度,校准方法可能限于仅使用与相机相关联的旋转移动参数,这降低了对所捕获的图像的校准和后续处理的准确度。

在使用状态变量x对EKF进行初始化之后,可以使用EKF来执行测量函数(h(x))和预测函数(f(x))。

可以使用如下等式来确定EKF的测量函数h(x):

其中,l对应于核线:

可以在两个图像帧之间确定一对被跟踪的特征点(p1,p2)。旋转矩阵可以是基于陀螺仪测量结果R1(p1,td)、R2(p2,td)来估计的,其中,Ri对应于与捕获pi的时间相同的时间处的陀螺仪估计。具体而言,可以使用两个陀螺仪测量结果采样来执行球面线性插值(SLERP)。随后,EKF可以用于使用如下等式来标准化和矫正两个图像帧:

其中,ρd()是与畸变模型相关联的畸变函数。随后,EKF可以用于使用如下等式将物体的位置从第一帧投影到第二帧:

其中,Rw是转换成旋转矩阵的相机-陀螺仪朝向值。

EKF的预测函数f(x)可以大致等于状态变量x,这是因为校准参数要么保持恒定,要么缓慢改变。可以使用恒定速度模型来确定预测函数。

可以针对每个输入图像对来迭代地执行EKF,其中,针对图像帧对之间的每个被跟踪的特征点对(k)来对EKF进行循环或重复。例如,可以使用来自的td来估计R1和R2,并且使用如下等式来计算所预测的测量结果:

还可以将EKF测量噪音乘以:

另外,可以执行和更新EKF预测函数h(x)。例如,实际的测量结果Zk可以是零。

在确定框418中,处理器可以确定所估计的校准参数的误差之间的协方差是否在门限方差内。换言之,处理器可以将所估计的校准参数的误差之间的协方差与存储在存储器(例如,116)中的预定的门限方差进行比较。

响应于确定所估计的校准参数的误差之间的协方差不在门限方差内(即,确定框418=“否”),在框420中,处理器可以存储和/或使用所计算的被更新的校准参数,并且通过使用被更新的校准参数来处理来自图像传感器(例如,102)的原始图像数据在框308中获得下一图像帧和时间戳,来重复校准操作。

响应于确定所估计的校准参数的误差之间的协方差在门限方差内(即,确定框418=“是”),在框324中,处理器可以结束校准过程,并且使用存储在存储器中的所计算的校准参数来执行对来自图像传感器(例如,102)的数据的后续图像处理。例如,所计算的校准参数可以用于处理来自相机的数据,以矫正由镜头导致的畸变。作为另一示例,所计算的校准参数可以用作计算机视觉算法或机器视觉算法的输入。所存储的校准参数可以是在框318中计算的校准参数或者是在方法400的先前迭代中计算的校准参数。

可选地,在确定框326中,处理器可以确定是否已发生事件触发再校准。例如,再校准检测器(例如,114)可以确定是否已发生时间触发事件或物理触发事件。响应于确定尚未发生触发事件(即,确定框326=“否”),在框324中,处理器可以使用所计算的校准参数来继续执行图像处理。响应于确定已发生触发事件(即,确定框326=“是”),返回到框304中,处理器可以通过获得图像帧和时间戳来重复校准流程。

图5是示出了根据各个实施例的可以包括在电子设备内的组件的组件框图,所述电子设备被配置为实现对相机进行校准的系统和方法的各种配置。电子设备500的示例包括相机、视频摄录像机、数字相机、蜂窝电话、智能电话、计算机(例如,桌上型计算机、膝上型计算机等)、平板设备、无人机、无人驾驶飞行器(UAV)等。电子设备100的组件或元件中的一者或多者可以用硬件(例如,电路)或硬件和软件的组合(例如,具有指令的至少一个处理器)来实现。可以根据电子设备100和/或电子设备700来实现电子设备500。该电子设备可以包括处理器524,其可以是通用单芯片或多芯片微处理器(例如,ARM)、专用微处理器(例如,数字信号处理器(DSP)518)。

电子设备500还可以包括耦合到处理器524的存储器502。存储器502可以是能够存储电子信息的任何电子组件。存储器502可以体现为随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光存储介质、RAM中的闪存设备、与处理器包括在一起的板上存储器、EPROM存储器、EEPROM存储器、寄存器等等,包括以上各项的组合。

数据506和指令504可以被存储在存储器502中。指令504可以是可由处理器524执行的以实现本文描述的方法(例如,方法300或400)、过程、步骤和/或功能中的一者或多者。执行指令504可能涉及对存储在存储器中的数据506的使用。当处理器524执行指令504时,指令526的各个部分可以被加载到处理器524上,并且/或者数据528的各个部分可以被加载到处理器524上。

电子设备500还可以包括发射机510和接收机514,以便允许信号发送到电子设备500以及从电子设备500的接收信号。发射机510和接收机514可以共同地被称为收发机508。一个或多个天线512、516可以电气地耦合到收发机508。电子设备500还可以包括(未示出)多个发射机、多个接收机、多个收发机和/或另外的天线。

电子设备500还可以包括通信接口520。通信接口520可以允许和/或实现一种或多种类型的输入和/或输出。例如,通信接口520可以包括一个或多个端口和/或通信设备,以用于将其他设备链接到电子设备500。在一些配置中,通信接口520可以包括发射机510、接收机514或二者(例如,收发机508)。另外地或替代地,通信接口520可以包括一个或多个其他接口(例如,触摸屏、按键板、键盘、麦克风、相机等)。例如,通信接口520可以使用户能够与电子设备500进行交互。

电子设备500还可以包括一个或多个传感器522。一个或多个传感器522可以包括接近传感器、环境光传感器、加速计、近场通信传感器、陀螺仪、磁力计、温度传感器、气压、颜色传感器、紫外线传感器、GPS传感器等。

电子设备500的各个组件可以通过一个或多个总线(其可以包括电力总线、控制信号总线、状态信号总线、数据总线等)耦合到一起。为了清楚起见,图5中将各个总线示为总线系统530。

各个实施例可以用被配置有相机的多种多样的无人机来实现,所述无人机的示例是在图6中示出的四旋翼无人机。参照图1-6,无人机600可以包括主体605(即,机身,框架等),所述主体605可以是由适于飞行的塑料、金属或其他材料的任何组合制造的。为了便于描述和说明,省略了无人机600的一些详细方面,例如接线、框架结构、电源、起落列/架(landing columns/gear)、或者本领域技术人员已知的其他特征。另外,虽然示例性无人机600被示为具有四个旋翼的“四轴飞行器(quad-copter)”,但是无人机600中的一个或多个无人机600可以包括多于或少于四个的旋翼。此外,无人机600中的一个或多个无人机600可以具有相似或不同的配置、旋翼数量和/或其他方面。各个实施例还可以利用其他类型的无人机来实现,包括其他类型的自主飞行器、陆地运载工具、水上运载工具、或其组合。

主体605可以包括处理器630,所述处理器630被配置为监测和控制无人机600的各个功能、子系统和/或其他组件。例如,处理器630可以被配置为监测和控制与所描述的与相机校准有关的模块、软件、指令、电路、硬件等的任何组合,以及推进、导航、电力管理、传感器管理和/或稳定性管理。

处理器630可以包括一个或多个处理单元601,例如被配置为执行处理器可执行指令(例如,应用、例程、脚本、指令集等)以控制飞行和无人机600的其他操作(包括各个实施例的操作)的一个或多个处理器。处理器630可以耦合到被配置为存储数据(例如,飞行计划、获得的传感器数据、接收到的消息、应用等)的存储器单元602。处理器还可以耦合到被配置为经由无线通信链路来与地面站和/或其他无人机进行通信的无线收发机604。

处理器630还可以包括航空电子模块或系统606,所述航空电子模块或系统606被配置为从各个传感器(例如,陀螺仪608)接收输入并且向处理单元601提供姿态和速度信息。

在各个实施例中,处理器630可以耦合到被配置为执行如所描述的各个实施例的操作的相机640。在一些实施例中,无人机处理器630可以从相机640接收图像帧并从陀螺仪608接收旋转速率和方向信息,并且执行如所描述的操作。在一些实施例中,相机640可以包括被配置为执行如所描述的操作的单独的陀螺仪(未示出)和处理器(未示出)。

无人机可以是有翼或旋翼飞行器种类的。例如,无人机600可以是旋转式推进设计,其使用由相应的发动机622驱动的一个或多个旋翼624来提供离地升空(或起飞)以及其他空中运动(例如,向前行进、上升、下降、侧向运动、倾斜、旋转等)。无人机600被示为可以使用各个实施例的无人机的示例,但是并不旨在暗示或要求各个实施例仅限于旋翼飞行器无人机。替代地,各个实施例也可以实现在有翼无人机上。此外,各个实施例可以同样地与基于陆地的自主运载工具、水上自主运载工具和基于空间的自主运载工具一起使用。

旋翼飞行器无人机600可以使用发动机622和相应的旋翼624来进行离地升空和提供空中推进。例如,无人机600可以是装备有四个发动机622和相应的旋翼624的“四轴飞行器”。发动机622可以耦合到处理器630并且因此可以被配置为从处理器630接收操作指令或信号。例如,发动机622可以被配置为基于从处理器630接收到的指令来增加其相应的旋翼624的旋转速度等。在一些实施例中,发动机622可以由处理器630独立地控制,使得一些旋翼624可以以不同的速度啮合、使用不同的电量、和/或提供不同水平的输出以用于移动无人机600。

主体605可以包括电源612,其可以耦合到无人机600的各个组件并且被配置为各个组件供电。例如,电源612可以是可再充电电池,其用于提供用于操作发动机622、相机640和/或处理器630的单元的电力。

各个实施例可以以配置有立体照相机的多种电子设备来实现,在图7中示出了所述电子设备的示例。参照图1-5和图7,电子设备700可以是包括以下各项的电子设备100:以立体照相配置来布置的至少两个相机702、704,陀螺仪106,和耦合到陀螺仪106、第一相机702和第二相机704的处理器712。为了便于描述和说明,省略了立体照相电子设备700的一些详细方面,例如与第一相机702和/或第二相机704通信的图像传感器102和/或光学系统104、或者对于本领域技术人员而言将是已知的其他特征。另外,虽然示例性电子设备700被示为具有两个立体照相机702、704,但是电子设备700可以包括一个或多个另外的相机,其可以具有单个相机配置和/或立体照相配置。各个实施例可以以各种类型的电子设备(包括无人机、虚拟现实耳机、增强现实耳机等)来实现。

第一相机702可以与第一轴706对齐。由于安装相机使得焦轴彼此精确平行是困难的,因此第二相机704可以与第二轴708对齐,所述第二轴708与第一轴706相切但是不与第一轴706平行。

在各个实施例中,电子设备700的处理器712可以执行如所描述的各个实施例的操作。在一些实施例中,电子设备700的处理器712可以从第一相机702和/或第二相机704接收图像帧并从陀螺仪106接收旋转速率和方向信息,并且执行如所描述的操作。

在一些实施例中,电子设备700的处理器712可以使用来自陀螺仪106的信息来单独地对第一相机702和第二相机704进行校准。例如,处理器712可以使用陀螺仪信息来确定与对第一相机702和第二相机704进行校准相关联的朝向和速度参数。在一些实施例中,可以使用陀螺仪信息来纠正由第一相机702和第二相机704捕获的作为结果的立体图像的深度。处理器172可以使用校准来精细地调整所捕获的图像中的每个像素的位置,以便更好地确定物体的位置以及预测物体在后续图像帧中的位置。

在一些实施例中,电子设备700的处理器712可以执行校准操作以克服对齐角(θ)。例如,基于在第一相机702和第二相机704上单独完成的校准,处理器712可以确定第一相机702与陀螺仪106之间的朝向以及第二相机704与陀螺仪106之间的朝向。随后,处理器712可以确定陀螺仪106的参考朝向,以确定第二轴708和期望的对齐轴710之间的对齐角(θ)。

在一些实施例中,电子设备700的处理器712还可以使用平移分量来对第一相机702和/或第二相机704进行校准。例如,处理器712可以确定第一相机702和第二相机704之间的距离L和电子设备700的位移的方向,以确定平移校准分量。可以将平移校准分量添加到上文所识别的校准参数中的至少一些校准参数中,以便对电子设备700的第一相机702和/或第二相机704进行校准。

各个实施例可以在被配置为在电子设备中使用的处理设备810内实现。处理设备可以被配置为或包括片上系统(SoC)812,其示例在图8中示出。参照图1-8,SOC 812可以包括(但不限于)处理器814、存储器816、通信接口818和存储存储器接口820。处理设备810或SOC 812还可以包括通信组件822(例如,有线或无线调制解调器)、存储存储器824、用于建立无线通信链路的天线826等。处理设备810或SOC 812还可以包括硬件接口828,其被配置为使处理器814能够与电子设备的各个组件进行通信并且控制电子设备的各个组件。特别地,硬件接口828可以被配置为耦合到电子设备内的相机和陀螺仪并且与相机和陀螺仪进行通信并且/或者从相机和陀螺仪接收数据。

本文使用术语“片上系统”(SoC)来指代一组互连的电子电路,通常但不排他地包括一个或多个处理器(例如,814)、存储器(例如,816)和通信接口(例如,818)。SOC 812可以包括各种不同类型的处理器814和处理器内核,例如通用处理器、中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、加速处理单元(APU)、处理设备的特定组件的子系统处理器(例如,相机子系统的图像处理器或显示器的显示处理器)、辅助处理器、单核处理器和多核处理器。SOC 812还可以体现其他硬件和硬件组合,例如现场可编程门阵列(FPGA)、专用集成电路(ASCI)、其他可编程逻辑器件、分立门逻辑单元、晶体管逻辑单元、性能监测硬件、看门狗硬件和时间参考。集成电路可以被配置为使得集成电路的组件位于单片半导体材料(例如,硅)上。

SoC 812可以包括一个或多个处理器814。处理设备810可以包括一个以上的SoC 812,由此增加处理器814和处理器内核的数量。处理设备810还可以包括不与SoC 812相关联(即,在SoC 812外部)的处理器814。个别的处理器814可以是多核处理器。处理器814可以各自被配置用于与处理设备810或SOC 812的其他处理器814相同或不同的特定目的。可以将具有相同或不同配置的处理器814和处理器内核中的一者或多者分组在一起。处理器814或处理器内核的群组可以被称为多处理器簇。

SoC 812的存储器816可以是被配置用于存储供处理器814访问的数据和处理器可执行指令的易失性或非易失性存储器。处理设备810和/或SoC812可以包括被配置用于各种目的的一个或多个存储器816。一个或多个存储器816可以包括易失性存储器,例如随机存取存储器(RAM)或主存储器、或高速缓冲存储器。

处理设备810和SOC 812的组件中的一些或全部组件可以被不同地布置和/或组合,同时仍服务于各个方面的功能。处理设备810和SOC 812可以不限于这些组件中的每个组件中的一个组件,并且每个组件的多个实例可以被包括在处理设备810的各种配置中。

所说明和描述的各个实施例仅是作为示例而提供的,以说明权利要求书的各个特征。然而,关于任何给定实施例所示出和描述的特征未必限于相关联的实施例,并且可以与所示出和描述的其他实施例一起使用或组合。此外,权利要求书并不旨在受任何一个示例性实施例的限制。例如,方法300和方法400的操作中的一个或多个操作可以与方法300和方法400的一个或多个操作替换或者组合,反之亦然。

提供前述的方法描述和过程流图仅仅作为说明性示例,而并不旨在要求或暗示各个实施例的操作必须以所呈现的顺序来执行。如本领域技术人员将领会的,前述实施例中的操作的顺序可以按照任何顺序来执行。例如,用于预测物体在下一图像帧中的位置的操作可以在获得下一图像帧之前、期间或之后执行,并且陀螺仪对旋转速度的测量可以在方法期间的任何时间或连续地获得。

诸如“此后”、“随后”、“接着”等词并不旨在限制操作的顺序;这些词用于引导读者通读方法的描述。此外,任何以单数形式对权利要求元素的引用,例如,使用冠词“一”、“一个”、“所述”不应被解释为将该元素限制成单数。

结合本文所公开的实施例所描述的各种说明性逻辑框、模块、电路和算法操作可以实现成电子硬件、计算机软件、或者二者的组合。为了清楚地说明硬件和软件的这种可互换性,上文已经对各种说明性组件、框、模块、电路以及操作就其功能进行了一般性描述。至于这种功能是实现成硬件还是实现成软件,取决于具体应用和施加在整体系统上的设计约束。技术人员可以针对每个具体应用,以不同方式实现所描述的功能,但是这样的实施例决策不应被解释为导致脱离权利要求书的范围。

可以利用被设计为执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑单元、分立硬件组件、或者其任何组合来实现或执行用于实现结合本文所公开的方面而描述的各种说明性逻辑单元、逻辑框、模块和电路的硬件。通用处理器可以是微处理器,但在替代的方案中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以实现为接收机智能物体的组合(例如,DSP和微处理器的组合)、多个微处理器、一个或多个微处理器结合DSP内核、或者任何其他这样的配置。替代地,一些操作或方法可以由特定于给定功能的电路来执行。

在一个或多个方面中,所描述的功能可以用硬件、软件、固件或其任意组合来实现。如果用软件来实现,则可以将功能作为一个或多个指令或代码存储在非暂时性计算机可读存储介质或者非暂时性处理器可读存储介质上。本文所公开的方法或算法的操作可以体现在处理器可执行软件模块或处理器可执行指令中,其可以位于非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质可以是计算机或处理器可以存取的任何存储介质。通过举例而非限制性的方式,这种非暂时性计算机可读或处理器可读存储介质可以包括RAM、ROM、EEPROM、闪存、CD-ROM或其他光盘存储、磁盘存储或其他磁存储智能物体、或者可以用于以指令或数据结构的形式存储期望的程序代码并可以由计算机存取的任何其他介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述的组合也包括在非暂时性计算机可读和处理器可读介质的范围之内。另外,方法或算法的操作可以作为代码和/或指令中的一者或任何组合或集合位于非暂时性处理器可读存储介质和/或计算机可读存储介质上,其可以并入计算机程序产品中。

提供对所公开的实施例的在先描述使任何本领域技术人员能够实施或使用权利要求。对于本领域技术人员来说,对这些实施例的各种修改将是显而易见的,并且在不脱离权利要求书的精神或范围的情况下,可以将本文定义的一般性原理应用于其他实施例。因此,本公开内容并不旨在限于本文所示出的实施例,而是要符合与所附权利要求书和本文所公开的原理和新颖特征的相一致的最宽的范围。

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