利用传感器数据确定来自图像的信息
相关申请的交叉引用
本申请要求于2014年1月9日提交的名称为“Determining Information FromImages Using Sensor Data(利用传感器数据确定来自图像的信息)”的美国临时专利申请序列号61/925,581的权益,并且要求于2014年12月24日提交的名称为“DeterminingInformation From Images Using Sensor Data(利用传感器数据确定来自图像的信息)”的美国临时专利申请序列号62/096,807的权益,出于所有目的而将这两者的全部内容通过引用结合于本申请中。
技术领域
本书面描述一般涉及确定来自图像的信息,包括使用运动传感器数据确定来自图像的信息,如三维信息等。
背景技术
如移动电话或数字照相机的电子设备可包括一个或多个传感器,诸如加速度计和/或陀螺仪。该传感器可以生成传感器数据,该传感器数据指示移动设备的一个或多个运动,例如移动设备的加速度或者电子设备的运动的角速度。一些电子设备还可以包括图像摄取装置,如照相机,该图像摄取装置可被用于摄取对象的图像。
发明内容
根据本发明的一实施方式,提供了一种装置,该装置包括:至少一个处理器电路,至少一个处理器电路被配置为:从图像摄取装置接收一系列图像,其中,一系列图像中的每个图像均包括物理对象的表示型态(representation,画像);从至少一个传感器装置接收一系列传感器数据项,其中,一系列传感器数据项中的每个数据项均对应于一系列图像中的一个图像;至少部分地基于一系列图像和对应的一系列传感器数据项来确定物理对象的物理长度。
优选地,图像摄取装置的位置针对一系列图像中的每个图像是非固定的。
优选地,至少一个传感器装置包括加速度计,并且一系列传感器数据项包括一系列加速度数据项,一系列加速度数据项对应于当通过图像摄取装置摄取一系列图像中的每个图像时图像摄取装置的位置的变化。
优选地,确定物理对象的物理长度包括对一系列加速度数据项进行二重积分。
优选地,至少一个传感器装置包括速度陀螺仪,并且一系列传感器数据项包括对应于图像摄取装置的位置的变化的一系列角速度数据项。
优选地,确定物理对象的物理长度包括对一系列角速度数据项进行积分。
优选地,至少一个处理器电路进一步被配置为:针对一系列图像中的每个图像,确定表示型态上与物理对象上的第一定位对应的第一点和表示型态上与物理对象上的第二定位对应的第二点,其中,物理对象的物理长度对应于第一点和第二点之间的距离。
优选地,至少一个处理器电路进一步被配置为:在显示装置上显示均具有在第一点上的第一指示符和在第二点上的第二指示符的一系列图像中的每一个。
优选地,至少一个处理器电路进一步被配置为:至少部分地基于物理对象的物理长度与一系列图像的至少一个图像的物理对象的所述表示型态的像素长度之间的相互关系,来确定物理对象的物理长度。
优选地,物理对象与图像摄取装置相距已知距离,并且相互关系至少部分地基于图像摄取装置的焦距、已知距离以及物理对象的表示型态的像素长度。
优选地,物理对象与图像摄取装置相距已知距离,至少一个传感器图像装置包括速度陀螺仪,一系列传感器数据项包括对应于图像摄取装置的位置的变化的一系列角速度数据项,并且至少一个处理器电路被配置为:至少部分地基于一系列图像、对应的一系列角速度数据项以及到物理对象的已知距离来确定物理对象的物理长度。
根据本发明的另一实施方式,提供了一种方法,包括:显示包括物理对象的表示型态的图像,图像是从图像摄取装置接收的;接收物理对象的表示型态上的第一点和第二点的指示,第一点对应于物理对象上的第一定位,并且第二点对应于物理对象上的第二定位;从图像摄取装置接收均包括物理对象的表示型态的一系列图像,其中,图像摄取装置的位置针对一系列图像中的每个图像是非固定的;从至少一个传感器装置接收对应于一系列图像的一系列传感器数据项,其中,图像摄取装置针对一系列图像中的每个图像的位置是根据对应的每个传感器数据项来确定的;以及至少部分地基于一系列图像和一系列传感器数据项来确定物理对象上的第一定位和第二定位之间的物理距离。
优选地,至少一个传感器装置包括加速度计,并且一系列传感器数据项包括一系列加速度数据项,并且确定物理对象上的第一定位和第二定位之间的物理距离包括对一系列加速度数据项进行双重积分。
优选地,至少一个传感器装置包括速度陀螺仪,一系列传感器数据项包括一系列角速度数据项,并且确定物理对象上的第一定位和第二定位之间的物理距离包括对一系列角速度数据项进行积分并利用图像摄取装置到物理对象的已知距离。
优选地,该方法进一步包括:将一系列图像中的每个图像与第一点的第一指示和第二点的第二指示一起进行显示。
根据本发明的又一实施方式,提供了一种包括存储在有形计算机可读存储介质中的指令的计算机程序产品,指令包括:接收由图像摄取装置摄取的物理区域的图像的指令;确定图像上的第一点和图像上的第二点的指令,其中,第一点对应于物理区域的第一定位,并且第二点对应于物理区域的第二定位;接收一系列图像和对应的一系列传感器数据项的指令,其中,一系列图像包括物理区域的第一定位和第二定位,一系列传感器数据项指示当通过图像摄取装置摄取一系列图像中的每个图像时图像摄取装置的位置;以及至少部分地基于一系列图像中的至少一些和一系列传感器数据项中的至少一些来确定物理区域的第一定位和第二定位之间的距离的指令。
优选地,图像摄取装置的位置针对一系列图像中的每个图像是非固定的。
优选地,一系列传感器数据项包括一系列加速度数据项,并且确定第一定位和第二定位之间的距离包括对一系列加速度数据项进行双重积分。
优选地,一系列传感器数据项包括一系列角速度数据项,并且确定第一定位和第二定位之间的距离包括对一系列角速度数据项进行积分。
优选地,指令还包括:确定经确定的距离的精度的指令;以及将经确定的距离与经确定的精度的指示一起显示的指令。
附图说明
本技术的某些特征列于后附的权利要求书。然而,出于说明DE目的,本技术的若干实施方式示于下列附图中。
图1示出了其中根据一个或多个实施例可实施的一种用于利用传感器数据确定来自图像的信息的系统的示例网络环境。
图2示出了根据一个或多个实施例的示例电子设备。
图3示出根据一个或多个实施例的示例用户界面。
图4示出了根据一个或多个实施例的示例用户界面。
图5示出了根据一个或多个实施例的电子设备的示例处理的流程图。
图6示出了根据一个或多个实施例的电子设备的示例处理的流程图。
图7示出了根据一个或多个实施例的电子设备相对于具有第一和第二定位的对象的示例运动图。
图8示出了根据一个或多个实施例的电子设备相对于具有第一和第二定位的对象的示例运动图以及示例MATLAB代码。
图9概念性地示出了能够实施本技术的一个或多个实施例的示例电子系统。
具体实施方式
以下阐述的具体实施方式旨在作为本技术的各种配置的说明,而无意表示能够实践本技术的唯一的配置。附图并入本文中且构成了具体实施方式的一部分。具体实施方式包括特定细节,是出于提供彻底理解本技术的目的。然而,本技术不限于本文所阐述的特定细节,并且可以使用一个或多个实施例来实践。在一个或多个实例中,结构和组件以框图形式示出,从而避免模糊本技术的概念。
主题系统允许诸如移动电话、平板设备等电子设备,或者包括图像摄取装置和一个或多个传感器设备的任何设备,来确定由电子设备摄取的一个或多个图像中表示的对象的物理长度。在一个或多个实施例中,例如通过平移运动和/或旋转运动连续地移动电子设备,同时摄取对象的一系列图像并产生指示运动的相应的一系列的传感器数据项。然后该电子设备可至少部分基于一系列图像和/或相应的一系列的传感器数据项,确定所摄取的图像中表示的对象的物理长度。
图1示出了示例网络环境100,其中用于使用传感器数据确定来自图像的信息的系统可以根据一个或多个实施例来实施。然而,并非需要所有描述的组件,且一个或多个实施例可包括在图中未示出的额外组件。可在组件的布置和类型中做出变化,而不脱离如本文所阐述的权利要求的精神或范围。另外,不同的或更少的组件可以被提供。
该示例网络环境100可包括一个或多个电子设备102、104、106。在一个或多个实施例中,一个或多个电子设备102、104、106可经由网络108等通信地连接到服务器110。在一个或多个实施例中,一个或多个电子设备102、104、106可以不连接到服务器110和/或网络108。网络108可以是公共通信网络(如因特网、蜂窝式数据网络、基于拨号调制解调器的电话网)或专用通信网络(例如专用局域网(“LAN”),租用线路网)。
在一个或多个实施例中,一个或多个电子设备102、104、106可以是诸如膝上型电脑、智能电话、平板设备、便携式媒体播放器、智能照相机的计算设备,诸如具有一个或多个处理器与其耦接和/或嵌入其中的智能眼镜和/或智能手表的可穿戴设备,具有一个或多个处理器与其耦接和/或嵌入其中的电视机或其他显示器,或者可以用于显示诸如图形用户界面等的其他适当的计算设备。在一个或多个实施例中,一个或多个电子设备102、104、106可包括和/或可通信地耦接到图像摄取装置,如照相机。在一个或多个实施例中,一个或多个电子设备102、104、106可包括,和/或可通信地耦接到一个或多个传感器和/或一个或多个传感器设备,诸如一个或多个加速度计和/或一个或多个陀螺仪。
在图1的示例中,电子设备102被描绘为智能电话,电子设备104被描述为智能相机,并且电子设备106被描绘为平板设备。在一个或多个实施例中,一个或多个电子设备102、104、106可以是或者可包括下面相对于图9进一步讨论的电子系统的全部或一部分。
在一个示例中,服务器110可以是计算设备,诸如计算机服务器、智能电话、平板设备、或一般的任何计算设备。在另一示例中,服务器110可以代表一个或多个计算设备(如云计算机和/或分布式系统),该一个或多个计算设备通信地耦接(如经网络108通信地耦接)、共同或单独地执行能在服务器端执行的一个或多个功能,诸如图像处理。在一个或多个实施例中,服务器110相比于电子设备102、104、106中的一个或多个可包括额外的资源,如额外的处理资源,并且电子设备102、104、106中的一个或多个,可发送数据,诸如图像数据至服务器110,例如,以利用服务器110进行图像处理的额外处理资源。在一个或多个实施例中,服务器110可以与各种数据库、存储服务或其他计算设备耦接。
在主题系统中,电子设备102、104、106中的一个或多个(例如电子设备102)可包括:诸如照相机的图像摄取装置、诸如显示器和/或屏幕的输出设备、一个或多个加速度计和一个或多个陀螺仪。电子设备102可通过诸如至少利用图像摄取装置进行的图像摄取,通过诸如至少利用电子设备102和/或服务器110进行的图像处理,通过至少利用加速度计和/或陀螺仪进行的运动测量,可确定一个或多个图像内表示的对象的三维测量。例如,电子设备102可确定在图像中表示的对象的物理长度。在一个或多个实施例中,运动的测量可以是对应于平移的加速度数据项和/或对应于旋转的角速度数据项。在一个或多个实施例中,电子设备102可使用主题系统来确定在一个图像的一个或多个表示型态的对象的物理长度。
电子设备102在例如输出设备上显示包括由图像摄取装置摄取的图像的用户界面,该图像如为由图像摄取装置当前正摄取的图像。例如,电子设备102可以不断地更新用户界面,以显示当前正由图像摄取装置摄取的图像。该电子设备102可以例如相对统一的背景识别在图像中的物理对象的表示型态的边缘。在一个或多个实施例中,电子设备102可以发送一个或多个图像到服务器110,服务器110可处理图像以识别物理对象的表示型态的边缘,并且服务器110可以发送边缘的指示到电子设备102。
电子设备102在第一点和第二点之上覆盖图形指示符,诸如第一和第二圆点,该第一点和第二点位于在用户界面上所显示的物理对象的表示型态的相对边缘上,以使得从第一点至第二点的线跨越对象的长度。电子设备102可以在圆点之一(例如,第一圆点)之上覆盖另一图形对象,例如,白色圆圈。为了启动在所摄取的图像中表示的物理对象的测量,电子设备102可以显示一个提示,以指示电子设备102应该被移动,如通过平移运动和/或旋转运动,同时保持物理对象在所摄取图像内的表示型态,使得白色圆圈在用户界面内从第一圆点被移动至第二圆点。
当电子设备102移动时,电子设备102可以与电子设备102的运动关联地移动用户界面中的白色圆圈。虽然图像内的对象的位置随着电子设备102的移动可以改变,但沿着对象的边缘重叠的一个或多个圆点通过图像识别和/或图像处理,诸如由电子设备102和/或由服务器110进行的图像处理而可以保持在适当位置。如果电子设备102被移动得太快和/或过慢,则电子设备102可显示一个提示或者警告。
当电子设备102移动到不同的位置时,图像摄取装置从不同的角度/位置摄取对象的一系列图像,而电子设备102的一个或多个传感器生成表示电子设备102从位置到位置的移动的一系列传感器数据项。在电子设备102已经摄取一系列图像和相应的一系列传感器数据项之后,电子设备102可以处理该一系列图像和/或一系列传感器数据项,以确定对象的物理长度,如下面关于图3至图8进一步讨论的。
电子设备102可显示与用户界面内的对象表示重叠的对象的物理长度,如下面进一步关于图4讨论的。因此,主题系统允许电子设备102确定和显示由该电子设备102摄取的一个或多个图像内表示的对象的物理长度。在一个或多个实施例中,可以使用主题系统确定脚的大小、人的高度或一般的物理长度和/或至少部分由电子设备102摄取的图像内所显示的任何对象的物理尺寸。
在一个或多个实施例中,仅对象的第一部分可以在由电子设备102所摄取的初始图像中表示。当电子设备102移动时,所摄取的图像被连续地处理和附加的对象表示的边缘得到不断识别。该电子设备102随着边缘变得可见可以添加一个或多个圆点到对象的表示型态的边缘。在一个或多个实施例中,当电子设备102移动时,对象的第一部分和第一圆点,可能不再表示在一个或多个包含对象的剩余部分和第二圆点的摄取图像中。
图2示出了根据一个或多个实施例的示例电子设备102。然而,并非使用所有描述的组件,且一个或多个实施例可包括在图中未示出的额外组件。可在组件的布置和类型中做出变化,而不脱离如本文所阐述的权利要求的精神或范围。可以设置额外的组件、不同的组件或更少的组件。
实例电子设备102包括一个或多个处理器电路202、存储器206、图像摄取装置204、显示装置210以及一个或多个传感器装置208。图像摄取装置204可以是相机或者其他能够获取物理区域(诸如包括物理对象的物理区域)的图像的设备。一个或多个传感器装置208可包括例如一个或多个加速器和/或一个或多个陀螺仪,诸如速度陀螺仪。一个或多个传感器装置208可确定运动数据,诸如加速度和/或角速度数据,因为图像摄取装置204在运动的同时获取图像。因此,运动数据与经由时序关系获取的图像相关联。显示装置210可以是屏幕或能够显示所获取的图像的其他设备。在一个或多个实施中,电子设备104和/或电子设备106的配置可以与图2中示出的电子设备102的配置相同或者相似。
在一个或多个实施中,一个或多个处理器电路202、图像摄取装置204、存储器和/或一个或多个传感器装置208可实施为软件(例如,进程和代码)。在一个或多个实施中,一个或多个处理器电路202、图像摄取装置、存储器206、显示装置210和/或一个或多个传感器装置208可实施为硬件(例如,专用集成电路(ASIC))、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑、分立硬件部件或者其他任何合适的器件和/或其组合。在本公开中进一步描述根据本主题技术的各个方面的这些模块的另外的特征和功能。
图3示出了根据一个或多个实施的实例用户界面300A至300C。并不是所有绘出的部件可被使用,并且一个或多个实施可包括未在图中示出的另外的部件。在不偏离如本文所阐述的权利要求的精神或范围的情况下,可对部件的布置和类型做出改变。可设置另外的部件、不同的部件或较少的部件。
在一个或多个实施中,用户界面300A可通过电子设备102、104、106的一个或多个来显示(诸如,经由电子设备102的显示装置210)。用户界面300A至300C分别包括获取的图像301A至301C,图像301A至301C包括物理对象的表示型态302、在表示型态302上的第一点304A、在表示型态302上的第二点304B、运动指示符(indicator)308以及方向指示符310。第一点304A可对应于物理对象上的第一点,并且第二点304B可对应于物理对象上的第二点。第一点和第二点304A和304B之间的线可跨越物理对象的表示的长度或宽度。所获取的图像301A至301C可通过电子设备102的图像摄取装置204来获取。
电子设备102可使用图像处理以识别物理对象的表示型态302的边缘,并且自动地识别第一点和第二点304A和304B作为在其之间的线跨越表示型态302的长度和/或宽度的点。在一个或多个实施中,一个或多个第一点和第二点304A和304B可从用户输入(诸如用户与电子设备102的触摸屏或其他界面设备的交互)确定。
为了开始测量物理对象,用户界面300A提示用户执行电子设备102的平移(translation)和/或旋转以移动运动指示符308跨过物理对象的表示型态302的长度,诸如,沿着由方向指示符310所指示的方向。在电子设备102移动时,图像摄取装置204可连续地获取物理对象的图像。运动指示符308可沿着与利用电子设备102执行的平移和/或旋转对应的方向移动。电子设备102可利用从一个或多个传感器装置208接收的传感器数据项以确定由用户对电子设备执行的运动。
在一个或多个实施中,用户界面300B可在显示用户界面300A之后通过电子设备102显示,诸如当用户利用电子设备102执行平移运动时。如在用户界面300B中显示的,运动指示符308已经运动以反映用户已经利用电子设备102执行平移运动。
在一个或多个实施中,用户界面可在显示用户界面300B之后由电子设备102显示,诸如当用户利用电子设备102执行旋转运动时。如在用户界面300C中显示的,运动指示符308已经运动返回第一点304A以反映用户已经利用电子设备102例如沿着与平移运动的方向相反的方向执行了旋转运动。当用户移动电子设备时,电子设备102的图像摄取装置204可连续地获取物理对象的图像。
在一个或多个实施中,用户界面300A可只是用户首先利用电子设备102执行旋转,例如以将运动指示符308从第一点304A移动到第二点304B,或者反之亦然。电子设备102可例如经由传感器装置208从旋转获得角速度数据项(其与在旋转期间获取的一系列图像对应)。用户界面300A可随后指示用户利用电子设备102执行平移以使运动指示符308从第二点304B运动返回第一点304A。电子设备例如可经由一个或多个传感器装置208从平移获得加速度数据项(其与在平移期间获取的一系列图像对应)。电子设备102可随后利用与获取的一系列图像一起的一个或多个角速度数据项和/或一个或多个加速度数据项来确定物理对象的第一和第二定位的坐标,如在下面参考图4-图8所进一步讨论的。在一个或多个实施中,旋转运动和平移运动的顺序可反转。
图4示出了根据一个或多个实施的实例用户界面400。并非所有绘出的部件都可被使用,并且一个或多个实施可包括未在图中示出的另外的部件。在不偏离如在本文阐述的权利要求的精神或范围的情况下,可对部件的布置和类型做出改变。可设置另外的部件、不同的部件或更少的部件。
用户界面400包括摄取的图像401,图像401包括物理对象的表示型态302、第一点和第二点304A和304B、物理对象的物理长度的指示402、长度线404以及一个或多个精度指示符408。在一个或多个实施中,电子设备可在用户已经移动电子设备之后并且在电子设备102已经确定物理对象的长度之后显示用户界面400,从而图3的运动指示符308跨过物理对象的表示型态302的长度移动,例如从第一点304A到第二点304B。
电子设备102可将物理对象的物理长度的指示402和长度线404叠加到物理对象的表示型态302上。在一个或多个实施中,指示402可以是数字值以及指示物理长度的相应单位。在一个或多个实施中,指示402可以是表达特定大小的图形指示。电子设备102可将精度指示符408叠加到第一点和第二点304A和304B。精度指示符408可指示物理长度的指示402的精度。在一个或多个实施中,精度指示符408的大小越大,则物理长度的指示402越不精确,并且精度指示符408的大小越小,物理长度的指示402越精确,或者反之亦然。
图5示出了根据一个或多个实施的电子设备102的实例过程的流程图。为了说明的目的,实例过程500首先参考图1-图2的电子设备102进行描述;然而,实例过程500并不限于图1-图2的电子设备,例如,实例过程500可通过一个或多个电子设备104、106和/或服务器110来执行,和/或实例过程500可通过电子设备102的一个或多个部件来执行。为了进一步说明的目的,实例过程500的多个方框可并行发生。此外,实例过程500的方框可以与示出的顺序不同的顺序来执行和/或可不执行实例过程500的一个或多个方框。
电子设备102显示包括物理对象的表示型态302的图像(502)。例如,图像摄取装置204可摄取物理对象的图像并且图像可通过显示装置210显示,诸如,经由上面参考图3和图4描述的用户界面。电子设备102接收在表示型态302上的第一点304A和第二点304B的指示(504),其中,第一点304A对应于物理对象上的第一定位,并且第二点304B对应于物理对象上的第二定位。例如,用户可与电子设备102的输入设备(诸如,触摸屏)交互,以识别第一点和第二点304A和304B。在一个或多个实施中,当物理对象被设置为抵靠均匀背景(uniformbackground)时,电子设备102识别图像中的物理对象的表示型态302的边缘。电子设备102可随后确定第一点和第二点304A和304B作为沿着表示型态302的边缘的两个点(它们彼此相距最远)。
当电子设备102通过用户移动时,例如,如上面参考图3讨论的,则电子设备102接收分别包括物理对象的表示型态302的一系列图像(例如由图像摄取装置204获取的图像),并且电子设备102接收例如来自传感器装置208的一系列传感器数据项(506)。传感器数据项可包括例如加速度数据项、角速度数据项、或者通常可指示在获取图像时的图像摄取装置204的位置的任何数据项。由于图像摄取装置204在获取一系列图像时处于运动中,因此,在一系列图像的至少某一些中,图像摄取装置204的位置可以是非固定的,并且传感器数据项可指示在一系列图像之间的图像摄取装置204的位置的变化。
当接收到一系列图像(506)时,电子设备102跟踪跨每个图像的第一点和第二点304A、304B,并且例如在显示装置210上显示每个图像,其中,第一点和第二点304A、304B的指示叠加到在每个显示的图像中的物理对象的表示型态302上。由于图像摄取装置204的位置在至少某些图像之间时非恒定的,因此在获取的图像内的第一点和第二点304A和304B的相对位置可从图像到图像而改变,并且因此可能需要通过电子设备102进行跟踪。上面参考图3和图4进一步讨论了包括叠加在物理对象的表示型态302上的第一点和第二点304A和304B的实例用户界面。
在一个或多个实施例中,电子设备102使用图像处理技术以在图像中的每个上跟踪第一和第二点304A、304B。例如,电子设备102可以确定包含第一和第二点304A-B中的每个的一组唯一的像素,并且可以在每个图像中搜索该组唯一的像素,以跟踪第一和第二点304A、304B。在一个或多个实施例中,电子设备102可以使用相应的传感器数据项补充图像处理技术。例如,电子设备102可以基于如通过相应的传感器数据项示出的图像摄取装置204的估计的运动来估计第一和第二点304A、304B的定位。
电子设备102至少基于该一系列图像和相应的一系列数据项确定物理对象上的第一和第二定位(对应于第一和第二点304A、304B)(512)。例如,电子设备102可以对加速度数据项执行二重积分以确定图像摄取装置204跨越该一系列图像的位移,并且/或者电子设备102可以结合角速度数据项以确定图像摄取装置204跨越该一系列图像的角度的变化。电子设备102可以将来自该一系列图像中的多重图像的传感器数据项应用到一个或多个数学公式中(诸如余弦定律),以确定物理对象上的第一和第二定位的坐标(512)。以下根据图6至图8进一步讨论在物理对象上的第一和第二定位的坐标的实例判定。
电子设备102至少基于在物理对象上的第一和第二定位的坐标之间的距离来确定物理对象的物理长度(514)。电子设备102确定所确定的物理长度的精度(516)。在一个或多个实施例中,物理长度的精度可以至少部分基于一个或多个传感器装置208(诸如加速计和/或速度陀螺仪)的精度。然后,电子设备102例如在显示装置210上显示所摄取的图像,包括物理对象的物理长度的指示402以及对应于所确定的精度的一个或多个精度指示符408(518)。如以上根据图4进一步讨论的,在一个或多个实施例中,电子设备102可以将物理对象的物理长度的指示402覆盖到物理对象在所摄取的图像内的表示型态302上。在一个或多个实施例中,电子设备102可以通过将圆圈覆盖到所摄取的图像内的第一和第二点304A-B上来表示所确定的物理长度的精度。圆圈的直径可以表示精度,例如,小圆圈可以表示更高的精度。
在一个或多个实施例中,电子设备102可以利用一个或多个数学等式补充和/或替换余弦定律数学等式,所述一个或多个数学等式包括物理对象的物理长度与物理对象在所摄取的图像内的表示型态302的像素长度之间的相互关系。例如,如果x表示物理对象的表示型态302的像素长度,d表示从图像摄取装置204到物理对象的距离,并且f表示图像摄取装置204的焦距,那么可以使用小孔投影公式:计算通过X表示的物理对象的物理长度。在一个或多个实施例中,如果像距i是已知的,X的计算同样可以包括镜像等式:在一个或多个实施例中,从图像摄取装置204到物理对象的距离d可以是已知值。例如,电子设备102可以指示用户将电子设备102保持在距物理对象的某个距离,诸如十二英寸,或者通常为任何距离。
在一个或多个实施例中,当从图像摄取装置204到物理对象的距离已知时,电子设备102可以确定物理对象上的第一和第二定位的坐标(512),而不经利用和/或获得任何加速度数据项。例如,电子设备102可以结合来自速度陀螺仪的角速度数据项以确定图像摄取装置204在该一系列图像中的角度的变化。电子设备102可以将角度的变化以及到物理对象的已知的距离到一个或多个数学等式,诸如由余弦定律得来的等式,以确定在物理对象上的第一和第二定位的坐标(512)。
图6示出根据一个或多个实施例的电子设备102的实例过程600的流程图。出于说明性的目的,在本文中主要参考图1和图2的电子设备102描述实例过程600;然而,实例过程600不限于图1和图2的电子设备102,例如,实例过程600可以通过一个或多个电子设备104、106和/或服务器110执行,并且/或者实例过程600可以通过电子设备102的一个或多个组件执行。进一步出于说明性的目的,按照顺次或者线性发生在本文中描述实例过程600的块。然而,实例过程600的多个块可以并行发生。此外,可以与示出的顺序相比不同的顺序执行实例过程600的块,并且/或者可以不执行实例过程600的一个或多个块。
图7示出根据一个或多个实施例的电子设备102相对于具有第一和第二定位704A、704B的物理对象701的实例运动图700。出于说明性的目的,在实例过程600的上下文内讨论运动图700。然而,实例过程600不限于实例运动图700,并且相反亦可。
电子设备102确定电子设备102的第一位置702A的坐标(602),并且电子设备102摄取物理对象701在第一位置702A的图像。在一个或多个实施例中,第一位置的坐标可被设为(0,0,0)。电子设备102随后相对于第一定位704A,在物理对象701上诸如经由旋转和/或平移运动而移动到第二位置702B,并且电子设备102摄取物理对象701在第二位置702B的图像。出于说明性的目的,第二位置702B被示出为从第一位置702A例如经由平移运动位移;然而,第二位置702B可以从第一位置702A例如经由旋转运动旋转。
电子设备102确定第二位置702B的坐标(604)。在一个或多个实施例中,在电子设备102从第一位置702A移动到第二位置702B的时间期间,电子设备102通过对由一个或多个传感器装置208产生的一个或多个加速度数据项执行二重积分来确定第二位置702B的坐标。
在一个或多个实施例中,可以使用角度数据项以补偿电话的转动,使得加速计可以提供在三个轴线x、y、z上的每个的加速度。因此,在每个轴上,在经过时间t1之后的第一位置702A的坐标可以由二重积分给出,在此的值至少部分基于在电子设备102从第一位置702A移动到第二位置702B的同时产生的加速度数据项来确定。
电子设备102相对于物理对象701上的第一定位704A确定第一和第二位置702A和702B之间第一角度706A(606)。由从第一定位704A到第一位置702A的线以及从第一位置702A到第二位置702B的线形成的第一角度706A可以通过结合通过感光器件208(诸如速度陀螺仪)输出的角速度数据项使用以下等式来确定。至少部分基于在电子设备102从第一位置702A移动的第二位置702B的同时产生的角速度数据项确定的值。在一个或多个实施例中,可以例如通过图像处理确定第一角度706A,替换地或者此外通过上述等式来确定。
电子设备102随后相对于第一定位704A,在物理对象701上诸如经由旋转和/或平移运动而移动到第三位置702C,并且电子设备102摄取物理对象701在第三位置702C的图像。电子设备102以与确定第二位置702B的坐标(604)的相同的和/或相似的方式来确定第三位置702C的坐标(608)。电子设备102以与确定第一角度的相同的和/或相似的方式(606),相对于在物理对象701上的第一定位704A确定在第二和第三位置702B和702C之间的第二角度706B(610)。随着电子设备102移动并且图像被摄取,电子设备102可以例如每毫秒、每秒或者通常以任何间隔继续确定额外的位置和角度。
电子设备102然后至少部分基于所确定的坐标和角度确定在物理对象701上的第一定位704A(x1)的三维坐标(612)。例如如图7中所示,电子设备102可以利用在第一定位704A(x1)、第一位置702A(a0)以及第二位置702B(a1)的顶点构造第一三角形。从a0到x1的三角形的边缘可以标注为B,从a1到x1的三角形的边缘可以标注为A,从a0到a1的三角形的边缘可以标注为T。被标注为A和B的边缘同样可以表现从电子设备102和/或图像摄取装置204到物理对象701的距离。在一个或多个实施例中,同样可以做出与在图像以内的x1的初始定位有关的假设,以帮助确定,诸如x1最初被定位在图像的特定区域以内。
电子设备102可以继续从电子设备102的每个连续的位置的坐标构造三角形。在一个或多个实施例中,电子设备102可以基于余弦定律确定三角形的边缘A和B,例如,T2=A2+B2–2ABcosθ1。电子设备102然后可以至少基于以下等式:A=|a1-x1|和B=|a0-x1|确定x1。以下进一步根据图8讨论具有实例坐标和实例角度的实例计算。在一个或多个实施例中,如果从图像摄取装置240到物理对象701的距离是已知的,例如,被标注为A和B三角形的边缘,电子设备102可以使用由余弦定律得来的等式来计算T和x1,而不经接收任何加速度数据项,例如,不经具有与a0和a1的坐标对应的测量值。
在确定在物理对象701上的第一定位704A的三维坐标(612)之后,电子设备102参考相应的摄取的图像存储所确定的坐标和角度(614)。电子设备102然后诸如基于所存储的值,使用相似的计算确定在物理对象701上的第二定位704B的三维坐标(x2)(616)。可以通过计算第一和第二定位704A和704B的坐标之间的物理距离来确定物理对象701的物理长度。
图8示出根据一个或多个实施例的电子设备102相对于具有第一和第二定位704A和704B的物理对象701的实例运动图810以及实例MATLAB编码820。运动图810包括电子设备102的四个位置802A至802D和与所述四个位置802A至802D对应的三个角度806A至806C。在所述运动图810中,第一位置802A具有(0,0,0)的三维坐标,第二位置802B具有(5,0,0)的三维坐标,第三位置802C具有(10,0,0)的三维坐标,并且第四位置802D具有(15,0,0)的三维坐标。在运动图810中,第一角度806A是18.4°,第二角度806B是15.3°,并且第三角度806C是11.3°
示例性MATLAB代码820将对应于余弦法则的等式应用至位置802A至802D和角度806A至806C的坐标以确定第一定位704A的坐标,例如,[0,-15,0],如结果830中所示。由于角度测量的精度为0.1°,所以,第一定位704A的坐标的精度接近0.1cm。
图9概念性地示出了示例性电子系统900,利用该电子系统,可以实施主题技术的一个或多个实施方式。例如,电子系统900可以是或可以包括电子设备102、104、106中的一个或多个,服务器110、一个或多个耐磨装置,台式计算机,膝上型计算机,平板装置,电话和/或一般地任何电子设备。这样的电子系统900包括各种类型的计算机可读介质和用于各种其他类型的计算机可读介质的接口。电子系统900包括总线908、一个或多个处理单元912、系统存储器904、只读存储器(ROM)910、永久存储装置902、输入装置接口914、输出装置接口906、一个或多个网络接口916和/或它们的子集和变形。
总线908统指通信地连接电子系统900的多个内部装置的所有的系统、外围和芯片集总线。在一个或多个实施方式中,总线908将一个或多个处理单元912与ROM 910、系统存储器904和永久存储装置902通信地连接。利用这些各种存储单元,一个或多个处理单元912检索将执行的指令和将处理的数据以执行主题公开的处理。在不同的实施方式中,一个或多个处理单元912可以是单个的处理器或多核处理器。
ROM 910存储由一个或多个处理单元912使用的静态数据和指令以及电子系统900的其他模块。另一方面,永久存储装置902可以是读写存储装置。永久存储装置902可以是甚至在电子系统900被关断时仍存储指令和数据的非易失性存储单元。在一个或多个实施方式中,可以将大容量存储装置(mass-storage device)(诸如磁或光盘和其对应的盘驱动)用作永久存储装置902。
在一个或多个实施方式中,可移动存储装置(诸如软盘、闪驱和其对应的盘驱动)可以被用作永久存储装置902。与永久存储装置902相同,系统存储器904可以是读写存储装置。然而,与永久存储装置不同,系统存储器904可以是易失性读写存储器,诸如随机存取存储器(RAM)。系统存储器904可以存储一个或多个处理单元912在运行时间可以使用的一个或多个指令和/或数据。在一个或多个实施方式中,主题公开的处理被存储在系统存储器904、永久存储装置902和/或ROM 910中。从这些各种存储单元,一个或多个处理单元912检索将执行的指令和将处理的数据以执行一个或多个实施方式的处理。
总线908还连接至输入装置接口914和输出装置接口906。输入装置接口914使得用户能够将信息和选择命令传送至电子系统900。例如,可以与输入装置接口914使用的输入装置可以包括字母数字键盘和点击装置(pointing device)(也称为“指针控制装置”)。例如,输出装置接口906可以显示由电子系统900产生的图像。例如,与输出装置接口906使用的输出装置可以包括打印机和显示装置,诸如液晶显示器(LCD)、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、柔性显示器、平板显示器、固态显示器、投影仪或用于输出信息的任何其他装置。一个或多个实施方式可以包括用作输入和输出装置的装置,诸如触摸屏。在这些实施方式中,提供给用户的反馈可以是任何形式的感觉反馈,诸如视觉反馈、听觉反馈或触觉反馈;以及来自用户的输入可以包括声音输入、语音输入或触觉输入的任何形式被检索。
如图9所示,总线908还将电子系统900通过一个或多个网络接口916耦接至一个或多个网络(未示出)。一个或多个网络接口可以包括蓝牙接口、BLE接口、Zigbee接口、以太网接口、Wi-Fi接口、多媒体同轴电缆联盟(MoCA)接口、简化的吉比特媒体独立接口(RGMII)或一般地用于连接至网络的任何接口。以这种方式,电子系统900可以是计算机网络(诸如局域网络(LAN)、广域网络(WAN)或内联网,或诸如互联网网的多个网络的一个网络)中的一个或多个的一部分。电子系统900的任何或所有元件可以与主题公开结合使用。
在本公开的范围内的实施方式可以利用编码一个或多个指令的实体计算机可读存储介质(或一种或多种类型的多实体计算机可读介质)被部分地或整体地实现。实体计算机可读存储介质本质上也可以是非临时的。
计算机可读存储介质可以是能够由通用或专用计算装置读、写或存取的任何存储介质,所述通用或专用计算装置包括能够执行指令的任何处理电子设备和/或处理电路。例如,但不限于,计算机可读介质可以包括任何易失的半导体存储器,诸如RAM、DRAM、SRAM、T-RAM、Z-RAM和TTRAM。计算机可读存储介质还可以包括任何非易失的半导体存储器,诸如ROM、PROM、EPROM、EEPROM、NVRAM、闪存、nvSRAM、FeRAM、FeTRAM、MRAM、PRAM、CBRAM、SONOS、RRAM、NRAM、赛道存储器(racetrack memory)、FJG和千足虫存储器(Millipede memory)。
此外,计算机可读存储介质可以包括任何的非半导体存储器,诸如,光盘存储器、磁盘存储器、磁带、其他的磁存储器或能够存储一个或多个指令的任何其他介质。在一个或多个实施方式中,实体计算机可读存储介质可以被直接耦接至计算装置,而在其他实施方式中,实体计算机可读存储介质可以被间接地耦接至计算装置,例如,经由一个或多个有线联接、一个或多个无线连接或它们的组合。
指令可以是直接可执行的或可以被用来展开可执行的指令。例如,指令可以被实现为可执行的或不可执行的机器代码或被实现为能够被编译以产生可执行的或不可执行的机器代码的高级语言的指令。此外,指令还可以被实现为或可以包括数据。计算机可读指令也可以以任何形式被组织,包括例程、子例程、程序、数据结构、对象、模块、应用、小程序、函数等。如本领域技术人员可以认识到的,包括但不限于指令的数目、结构、序列或组织的细节可以显著地变化而不改变底层逻辑、函数、处理和输出。
尽管上述讨论主要指执行软件的微处理器或多核处理器,一个或多个实施方式由一个或多个集成电路,诸如,特定用途集成电路(ASIC)或现场可编程门阵列(FPGA)来执行。在一个或多个实施方式中,这样的集成电路执行存储在电路自身上的指令。
本领域的技术人员将会理解的是,本文描述的各种示例性块、模块、元件、组件、方法和算法可以被实施为电子硬件、计算机软件或它们两者的组合。为了示出硬件和软件的这种可交换性,各种示例性块、模块、元件、组件、方法和算法已经就它们的功能性在以上进行了描述。这样的功能性是实施为硬件还是软件取决于具体的应用和施加至整个系统上的设计限制。本领域的技术人员可以各种特定应用的变化的方式来实施上述功能性。在不脱离主题技术的范围内,各种组件和块可以被完全不同地设置(例如,以不同的顺序设置或以不同的方式划分)。
应该理解的是,所公开的处理中的任何特定的顺序或块的分级是示例性方法的一个示例。基于设计偏好,可以理解的是,可以重新排列处理中的任何特定的顺序或块的分级,或所有示出的块被执行。任何块可以被同时执行。在一个或多个实施方式中,多任务和平行处理可以是有利的。此外,上述实施方式中的各种系统组件的分离不应该被理解为在所有的实施方式中需要这样的分离,而应当理解的是,所述程序组件和系统通常可以被集成在单个软件产品中或被封装至多个软件产品中。
如在本申请的说明书和任意权利要求中所用的,术语“基站”、“接收器”、“计算机”、“服务器”、“处理器”和“存储器”都指的是电子或其他科技装置。这些属于排出了人或一组人。为了说明的目的,术语“显示(display)”或“显示(displaying)”表示在电子设备上显示。
如本文所用的,在以术语“和”或“或”分开任意项目的一系列项目之前的短语“至少一个”整体上修改列表,而不是列表的每个成员(例如,每个项目)。短语“至少一个”不要求选择所列的每个项目的至少一个,而是,该短语允许表示包括任何一个项目的至少一个,和/或项目的任何组合的至少一个,和/或每个项目的至少一个。例如,短语“A、B和C中的至少一个”或A、B或C中的至少一个”均指仅A、仅B或仅C;A、B和C的任何组合;和/或A、B和C的每个的至少一个。
谓语“被配置为”、“可操作”和“被编程为”并不意味着主题的特定的实体或非实体修改,而是意在可交换地使用。在一个或多个实施方式中,被配置为监控和控制操作的处理器或组件也可以表示被编程为监控和控制操作的处理器,或可操作以监控和控制操作的处理器。同样,被配置为执行代码的处理器可以被解释为被编程为执行代码或可操作以执行代码的处理器。
诸如一方面、该方面、另一方面、一些方面、一个或多个方面、实施、该实施、另一实施、一些实施、一个或多个实施、一个实施方式、该实施方式、一些实施方式、一个或多个实施方式、一种配置、该配置、另一配置、一些配置、一个或多个配置、主题技术、公开、本公开、它们的变形等是为方便起见,或并不意味着与这样的短语的相关的公开对主题技术是重要的或这样的公开应用至主题技术的所有配置。与这样的短语相关的公开可以应用至所有的配置、或一个或多个配置。与这样的短于相关的公开可以提供一个或多个实例。诸如一方面或一些方面的短语可以指一个或多个方面,反之亦然,且这意味着与其他前述短语类似。
措辞“示例性”用在本文中表示“用作一个实例、例证或示例”。本文描述为“示例性”或描述为“实例”的任何实施方式没必要被解释为优选的或比其他实施方式有优势。此外,术语“包括”、“具有”等用到说明书和权利要求中的范围,这样的术语以在与类似于术语“包括”的方式(当“包括”在被用作权利要求中的过渡词时所解释的)包含。
本领域技术人员已知的或后来变为已知的在本公开的全文中描述的多个方面的元件的所有结构和功能的等同通过参考被清楚地结合至本文中并意在被权利要求所包含。此外,本文没有描述的事物意在用于公众而不考虑这样的公开是否明确地记载在权利要求中。在35U.S.C.§112,第六款的规定下,没有要求的元件被构造,除非该元件使用短语“用于…的装置”被明确地记载,或在方法权利要求要求的情况下,元件使用短语“用于…的步骤”被记载。
提供以上描述以使得本领域技术人员能够实践本文所述的多个方面。对于本领域技术人员来书,对这些方面的各种修改将是显而易见的。因此,权利要求旨不在被限制到本文所示的方面,而是与和用语言表达的权利要求一致的全部范围一致,其中,参考单数的元件意不在表示“一个或仅一个”除非特别这样说明,而是“一个或多个”。除非特别说明,否则,术语“一些”指的是一个或多个。男性代名词(例如,他)包括女性和中性性别(例如,她的和它的),反之亦然。标题和副标题,如果有的话,仅用于方便起见且不限制主题公开。