CN107925722B - 用于补偿相机运动的方法和设备 - Google Patents
用于补偿相机运动的方法和设备 Download PDFInfo
- Publication number
- CN107925722B CN107925722B CN201680048032.6A CN201680048032A CN107925722B CN 107925722 B CN107925722 B CN 107925722B CN 201680048032 A CN201680048032 A CN 201680048032A CN 107925722 B CN107925722 B CN 107925722B
- Authority
- CN
- China
- Prior art keywords
- camera
- key frame
- frame
- spherical video
- motion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/682—Vibration or motion blur correction
- H04N23/683—Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6811—Motion detection based on the image signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6812—Motion detection based on additional sensors, e.g. acceleration sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6815—Motion detection by distinguishing pan or tilt from motion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/682—Vibration or motion blur correction
- H04N23/684—Vibration or motion blur correction performed by controlling the image sensor readout, e.g. by controlling the integration time
- H04N23/6845—Vibration or motion blur correction performed by controlling the image sensor readout, e.g. by controlling the integration time by combination of a plurality of images sequentially taken
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/698—Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
Abstract
一种方法包括:将球面视频的帧识别为关键帧;存储基于与所述关键帧相关联的相机的位置数据的补偿分量;以及基于所述关键帧和与所述关键帧相关联的补偿分量来补偿在球面视频的后续帧中的相机的运动。
Description
相关申请的交叉引用
本申请要求于2015年11月16日提交的题为“STABILIZATION BASED ONACCELEROMETER DATA”的美国临时专利申请No.62/255,788的优先权并且是其继续申请,其公开内容通过引用全文合并于此。
技术领域
实施例涉及基于加速度计数据的稳定化以及在球面图像和/或视频捕获期间对于相机运动的校正。
背景技术
当捕获图像和/或视频时,图像捕获设备(例如相机、蜂窝电话等)可能运动,导致不期望的运动、无意的运动和/或图像捕获失真。因此,在捕获、存储和/或处理被捕获图像时的校正(例如,稳定化)可能是期望的。
发明内容
示例实施例描述了用于补偿捕获的视频、视频帧或图像中的相机运动的系统和方法。
附图说明
根据下面给出的详细描述和附图将更全面地理解示例实施例,其中相似的元件由相似的附图标记表示,这些附图标记仅以示例的方式给出,因此不是对示例实施例的限制,并且其中:
图1示出了根据至少一个示例实施例的用于捕获和呈现图像和/或视频的系统的框图。
图2示出了球体的二维(2D)表示。
图3示出了球体的三维(3D)表示。
图4示出了根据至少一个示例实施例的作为2D矩形表示的球体的2D表示的展开圆柱表示。
图5、6和7示出了根据至少一个示例实施例的用于在图像和/或视频捕获期间补偿照相机运动的方法。
图8、9和10示出了根据至少一个示例实施例的描绘相机装置(rig)的图。
图11示出了计算机设备和移动计算机设备的示例。
应该注意,这些附图旨在说明在某些示例实施例中使用的方法、结构和/或材料的一般特性,并且补充下面提供的书面描述。然而,这些附图不是按比例绘制的,并且可能不精确地反映任何给定实施例的精确结构或性能特性,并且不应被解释为限定或限制由示例实施例涵盖的值或属性的范围。例如,为了清楚起见,结构元件的相对厚度和位置可以减小或放大。在各个附图中使用相似或相同的附图标记旨在表示存在相似或相同的元件或特征。
具体实施方式
虽然示例实施例可以包括各种修改和替代形式,但是其实施例在附图中以示例的方式示出,并且将在这里详细描述。然而,应该理解的是,没有意图将示例实施例限制为所公开的特定形式,而是相反,示例实施例将覆盖落入权利要求范围内的所有修改、等同物和替换。贯穿附图的描述,相似的数字指代相似的元件。
加速度计可以被配置为响应于和/或表示沿着(或平行于)敏感轴施加的加速度(或减速度)而生成电信号。加速度计的敏感轴可以是x轴、y轴、z轴或其任何组合。例如,相机装置可以包括三个加速度计(例如,一个用于测量沿每个轴的运动)或者可以测量沿所有三个轴的运动的一个加速度计。因此,加速度计可以生成所有三个轴的运动或位置信息。运动或位置信息可以包括平移(例如沿着轴的运动)和旋转(例如围绕一个或多个轴的运动)。
加速度计测量运动、运动的变化和/或位置的变化。因此,如加速度计测量所应用的,加速度可以是(1)恒定、(2)瞬时、或(3)周期性的。恒定(或者运动不变)加速度在事件期间不变。例如,设备(例如相机装置100)可以以恒定的旋转速度或速率旋转。照此设备正在移动。但是,如果发生一些不会导致旋转速度或速率变化的事件,则加速度计将指示加速度恒定(例如,其中没有变化)。
瞬时加速度是在事件的持续时间内变化的加速度,但不是重复的。瞬时加速度可以是不连续运动或一次性事件的结果。例如,瞬时加速度可以包括飞机在降落期间经历的减速、滑雪者在进行雪上特技时经历的加速效果、跳跃、越过道路障碍的汽车经历的加速效果等。换句话说,瞬时加速度可以是由于一次事件引起的设备的移动。
周期性加速度是在事件或时间段的持续时间内变化的加速度,并且是重复的或稍微重复的。周期性加速度可以是连续运动的结果。例如,周期性加速度可以包括与机器相关联的振动或自由摆动设备(例如相机装置100)所经历的加速度。换句话说,周期性加速度可以是由于引起相同(或基本相同)的运动量的重复事件导致的设备的运动。
根据示例实施例,可以在捕获球面图像和/或视频数据期间确定恒定、瞬时和/或周期性运动中的至少一个。然后,可以基于所确定的加速度来校正球面图像和/或视频数据。换句话说,图像捕获设备可以包括测量图像捕获设备的运动(例如,无意运动)的设备(例如,加速度计)。捕获的球面图像和/或视频可以通过使用测量的运动来稳定化。
图1是用于在3D虚拟现实(VR)环境中捕获和呈现立体全景图的示例系统100的框图。在示例系统100中,相机装置102可以通过网络104捕获和提供图像,或者替代地,可以将图像直接提供给图像处理系统106用于分析和处理。在系统100的一些实施方式中,移动设备108可以用作相机装置102以在整个网络104中提供图像。一旦图像被捕获,图像处理系统106就可以对图像执行多个计算和处理,并将处理后的图像提供到头戴式显示器(HMD)设备110以用于在网络104上呈现。在一些实现方式中,图像处理系统106还可以将处理后的图像提供给移动设备108和/或计算设备112以用于呈现、存储或进一步处理。
HMD设备110可以表示能够显示虚拟现实内容的虚拟现实耳机、眼镜、目镜或其他可穿戴设备。在操作中,HMD设备110可以执行可以将接收和/或处理的图像向用户回放的VR应用(未示出)。在一些实现方式中,VR应用可以由图1中所示的设备106、108或112中的一个或多个来托管。在一个示例中,HMD设备110可以提供由相机装置102捕获的场景的视频回放。在另一示例中,HMD设备110可以提供拼接到单个全景场景中的静止图像的回放。
相机装备102可以被配置为用作相机(也可以被称为捕获设备)和/或处理设备以收集用于在VR环境中呈现内容的图像数据。虽然相机装置102被示出为用在此的特定功能描述的框图,但是相机装置102可以采取图1-3中所示的任何实现方式的形式,并且还可以具有贯穿本公开所描述的用于相机装置的功能。例如,为了简化描述系统100的功能,图1示出没有围绕装置设置相机以捕获图像的相机装置102。相机装置102的其它实现方式可以包括可以围绕圆形相机装置(诸如装置102)的圆周布置的任何数量的相机。
如图1所示,相机装置102包括多个相机130、通信系统132和加速度计134。相机130可以包括单个照相机或单个摄像机。在一些实现方式中,相机130可以包括沿相机装置102的外围(例如,环形)并排设置(例如,坐落)的多个照相机或多个摄像机。相机130可以是摄像机、图像传感器、立体相机、红外相机、移动设备等。通信系统132可以用于上载和下载图像、指令和/或其它相机相关内容。通信可以是有线或无线的,并且可以通过私人或公共网络进行接口。
加速度计134可以被配置为在x-y-z轴上捕获相机装置102的位置信息。如贯穿本公开所讨论的,相机在图像捕获期间可能经历无意的运动。因此,相机装置102在图像捕获期间可能经历无意的运动。加速度计134可以用于在图像捕获期间捕获相机装置102的旋转和平移运动信息,使得可以补偿无意的运动(例如图像可以稳定化)。
相机装置102可以被配置为用作固定装置或旋转装置。装置上的每个照相机被设置(例如,放置)得与装置的旋转中心相偏离。相机装置102可以被配置为例如绕360度旋转以扫描和捕获场景的360度视图的全部或部分。在一些实现方式中,装置102可以被配置为在静止位置中操作,并且在这种配置中,可以将额外的照相机添加到该装置以捕获场景的额外的向外视角。
在一些实现方式中,相机装置102包括以并排或背靠背的方式布置的多个数字摄像机(例如,相对于相机302B和302F,在图3中示出),使得它们的透镜各指向径向向外的方向以观看周围场景或环境的不同部分。在一些实现方式中,多个数字摄像机以切向配置布置,其中观察方向与圆形相机装置102相切。例如,相机装置102可以包括多个数字摄像机,其被布置为使得它们的透镜各自指向径向向外的方向,同时相对于装置基座切向布置。数字摄像机可以指向不同的方向以捕获内容,以查看周围场景的不同角度的部分。
在一些实现方式中,相机在相机装置102上以立体对布置。在这样的配置中,每个立体对中的每个第一摄像机被布置(例如,放置)得与相机装置基座的圆形路径相切,并且在向左方向上对齐(例如,用相机透镜指向向左方向)。每个立体对中的每个第二相机被布置(例如放置)得与相机装置基座的圆形路径相切并且在向右方向上对齐(例如,用相机透镜指向向右方向)。
在相机装置102上使用的相机的示例设置可以包括每秒约60帧的逐行扫描模式(即,每个光栅行被采样以产生视频的每一帧,而不是如同大多数摄像机的标准记录模式的每隔一行)。此外,相机中的每个可以配置有相同(或类似)的设置。将每个相机配置为相同(或相似)的设置可以提供捕获在捕获之后可以以期望的方式拼接在一起的图像的优势。示例设置可以包括将相机中的一个或多个设置为相同的变焦、对焦、曝光和快门速度,以及将相机设置为具有相关或关闭的稳定化特征的白平衡。
在一些实现方式中,相机装置102可以在被用于捕获一个或多个图像或视频之前被校准。例如,相机装置102上的每个相机可以被校准和/或被配置为拍摄全景视频。该设置可以包括将装置配置为例如以特定旋转速度用宽视野围绕360度扫描、以及以顺时针或逆时针方向进行操作。在一些实现方式中,装置102上的相机可以被配置为捕获例如场景周围的捕获路径的360度扫描的每度一帧。在一些实现方式中,装置102上的相机可以被配置为捕获例如场景周围的捕获路径的360度(或更少)扫描的每度多个帧。在一些实现方式中,装置102上的相机可以被配置为例如捕获围绕场景的捕获路径的扫描周围的多个帧,而不必每度捕获特别测量的帧。
在一些实现方式中,相机可以被配置(例如,设置)以同步地运行,以在特定的时间点捕获来自相机装置上的相机的视频。在一些实现方式中,相机可被配置为同步运行以在一段时间内从相机中的一个或多个捕获视频的特定部分。校准相机装置的另一个示例可以包括配置如何存储进入图像。例如,进入图像可以作为单独的帧或视频(例如,.avi文件、.mpg文件)存储,并且可以将这些存储的图像上传到互联网、另一个服务器或设备,或者用相机装置102上的每个相机本地存储。在一些实现方式中,进入图像可以被存储为编码视频。
图像处理系统106包括内插模块114、捕获校正模块116、拼接模块118和存储器124。内插模块114表示可用于对数字图像和视频的部分进行采样并确定例如可能在从相机装置102捕获的相邻图像之间发生的内插图像的数量的算法。在一些实现方式中,内插模块114可以被配置为确定相邻图像之间的内插图像片段、图像部分和/或垂直或水平图像带。在一些实现方式中,内插模块114可以被配置为确定相邻图像中的相关像素之间的流场(和/或流向量)。可以使用流场来补偿图像经历的变换以及处理已经经历变换的图像。例如,可以使用流场来补偿所获得的图像的特定像素网格的变换。在一些实现方式中,内插模块114可以通过对周围图像进行内插来生成不是所捕获的图像的一部分的一个或多个图像,并且可以将所生成的图像交织到所捕获的图像中以生成场景的附加虚拟现实内容。
捕获校正模块116可以被配置为通过补偿非理想的捕获设置来校正所捕获的图像。作为非限制性示例,示例捕获设置可以包括圆形相机轨迹、平行主体(相机)轴、垂直于相机轨迹的观看方向、与相机轨迹相切的观看方向和/或其他捕获条件。在一些实现方式中,捕获校正模块116可以被配置为补偿图像捕获期间的非圆形相机轨迹和/或图像捕获期间的非平行主轴中的一者或两者。
捕获校正模块116可以被配置为调整特定的图像集合以补偿使用相机间隔大于大约30度的多个相机捕获的内容。例如,如果相机之间的距离是40度,则捕获校正模块116可以通过从额外的相机收集内容或通过内插缺失的内容,基于太少的相机覆盖来考虑特定场景中的任何缺失的内容。
在一些实现方式中,捕获校正模块116还可以被配置为调整该图像集合以补偿由于相机姿态错误等引起的相机未对准。例如,如果在图像捕获期间发生相机姿态错误(例如,由于相机的取向和位置引起的错误),则模块116可以混合来自若干图像帧的两列或更多列像素,以去除包括由于不良曝光(或从图像帧到图像帧的曝光改变)和/或由于一个或多个相机的未对准而引起的伪像的伪像。拼接模块118可以被配置为基于定义的、获得的和/或内插的图像来生成3D立体图像。拼接模块118可以被配置为混合/拼接来自多个图像部分的像素和/或图像条。例如,拼接可以基于由内插模块114确定的流场。例如,拼接模块118可以(从内插模块114)接收不是该图像集合的一部分的内插图像帧,并且将该图像帧交织到该图像集合中。交织可以包括模块118至少部分地基于由内插模块114生成的光流来将图像帧和图像集合拼接在一起。拼接的组合可以用于生成用于显示在VR头戴式显示器中显示的全向立体全景。图像帧可以基于从布置在特定装置上的多个立体相机对收集的被捕获的视频流。这样的装置可以包括大约6到大约8个立体相机对。例如,这种装置的其他组合可以包括12-16个非成对的相机。在一些实现方式中,装置可以包括一个或两个立体相机对。在一些实现方式中,装置可以包括可以并排地坐落在装置上的那么多的立体相机对。在一些实现方式中,拼接模块118可以使用与至少一个立体对相关联的姿态信息来在执行交织之前预先拼接该图像集合的一部分。
在图像处理系统106的一些实现方式中,拼接模块118可以是可选组件。例如,当图像以超过360度的精确扫描运动无误地捕获时,将图像拼接在一起可以不需要获得场景的3D立体全景。
图像处理系统106还包括投影模块120和图像校正模块122。投影模块120可以被配置为通过将图像投影到平面透视平面中来生成3D立体图像。例如,投影模块120可以获得特定图像集合的投影,并且可以通过将来自平面透视投影的图像中的一些图像转换成球面(即,等矩形)透视投影来重新投影该图像集合的一部分。转换包括投影建模技术。
投影建模可以包括定义投影中心和投影平面。在本公开中描述的示例中,投影的中心可以表示在预定的x-y-z坐标系的原点(0,0,0)处的光学中心。投影平面可以放置在投影中心的前方,面向的相机在x-y-z坐标系中沿着z轴捕获图像。通常,可以使用从坐标(x,y,z)到投影中心的特定图像射线的平面透视平面的交点来计算投影。例如,可以通过使用矩阵计算操纵坐标系来进行投影的转换。
用于立体全景的投影建模通常包括使用不具有单个投影中心的多视角图像。通常将多视角显示为圆形(例如球面)。当从一个坐标系转换到另一个坐标系时,呈现可以使用球面作为近似值。
通常,球面(例如等矩形)投影提供矩形的平面,其中球的极点映射到该特定投影的顶部和底部的行,并且赤道映射到垂直地平分矩形的行。透射投影提供了视图,该视图在平面(例如2D表面)透视平面上提供3D对象的图像以近似用户的实际视觉感知。通常,图像可以在平图像平面(例如,计算机监视器、移动设备LCD屏幕)上呈现,因此以平面透视示出出投影以提供未失真视图。然而,平面投影不允许360度的视场,因此所捕获的图像(例如,视频)可以以等角矩形(即,球面)的视角存储,并且可以在呈现时重新投影到平面视角。
在特定的重新投影完成之后,投影模块120可以发送用于在HMD中呈现的图像的重新投影的部分。例如,投影模块120可以将重新投影的部分提供给HMD 110中的左眼显示器,并且将该重新投影的部分提供给HMD 110中的右眼显示器。在一些实现方式中,投影模块120可以被配置通过从平面透视投影再投影到球面透视投影来计算和减少垂直视差。
图像校正模块122可以被配置为通过补偿失真(包括但不限于透视失真)来生成3D立体图像。在一些实现方式中,图像校正模块122可以确定其中对于3D立体维持光流的的特定距离,并且可以分割图像以仅显示其中维持这种流的场景的部分。例如,图像校正模块122可以确定3D立体图像的光流被维持在例如从圆形相机装置102的外部边缘起的大约径向一米(radial meter)到从相机装置102的外部边缘起的大约径向五米之间。因此,图像校正模块122可以确保在提供适当的3D立体效果是对HMD 110的用户适当的视差的同时、选择一米到五米之间的样本用于以没有失真的投影呈现在HMD110中。
在一些实现方式中,图像校正模块122可以通过调整特定的图像来估计光流。该调整可以包括例如校正图像的一部分,确定与图像的该部分相关联的估计的相机姿态,以及确定该部分中的图像之间的流。在非限制示例中,图像校正模块122可以补偿正在计算流的两个特定图像之间的旋转差异。该校正可以起到消除由旋转差异(即旋转流动)引起的流分量的作用。这种校正导致由平移(例如,视差流)引起的流,这可以降低流估计计算的复杂度,同时使得到的图像准确且鲁棒。在一些实现方式中,可以在呈现之前对图像执行除了图像校正之外的处理。例如,可以在进行呈现之前对图像执行拼接、混合或附加校正处理。
在一些实现方式中,图像校正模块122可以校正由不基于平面透视投影的相机几何形状捕获的图像内容引起的投影失真。例如,可以通过内插来自多个不同观看角度的图像并通过将与图像相关联的观看射线调节为源自共同原点来对图像施加校正。内插的图像可以被插入到所捕获的图像中以生成对于人眼来说看起来精确的虚拟内容,并且对于人眼来说具有舒适水平的旋转视差。
在示例系统100中,设备106、108和112可以是膝上型计算机、桌面计算机、移动计算设备或游戏控制台。在一些实现方式中,设备106、108和112可以是可以布置(例如,放置/定位)在HMD设备110内的移动计算设备。移动计算设备可以包括显示设备,其可以用作例如HMD设备110的屏幕。设备106、108和112可以包括用于执行VR应用的硬件和/或软件。另外,当这些设备被放置在相对于HMD设备110的位置范围的前方或保持在相对于手持设备110的位置范围内时,设备106、108和112可以包括能够识别、监视和跟踪HMD设备110的3D运动的硬件和/或软件。在一些实现方式中,设备106、108和112可以通过网络104向HMD设备110提供附加内容。在一些实现方式中,设备102、106、108、110和112可以连接到彼此配对或通过网络104连接的设备/与所述设备接口。连接可以是有线或无线的。网络104可以是公共通信网络或专用通信网络。
在HMD(例如,HMD设备110)中,观看者通过使用投影所感知的三维(3D)视频或图像的左(例如左眼)显示器和右(例如右眼)显示器来体验视觉虚拟现实。根据示例实施例,球面(例如,3D)视频或图像存储在服务器上。视频或图像可以服务器编码并流式传输到HMD。球面视频或图像可以被编码为与关于左图像和右图像的元数据一起封装(例如,在数据分组中)的左图像和右图像。然后左图像和右图像被解码并由左(例如左眼)显示器和右(例如右眼)显示器显示。
这里描述的系统和方法可应用于左图像和右图像,并且贯穿本公开内容,取决于用例,被称为图像、帧、图像的一部分、帧的一部分、图块(tile)等。换句话说,从服务器(例如,流传输服务器)传送到用户设备(例如,HMD)并且然后被解码以用于显示的编码数据可以是与3D视频或图像相关联的左图像和/或右图像。
系统100可以包括电子存储器。电子存储器可以包括以电子方式存储信息的非暂态存储介质。电子存储器可以被配置为存储捕获的图像、获得的图像、预处理的图像、处理后的图像等。利用所公开的相机装置中的任何捕获的图像可以被处理并存储为一个或多个视频流或存储为单独的帧。在一些实现方式中,可以在捕获期间进行存储,并且可以在捕获的部分之后直接进行呈现,以便比捕获和处理同时的情况更快地访问全景立体内容。
图2是球的二维(2D)表示。如图2所示,球200(例如,作为球面图像或球面视频的帧)示出了内部透视图205、210、外部透视图215和可观看透视图220和225的方向。可观看透视图220可以是球面200的一部分(例如,作为球面图像或球面视频的帧)。从外部透视图215观察,可观察透视图225可以是球面200的一部分。
图3示出了在x-y-z轴上具有中心C并具有圆周P和半径ρ的球。球面图像或球面视频的帧可以被投影在球300的表面上。根据示例实现方式,球面视频(或其子集)中的每个帧可以以C为中心。因此,任何不以C为中心的帧可以认为是由于相机运动而运动的。可以通过将确定已经沿着x-y-z轴中的一个或多个移动的帧平移到中心C来校正这个运动。此外,球面视频(或其子集)中的每个帧可以具有指向例如图3所示的方向的x-y-z轴。因此,任何不具有例如指向图3所示的方向的x-y-z轴的帧可以认为是由于相机运动而运动的。可以通过旋转球面300来校正该运动。例如,球可以在图3所示的方向φ和/或θ中的一个或多个上旋转,以便定位图像,使得x-y-z轴指向例如图3所示的方向。示例实施例可以包括在3D域中平移和旋转球面图像或球面视频的帧、和/或在2D域中偏移球面图像或球面视频的帧的2D矩形表示。
图4示出了作为2D矩形表示的球200的2D表示的展开圆柱表示450。2D矩形表示可以是分解为N×N个块的C×R矩阵的图像的等矩形投影。例如,如图4所示,所示出的展开圆柱形表示450是N×N块的30×16矩阵。然而,其他CxR维度在本公开的范围内。块可以是2×2、2×4、4×4、4×8、8×8、8×16、16×16等的块(或像素块)。当图像垂直进行(如图4所示上下往复)时,显示为展开圆柱表示450的图像的等矩形投影可以表现为拉伸的图像。
球面图像是在所有方向上连续的图像。因此,如果要将球面图像分解成多个块,则该多个块将在球面图像上是连续的。换句话说,在2D图像中没有边缘或边界。在示例实现方式中,相邻的端块可以与2D表示的边界相邻。另外,相邻的端块可以是与2D表示的边界上的块接触的块。例如,相邻的端块与二维表示的两个或更多个边界相关联。换句话说,因为球面图像是在所有方向上连续的图像,所以相邻端可以与图像或帧中的上边界(例如,块的一列)和下边界相关联和/或关联与图像或帧中的左边界(例如,块的一行)和右边界相关联。
例如,如果使用等矩形投影,则相邻的端块可以是列或行的另一端上的块。例如,如图4所示,块460和470可以是彼此相邻的端块(按列)。此外,块480和485可以是彼此相邻的端块(按列)。另外,块465和475可以是彼此相邻的端块(按行)。视图透视图455可以包括(和/或重叠)至少一个块。块可被编码为图像的区域、帧的区域、图像或帧的一部分或子集、块组等。在下文中,该块组可以被称为图块或图块的组。图块可以是在回放球面视频期间基于观看者的观看视角而选择的多个像素。多个像素可以是块、多个块或宏块,其可以包括用户可以看到的球面图像的一部分。例如,图块490和495被示出为图4中的四个块的组。
在示例实施例中,图块490和图块495可以在相机已经移动的后续帧中表示相同的位置。换句话说,图块490可以表示由被配置为捕获球面图像的相机捕获的第一(或更早的时间)图像中的帧的一部分。图块495可以表示由相机捕获的第二(或更晚的时间)图像中的帧的一部分。在这个示例实现方式中,图块495可以是时间上恰好后一帧的与图块490相同的图像部分。这两个帧的观察者可能将这种运动感知为不自然的或不现实的。该运动也可具有不意图的后果(例如,引起观众的晕动病)。因此,需要校正这种运动。在这种情况下,校正可涉及将第二帧(包括图块695)向上和向左偏移。
如果图像是2D图像而不是球面图像的2D矩形表示,则在第二帧(包括图块495)的底部和右侧将存在图像的丢失部分。然而,根据示例实施例,球面图像的2D矩形表示是连续的,因此可以从2D表示的其他部分填充图像数据。
可以在捕获的2D图像上逐个图像地执行对于相机运动的补偿。然而,二维图像补偿通常导致补偿图像的一个或多个边缘上的空白或暗像素。结果,将2D图像拼接在一起以形成球面图像会更复杂(例如,需要更高级的算法)和/或所得到的球面图像可能包括暗部分(例如,球面图像的部分可以是黑色的或不包括像素数据)。
根据示例实施例,可以在球面图像或球面视频的帧(例如,如球200所表示的)中实现对相机运动的补偿。换句话说,可以在使用捕获的2D图像生成或拼接球面图像或球面视频的帧之后,执行对相机运动的补偿。如此,球面图像或球面视频的帧可以被平移(例如,沿着轴运动)和/或被旋转到补偿位置。换句话说,第二帧(包括图块495)可以在3D域中平移和/或旋转,以将图块495与第一帧中的图块490的位置对齐。
图5、6和7是根据示例实施例的方法的流程图。关于图5、6和7描述的步骤可以由于软件代码的执行而执行,所述软件代码存储在与设备(例如图1所示的图像处理系统106)相关联的存储器中并且由与该设备相关联的至少一个处理器执行。然而,可以设想替代实施例,诸如体现为专用处理器的系统。尽管下面描述的步骤被描述为由处理器执行,但是这些步骤不一定由相同的处理器执行。换句话说,至少一个处理器可以执行下面关于图5、6和7描述的步骤。
下面关于图5、6和7描述的步骤是指补偿与球面视频(例如,球面视频帧)相关联的相机运动。因此,球面视频帧是球面形式的。换句话说,(例如,通过相机130)所捕获的2D图像已经(例如,通过拼接模块118)拼接在一起以形成球面图像或帧。然后,根据这里描述的方法对这些拼接的图像或帧稳定化(例如,运动补偿)。
根据示例实施例,捕获的帧速率或每秒帧数可以比加速度计(例如,加速度计134)的采样速度更快。因此,可以使用已经拼接在一起形成球面图像或帧的捕获图像(或帧)来完成对相机运动的补偿。在该示例实施例中,对于相机运动的补偿可以基于当前帧和(或相比于)参考帧。如果存在多于一个可能的运动方向的指示(例如,基于帧比较),则加速度计数据还可以用于确定运动的方向和/或作为偏差信息。
图5示出了根据至少一个示例实施例的用于在球面视频捕获期间补偿照相机运动的方法。根据示例实施方式,相机运动可以在二维域中被补偿。如图5所示,在步骤S505中,球面视频的3D帧被转换为帧的2D表示。根据示例实现方式,投影模块120可以将球面视频的帧转换为帧的2D表示。例如,球面视频帧或图像可被映射到球面帧或图像的2D表示。例如,图2示出球200(例如,作为帧或图像)。球200可被投影到另一形状(例如,正方形、矩形、圆柱体和/或立方体)的表面上。投影可以是例如等矩形或半等矩形。上面更详细地描述了将球面帧或图像映射到球面帧或图像的2D表示。
在步骤S510中,将帧的一部分与参考帧的一部分进行匹配。在示例实现方式中,捕获校正模块116可以将帧的部分与参考帧的部分进行匹配。例如,可以将帧(作为对于相机运动而补偿的帧)的块和/或图块匹配到相同的块和/或图块(例如,包括相同的图像或图像的一部分)。参考图4,在示例实施例中,图块490和图块495可以在相机已经运动的后续帧中表示相同的位置。换句话说,图块490可以表示由被配置为捕获球面视频的相机捕获的参考帧中的帧的一部分。图块495可以表示由相机捕获的对于相机运动补偿的帧中的帧的一部分。在这个示例实现方式中,图块495可以是帧中的与稍后捕获的另一帧中的图块490相同的部分。在示例实现方式中,图块498也可以是匹配的。换句话说,参考帧中的多个图块可以被认定为帧的一部分的匹配。在这个示例中,加速度计数据可以用来确定运动的方向。然后匹配(或选择匹配的图块)也可以基于如基于加速度计数据确定的运动方向。
在步骤S515中,确定参考帧的该部分与该帧的该部分之间的位置差异。在示例实现方式中,捕获校正模块116可以确定该帧的该部分与参考帧的该部分之间的位置差异。例如,再次参考图4,位置差异可以是图块490和图块495之间的xy位置差异。在所示的示例中,图块495是图块490的右下一个块。在示例实现方式中,位置差异可以通过减去与图块495相关联的像素和/或块位置(例如,左上角、中心等)和与图块490相关联的相同像素和/或块位置来确定。
在步骤S520中,通过基于位置差异移位(shift)帧来补偿相机运动。在示例实现方式中,捕获校正模块116可以补偿(或稳定)相机运动。继续这个例子,补偿可能涉及将第二帧(包括图块495)向左上移位。在步骤S525中,对边界图像损失进行校正。例如,如上所述,球面图像的边界是连续的。因此,如图4所示,块460和470可以被视为彼此行相邻。此外,框465和475可以被视为彼此列相邻。因此,继续该示例,除了向左移位之外,可以将包括块465的块的列作为最后一列插入到右侧。因此,替换在补偿移位期间创建的像素的空白列。类似地,除了向上移位之外,包括块470的块的行可以作为底行插入。因此,替换在补偿移位期间创建的像素的空白行。
在示例实现方式中,球面图像可以是部分(例如,少于全部)3D视频、视频帧或图像或部分球面视频、视频帧或图像。例如,如图8所示,可以使用一对相机来捕获视频或图像。换句话说,视频或图像可已经通过使用能够围绕旋转中心旋转360度的一对相机(例如,像人的头部中的人眼)来捕获,从而捕获作为部分3D视频或部分3D图像存储的全景场景。在示例实现方式中,部分3D视频、视频帧或图像或部分球面视频、视频帧或图像存储为3D视频、视频帧或图像或球面视频、视频帧或图像,其丢失了像素或具有在相机的捕获范围外的黑像素。部分3D视频、视频帧或图像或部分球面视频、视频帧或图像还可以与元数据相关联地存储,指示视频或图像存储为部分3D视频、视频帧或图像或部分球面视频、视频帧或图像。
因此,如果球面视频的帧被存储为3D视频或球面视频,则补偿相机运动可以包括使用如上所述的3D技术进行移位或平移。然而,如果球面视频的帧被存储为二维(2D)数据,则补偿相机运动可以包括基于参考或关键帧中心位置和参考或关键帧平移位置,移位或平移(如上所述)2D中的后续帧,方法可进一步包括(例如,基于关联的元数据)确定视频或图像是部分3D视频、视频帧或图像还是部分球面视频、视频帧或图像。在确定视频或图像是部分3D视频、视频帧或图像或部分球面视频、视频帧或图像时,将在显示区域(例如,视频或图像将显示的HMD的显示区域)外的运动补偿的后续帧的像素设置为默认值。显示区域可以基于观看者在球面视频的回放期间的当前视角透视图。换句话说,如果空白行不被显示在HMD110上,则HMD 110(或者被配置为呈现用于HMD 110的图像的设备)可以不用图像数据替换空白行。
在步骤S530中,存储球面视频的补偿的2D表示帧。例如,球面视频的补偿的2D表示帧可被存储在与流传输球面视频的服务器相关联的数据存储中。球面视频的补偿的2D表示帧可以或可以不在被存储之前被压缩或编码。球面视频的补偿的帧可以存储在图像处理系统106的存储器124中。
图6示出根据至少一个示例实施例的用于在球面视频捕获期间补偿相机运动的方法。如图6所示,在步骤S605中,捕获球面视频的帧。例如,可以使用相机、多个相机和/或相机装置来将该帧捕获为构成球面视频的多个帧中的一个。在示例实现方式中,可以使用相机装置102的相机130来捕获帧。捕获球面视频的帧可以包括存储代表表示球面视频的帧的多个像素的数据。例如,数据可以被存储在图像处理系统106的存储器124中。
在步骤S610中,球面视频的帧被识别为参考帧。在示例实现方式中,捕获校正模块116可以识别参考帧。例如,在视频压缩技术中,视频帧可被识别为iframe、pframe或关键帧。Iframe、pframe或关键帧可以用作在后续帧的压缩(或编码)中使用的参考帧。Iframe、pframe或关键帧可以在某个规则的时间间隔或基于其他标准(例如,后续帧具有匹配块的可能性)被选择。在相机运动的补偿期间,iframe、pframe或关键帧也可以被指示为参考帧。参考帧还可以基于规则的时间间隔(例如,每1秒)、基于相机装置的位置(例如,相机装置在预定位置处)、基于用户输入、基于捕获的图像的类型(例如,很少或没有运动的图像相对于运动活动显著(例如,在阈值量以上)的图像),等而选择。
在步骤S615中,与参考帧相关联地存储中心位置、平移位置和/或旋转位置。在示例实现方式中,捕获校正模块116可以将中心位置、平移位置和/或旋转位置作为元数据存储在图像处理系统106的存储器124中。例如,可以将位置信息存储为与参考帧相关联的元数据。元数据可以被存储在与捕获设备相关联的存储器(例如,相机、相机装置等)中。元数据可以包括捕获参考帧时与捕获设备相关联的中心位置、平移位置和旋转位置。在示例实现方式中,可以使用从加速度计(例如,加速度计134)读取或由其生成的数据来确定中心位置、平移位置和/或旋转位置。例如,在使用相机装置102捕获球面视频的帧时,加速度计134可以用于捕获相机装置102在x-y-z轴上的位置信息。从这个位置信息可以确定相机装置102的中心位置、平移位置和/或旋转位置。相机装置102的中心位置、平移位置和/或旋转位置可被存储为球面视频的帧的中心位置、平移位置和/或旋转位置。换句话说,球面视频的帧的位置信息可以基于用来捕获球面图像的帧的捕获设备的位置信息。
在步骤S620中,与参考帧相关联的补偿分量被存储为源或零中心向量、源或零平移向量以及源或零旋转向量。在示例实现方式中,捕获校正模块116可以将源或零中心向量、源或零平移向量以及源或零旋转向量作为元数据存储在图像处理系统106的存储器124中。例如,参考可以被设置为球面视频的没有与其相关联的运动帧。因此,不应该对参考帧进行补偿。如此,与参考帧的补偿分量相关联的元数据可以指示没有运动。因此,包括用于参考帧的补偿分量的零中心向量、零平移向量和零旋转向量的元数据与参考帧相关联并被存储(例如,存储在与传送参考帧数据相关联的数据库、数据分组或报头中)。
在步骤S625中,捕获球面视频的后续帧。在示例实现方式中,可以使用相机装置102的相机130来捕获后续帧。例如,与参考帧相比,可以稍后捕获球面视频的帧。例如,可以使用相机、多个相机和/或相机装置来将后续帧捕获为构成球面视频的多个帧中的一个。捕获球面视频的帧可以包括存储代表表示球面视频的帧的多个像素的数据。在示例实现方式中,可以使用从加速度计读取的数据来确定中心位置、平移位置和旋转位置。例如,在使用相机装置102捕获球面视频的帧时,加速度计134可以用于捕获相机装置102在x-y-z轴上的位置信息。从这个位置信息可以确定相机装置102的中心位置、平移位置和旋转位置。
在步骤S630中,基于参考帧对球面视频的后续帧中的相机运动进行补偿。在示例实现方式中,捕获校正模块116可以用于补偿相机运动。例如,可以将与后续帧相关联的中心位置、平移位置和旋转位置与参考帧的中心位置、平移位置和旋转位置进行比较。运动补偿(或稳定化)可以包括基于与参考帧相比较的后续帧的中心的差异来对后续帧进行居中(例如,移动像素的位置)。补偿可以包括通过基于与参考帧相比较的后续帧的位置的差异,沿着x、y或z轴中的至少一个(例如,x轴和y轴)移动(例如,移动像素的位置)来进行平移。在示例实现方式中,补偿后续帧的中心和平移可以是单个步骤。运动补偿(或稳定化)可以包括基于与参考帧相比的后续帧的旋转位置的差异来旋转(例如,移动像素的位置)后续帧。旋转可以包括例如使球面视频的帧的像素在图3所示的方向(和/或相反方向)φ和/或θ中的一个或多个上移动。
在步骤S635中,确定参考帧是否有效。在示例实现方式中,图像处理系统106可以确定参考帧是否有效。例如,如上所讨论的,iframe、pframe或关键帧(作为压缩处理的一部分)可以被指示为无效或被指示用于替换。规则的时间间隔(例如,每1秒)可过期,相机装置的位置可在新的参考帧位置(例如,静止的相机装置),可以接收用户输入,捕获的最后一个图像可以包括很少的运动或不包括运动等,这些可以导致指示获取新的参考帧。如果参考帧是无效的,则处理返回到步骤S605。否则,处理返回到步骤S625。
图7示出了根据至少一个示例实施例的用于在球面视频捕获期间补偿照相机运动的另一方法。根据示例实现方式,相机运动可以在3D域中被补偿。如图7所示,在步骤S705中,捕获球面视频的帧。例如,可以使用相机、多个相机和/或相机装置来将该帧捕获为构成球面视频的多个帧中的一个。捕获球面视频的帧可以包括存储代表表示球面视频的帧的多个像素的数据。在示例性实现方式中,可以使用相机装置102的相机130来捕获帧并将其存储在图像处理系统106的存储器124中。
在步骤S710中,读取或确定(例如,计算)相机位置。例如,可以从加速度计读取位置信息并将其与球面视频的帧相关联。元数据可以被存储在与捕获设备相关联的存储器(例如,相机、相机装置等)中。元数据可以包括捕获设备的x位置(在x轴上)、y位置(在y轴上)和z位置(在z轴上)。元数据还可以包括与捕获设备相关联的至少一个旋转角。例如,在使用相机装置102捕获球面视频的帧时,加速度计134可以用于捕获相机装置102在x-y-z轴上的位置信息。从位置信息或元数据可以确定相机装置102的中心位置、平移位置和旋转位置。相机装置102的中心位置、平移位置和旋转位置可以被存储为球面视频的帧的中心位置、平移位置和旋转位置。换句话说,球面视频的帧的位置信息可以基于用来捕获球面视频的帧的捕获设备的位置信息。
在步骤S715中,读取或取回(例如,处理)与参考帧相关联的中心位置、平移位置和旋转位置。例如,中心位置、平移位置和旋转位置可以与参考帧相关联地存储(例如,在图像处理系统106的存储器124中)。在示例实现方式中,可以将位置信息存储为与参考帧相关联的元数据。元数据还可以被存储在与捕获设备相关联的存储器(例如,相机、相机装置等)中。元数据可以包括捕获参考帧时与捕获设备相关联的中心位置、平移位置和旋转位置。因此,可以从图像处理系统106的存储器124读取中心位置、平移位置和旋转位置。
在步骤S720中,可以通过基于参考帧中心位置和平移位置使帧居中来补偿相机运动。在示例实现方式中,捕获校正模块116可以补偿运动或稳定化图像或帧。例如,可以将捕获帧的中心位置和捕获帧的平移位置与参考帧的中心位置和参考帧的平移位置进行比较。在示例实施方式中,可以从参考位置的中心位置减去捕获帧的中心位置,并且可以从参考帧的平移位置减去捕获帧的平移位置。基于所确定的或计算的差异可以移动帧(例如,移动像素的位置)。参考图3,运动可以被示为将与帧相关联的中心C的位置移动到与参考帧相关联的中心C的位置。随着中心C的运动,帧的所有相关联的像素与中心C一起移动或平移(例如,以相同的方向且以相同的量)。运动或平移可以是向量运动(例如,考虑x-y-z轴中的每个的一个运动)或单独的轴运动或平移(例如,沿着x轴移动或平移,然后沿着y轴移动或平移,并且最终沿着z轴移动或平移(不一定按照该顺序))。
在步骤S725中,可以通过基于参考帧旋转位置将帧旋转来补偿相机运动。在示例实现方式中,捕获校正模块116可以补偿运动或稳定化图像或帧。例如,捕获的帧的角位置(例如,极点)可以与参考帧的相同角位置进行比较。在示例实现方式中,可以从参考位置的角位置中减去捕获的帧的角位置。基于所确定的或计算的差异可以旋转捕获的帧(例如,移动像素的位置)。在图3中,移动可以被示出为围绕与捕获的帧相关联的中心C的位置,沿着方向φ和/或θ中的一个或多个旋转。随着围绕中心C的旋转,帧的所有相关联的像素围绕中心C旋转(例如,以相同的方向并以相同的量)。旋转可以是组合的运动(例如,考虑φ和/或θ中的每一个的一个运动)或单独的旋转(例如,在φ中旋转或与φ相反旋转,然后在θ中旋转或与θ相反旋转(不一定按照该顺序))。
在步骤S730中,存储球面视频的补偿的帧。例如,球面视频的补偿的帧可以被存储在与流传输球面视频的服务器相关联的数据存储中。球面视频的补偿的帧在被存储之前可以或可以不压缩或编码。球面视频的补偿的帧可以存储在图像处理系统106的存储器124中。
在示例实现方式中,关于图5和图7描述的步骤例如可以顺序执行为图6的步骤S630。在这个示例实现方式中,图7的步骤可以补偿相机的运动,并且图5的步骤(或其一部分)可以补偿加速度计测量误差。例如,图7的步骤可以补偿大部分的相机运动,而图5的步骤可以对补偿进行微调。相应地,在示例实现方式中,可以可选地结合图7的步骤来执行图5的步骤。此外,图5的结果(例如,位置差异)可以被用作反馈以校准或调整加速度计测量结果或者由图7的方法用作偏移量。换言之,图7的中心位置、平移位置和/或旋转位置可以基于在图5中计算或确定的位置差异。
图8是描绘被配置为捕获用于生成3D图像和/或视频的场景的图像的示例相机装置800的图。相机装置800包括第一相机802A、第二相机802b(各自固定到环形支撑基座(未示出))和加速度计810。如所示地,相机802A和802B设置在直接面向外的环形位置(朝向要捕获的图像/场景)并且平行于相机装置800的中心或旋转轴(A1)。
在所示的示例中,相机802A和802B以相隔一定距离(B1)布置(例如放置)在安装板808上。在一些实现方式中,相机装置800上的每个相机之间的距离(B1)可以表示平均人眼瞳距(IPD)。将相机放置在相距IPD的距离处可以近似地估计人眼在旋转以扫描由箭头804指示的捕获路径周围的场景时如何观看图像(如箭头804所示的向左或向右)。示例平均人类IPD测量结果可以是约5厘米至约6.5厘米。在一些实现方式中,以标准IPD距离分开布置的每个相机可以是立体相机对的一部分。
在一些实现方式中,相机装置800可以被配置为近似人类头部的直径。例如,相机装置800可以被设计成具有约8厘米至约10厘米的直径806。可以为装置800选择该直径806以近似人类头部将如何旋转并且用人眼相对于旋转中心A1如何观看场景图像。其他测量是可能的,并且如果例如使用更大的直径,则装置800或系统800可以调整捕获技术和所得到的图像。
如图8所示,两个相机802A、802B可以配置有宽视场。例如,相机可以捕获大约150度到大约180度的视场。相机802A、802B可以具有鱼眼透镜以捕获更宽的视野。在一些实现方式中,相机802A、802B充当立体对。在操作中,相机装置800可以围绕旋转中心A1旋转360度以捕获全景场景。替代地,相机装置800可以保持静止,并且可以将额外的相机添加到相机装置800以捕获360度场景的附加部分(如图9所示)。
如图8所示,相机装置800可以包括加速度计810。尽管未示出,但是在至少一个示例实现方式中,相机装置800可以包括多个加速度计810。加速度计可以被配置为生成基于x方向上的加速度的信号、基于y方向上的加速度的信号和/或基于z方向上的加速度的信号。换句话说,加速度计810可以被配置为生成包括与相机装置800相关联的平移信息的至少一个信号。此外,加速度计810可以被配置为基于x方向、y方向和/或z方向的组合中的加速度来生成信号。换句话说,加速度计810可以被配置为生成包括与相机装置800相关联的旋转和/或平移信息的至少一个信号。因此,相机装置800可以被配置为在相机设备800捕获图像和/或视频的同时捕获图像(例如,3D图像)和/或视频(例如球面视频)以及生成与相机装置800的运动相关联的信号。
图9是描绘了被配置为捕获在生成立体全景图中使用的场景的图像的另一示例相机装置900的图。相机装置900包括固定到环形支撑基座(未示出)的多个相机902A-902H和加速度计910。第一相机902A被示出为实线,并且附加相机902B-902H被示出为虚线以指示它们可以被包括在一些实施例中或者在一些实施例中被排除。与相机装置800(参见相机802A和802B)中所示的平行安装的相机相反,相机902A-902H与圆形相机装置900的外圆周切向地设置。
在所描绘的示例中,相机802A和802B以特定的距离(B1)布置,类似于装置800中的相机。在该示例中,相机902A和902B可以用作立体对来捕获如下面详细描述的那样分别在中央相机透镜的左侧和右侧方向的角度。
在一个示例中,相机装置900是包括可旋转基座(未示出)和安装板906的圆形装置,并且立体相机对包括:第一相机902A,其被放置在安装板906上,并且被配置为指向与安装板906的边缘相切并被设置为指向左方向的观察方向;以及第二相机902B,以与第一照相机并排的方式放置在安装板906上,并放置在距第一相机902A的瞳孔距离处,第二相机902B布置成指向与安装板906的边缘相切并且指向右方向的观看方向。类似地,可以从相机902C和902D形成立体对,从相机902E和902F形成另一对,并从902G和902H形成另一对来形成立体对。在一些实现方式中,每个相机(例如,902A)可以与不与其自身相邻但与其邻居相邻的相机配对,使得装置上的每个相机可以与装置上的另一个相机配对。在一些实现方式中,每个相机可以与其直接邻居配对。
在一些实现方式中,可以由内插模块914生成一个或多个立体对。例如,除了在相机装置900上示出的立体对之外,可以生成附加的立体对作为合成立体图像对。具体地,分析来自所捕获的图像(例如,射线追踪)的射线可以生成3D场景的模拟帧。分析可以包括通过特定的图像或图像帧从视点向后追踪光线并进入场景。如果特定的光线命中场景中的对象,那么它所通过的每个图像像素都可以用一种色彩来绘制,以匹配该对象。如果光线不命中对象,则可以使用与场景中的背景或其他特征相匹配的色彩来绘制图像像素。使用视点和射线追踪,内插模块914可以生成看起来来自模拟立体对的附加场景内容。附加内容可以包括图像效果、缺少图像内容、背景内容、视野外的内容。
如图9所示,相机902A-902H相对于相机装置900的外圆周切向(或基本上切向)设置(例如,放置),并且因此可以捕获高达180度的场景视图。也就是说,由于相机以切线的方式放置,所以在装置上的每个相机中可以捕获完全未被遮挡的180度视场。
在一些实现方式中,相机装置900包括立体相机对。例如,装置900可以包括立体相机对902A和902B。相机902A可以配置有相关联的透镜,该相关联的透镜指向观察方向,该观察方向与安装板904的边缘相切并且被布置为指向左方向。类似地,相机902B可以以相对于相机902A的并排方式设置在安装板904上,并且被放置在距相机902A近似人类的瞳孔距离处,并且布置成指向与安装座904的边缘并布置成指向右方向的观察方向。
在一些实现方式中,相机902A-H(或相机装置900)上的特定传感器可以与相机902A-H(或装置900)的外圆周相切地设置,而不是具有切向布置的实际相机902A-H。以这种方式,可以根据用户偏好来放置相机902A-H,并且传感器可以检测哪个或哪些相机902A-H可以基于装置900的位置、扫描速度或者基于照相机配置和设置来捕获图像。
在一些实现方式中,立体对可以包括以背对背或并排方式布置的相机902A和相机902E。这种布置也可以用于收集由相应的相机透镜和安装板904形成的方位角908的左侧和右侧的视角。在一些实现方式中,相机布置在分别由相机透镜和安装板904形成的方位角908的左侧和右侧的倾斜角。
在一些实现方式中,放置在相机装置900上的相机可以是非配对的并且简单地在面向外的方向上围绕圆形装置对齐。在一些实现方式中,装置900包括单个相机(例如,相机902A)。在只有相机902A被安装到装置900的情况下,通过顺时针旋转相机装置900a完整360度,然后以逆时针方向重复旋转,可以捕获立体全景图像。
如图9所示,相机装置900可以包括加速度计910。虽然未示出,但是在至少一个示例实现方式中,相机装置900可以包括多个加速度计910。加速度计910可以被配置为生成基于x方向上的加速度的信号、基于y方向上的加速度的信号和/或基于z方向上的加速度的信号。换句话说,加速度计910可以被配置为生成包括与相机装置900相关联的平移信息的至少一个信号。此外,加速度计910可以被配置为基于x方向、y方向和z方向的组合的加速度生成信号。换句话说,加速度计910可以被配置为生成包括与相机装置900相关联的旋转和/或平移信息的至少一个信号。因此,相机装置900可以被配置为在相机装置900捕获图像和/或视频时捕获图像(例如,3D图像)和/或视频(例如,球面视频)以及生成与相机装置900的运动相关联的信号。
图10是描绘被配置为捕获用于生成立体全景图的场景的图像的另一示例相机装置1000的图。相机装置1000可以安装在安装板1002上。安装板1002可以安置在可旋转基座1004上。相机装置1000包括多个并排相机(例如,相机1006-1010),其填充相机装置的安装板1002的周边区域。相机可以被放置以填充装置1000的圆周,或者替代地可以被策略性地间隔开以最大化视角并且最小化装置本身的捕获部分。
在示例实现方式中,圆形相机装置1000可以通过使用与可旋转基座1004平行的弧线运动旋转,使用设置在安装板1002上的任意数量的相机来捕获一组图像。在一些实现方式中,相机装置1000包括设置在安装板1002上的立体相机对。立体对可以被同步配置,并被定位以捕获与大约160度到大约180度相关联的视场。其他视场是可能的。在一些实现方式中,相机装置1000未安装在可旋转基座上并以静止方式起作用。
在装置操作的一个示例中,在捕获围绕特定装置的场景期间,相机装置(例如装置800、900或1000)可以在第一方向上旋转,并且随后在捕获场景期间在不同的方向上旋转。例如,在装置1000上的相机中的一个或多个(或立体对)被放置为具有在相机装置1000的基座1004的中心的相对侧偏移的观看方向1000上的同时,相机装置1000可以顺时针旋转。以类似的方式,相机装置1000随后可以逆时针方向旋转,其中任何数量的相机朝向左或向右以捕获场景的附加视图。在装置1000的一个示例取向中,每隔一个相机可以在一个方向上取向(例如,向左或向右的相机透镜角度),而之间的相机取向相反(例如,朝左或朝右)方向。
在一些实现方式中,基座1004可以是固定的。例如,装置1000上的每个相机可以是以静止模式工作的任何照相机或摄像机。因此,相机可以被同步和/或配置为同时捕获周围场景的图像帧。这些方面可以拼接在一起,形成立体全景视图。
在一些实现方式中,本公开中描述的相机装置可以包括安装在圆形外壳上的任何数量的相机。在一些实现方式中,相机可以从圆形装置的中心向外的四个方向中的每一个方向上与一对相机等距地安装。在该示例中,例如,配置为立体对的相机可以沿着圆周向外瞄准并以零度、九十度、一百八十度和二百七十度的方式布置,使得每个立体对捕获单独的360度视场的象限。通常,相机的可选择的视场确定立体对的相机的视图重叠量以及相机之间和相邻象限之间的任何盲点的大小。一个示例相机装置可以采用一个或多个立体相机对,其被配置为捕获大约120度直到大约180度的场。
在一些实现方式中,本公开中描述的相机装置可以被配置为具有模仿人眼瞳距的直径(例如,图8中的直径806),以在例如用户是以四分之一圆、半圆、全圆或圆的其他部分转动她的头部或身体的情况下捕获用户将看到的内容。在一些实现方式中,直径可以指从相机透镜到相机透镜跨过装置的距离。在一些实现方式中,直径可以指从一个相机传感器到另一个相机传感器跨过装置的距离。在一些实现方式中,直径可以简单地指跨过环形板从边缘到边缘的安装板(例如,安装板808)的尺寸。
在一些实现方式中,相机装置被放大以例如容纳附加的相机固定装置。在一些实现方式中,可以在更小直径的装置上使用更少的相机。在这样的示例中,在本公开中描述的系统可以确定或推断装置上的相机之间的视图,并将这些视图与实际捕获的视图交织。
在一些实现方式中,例如,通过使用具有旋转透镜的相机或旋转照相机,通过在单次曝光中捕获整个全景,可以使用本公开中描述的相机装置来捕获全景图像。上面描述的相机和相机装置可以与本公开中描述的方法一起使用。具体而言,关于一个相机装置描述的方法可以使用这里描述的任何其他相机装置来执行。在一些实现方式中,相机装置和随后捕获的内容可以与诸如虚拟内容、呈现的计算机图形(CG)内容和/或其他获得的或生成的图像的其他内容组合。
在一些实现方式中,相机装置1000可以包括可以适配到装置上的任何数量的相机。在一个示例实现方式中,装置1000可以包括至少三个相机,其一起运行以捕获可以用于计算深度以生成3D立体图像(例如,球面图像和/或球面视频的帧)的图像。例如,基座1004可以包括放置在相机装置1000的基座1004上的第一相机1006。第一相机1006可以被配置为指向与基座1004的边缘相切的向外观看的方向,并且被布置为在距基座1004的外边缘一定距离处捕获图像。
类似地,第二相机1008可以以与第一相机1006并排的方式放置在基座上,并且可以被配置为指向与基座1004的边缘相切的观看方向,并且被布置以在距离基座1004的外边缘一定距离处捕获图像。类似地,第三相机1010可以以与第二相机1008并排的方式,或者替代地以与第一相机并排的方式,放置在基座1004上。第三相机1010可以被配置为指向与基座1004的边缘相切的观看方向,并且被布置为在距基座1004的外部边缘一定距离处捕获图像。
通常,使用相机装置1000上的至少三个相机(例如,相机1006、1008、1010)捕获的图像可以用于计算特定场景的深度测量结果。深度测量结果可用于将场景的一部分(或来自场景的图像)转换为3D立体内容(例如,球面图像和/或球面视频的帧)。例如,内插模块914可以使用深度测量结果来生成可以拼接到360度立体视频图像(例如,球面图像和/或球面视频的帧)中的3D立体内容。
如图10所示,相机装置1000可以包括加速度计1012。虽然未示出,但是在至少一个示例实现方式中,相机装置1000可以包括多个加速度计1012。加速度计可以被配置为生成基于x方向上的加速度的信号、基于y方向上的加速度的信号和/或基于z方向上的加速度的信号。换句话说,加速度计1012可以被配置为生成包括与相机装置1000相关联的平移信息的至少一个信号。此外,加速度计1012可以被配置为基于x方向、y方向和z方向的组合的加速度生成信号。换句话说,加速度计1012可以被配置为生成包括与相机装置1000相关联的旋转和/或平移信息的至少一个信号。因此,相机装置1000可以被配置为在相机装置1000捕获图像和/或视频时捕获图像(例如,3D图像)和/或视频(例如,球面视频)以及生成与相机装置1000的运动相关联的信号。
图11示出了可以与这里描述的技术一起使用的计算机设备1100和移动计算机设备1150的示例。计算设备1100旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机以及其他适当的计算机。计算设备1150旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话以及其他类似的计算设备。这里示出的组件、它们的连接和关系以及它们的功能仅意味着示例性的,并不意味着限制这里中所描述和/或要求保护的发明的实现。
计算设备1100包括处理器1102、存储器1104、存储设备1106、连接到存储器1104和高速扩展端口1110的高速接口1108、以及连接到低速总线1114以及存储设备1106的低速接口1112。组件1102、1104、1106、1108、1110和1112中的每一个使用各种总线互连,并且可以适当地安装在共同的主板上或以其他方式安装。处理器1102可以处理用于在计算设备1100内执行的指令,包括存储在存储器1104中或存储设备1106上的指令,以在外部输入/输出设备(诸如耦合到高速接口1108的显示器1116)上显示GUI的图形信息。在其他实现方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。而且,可以连接多个计算设备1100,其中每个设备提供必要操作的一部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器1104将信息存储在计算设备1100内。在一个实现方式中,存储器1104是一个或多个易失性存储器单元。在另一个实现方式中,存储器1104是一个或多个非易失性存储器单元。存储器1104也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
存储设备1106能够为计算设备1100提供大容量存储。在一个实现方式中,存储设备1106可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备、或设备阵列,包括存储区域网络中的设备或其他配置。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含在被执行时执行诸如上面描述的那些的一个或多个方法的指令。信息载体是计算机或机器可读介质,诸如存储器1104、存储设备1106或处理器1102上的存储器。
高速控制器1108管理计算设备1100的带宽密集型操作,而低速控制器1112管理较低带宽密集型操作。这种功能分配只是示例性的。在一个实现方式中,高速控制器1108被耦合到存储器1104、显示器1116(例如,通过图形处理器或加速器)以及可以接受各种扩展卡(未示出)的高速扩展端口1110。在实现方式中,低速控制器1112被耦合到存储设备1106和低速扩展端口1114。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指向设备、扫描仪或诸如交换机或路由器的联网设备。
如图所示,计算设备1100可以以多种不同的形式来实现。例如,它可以被实现为标准服务器1120,或者在一组这样的服务器中被多次实现。它也可以作为机架服务器系统1124的一部分来实现。另外,其可以在诸如膝上型计算机1122的个人计算机中实现。替代地,来自计算设备1100的组件可以与诸如设备1150的移动设备中的其他组件(未示出)组合。这样的设备中的每一个可以包含计算设备1100、1150中的一个或多个,并且整个系统可以由彼此通信的多个计算设备1100、1150组成。
计算设备1150包括处理器1152、存储器1164、诸如显示器1154的输入/输出设备、通信接口1166和收发器1168以及其他组件。设备1150还可以提供有存储设备,诸如微型驱动或其他设备,以提供额外的存储。组件1150、1152、1164、1154、1166和1168中的每一个使用各种总线互连,并且若干组件可以安装在共同的主板上或以其他方式适当地安装。
处理器1152可以执行计算设备1150内的指令,包括存储在存储器1164中的指令。处理器可以实现为包括分离的和多个模拟和数字处理器的芯片的芯片组。处理器可以例如提供设备1150的其他组件的协调,诸如用户界面的控制、设备1150运行的应用以及设备1150的无线通信。
处理器1152可以通过耦合到显示器1154的控制接口1158和显示器接口1156与用户通信。显示器1154可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其他适当的显示技术。显示接口1156可以包括用于驱动显示器1154以向用户呈现图形和其他信息的适当电路。控制接口1158可以接收来自用户的命令并将它们转换用于提交给处理器1152。另外,外部接口1162可以提供与处理器1152的通信,以实现设备1150与其他设备的近距离通信。外部接口1162可以例如在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且还可以使用多个接口。
存储器1164将信息存储在计算设备1150内。存储器1164可以被实现为一个或多个计算机可读介质、一个或多个易失性存储器单元、或一个或多个非易失性存储器单元。扩展存储器1174也可以被提供并通过扩展接口1172连接到设备1150,扩展接口1172可以包括例如SIMM(单列直插式存储器模块)卡接口。这样的扩展存储器1174可以为设备1150提供额外的存储空间,或者还可以为设备1150存储应用或其他信息。具体而言,扩展存储器1174可以包括执行或补充上述处理的指令,并且还可以包括安全信息。因此,例如,扩展存储器1174可以提供为设备1150的安全模块,并且可以用允许安全使用设备1150的指令来编程。另外,可以经由SIMM卡提供安全应用以及附加信息,诸如以不可触发的方式在SIMM卡上放置标识信息。
存储器可以包括例如闪存和/或NVRAM存储器,如下所述。在一个实现方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含在被执行时执行诸如上面描述的那些的一个或多个方法的指令。信息载体是可以例如通过收发器1168或外部接口1162接收的计算机或机器可读介质,诸如存储器1164、扩展存储器1174或处理器1152上的存储器。
设备1150可以通过通信接口1166进行无线通信,通信接口1166在必要时可以包括数字信号处理电路。通信接口1166可以在诸如GSM语音呼叫、SMS、EMS或MMS消息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等各种模式或协议下提供通信。这样的通信可以例如通过射频收发器1168发生。另外,短距离通信可以诸如使用蓝牙、Wi-Fi或其他这样的收发器(未示出)发生。另外,GPS(全球定位系统)接收器模块1170可以向设备1150提供附加的导航和位置相关的无线数据,设备1150可以通过该设备1150上运行的应用适当地使用所述无线数据。
设备1150还可以使用音频编解码器1160可听地通信,音频编解码器1160可以从用户接收口头信息并将其转换为可用的数字信息。音频编解码器1160同样可以例如通过扬声器(例如,在设备1150的手持机中)为用户生成可听声音。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等等)并且还可以包括由在设备1150上操作的应用生成的声音。
如图所示,计算设备1150可以以多种不同的形式来实现。例如,它可以被实现为蜂窝电话1180。其也可以被实现为智能电话1182、个人数字助理或其他类似的移动设备的一部分。
在总体方面,一种方法包括:将球面视频的帧识别为关键帧;存储基于与关键帧相关联的相机的位置数据的补偿分量;以及基于关键帧和与关键帧相关联的补偿分量,在球面视频的后续帧中补偿相机的运动。
在另一总体方面,一种设备包括处理器和存储器。存储器被配置为存储指令,所述指令在由处理器执行时使设备将球面视频的帧识别为关键帧,存储基于与关键帧相关联的位置数据的存储补偿分量,并且基于关键帧和与关键帧相关联的补偿分量,在球面视频的后续帧中补偿相机的运动。
在又一个总体方面中,非临时性计算机可读介质包括存储在其上的代码段。代码段在由处理器执行时使得处理器将球面视频的帧识别为关键帧,基于与关键帧相关联的位置数据的补偿分量,并基于关键帧和与关键帧相关联的补偿分量,在球面视频的后续帧中补偿相机的运动。
实现方式可以包括以下特征中的一个或多个。例如,所述一个或多个方法可以进一步包括用所述球面视频的每个捕获的帧捕获所述相机的加速度计数据,使用所述加速度计数据来生成与所述关键帧相关联的中心位置、平移位置和旋转位置中的至少一个,以及存储与所述关键帧相关联的所述中心位置、所述平移位置和所述旋转位置中的所述至少一个,其中所述补偿分量基于所述中心位置、所述平移位置和所述旋转位置中的所述至少一个。所述一个或多个方法还可以包括将所述后续帧的一部分与所述关键帧的多个部分进行匹配,选择所述关键帧的所述多个部分中的一个以用于基于补偿分量的方向来补偿所述相机的运动,并且使用所述关键帧的所述多个部分中所选择的一个部分来补偿所述相机在所述后续帧中的运动。
例如,关键帧可以是多个关键帧中的一个,并且与关键帧关联的补偿分量还基于多个关键帧中的先前关键帧。相机运动的补偿可以由相机、被配置为流传输球面视频的服务器和被配置为呈现球面视频的设备中的一个来执行。补偿分量可以包括与关键帧相关联的中心位置和平移位置,并且补偿相机运动包括基于关键帧中心位置和关键帧平移位置对后续帧进行居中。
球面视频的后续帧可被存储为三维(3D)数据,补偿分量可包括与关键帧相关联的中心位置和平移位置,并且补偿相机运动可包括旋转基于关键帧中心位置和关键帧平移位置的3D中的后续帧。球面视频的后续帧可以被存储为二维(2D)数据,补偿分量可以包括与关键帧相关联的中心位置和平移位置,并且补偿相机运动可以包括基于关键帧中心位置和关键帧平移位置将2D的后续帧移移位,并且方法或步骤还可以包括校正边界图像损失。例如,球面视频的后续帧可以被存储为二维(2D)数据,补偿分量可以包括与关键帧相关联的中心位置和平移位置,补偿相机运动可以包括基于关键帧中心位置和关键帧平移位置移位2D的后续帧。方法或步骤还可以包括确定球面视频是否被捕获为部分球面数据,在确定球面视频被捕获为部分球面数据时,将在设备的显示区域之外运动补偿的后续帧的像素设置为默认值,在确定球面视频未被捕获为部分球面数据时,校正边界图像损失。
可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现这里描述的系统和技术的各种实现方式。这些各种实现方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现方式,所述可编程系统包括:至少一个可编程处理器,其可以是特殊的或通用的,耦合以从存储系统接收数据和指令并将数据和指令发送至存储系统;至少一个输入设备;以及至少一个输出设备。这里描述的系统和技术的各种实现方式可以被实现为和/或通常在此被称为可以组合软件和硬件方面的电路、模块、块或系统。例如,模块可以包括在处理器(例如,在硅衬底、GaAs衬底等上形成的处理器)或一些其他可编程数据处理装置上执行的功能/动作/计算机程序指令。
以上示例实施例中的一些被描述为流程图所示的处理或方法。尽管流程图将操作描述为顺序处理,但是可以并行地、并发地或同时地执行许多操作。另外,操作顺序可以重新排列。当其操作完成时,这些处理可以终止,但是也可以有不包括在图中的附加的步骤。这些处理可以对应于方法、功能、过程、子程序、子程序等。
以上通过流程图来说明其中的一些的所讨论的方法可以通过硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实现。当以软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段可以存储在诸如存储介质的机器或计算机可读介质中。处理器可以执行必要的任务。
为了描述示例实施例的目的,这里公开的具体结构和功能细节仅仅是代表性的。然而,示例实施例可以以许多替代形式来体现,并且不应该被解释为仅限于在此阐述的实施例。
应该理解的是,尽管这里可以使用术语第一、第二等来描述各种元件,但是这些元件不应该被这些术语限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离示例实施例的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如这里所使用的,术语和/或包括相关联的所列项目中的一个或多个的任何和所有组合。
将理解,当元件被称为连接或耦合到另一元件时,其可以直接连接或耦合到另一元件,或者可以存在中间元件。相反,当元件被称为直接连接或直接耦合到另一元件时,不存在中间元件。用于描述元件之间关系的其他词语应该以相似的方式解释(例如,在…之间相对于直接在…之间、相邻相对于直接相邻等)。
这里使用的术语仅用于描述特定实施例的目的,而不意图限制示例实施例。如这里所使用的,除非上下文另外清楚地指出,否则单数形式一个和该意图也包括复数形式。将进一步理解的是,当在此使用时,术语“包含”和/或“包括”指定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
还应该注意的是,在一些替代实现方式中,所指出的功能/动作可以不按照附图中指出的顺序发生。例如,取决于所涉及的功能/动作,连续示出的两个图实际上可以同时执行,或者有时可以以相反的顺序执行。
除非另外定义,否则这里使用的所有术语(包括技术和科学术语)具有与示例实施例所属领域的普通技术人员通常理解的相同的含义。应该进一步理解的是,例如在通用字典中定义的那些的术语应该被解释为具有与其在相关领域的上下文中的含义相一致的含义,并且不会被理解为理想化或过度正式的意义,除非明确如此定义。
以上示例实施例和对应的详细描述的部分是以软件或对计算机存储器内的数据位的操作的算法和符号表示来呈现的。这些描述和表示是本领域普通技术人员将其工作实质有效地传达给本领域普通技术人员的那些描述和表示。算法作为这里使用的术语,如其一般使用的那样,被认为是导致期望结果的自洽的一系列步骤。这些步骤是需要对物理量进行物理操纵的步骤。通常,但不一定,这些量采取能够被存储、转移、组合、比较和以其他方式操纵的光、电或磁信号的形式。主要出于常用的原因,有时将这些信号称为比特、值、元素、符号、字符、项、数字等被证明是方便的。
在以上说明性实施例中,对可以被实现为程序模块或功能处理的操作(例如,以流程图的形式)的动作和符号表示的引用包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等,并且可以使用现有结构元件处的现有硬件来描述和/或实现。这样的现有硬件可以包括一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路、现场可编程门阵列(FPGA)计算机等。
然而,应该记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是适用于这些量的方便的标签。除非另有特别说明,否则从讨论中显而易见的是,诸如显示的处理或计算或计算或确定等的术语是指计算机系统或类似的电子计算设备的动作和处理,其将在计算机系统的寄存器和存储器内表示为物理电子量的数据操纵和转换为在计算机系统存储器或寄存器或其他这样的信息存储、传输或显示设备内类似地表示为物理量的其他数据。
还要注意,示例实施例的软件实现方面通常被编码在某种形式的非临时性程序存储介质上,或者在某种类型的传输介质上实现。程序存储介质可以是磁的(例如,软盘或硬盘驱动器)或光的(例如,紧凑盘只读存储器或CD ROM),并且可以是只读或随机存取的。类似地,传输介质可以是双绞线、同轴电缆、光纤、或本领域已知的一些其他合适的传输介质。示例实施例不受任何给定实现方式的这些方面的限制。
最后,还应该注意的是,尽管所附权利要求阐述了这里描述的特征的特定组合,但是本公开的范围不限于此后要求保护的特定组合,而是延伸为涵盖这里描述的特征或实施例的任何组合,不管该特定组合是否已经在此所附的权利要求中具体列举。
Claims (20)
1.一种用于补偿相机运动的方法,包括:
将球面视频的帧识别为关键帧;
存储基于与所述关键帧相关联的相机的位置数据的补偿分量;
基于所述关键帧和与所述关键帧相关联的补偿分量来补偿在球面视频的后续帧中的相机的运动;以及
响应于确定所述球面视频被捕获为部分球面数据,将在显示区域之外的运动补偿的后续帧的像素设置为默认值。
2.如权利要求1所述的方法,还包括:
用所述球面视频的每个被捕获的帧来捕获所述相机的加速度计数据;
使用所述加速度计数据来生成与所述关键帧相关联的中心位置、平移位置和旋转位置中的至少一个;以及
存储与所述关键帧相关联的中心位置、平移位置和旋转位置中的所述至少一个,其中,所述补偿分量基于中心位置、平移位置和旋转位置中的所述至少一个。
3.如权利要求1至2中的一个所述的方法,还包括:
将所述后续帧的一部分与所述关键帧的多个部分进行匹配;
基于所述补偿分量的方向选择所述关键帧的所述多个部分中的一个以用于补偿所述相机的运动;以及
使用所述关键帧的所述多个部分中的所选择的一个来补偿在所述后续帧中的相机的运动。
4.如权利要求1至2中的一个所述的方法,其中:
所述关键帧是多个关键帧中的一个;并且
与所述关键帧相关联的补偿分量还基于所述多个关键帧中的先前关键帧。
5.如权利要求1至2中的一个所述的方法,其中补偿所述相机运动是由相机、被配置为流传输所述球面视频的服务器、和被配置为呈现所述球面视频的设备中的一个来执行的。
6.如权利要求1至2中的一个所述的方法,其中:
补偿分量包括与所述关键帧相关联的中心位置和平移位置;并且
补偿相机运动包括基于关键帧中心位置和关键帧平移位置使后续帧居中。
7.如权利要求1至2中的一个所述的方法,其中:
球面视频的后续帧被存储为三维3D数据;
补偿分量包括与所述关键帧相关联的中心位置和平移位置;并且
补偿相机运动包括基于关键帧中心位置和关键帧平移位置在3D中旋转后续帧。
8.如权利要求1至2中的一个所述的方法,其中:
球面视频的后续帧被存储为二维2D数据,
补偿分量包括与所述关键帧相关联的中心位置和平移位置;并且
补偿相机运动包括基于关键帧中心位置和关键帧平移位置在2D中移位后续帧,所述方法还包括:
校正边界图像损失。
9.如权利要求1至2中的一个所述的方法,其中:
球面视频的后续帧被存储为二维2D数据,
补偿分量包括与所述关键帧相关联的中心位置和平移位置,
补偿相机运动包括基于关键帧中心位置和关键帧平移位置在2D中移位后续帧;
在确定球面视频未被捕获为部分球面数据时,校正边界图像损失。
10.一种用于补偿相机运动的设备,包括:
处理器;
存储器,被配置为存储指令,所述指令在由所述处理器执行时使所述处理器:
将球面视频的帧识别为关键帧;
存储基于与所述关键帧相关联的位置数据的补偿分量;
基于所述关键帧和与所述关键帧相关联的补偿分量来补偿在球面视频的后续帧中的相机运动;以及
响应于确定所述球面视频被捕获为部分球面数据,将在所述设备的显示区域之外的运动补偿的后续帧的像素设置为默认值。
11.如权利要求10所述的设备,其中所述设备是相机、被配置为流传输所述球面视频的服务器和被配置为呈现所述球面视频的设备中的一个。
12.如权利要求10至11中的一个所述的设备,其中所述指令还使得所述处理器:
用所述球面视频的每个被捕获的帧来捕获所述相机的加速度计数据;以及
使用所述加速度计数据来生成与所述关键帧相关联的中心位置、平移位置和旋转位置中的至少一个;以及
存储与所述关键帧相关联的中心位置、平移位置和旋转位置中的所述至少一个,其中,所述补偿分量基于中心位置、平移位置和旋转位置中的所述至少一个。
13.如权利要求10至11中的一个所述的设备,其中所述指令还使得所述处理器:
将所述后续帧的一部分与所述关键帧的多个部分进行匹配;
基于所述补偿分量的方向选择所述关键帧的所述多个部分中的一个以用于补偿所述相机的运动;以及
使用所述关键帧的所述多个部分中的所选择的一个来补偿在所述后续帧中的所述相机的运动。
14.如权利要求10至11中的一个所述的设备,其中:
所述关键帧是多个关键帧中的一个,并且
与所述关键帧相关联的补偿分量还基于所述多个关键帧中的先前关键帧。
15.如权利要求10至11中的一个所述的设备,其中:
补偿分量包括与所述关键帧相关联的中心位置和平移位置,并且
补偿相机运动包括基于关键帧中心位置和关键帧平移位置使后续帧居中。
16.如权利要求10至11中的一个所述的设备,其中:
球面视频的后续帧被存储为三维3D数据,
补偿分量包括与所述关键帧相关联的中心位置和平移位置,并且
补偿相机运动包括基于关键帧中心位置和关键帧平移位置在3D中旋转后续帧。
17.如权利要求10至11中的一个所述的设备,其中:
球面视频的后续帧被存储为二维2D数据,
补偿分量包括与所述关键帧相关联的中心位置和平移位置,并且
补偿相机运动包括基于关键帧中心位置和关键帧平移位置在2D中移位后续帧,所述指令在由所述处理器执行时还使所述处理器:
校正边界图像损失。
18.如权利要求10至11中的一个所述的设备,其中:
球面视频的后续帧被存储为二维2D数据,
补偿分量包括与所述关键帧相关联的中心位置和平移位置,
补偿相机运动包括基于关键帧中心位置和关键帧平移位置在2D中移位后续帧,以及
在确定球面视频未被捕获为部分球面数据时,校正边界图像损失。
19.一种其上存储有代码段的非暂时性计算机可读介质,所述代码段在由处理器执行时使所述处理器:
将球面视频的帧识别为关键帧;
存储基于与所述关键帧相关联的位置数据的补偿分量;
基于所述关键帧和与所述关键帧相关联的补偿分量来补偿在球面视频的后续帧中的相机运动;以及
响应于确定所述球面视频未被捕获为部分球面数据,校正边界图像损失。
20.如权利要求19所述的非暂时性计算机可读介质,其中:
球面视频的后续帧被存储为二维2D数据,
补偿分量包括与所述关键帧相关联的中心位置和平移位置,
补偿相机运动包括基于关键帧中心位置和关键帧平移位置在2D中移位后续帧,
所述代码段在由处理器执行时还使所述处理器:
在确定球面视频被捕获为部分球面数据时,将在显示区域之外的运动补偿的后续帧的像素设置为默认值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562255788P | 2015-11-16 | 2015-11-16 | |
US62/255,788 | 2015-11-16 | ||
PCT/US2016/062301 WO2017087537A1 (en) | 2015-11-16 | 2016-11-16 | Stabilization based on accelerometer data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107925722A CN107925722A (zh) | 2018-04-17 |
CN107925722B true CN107925722B (zh) | 2020-05-12 |
Family
ID=57485911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680048032.6A Active CN107925722B (zh) | 2015-11-16 | 2016-11-16 | 用于补偿相机运动的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10084962B2 (zh) |
EP (1) | EP3378221B1 (zh) |
CN (1) | CN107925722B (zh) |
WO (1) | WO2017087537A1 (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017087537A1 (en) | 2015-11-16 | 2017-05-26 | Google Inc. | Stabilization based on accelerometer data |
US10440992B2 (en) * | 2015-12-07 | 2019-10-15 | Rai Strategic Holdings, Inc. | Motion sensing for an aerosol delivery device |
US10404915B1 (en) * | 2016-04-07 | 2019-09-03 | Scott Zhihao Chen | Method and system for panoramic video image stabilization |
US10432855B1 (en) * | 2016-05-20 | 2019-10-01 | Gopro, Inc. | Systems and methods for determining key frame moments to construct spherical images |
US9922398B1 (en) | 2016-06-30 | 2018-03-20 | Gopro, Inc. | Systems and methods for generating stabilized visual content using spherical visual content |
EP3622487B1 (en) * | 2017-05-18 | 2021-12-22 | Samsung Electronics Co., Ltd. | Method for providing 360-degree video and device for supporting the same |
US10848741B2 (en) * | 2017-06-12 | 2020-11-24 | Adobe Inc. | Re-cinematography for spherical video |
CN107318010B (zh) * | 2017-07-05 | 2019-10-11 | 上海小蚁科技有限公司 | 用于生成立体全景图像的方法和设备 |
US10740431B2 (en) * | 2017-11-13 | 2020-08-11 | Samsung Electronics Co., Ltd | Apparatus and method of five dimensional (5D) video stabilization with camera and gyroscope fusion |
CA3090017A1 (en) * | 2018-02-17 | 2019-08-22 | Dreamvu, Inc. | System and method for capturing omni-stereo videos using multi-sensors |
USD931355S1 (en) | 2018-02-27 | 2021-09-21 | Dreamvu, Inc. | 360 degree stereo single sensor camera |
USD943017S1 (en) | 2018-02-27 | 2022-02-08 | Dreamvu, Inc. | 360 degree stereo optics mount for a camera |
US10587807B2 (en) | 2018-05-18 | 2020-03-10 | Gopro, Inc. | Systems and methods for stabilizing videos |
US20190394484A1 (en) * | 2018-06-22 | 2019-12-26 | The Regents Of The University Of California | Method and apparatus for predictive coding of 360-degree video dominated by camera motion |
CN108683833B (zh) * | 2018-07-26 | 2024-04-05 | 百度在线网络技术(北京)有限公司 | 图像采集设备和图像采集方法 |
US10681332B1 (en) | 2018-07-27 | 2020-06-09 | Gopro, Inc. | Systems and methods for stabilizing views of videos |
CN109068133B (zh) * | 2018-09-17 | 2022-04-29 | 鲍金龙 | 视频解码方法及装置 |
US10750092B2 (en) | 2018-09-19 | 2020-08-18 | Gopro, Inc. | Systems and methods for stabilizing videos |
CN109348125B (zh) * | 2018-10-31 | 2020-02-04 | Oppo广东移动通信有限公司 | 视频校正方法、装置、电子设备和计算机可读存储介质 |
US10778895B1 (en) * | 2018-12-19 | 2020-09-15 | Gopro, Inc. | Systems and methods for stabilizing videos |
TWI700000B (zh) * | 2019-01-29 | 2020-07-21 | 威盛電子股份有限公司 | 全景影片影像穩定方法及裝置與影像穩定演算法評估方法 |
CN109788200B (zh) * | 2019-01-31 | 2021-04-06 | 长安大学 | 一种基于预测分析的摄像稳定控制方法 |
US11470254B1 (en) * | 2019-06-21 | 2022-10-11 | Gopro, Inc. | Systems and methods for assessing stabilization of videos |
US11050938B2 (en) * | 2019-07-03 | 2021-06-29 | Gopro, Inc. | Apparatus and methods for pre-processing and stabilization of captured image data |
US11336832B1 (en) * | 2019-08-30 | 2022-05-17 | Gopro, Inc. | Systems and methods for horizon leveling videos |
KR102476057B1 (ko) * | 2019-09-04 | 2022-12-09 | 주식회사 윌러스표준기술연구소 | 클라우드 가상 현실을 위한 imu 센서 데이터를 활용한 비디오 인코딩 및 디코딩 가속 방법 및 장치 |
US11423308B1 (en) * | 2019-09-20 | 2022-08-23 | Apple Inc. | Classification for image creation |
CN114390262A (zh) | 2020-10-21 | 2022-04-22 | 中强光电股份有限公司 | 用于拼接三维球面全景影像的方法及电子装置 |
US11950951B2 (en) | 2021-01-29 | 2024-04-09 | Covidien Lp | Systems and methods for C-arm fluoroscope camera pose refinement with secondary movement compensation |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308323A (zh) * | 2007-04-12 | 2008-11-19 | 三星电子株式会社 | 全景图像的拍摄方法 |
CN101316368A (zh) * | 2008-07-18 | 2008-12-03 | 西安电子科技大学 | 基于全局特征点迭代的全景稳像方法 |
CN101502099A (zh) * | 2006-05-09 | 2009-08-05 | Nxp股份有限公司 | 具有抖动提取的处理设备和包括这种设备的装备 |
CN102104732A (zh) * | 2009-12-21 | 2011-06-22 | 索尼公司 | 图像处理装置、方法以及程序 |
CN103314570A (zh) * | 2010-11-12 | 2013-09-18 | 三星电子株式会社 | 用于通过补偿相机的视向的视频稳定方法和设备 |
CN103873758A (zh) * | 2012-12-17 | 2014-06-18 | 北京三星通信技术研究有限公司 | 全景图实时生成的方法、装置及设备 |
CN104333675A (zh) * | 2014-10-20 | 2015-02-04 | 长春理工大学 | 一种基于球面投影的全景电子稳像方法 |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3052250B2 (ja) | 1990-01-05 | 2000-06-12 | キヤノン株式会社 | 画像ぶれ補正装置 |
DE69434657T2 (de) | 1993-06-04 | 2007-02-15 | Sarnoff Corp. | System und Verfahren zur elektronischen Bildstabilisierung |
US6459822B1 (en) | 1998-08-26 | 2002-10-01 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Video image stabilization and registration |
US6788333B1 (en) | 2000-07-07 | 2004-09-07 | Microsoft Corporation | Panoramic video |
US7254279B2 (en) | 2003-10-17 | 2007-08-07 | Hewlett-Packard Development Company, L.P. | Method for image stabilization by adaptive filtering |
DE102004017730B4 (de) * | 2004-04-10 | 2006-05-24 | Christian-Albrechts-Universität Zu Kiel | Verfahren zur Rotationskompensation sphärischer Bilder |
US8442108B2 (en) | 2004-07-12 | 2013-05-14 | Microsoft Corporation | Adaptive updates in motion-compensated temporal filtering |
US7558405B2 (en) | 2005-06-30 | 2009-07-07 | Nokia Corporation | Motion filtering for video stabilization |
US7840085B2 (en) * | 2006-04-06 | 2010-11-23 | Qualcomm Incorporated | Electronic video image stabilization |
FR2903200B1 (fr) | 2006-06-29 | 2008-12-19 | Thales Sa | Stabilisation hybride d'images pour camera video |
WO2008012822A2 (en) * | 2006-07-26 | 2008-01-31 | Human Monitoring Ltd | Image stabilizer |
CN101231456B (zh) * | 2008-01-31 | 2010-11-24 | 北京航空航天大学 | 利用角度传感器纠正全景视频抖动的方法 |
US8102428B2 (en) * | 2008-08-28 | 2012-01-24 | Adobe Systems Incorporated | Content-aware video stabilization |
US8638395B2 (en) | 2009-06-05 | 2014-01-28 | Cisco Technology, Inc. | Consolidating prior temporally-matched frames in 3D-based video denoising |
US8487981B2 (en) | 2009-09-04 | 2013-07-16 | Broadcom Corporation | Method and system for processing 2D/3D video |
US8179446B2 (en) * | 2010-01-18 | 2012-05-15 | Texas Instruments Incorporated | Video stabilization and reduction of rolling shutter distortion |
US8531504B2 (en) | 2010-06-11 | 2013-09-10 | Intel Corporation | System and method for 3D video stabilization by fusing orientation sensor readings and image alignment estimates |
US8872928B2 (en) | 2010-09-14 | 2014-10-28 | Adobe Systems Incorporated | Methods and apparatus for subspace video stabilization |
US8531535B2 (en) | 2010-10-28 | 2013-09-10 | Google Inc. | Methods and systems for processing a video for stabilization and retargeting |
US20120113235A1 (en) | 2010-11-08 | 2012-05-10 | Sony Corporation | 3d glasses, systems, and methods for optimized viewing of 3d video content |
WO2012064106A2 (en) * | 2010-11-12 | 2012-05-18 | Samsung Electronics Co., Ltd. | Method and apparatus for video stabilization by compensating for view direction of camera |
US8698874B2 (en) | 2011-06-10 | 2014-04-15 | Microsoft Corporation | Techniques for multiple video source stitching in a conference room |
US8385732B2 (en) | 2011-07-29 | 2013-02-26 | Hewlett-Packard Development Company, L.P. | Image stabilization |
US8896713B2 (en) | 2011-08-15 | 2014-11-25 | Apple Inc. | Motion-based video stabilization |
GB201116566D0 (en) | 2011-09-26 | 2011-11-09 | Skype Ltd | Video stabilisation |
US8760513B2 (en) | 2011-09-30 | 2014-06-24 | Siemens Industry, Inc. | Methods and system for stabilizing live video in the presence of long-term image drift |
GB2497507B (en) | 2011-10-14 | 2014-10-22 | Skype | Received video stabilisation |
US8810666B2 (en) | 2012-01-16 | 2014-08-19 | Google Inc. | Methods and systems for processing a video for stabilization using dynamic crop |
US9300873B2 (en) * | 2012-06-22 | 2016-03-29 | Apple Inc. | Automated tripod detection and handling in video stabilization |
US8913141B2 (en) | 2012-06-28 | 2014-12-16 | Gopro, Inc. | Edge-based electronic image stabilization |
US9071756B2 (en) | 2012-12-11 | 2015-06-30 | Facebook, Inc. | Systems and methods for digital video stabilization via constraint-based rotation smoothing |
US9712818B2 (en) | 2013-01-11 | 2017-07-18 | Sony Corporation | Method for stabilizing a first sequence of digital image frames and image stabilization unit |
US9131127B2 (en) * | 2013-02-08 | 2015-09-08 | Ati Technologies, Ulc | Method and apparatus for reconstructing motion compensated video frames |
JP5997645B2 (ja) * | 2013-03-26 | 2016-09-28 | キヤノン株式会社 | 画像処理装置及び方法、及び撮像装置 |
CN104519239A (zh) * | 2013-09-29 | 2015-04-15 | 诺基亚公司 | 用于视频防抖的方法和装置 |
US9754159B2 (en) * | 2014-03-04 | 2017-09-05 | Gopro, Inc. | Automatic generation of video from spherical content using location-based metadata |
WO2017087537A1 (en) | 2015-11-16 | 2017-05-26 | Google Inc. | Stabilization based on accelerometer data |
-
2016
- 2016-11-16 WO PCT/US2016/062301 patent/WO2017087537A1/en unknown
- 2016-11-16 CN CN201680048032.6A patent/CN107925722B/zh active Active
- 2016-11-16 EP EP16806369.1A patent/EP3378221B1/en active Active
- 2016-11-16 US US15/353,488 patent/US10084962B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101502099A (zh) * | 2006-05-09 | 2009-08-05 | Nxp股份有限公司 | 具有抖动提取的处理设备和包括这种设备的装备 |
CN101308323A (zh) * | 2007-04-12 | 2008-11-19 | 三星电子株式会社 | 全景图像的拍摄方法 |
CN101316368A (zh) * | 2008-07-18 | 2008-12-03 | 西安电子科技大学 | 基于全局特征点迭代的全景稳像方法 |
CN102104732A (zh) * | 2009-12-21 | 2011-06-22 | 索尼公司 | 图像处理装置、方法以及程序 |
CN103314570A (zh) * | 2010-11-12 | 2013-09-18 | 三星电子株式会社 | 用于通过补偿相机的视向的视频稳定方法和设备 |
CN103873758A (zh) * | 2012-12-17 | 2014-06-18 | 北京三星通信技术研究有限公司 | 全景图实时生成的方法、装置及设备 |
CN104333675A (zh) * | 2014-10-20 | 2015-02-04 | 长春理工大学 | 一种基于球面投影的全景电子稳像方法 |
Also Published As
Publication number | Publication date |
---|---|
US10084962B2 (en) | 2018-09-25 |
US20170142337A1 (en) | 2017-05-18 |
EP3378221B1 (en) | 2022-01-12 |
EP3378221A1 (en) | 2018-09-26 |
CN107925722A (zh) | 2018-04-17 |
WO2017087537A1 (en) | 2017-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107925722B (zh) | 用于补偿相机运动的方法和设备 | |
US10375381B2 (en) | Omnistereo capture and render of panoramic virtual reality content | |
US10038887B2 (en) | Capture and render of panoramic virtual reality content | |
KR101991080B1 (ko) | 파노라마 가상 현실 콘텐츠의 옴니스테레오 캡쳐 및 렌더링 | |
US20170363949A1 (en) | Multi-tier camera rig for stereoscopic image capture | |
CN107637060B (zh) | 相机装备和立体图像捕获 | |
CN107646126B (zh) | 用于移动设备的相机姿态估计 | |
US9041743B2 (en) | System and method for presenting virtual and augmented reality scenes to a user | |
US9070219B2 (en) | System and method for presenting virtual and augmented reality scenes to a user | |
GB2555908A (en) | Multi-tier camera rig for stereoscopic image capture | |
US20190199992A1 (en) | Information processing apparatus, method for controlling the same, and recording medium | |
CN116309881A (zh) | 一种云台相机外参测算方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |