CN113382161B - 提供移动设备的改进的视频稳定性的方法、系统和介质 - Google Patents

提供移动设备的改进的视频稳定性的方法、系统和介质 Download PDF

Info

Publication number
CN113382161B
CN113382161B CN202110451819.XA CN202110451819A CN113382161B CN 113382161 B CN113382161 B CN 113382161B CN 202110451819 A CN202110451819 A CN 202110451819A CN 113382161 B CN113382161 B CN 113382161B
Authority
CN
China
Prior art keywords
orientation
camera
input frame
computing device
camera orientation
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
Application number
CN202110451819.XA
Other languages
English (en)
Other versions
CN113382161A (zh
Inventor
梁家恺
屠雪
朱伦成
魏佳宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202110451819.XA priority Critical patent/CN113382161B/zh
Publication of CN113382161A publication Critical patent/CN113382161A/zh
Application granted granted Critical
Publication of CN113382161B publication Critical patent/CN113382161B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6815Motion detection by distinguishing pan or tilt from motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6812Motion detection based on additional sensors, e.g. acceleration sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/689Motion occurring during a rolling shutter mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Studio Devices (AREA)

Abstract

公开了提供移动设备的改进的视频稳定性的方法、系统和介质。所公开技术包括用于在移动设备上提供改进的视频稳定性的技术。使用所述移动设备的陀螺仪数据,可以随时间估计所述移动设备的物理相机定向。使用所述物理相机定向和历史数据,可以使用非线性滤波器对表示已去除不期望旋转移动的相机定向的对应虚拟相机定向进行建模,以提供真实图像到稳定虚拟图像的映射。可以修改所述虚拟相机定向以防止未定义像素出现在输出图像中。

Description

提供移动设备的改进的视频稳定性的方法、系统和介质
本申请是分案申请,原案的申请号是201780041564.1,申请日是2017年9月18日,发明名称是“提供移动设备的改进的视频稳定性的方法、系统和介质”。
相关申请的交叉引用
本PCT国际申请要求2016年9月19日提交的No.15/269,447号美国非临时专利申请的优先权和权益。上述申请的全部内容特此通过引用合并与此,如同在此完全阐述一样。
技术领域
本公开大体涉及提供移动设备的改进的视频稳定性的方法、系统和介质。
背景技术
诸如智能电话的手持式移动设备通常包括使用户能够记录数字视频的摄像机。然而,记录在手持式移动设备上的数字视频经常包括由于用户在记录期间摇晃或不稳定的手移动而导致的不期望的运动。由于数码相机使用滚动快门传感器,因此可能出现其它失真,例如,摆动和倾斜。可能由称为聚焦呼吸的现象引起其它失真,其涉及当改变镜头的对焦距离时发生的焦距变化,从而导致图像边界意外地偏移。
各种视频稳定技术试图校正这些问题中的一些问题,但是已知技术受到各种限制。例如,试图从视频输入估计相机运动的基于图像的分析并不总是可靠,因为视频帧中的噪声、模糊以及主要对象的存在可能导致相机运动的不可靠估计。一些解决方案对电影摄影机起作用或可以在后期制作时执行,但是由于这些设备的固有有限的计算资源,这些解决方案并不适用于移动设备上的实时操作。许多移动设备解决方案也无法在预览和视频中实现一致效果,从而导致最终的视频合成看起来与用户在记录时可以看到的不同。例如,一些移动设备视频稳定技术使用高斯滤波器来模拟相机的运动,这样不会产生高质量的结果。
因此,需要提供一种视频稳定技术,所述视频稳定技术可以更精确地模拟相机的运动以消除不期望的移动、滚动快门失真、未限定的黑色边界以及从视频的聚焦呼吸,以在移动设备上产生高质量视频,使得移动设备的预览视图和对应视频流实时稳定。
发明内容
为了克服现有技术中存在的缺陷,本公开的一个示例方面涉及一种方法,所述方法可以包括:通过计算设备接收表示与相机相关联的第一输入帧的第一陀螺仪数据和第一图像数据;通过所述计算设备接收表示与所述相机相关联的第二输入帧的第二陀螺仪数据和第二图像数据;通过所述计算设备基于所述第一陀螺仪数据,确定第一物理相机定向估计,所述第一物理相机定向估计与所述第一输入帧相关联;通过所述计算设备基于所述第二陀螺仪数据,确定第二物理相机定向估计,所述第二物理相机定向估计与所述第二输入帧相关联;通过所述计算设备基于所述第二物理相机定向估计,确定与所述第二输入帧相关联的校正相机定向,其中与所述第二输入帧相关联的所述校正相机定向表示被调整以去除不期望的相机移动的相机定向;以及基于与所述第二输入帧相关联的所述校正相机定向,通过所述计算设备生成输出帧。
本公开的另一示例方面涉及一种系统,包括:一个或多个处理器;存储器,所述存储器耦合到所述一个或多个处理器并且存储指令,所述指令在由所述一个或多个处理器执行时使所述系统执行一种方法,所述方法可以包括:通过计算设备接收表示与相机相关联的第一输入帧的第一陀螺仪数据和第一图像数据;通过所述计算设备接收表示与所述相机相关联的第二输入帧的第二陀螺仪数据和第二图像数据;通过所述计算设备基于所述第一陀螺仪数据,确定第一物理相机定向估计,所述第一物理相机定向估计与所述第一输入帧相关联;通过所述计算设备基于所述第二陀螺仪数据,确定第二物理相机定向估计,所述第二物理相机定向估计与所述第二输入帧相关联;通过所述计算设备基于所述第二物理相机定向估计,确定与所述第二输入帧相关联的校正相机定向,其中与所述第二输入帧相关联的所述校正相机定向表示被调整以去除不期望的相机移动的相机定向;以及基于与所述第二输入帧相关联的所述校正相机定向,通过所述计算设备生成输出帧。
本公开的又一示例方面涉及一种存储指令的非暂时性计算机可读介质,所述指令在由至少一个处理器执行时使所述至少一个处理器执行一种方法,所述方法可以包括:通过计算设备接收表示与相机相关联的第一输入帧的第一陀螺仪数据和第一图像数据;通过所述计算设备接收表示与所述相机相关联的第二输入帧的第二陀螺仪数据和第二图像数据;通过所述计算设备基于所述第一陀螺仪数据,确定第一物理相机定向估计,所述第一物理相机定向估计与所述第一输入帧相关联;通过所述计算设备基于所述第二陀螺仪数据,确定第二物理相机定向估计,所述第二物理相机定向估计与所述第二输入帧相关联;通过所述计算设备基于所述第二物理相机定向估计,确定与所述第二输入帧相关联的校正相机定向,其中与所述第二输入帧相关联的所述校正相机定向表示进行调整以去除不期望的相机移动的相机定向;以及基于与所述第二输入帧相关联的所述校正相机定向,通过所述计算设备生成输出帧。
附图说明
现将参考附图和流程图,其未必按比例绘制,并且其中:
图1描绘根据示例实施方案的说明性计算设备架构的框图。
图2是根据示例实施方案的一系列真实相机定向以及其相关联虚拟相机定向的俯视图。
图3是根据示例实施方案的方法的流程图。
图4图示根据示例实施方案的使用稳定网格从物理相机图像到虚拟相机图像的变换。
图5是根据示例实施方案的逆稳定网格的示例。
图6是根据示例实施方案的方法的流程图。
图7是根据示例实施方案的方法的流程图。
图8图示根据示例实施方案的从虚拟到真实变换产生的突出。
图9是根据示例实施方案的将实际相机运动与在用户静止时拍摄的手持视频的稳定相机运动相比较的结果的图表。
图10是根据示例实施方案的将实际相机运动与在用户平移时拍摄的手持视频的稳定相机运动相比较的结果的图表。
图11是根据示例实施方案的针对图10的稳定视频计算的平移概率的图表。
图12是根据示例实施方案的将实际相机运动与在用户步行和平移时拍摄的手持视频的稳定相机运动相比较的结果的图表。
图13是根据示例实施方案的针对图12的稳定视频计算的平移概率的图表。
图14是根据示例实施方案的将实际相机运动与在用户奔跑时拍摄的手持视频的稳定相机运动相比较的结果的图表。
具体实施方式
所公开技术的实施方案包括用于在移动设备上提供改进的视频稳定性的系统和方法。根据一些实施方案,可以通过将与移动设备相关联的图像捕获设备的陀螺仪数据和焦距传感器数据与用户的手运动和视频中的移动相关,以在随时间记录视频时估计实际(即,真实或物理)相机定向来实现改进的视频稳定性。根据所公开技术实施的系统可以不断地模拟虚拟(即,校正或稳定)相机定向,所述虚拟相机定向表示不存在不期望运动,例如抖动的手运动时相机的位置。在确定真实相机定向和虚拟相机定向之后,栅格或稳定网格可以用于将与真实相机定向相关联的输入帧的像素变换成与虚拟相机定向相关联的输出帧,使得视频可以跨越一系列帧稳定。通过考虑相机的焦距变化,所公开技术的实施也可以有效地消除聚集呼吸的影响。
根据一些实施方案,改进的视频稳定方法的目标是在帧之间保持相同的虚拟相机定向,除了确定相机正平移时或剪裁区域趋于超出边界时的情况之外。此方法可以被称为“恒定姿势(constant pose)”滤波器。因此,根据一些实施方案,如果系统确定未发生平移,则本文所描述的系统和方法寻求将虚拟相机定向固定在恒定位置,或如果系统确定正发生平移,则系统估计平移并且基于平移的估计确定虚拟相机定向。
在一些实施方案中,虚拟相机定向的建模可以通过将物理相机定向与关于先前相机定向的历史数据相比较并且确定相机是否在平移来实现。系统可以模拟物理相机的移动并且可以使用非线性滤波器,例如域变换来使物理相机的投影运动路径平滑。随后可以基于真实相机的平滑运动、先前虚拟相机定向以及由系统确定的平移概率来确定虚拟相机定向。系统和方法可以使用多级滤波,所述多级滤波按顺序修改用于确定虚拟相机定向的相机运动的估计。
本文所描述的系统和方法还可以包括防止黑色边界由于未定义像素包括在真实图像与虚拟图像之间的变换中而出现在输出图像中的功能。这可以通过提出初始虚拟相机定向,以及随后相对于从真实图像到虚拟图像的变换对其进行测试,以确定所得虚拟图像是否包括任何未定义像素来实现。如果是,则方法可以包括通过将所提出的虚拟相机定向与对应真实相机定向混合来调整所提出的虚拟相机定向,以使新的最终虚拟相机定向更类似于对应真实相机定向,以便消除未定义像素。使用本文所描述的系统和方法,可以在移动设备上实时生成不受抖动影响的具有平滑运动路径的稳定视频、黑色边界和聚焦呼吸,使得视频的预览视图与最终视频记录匹配。
在整个本公开中,关于确定与视频的帧相关联的真实和虚拟相机定向借助于示例描述某些实施方案。然而,应理解,许多移动设备包括使用滚动快门的数码相机,所述滚动快门在连续的扫描线中捕获图像。因此,应理解,视频的每个帧可以具有多个扫描线,并且每个扫描线可以具有相关联的真实和虚拟相机定向,因为每个扫描线可以在略微不同的时间点处获得。
下文将参考附图更全面地描述所公开技术的一些实施方案。然而,此所公开技术可以采用多种不同形式实施并且不应被解释为限于本文所阐述的实施方案。
在以下描述中,阐述了许多具体细节。然而,应理解,可以在没有这些具体细节的情况下实践所公开技术的实施方案。在其它例子中,不详细示出众所周知的方法、结构和技术,以免混淆对此描述的理解。对“一个实施方案”、“实施方案”、“示例实施方案”、“一些实施方案”、“某些实施方案”、“各种实施方案”等的参考指示如此描述的所公开技术的实施方案可以包括特定特性、结构或特征,但不是每个实施方案都必须包括特定特性、结构或特征。此外,“在一个实施方案中”的重复使用未必指代相同实施方案,尽管其可以指代相同实施方案。
在整个说明书和权利要求书中,除非上下文另外明确指示,否则以下术语至少采用本文明确相关的含义。术语“或”意指包含性“或”。此外,除非另外指明或从上下文清楚地指向单数形式,否则术语“一(a/an)”和“所述”旨在表示一个或多个。
除非另外指明,否则用于描述共同对象的序数形容词“第一”、“第二”、“第三”等的使用仅表示提及类似对象的不同情况,但不表示这样描述的对象必须以特定时间、空间、等级或任何其它方式的顺序。
在一些情况下,计算设备可以被称为移动设备、移动计算设备、移动台(MS)、终端、蜂窝电话、蜂窝手机、个人数字助理(PDA)、智能手机、无线电话、组织器、手持式计算机、台式计算机、膝上型计算机、平板计算机、机顶盒、电视机、家用电器、游戏设备、医疗设备、显示设备,或一些其它类似术语。在其它情况下,计算设备可以是处理器、控制器或中央处理单元(CPU)。在又其它情况下,计算设备可以是一组硬件组件。
如本文所论述的存在敏感输入设备可以是通过手指、触笔或设备附近的对象的接近度来接受输入的设备。存在敏感输入设备还可以是无线电接收器(例如,Wi-Fi接收器)和处理器,所述处理器能够通过信号强度、信号频率偏移、信噪比、数据错误率和信号特征的其它变化的测量来推断接近度变化。存在敏感输入设备还可以检测电场、磁场或重力场的变化。
存在敏感输入设备可以与显示器组合以提供存在敏感的显示器。例如,用户可以通过使用手指触摸存在敏感显示器的表面来将输入提供到计算设备。在另一示例实施方案中,用户可以在无需物理地触摸任何对象的情况下通过手势来将输入提供到计算设备。例如,手势可以通过视频相机或深度相机接收。
在一些情况下,存在敏感显示器可以具有两个主要属性。首先,所述存在敏感显示器可以使用户能够直接与显示的内容交互,而不是通过由鼠标或触摸板控制的指针间接交互。其次,所述存在敏感显示器可以在不需要将需要固持在手中的任何中间设备的情况下允许用户进行交互。此类显示器可以附接到计算机或网络作为终端。此类显示器还可以在例如,PDA、卫星导航设备、移动电话和视频游戏的数码家电的设置中起到显著作用。此外,此类显示器可以包括捕获设备和显示器。
本文描述的各个方面可以使用标准编程或工程技术实施,以产生软件、固件、硬件或其任何组合来控制计算设备实施所公开的主题。计算机可读介质可以包括,例如:磁性存储设备,例如,硬盘、软盘或磁带;光学存储设备,例如,光盘(CD)或数字通用光盘(DVD);智能卡;以及闪存存储器设备,例如,卡、棒或密钥驱动,或嵌入式组件。另外,应理解,载波可以用于携载计算机可读电子数据,包括用于传输和接收电子数据,例如电子邮件(e-mail),或访问计算机网络,例如因特网或局域网(LAN)的那些计算机可读电子数据。当然,本领域一般技术人员将认识到,在不脱离所要求的主题的范围或精神的情况下可以对此配置进行多种修改。
公开用于提供改进的视频稳定性的各种系统、方法和计算机可读介质,并且现将参考附图对其进行描述。
图1描绘根据示例实施方案的说明性计算设备架构100的框图。图1的某些方面可以在计算设备,例如,移动计算设备或智能电话中实施。根据需要,所公开技术的实施方案可以包括具有比图1中所图示的组件多或少的组件的计算设备。应理解,计算设备架构100仅出于示例目的提供,并且不限制本公开系统、方法和计算机可读介质的各种实施方案的范围。
图1的计算设备架构100包括CPU 102,其中处理计算机指令;显示器接口104,其用作通信接口并且提供用于将视频、图形、图像和文本呈现在显示器上的功能。在所公开技术的某些实施方案中,显示器接口104可以直接连接到本地显示器,例如,与移动计算设备相关联的触摸屏显示器。在另一示例实施方案中,显示接口104可以配置用于为外部/远程显示器提供数据、图像和其它信息,所述外部/远程显示器未必物理连接到移动计算设备。例如,桌面监视器可以用于反射呈现在移动计算设备上的图形和其它信息。在一些实施方案中,显示器接口104可以例如,通过Wi-Fi信道或其它可用网络连接接口112与外部/远程显示器无线地通信。
在示例实施方案中,网络连接接口112可以被配置为通信接口,并且可以提供用于将视频、图形、图像、文本、其它信息,或其任何组合呈现在显示器上的功能。在一个示例中,通信接口可以包括串行端口、并行端口、通用输入和输出(GPIO)端口、游戏端口、通用串行总线(USB)、微USB端口、高清多媒体(HDMI)端口、视频端口、音频端口、蓝牙端口、近场通信(NFC)端口,另一类似通信端口,或其任何组合。
计算设备架构100可以包括键盘接口106,所述键盘接口将通信接口提供到键盘。在一个示例实施方案中,计算设备架构100可以包括用于连接到存在敏感显示器的存在敏感显示器接口107。根据所公开技术的一些实施方案,存在敏感显示器接口107可以将通信接口提供到可以或可以不与显示器相关联的各个设备,例如,指向设备、触摸屏、深度相机等。
计算设备架构100可以被配置成通过输入/输出接口(例如,键盘接口106、显示器接口104、存在敏感显示器接口107、网络连接接口112、相机接口114、声音接口116等)中的一个或多个使用输入设备来允许用户将信息捕获到计算设备架构100中。输入设备可以包括鼠标、轨迹球、方向键、跟踪板、触摸验证的跟踪板、存在敏感跟踪板、存在敏感显示器、滚轮、数码相机、数字视频相机、网络相机、麦克风、传感器,或智能卡等。另外,输入设备可以与计算设备架构100集成或可以是单独设备。例如,输入设备可以是加速度计、磁力计、数码相机、麦克风和光学传感器。
计算设备架构100的示例实施方案可以包括天线接口110,其将通信接口提供到天线;网络连接接口112,其将通信接口提供到网络。在某些实施方案中,提供相机接口114,所述相机接口用作通信接口并且提供用于从图像捕获设备160,例如相机捕获数字图像和视频的功能。在某些实施方案中,声音接口116提供为通信接口,用于使用麦克风将声音转换成电信号以及用于使用扬声器将电信号转换成声音。根据示例实施方案,提供随机存取存储器(RAM)118,其中计算机指令和数据可以存储在易失性存储器设备中,用于供CPU 102处理。
计算设备架构100的示例实施方案可以包括将通信接口提供到各种传感器以进行数据收集的各种接口。在某些实施方案中,环境光传感器接口140提供为通信接口并且提供用于从环境光传感器捕获光数据的功能。在某些实施方案中,温度计接口142提供为通信接口并且提供用于从温度传感器捕获温度数据的功能。在某些实施方案中,加速度计接口144提供为通信接口并且提供用于从加速度计获得加速度计数据的功能。在某些实施方案中,陀螺仪接口146提供为通信接口并且提供用于从陀螺仪获得陀螺仪数据的功能。在某些实施方案中,GPS位置接口148提供为通信接口并且提供用于从GPS接收器获得位置数据的功能。在某些实施方案中,大气压力接口152提供为通信接口并且提供用于从压力传感器获得压力数据的功能。在某些实施方案中,焦距接口154提供为通信接口并且提供用于从焦距传感器获得相机的焦距数据的功能。
根据示例实施方案,计算设备架构100包括只读存储器(ROM)120,其中用于基本系统功能,例如,基本输入和输出(I/O)、启动,或键击从键盘的接收的不变低级系统代码或数据存储在非易失性存储器设备中。根据示例实施方案,计算设备架构100包括存储介质122或其它合适类型的存储器(例如,RAM、ROM、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁盘、光盘、软盘、硬盘、可拆卸盒式磁带、快闪驱动器),其中文件包括操作系统124、应用程序126(必要时包括例如,网络浏览器应用程序、小部件或小工具引擎和或其它应用程序)并且存储数据文件128。根据示例实施方案,计算设备架构100包括将适当的交流电(AC)或直流电(DC)提供到功率组件的电源130。根据示例实施方案,计算设备架构100包括允许通过电话网络传输和接收声音的电话子系统132。组成设备和CPU 102通过总线134彼此通信。
根据示例实施方案,CPU 102具有作为计算机处理器的适当结构。在一个布置中,CPU 102可以包括多于一个处理单元。RAM 118与计算机总线134介接,以在执行例如操作系统应用程序和设备驱动器的软件程序期间向CPU 102提供快速RAM存储。更具体来说,CPU102将计算机可执行处理步骤从存储介质122或其它介质加载到RAM 118的字段中,以便执行软件程序。数据可以存储在RAM 118中,其中数据在执行期间可以由计算机CPU 102访问。在一个示例配置中,设备架构100包括至少125MB RAM以及256MB快闪存储器。
存储介质122本身可以包括多个物理驱动单元,例如,独立磁盘冗余阵列(RAID)、软盘驱动器、快闪存储器、USB快闪驱动器、外部硬盘驱动器、拇指驱动器、随身驱动器、密钥驱动、高密度数字多用途盘(HD-DVD)光盘驱动器、内部硬盘驱动器、蓝光光盘驱动器,或全息数字数据存储(HDDS)光盘驱动器、外部迷你双列直插式存储器模块(DIMM)同步动态随机存取存储器(SDRAM),或外部微型DIMM SDRAM。此计算机可读存储介质允许计算设备访问存储在可拆卸和不可拆卸存储器介质上的计算机可执行处理步骤、应用程序等,以从设备卸载数据或将数据上传到设备上。计算机程序产品,例如,利用通信系统的计算机程序产品可以有形地实施于存储介质122中,所述存储介质可以包括机器可读存储介质。
根据一个示例实施方案,本文所使用的术语“计算设备”可以是CPU,或概念化为CPU(例如,图1的CPU 102)。在此示例实施方案中,计算设备可以与一个或多个外围设备,例如显示器耦合、连接和/或通信。在另一示例实施方案中,本文所使用的术语“计算设备”可以指移动计算设备,例如,智能电话或平板计算机。在此示例实施方案中,计算设备可以将内容输出到其本地显示器和/或扬声器。在另一示例实施方案中,计算设备可以将内容输出到外部显示设备(例如,通过Wi-Fi),例如,TV或外部计算系统。
在所公开技术的一些实施方案中,计算设备可以包括被执行以促进任何操作的任何数目的硬件和/或软件应用程序。在一些实施方案中,一个或多个I/O接口可以促进计算设备与一个或多个输入/输出设备之间的通信。例如,通用串行总线端口、串行端口、磁盘驱动器、CD-ROM驱动器,和/或一个或多个用户接口设备,例如,显示器、键盘、小键盘、鼠标、控制面板、触摸屏显示器、麦克风等可以促进与计算设备的用户交互。一个或多个I/O接口可以用于从各种各样的输入设备接收或收集数据和/或用户指令。所接收数据可以按需要由所公开技术的各种实施方案中的一个或多个计算机处理器处理和/或存储在一个或多个存储器设备中。
一个或多个网络接口可以促进计算设备输入和输出到一个或多个合适网络和/或连接的连接;例如,促进与同系统相关联的任何数目个传感器的通信的连接。一个或多个网络接口可以进一步促进到一个或多个合适网络的连接;例如,用于与外部设备和/或系统通信的局域网、广域网、因特网、蜂窝网络、射频网络、支持蓝牙的网络、支持Wi-Fi的网络、基于卫星的网络、任何有线网络、任何无线网络等。
如本文所描述,所公开技术的实施方案包括用于在移动设备上提供改进的视频稳定性的技术,其可以包括关于视频的每个帧确定相机的物理相机定向(其可以被可互换地称为真实相机定向或真实姿势)的估计。物理相机定向可以表示在拍摄视频帧时相机的实际位置。所公开技术的实施方案可以进一步包括对与每个物理相机定向对应的连续虚拟相机定向进行建模。虚拟相机定向可以表示当通过系统去除不期望的动作时相机的理论位置。此概念在图2中图示,图2示出第一真实相机定向202a、第二真实相机定向202b、第三真实相机定向202c、第四真实相机定向202d和对应虚拟相机定向204a-204d的俯视图。相机定向可以指相机的位置,其可以包括相机的偏航、俯仰、滚动和焦距。根据一些实施方案,移动设备可以包括陀螺仪,所述陀螺仪可以在连续时间点处重复地提供指示移动设备的偏航、俯仰和滚动的传感器数据。根据一些实施方案,移动设备可以包括焦距传感器,所述焦距传感器可以提供指示相机的焦距的数据。
根据一些实施方案,每个真实和虚拟相机定向可以对应于视频的唯一时间戳。在一些实施例中,每个真实和虚拟相机定向可以与特定视频帧或视频帧的扫描线相关联。在一些实施方案中,系统可以将第一真实相机定向202a用作起始点或初始参考点,并且系统可以指定第一虚拟相机定向204a具有与第一真实相机定向202a相同或基本上相同的位置。如在图2中的示例中所示,在视频随时间前进时,真实相机定向可以顺时针旋转以到达第二真实相机定向202b,随后逆时针旋转以到达第三真实相机定向202c,并且随后顺时针旋转以到达第四真实相机定向202d。如图2中所示,根据用于在本文所描述的移动设备上提供改进的视频稳定性的方法的一些实施方案,系统可以创建对应于每个真实相机定向202a-d的虚拟相机定向204a-d。每个虚拟相机定向204a-d可以表示在调整真实相机定向202a-d以去除不期望的旋转移动之后对应真实相机定向202a-d的相机位置,从而提供相机的稳定路径。如图2中所示,当真实相机定向202a-d来回摆动时,虚拟相机定向202a-d提供没有不期望旋转的稳定位置。根据一些实施方案,在针对视频的特定帧或扫描线确定虚拟相机定向之后,可以修改来自帧或扫描线的图像以反映在相机位于虚拟相机定向,而不是真实相机定向的情况下将拍摄的内容的估计。以此方式,系统可以调整每个帧并且提供稳定视频。
图3是根据所公开技术的示例实施方案的方法300的流程图。如所示,方法300开始于计算设备接收302相机定向数据和图像数据。根据一些实施方案,相机定向数据可以包括来自移动设备的陀螺仪数据,所述陀螺仪数据可以指示移动设备的偏航、俯仰和滚动。在一些实施方案中,相机定向数据还可以包括来自移动设备的焦距传感器数据,所述焦距传感器数据可以指示移动设备的相机的焦距。在一些实施方案中,相机定向数据可以对应于数字视频的一个或多个帧和/或帧的一个或多个扫描线。根据一些实施方案,图像数据可以表示数字视频的一个或多个输入帧的一个或多个图像。所述方法进一步包括通过计算设备基于相机定向数据而确定304帧或扫描线的物理相机定向的估计。例如,在一些实施方案中,计算设备可以基于陀螺仪数据确定第一和第二物理相机定向估计,所述第一和第二物理相机定向估计分别与第一和第二输入帧相关联。所述方法进一步包括确定600相同帧或扫描线的校正(或虚拟)相机定向,如下文将更详细地描述。根据一些实施方案,在已确定特定帧或扫描线的物理相机定向和虚拟相机定向之后,方法300可以进一步包括确定306用于从输入图像生成稳定图像的变换,例如,稳定网格。稳定网格可以是可以用于将真实图像(即,与真实相机定向相关联的图像)变换成虚拟图像(即,与虚拟相机定向相关联的图像)的栅格。方法300进一步包括基于校正的相机定向生成308输出帧。在一些实施方案中,可以基于变换,例如,稳定网格生成输出帧。根据一些实施方案,输出帧可以表示例如已去除不期望运动的对应输入帧的稳定版本。在一些实施方案中,输出帧可以显示在移动设备的屏幕上。在生成308输出帧之后,方法300结束。系统可以使用指示稳定图像的数据来将输入帧的像素映射到输出帧,以创建稳定的输出图像。根据一些实施方案,可以在移动设备上实时地在视频的后续帧上重复地执行方法300,以便生成稳定视频。
稳定网格
如上所述,根据示例实施方案,可以通过生成与特定帧或扫描线相关联的真实相机定向的估计,确定对应于相同帧或扫描线的虚拟相机定向,以及随后生成与真实相机定向相关联的输入图像并将变换应用于与真实相机定向相关联的输入图像,以生成与虚拟相机定向相关联的稳定图像来创建输入视频帧的稳定图像。根据一些实施方案,变换可以包括稳定网格。图4示出稳定网格可以如何用于使与真实相机定向的视角相关联的输入图像402a变形,以生成与虚拟相机定向的视角相关联的稳定图像402b的图示。如图4中所示,根据示例实施方案,当通过移动设备记录视频时,输入图像402a可以由于用户的无意手移动而旋转到一侧,但是稳定图像402b可能没有此旋转。在一些实施方案中,稳定网格404a、304b可以由具有多个区域的栅格构成,例如,四边形。例如,图4中所示的稳定网格由具有矩形框的四行和四列的栅格构成。系统可以覆盖图像上的稳定网格,使得图像中的每个点位于网格的区域内。系统可以用栅格404a覆盖输入图像402a,使得输入图像402a的每个像素位于栅格404a的区域内。根据一些实施方案,真实图像栅格404a上的每个顶点与虚拟图像栅格404b上的顶点相关联,从而形成可以用于将输入图像402a变换成稳定输出图像402b的映射网格。根据一些实施方案,稳定网格可以用于将来自从输入图像产生的预定数目的扫描线的像素投影到输出图像,并且可以使用已知技术对剩余像素的投影进行插值。
尽管本公开通常涉及使用稳定网格作为用于将输入帧映射到输出帧的变换,但是预期在一些实施方案中,可以使用稳定单应性来替代稳定网格。稳定单应性可以是输入齐次坐标与输出齐次坐标之间的全部3乘3变换。稳定单应性可以不如稳定网格复杂并且可以提供比稳定网格低的质量,但是因为稳定单应性需要传输更少参数,所以稳定单应性可以增加可以生成输出图像的速度。根据一些实施方案,系统可以通过在物理相机的图像平面上定义矩形框来使用稳定单应性,并且使用以下等式(5)为每个顶点确定虚拟相机中的对应2D坐标。根据一些实施方案,可以从输入和输出图像四边形计算单应性。
根据一些实施方案,如果在映射期间一些图像像素变成未定义,则由从真实相机图像到虚拟相机图像的变换产生的输出图像可以具有围绕边缘的黑色边界。尽管本公开涉及表示未定义像素的黑色边界,但是应理解,未定义像素可以由其它颜色、设计或图案表示,但是为了方便起见,未定义像素的显示在本文中称为黑色边界。因此,在一些实施方案中,为了避免在输出图像的边缘周围的黑色边界,系统可以通过固定边缘剪裁虚拟相机图像(即,输出图像)。例如,系统可以在每侧将虚拟相机图像剪裁10%。图5示出逆稳定网格(即,从输出图像到输入图像)的示例,所述逆稳定网格说明输入图像的边缘的部分如何被留在网格之外并且因此在输出图像中被剪裁。
相机模型
根据一些实施方案,用于在移动设备上提供改进的视频稳定性的系统和方法可以使用相机模型来帮助描述真实图像(即,从物理相机定向的视角拍摄的图像)与虚拟图像(即,从虚拟相机定向的视角创建的图像)之间的关系。例如,在一些实施方案中,虚拟图像可以表示对应真实图像的近似,所述真实图像已进行调整以消除由在记录期间发生的不期望运动引起的失真。根据一些实施方案,系统可以将像素(即,点)从二维真实图像(即,来自所记录视频的图像)投影到三维空间中,并且在考虑相机移动对三维空间中的像素的影响之后,系统随后可以将像素投影到二维虚拟(“2D”)图像中。在一些实施方案中,此模型可以通过等式(1)描述:
x=K(t)R(t)X,  (1)
其中x可以表示其次坐标系中的2D图像点,并且X可以表示三维(“3D”)坐标系中的对应点。K(t)可以是在时间t处的相机内在参数矩阵,并且R(t)可以是在时间t处的相机旋转矩阵。相机内在参数矩阵可以用于变换三维空间与二维图像平面之间的点。根据一些实施方案,内在参数矩阵K(t)可以是:
Figure BDA0003039011680000161
其中f(t)可以是在时间t处的焦距,并且(ox,oy)可以是2D图像坐标中的主点。根据一些实施方案,焦距可以模型化为时间函数,因为移动设备的相机的镜头与焦距传感器之间的距离可能由于焦点调整或聚焦呼吸(即,镜头移动)而改变。如上所述,计算设备可以从焦距传感器接收信号,所述焦距传感器提供指示相机的焦距随时间变化的数据。在一些实施方案中,如果焦距可以设定为常数,则在这种情况下,本文所描述的系统和方法可以在无需校正由聚焦呼吸引起的失真的情况下提供改进的稳定视频。
在一些实施方案中,物理相机的内在参数矩阵和旋转矩阵可以分别通过Kp(t)和Rp(t)表示。类似地,虚拟相机的内在参数矩阵和旋转矩阵可以通过Kv和Rv(t)表示。在一些实施方案中,qp(t)和qv(t)可以用于分别表示Rp(t)和Rv(t)的四元数表示。根据一些实施方案,Kv可以是常数(与时间无关),使得无论镜头移动如何,可以在稳定视频中保持相同视场(FOV)。根据一些实施方案,物理相机的从X投影的图像点是:
xp=Kp(t)Rp(t)X,  (3)
并且虚拟相机的投影图像点是
xv=KvRv(t)X  (4)
等式(3)和(4)可以组合以产生:
xv=KvRv(t)Rp -1(t)Kp -1(t)xp  (5)
根据一些实施方案,系统可以从相机镜头部分获得Kp(t),系统可以将其从相机传感器数据导出,所述相机传感器数据从移动设备的焦距传感器接收。在一些实施方案中,Kv可以是预定的。例如,在一些实施方案中,当镜头在无穷远处聚焦时,Kv可以等于物理相机的内在参数矩阵。根据一些实施方案,在已知Rp(t)和Rv(t)之后,系统可以使用等式(5)针对物理相机中的任何2D点确定虚拟相机中的2D图像点的坐标。
物理相机定向
如上所述,系统可以使用从移动设备的陀螺仪获得的数据针对特定帧或扫描线确定移动设备中的相机的物理或真实相机定向Rp(t)的估计。本领域技术人员应了解,许多现代数码相机使用滚动快门,这意味着相比于一次获得整个场景,通过跨越场景水平或垂直快速扫描来捕获视频的每个帧。因此,视频的每个帧可以具有在略微不同的时间连续扫描的多个扫描线。因此,如果移动设备在运动,则每个个别扫描线可以与不同物理相机定向Rp(t)相关联。因此,尽管本公开的部分可以指与视频的帧相关联的物理或虚拟相机定向,但是应理解,每个帧可以具有与帧的每个扫描线相关联的多个相关联物理和虚拟相机定向。在一些实施方案中,计算设备可以连续地接收陀螺仪信号以估计最近的真实相机定向。在一些实施方案中,可以通过计算设备在高频,例如,200Hz下提取或接收陀螺仪信号。但是应理解,可以根据不同实施方案使用不同频率。根据一些实施方案,当陀螺仪样本在时间tn到达时,系统可以在前一个陀螺仪时间戳tn-l处计算相机相对于相机定向的旋转。在一些实施方案中,系统可以首先将旋转速度(由系统从陀螺仪数据导出)和时间间隔(即,当前陀螺仪时间戳与前一个陀螺仪时间戳之间的差)转换成轴-角表示中的旋转。在一些实施方案中,系统随后可以将相对旋转的此轴角表示转换成可以表示为rp(tn)的四元数。根据一些实施方案,系统随后可以将当前陀螺仪时间戳处的真实相机定向qp(tn)计算为前一个陀螺仪时间戳处的定向qp(tn-1)与相对旋转之间的四元数乘积,如:
qp(tn)=rp(tn)*qp(tn-1)  (6)
此四元数乘积是非可换的。根据一些实施方案,为了通过等式(6)从离散样本获得对于任何时间t的相机定向qp(t)的估计,系统可以找到两个定向qp(t1)和qp(t2),其中t1和t2是最接近t的两个时间戳并且t1≤t≤t2,并且执行qp(t1)和qp(t2)的球面线性插值(SLERP)。根据一些实施方案,在确定真实相机定向的估计之后,系统可以确定对应虚拟相机定向。
虚拟相机定向
图6是根据所公开技术的示例实施方案的方法600的流程图。如所示,方法600开始于确定700与相同帧或扫描线的真实相机定向相对应的帧或扫描线的初始虚拟相机定向。根据一些实施方案,系统可以基于真实相机定向的估计以及一个或多个先前输入帧和/或视频的对应扫描线的虚拟相机定向来确定初始虚拟相机定向。根据一些实施方案,方法600可以进一步包括确定602使用初始虚拟相机定向生成的输出帧是否将包括任何未定义像素。在一些实施方案中,确定输出帧是否将包括任何未定义像素可以包括:如果输入图像将使用稳定网格弯曲到虚拟图像,则确定输出帧的边界是否将由稳定网格完全覆盖。根据一些实施方案,如果输出帧包括未定义像素,则可能需要调整初始虚拟相机定向以防止未定义像素包括在输出帧中。因此,根据一些实施方案,方法600可以进一步包括确定604最终虚拟相机定向。根据一些实施方案,响应于确定在形成输出图像时使用初始虚拟相机定向将产生未定义像素,系统可以通过以下方式确定最终虚拟相机定向:通过将初始虚拟相机定向与对应真实相机定向混合来调整初始虚拟相机定向。所述方法可以进一步包括输出606表示最终虚拟相机定向的数据,所述数据可以用于从视频的输入图像生成输出图像。
如上所述,系统可以确定虚拟相机定向Rv(t)(或用于四元数表示的qv(t)),所述虚拟相机定向可以用于从在对应真实相机定向处获得的输入图像生成稳定输出图像。在一些实施方案中,系统可以使用非线性滤波器来确定虚拟相机定向。根据一些实施方案,系统可以在整个帧读出时间内使用相同qv(t)以去除滚动快门效果。这表示:
qv(t)=qv[n],t∈[tn0,tn,h],  (7)
其中tn,0是在帧n处的第一扫描线的时间戳,并且tn,h是在帧n处的最后一个扫描线的时间戳。因此,系统可以使用虚拟相机定向的离散时间表示qv[n]。根据一些实施方案,视频帧的频率可以不同于等式(6)中的陀螺仪事件的频率。
提出初始虚拟相机定向
根据一些实施方案,用于在移动设备上提供改进的视频稳定性的方法可以包括:在生成对应于帧或扫描线的最终虚拟相机定向之前,通过系统确定对应于帧或扫描线的初始或所提出的虚拟相机定向,如下文所描述。在一些实施方案中,确定初始虚拟定向可以包括确定相机在平移还是保持静止,以及基于历史相机定向数据而投影相机的移动。历史相机定向数据可以包括指示对应于视频的先前输入帧和/或扫描线的物理相机定向,以及对应虚拟相机定向的估计的所存储数据。根据一些实施方案,如果系统确定相机不在平移(例如,平移概率为零),则系统可以将对应于输入帧的初始虚拟相机定向设定成与对应于视频的前一个帧的虚拟相机定向相同。
图7是根据所公开技术的示例实施方案的方法700的流程图。如所示,方法700开始于计算设备接收702表示物理相机定向的数据。例如,根据一些实施方案,计算设备可以接收来自移动设备的陀螺仪接口的陀螺仪数据,以及来自移动设备的焦距传感器的焦距数据。方法700进一步包括确定704相机的主要平移方向。根据一些实施方案,计算设备可以基于陀螺仪数据确定主要平移方向。根据一些实施方案,系统可以相对于前一个帧n-1如下计算帧n处的初始或所提出的虚拟相机旋转:
Figure BDA0003039011680000201
其中r0表示无旋转或四元数表示中的[0,0,0,1],
Figure BDA0003039011680000202
表示投影到主要运动方向的域变换滤波的物理相机运动,并且p[n]是平移概率。因此,在一些实施方案中,四元数
Figure BDA0003039011680000203
中的初始虚拟相机定向(其还可以被称为所提出的虚拟相机定向)可以计算为:
Figure BDA0003039011680000211
其中,根据一些实施方案,系统可以将第一帧
Figure BDA0003039011680000212
处的所提出的虚拟相机定向初始化为第一帧中心中心线处的物理相机定向:
Figure BDA0003039011680000213
方法700可以进一步包括将非线性平滑滤波器应用于706指示物理相机移动的数据,以对物理相机运动进行滤波并且消除噪声。在一些实施方案中,系统可以使用域变换来对物理相机运动进行滤波。根据一些实施方案,域变换用于对物理相机运动进行滤波可以使虚拟相机对物理相机平移的启动和停止更敏感。在一些实施方案中,系统可以使用其它边缘感知滤波器来对物理相机运动进行滤波。
方法700进一步包括确定708相机是否正在平移的概率。例如,在一些实施方案中,系统可以利用使用先前相机定向的逻辑回归来确定表示相机正在平移的可能性的平移概率S。平移概率可以是从0到1的任何数字,其中0表示固定相机并且1表示平移相机。例如,平移概率可能是0.8。在一些实施方案中,系统可以使用逻辑回归来执行平移检测。根据一些实施方案,系统可以从窗口化时间帧提取陀螺仪数据,从此窗口获得陀螺仪数据的平均值μ和标准偏差σ,并且计算特征
Figure BDA0003039011680000214
其中当σ非常小时,ε可以用于避免数字不稳定。在一些实施方案中,系统可以使用回归逻辑函数,所述回归逻辑函数将l作为输入并且在等式(8)中生成平移概率p[n]:
p[n]=1/(1+exp(-(β1+l·β2))),  (10)
其中,根据一些实施方案,β1和β2通过训练数据获得。在一些实施方案中,β1和β2可以由用户或系统管理员选择。
方法700可以进一步包括基于平滑的相机旋转、平移概率和前一个帧的先前虚拟相机定向来确定710初始虚拟相机定向。因此,在一些实施方案中,计算设备可以重复地将关于真实相机定向和虚拟相机定向的历史数据存储在存储器中,并且可以在本文所描述的方法的执行期间在任何时间从存储器存取此历史数据。根据一些实施方案,在通过系统提出初始虚拟相机定向之后,系统可能需要确定对应于真实相机定向和所提出的虚拟相机定向的稳定网格的使用是否可能导致未定义像素出现在输出图像中。如果是,则系统可以修改初始虚拟相机定向,以形成消除未定义像素的最终虚拟相机定向,由此防止不合需要的黑色边界显示在输出图像中。
确定突出并且最终确定虚拟相机定向
如上文先前所提及,在一些实施方案中,可能需要以固定边距剪裁虚拟相机图像,以防止在输入图像根据稳定网格剪裁之后未定义像素的黑色边界显示在输出图像中。因此,根据一些实施方案,系统可以测试从使用稳定网格将真实相机图像映射到所提出的虚拟相机定向产生的输出图像,以确定是否需要修改所提出的虚拟相机定向来消除在应用稳定网格之后出现的未定义像素。根据一些实施方案,如果系统确定使用所提出的虚拟相机定向将在所得输出图像中产生未定义像素,则系统可以通过将所提出的虚拟定向与真实相机定向混合来调整所提出的虚拟相机定向,以确定最终虚拟相机定向。根据一些实施方案,所提出的虚拟相机定向和真实相机定向的混合可以使用对分搜索执行。
根据一些实施方案,为了防止稳定帧中的黑色边界,系统可以验证物理相机图像中的翘曲图像边界框覆盖虚拟相机图像中的整个图像区域,或相反,代替图像是物理相机图像,虚拟相机图像中的翘曲图像边界框保留。在一些实施方案中,系统可以通过使用SLERP将虚拟相机定向调整为更接近地类似于物理相机定向来实现此目标。根据一些实施方案,可以通过使用对分搜索找到避免黑色边界所需的最小SLERPλ1[n]系数。
如先前所描述,可能需要调整虚拟相机定向,使得每当存在像素超出边界的趋势时,所述虚拟相机定向更接近物理相机定向,以防止未定义像素的黑色边界出现在虚拟相机图像中。在一些实施方案中,像素超出边界的趋势可以通过稳定网格所引入的突出量来量化。突出的概念在图8中图示。图8示出由最外面框表示的虚拟相机的图像边界802的表示。根据一些实施方案,系统可以在虚拟相机的图像边界802内限定外框804和内框806。在一些实施方案中,外框804和内框806的相应大小可以是可以进行调谐以实现不同结果的参数。根据一些实施方案,系统可以根据从虚拟相机定向到物理相机定向的单应性变换来变换内框806,以生成变形框808。在一些实施方案中,系统可以在变形框808的所有顶点之中确定外框804外部的最大突起810。根据一些实施方案,系统可以针对如图4中所示的物理到虚拟稳定网格的每个水平条带从源和目标四边形确定物理和虚拟相机单应性,并且反转单应性以产生用于确定突起的虚拟到物理单应性。根据一些实施方案,在计算突起之前,系统可以将图像大小归一化到[0,1]x[0,1]。在一些实施方案中,系统可以使用δ[n]来表示帧n处的突起量。在一些实施方案中,系统可以将SLERP系数λ2[n]计算为:
Figure BDA0003039011680000231
其中α和β是预定常数。例如,在一些实施方案中,系统可以使用α=2、β=0.2。根据一些实施方案,SLER系数λ2[n]可以使用IIR滤波器平滑化:
λ3[n]=γ·λ3[n-1]+(1-γ)·λ2[n],  (12)
其中γ是预定常数。此平滑化可以使具有剧烈运动的视频(例如,奔跑场景)看起来更自然和令人愉悦。
根据一些实施方案,系统可以将最终虚拟相机定向确定为:
Figure BDA0003039011680000241
其中
Figure BDA0003039011680000242
根据一些实施方案,在系统确定特定帧或扫描线的物理和虚拟相机定向之后,系统可以获得稳定网格来使输入帧或扫描线变形以实现视频稳定和滚动快门校正。
结果
本文所描述的系统、方法和技术已在各种测试情况中实施,其中与稳定视频的旋转相比,结果以表示移动设备围绕x、y和z轴的实际旋转的图表示出。例如,图9示出用户静止的典型手持视频的视频结果。如在图9中的图表中所示,从虚拟相机定向生成的滤波视频显示相机旋转的显著消除,从而产生非常稳定的视频图像。图10示出用户正以图11中所示的对应计算出的平移概率平移的视频的结果。如通过图表所示,平移场景的稳定视频显示视频质量的平滑度的显著增加。图12示出用户正行走并且正以图13中所示的对应计算出的平移概率平移的视频的结果。如在图13中的图表中所示,本文所描述的方法也很好地使此类型的视频稳定。图13中的图表确实示出一些偶然快速运动,然而,方法的参数可以通过例如,调整图8中所示的外框804边缘进行调谐以使视频看起来更自然。最后,图14示出在用户奔跑时拍摄的视频的结果,其呈现对稳定化具有挑战性的剧烈相机运动,因为仅可以使用有限量的剪裁,并且当运动很大时,剪裁区域很容易碰撞图像边界。然而,如图14中的图表中所示,尽管视频的剧烈运动,但是本文所描述的方法很好地执行以减少从视频的手抖动量。
应理解,图3、6和7中所示的各个步骤仅是说明性的,并且可以移除步骤、可以使用其它步骤,或可以修改步骤的次序。
上文参考根据所公开技术的示例实施方案的系统和方法和/或计算机程序代码的框图和流程图描述所公开技术的某些实施方案。应理解,框图和流程图中的一个或多个框以及框图和流程图中的框的组合分别可以通过计算机可执行程序指令实施。同样,根据所公开技术的一些实施方案,框图和流程图的一些框可能未必需要以所呈现的次序执行,或可能根本不需要执行。
这些计算机可执行程序指令可以加载到通用计算机、专用计算机、处理器或其它可编程数据处理装置上以产生特定机器,使得在计算机、处理器或其它可编程数据处理装置上执行的指令形成用于实施在流程图框中指定的一个或多个功能的构件。这些计算机程序指令还可以存储于计算机可读存储器中,所述计算机可读存储器可以引导计算机或其它可编程数据处理装置以特定方式起作用,使得存储于计算机可读存储器中的指令产生制品,包括实施在流程图框中指定的一个或多个功能的指令构件。举例来说,所公开技术的实施可以提供用于计算机程序产品,包括具有实施于其中的计算机可读程序代码或程序指令的计算机可用介质,所述计算机可读程序代码适合于执行,以实施在流程图框中指定的一个或多个功能。计算机程序指令还可以加载到计算机或其它可编程数据处理装置上,以致使一系列操作元件或步骤在计算机或其它可编程装置上执行以产生计算机实施的过程,使得在计算机或其它可编程装置上执行的指令提供用于实施在流程图框中指定的功能的元件或步骤。
因此,框图和流程图中的框支持用于执行特定功能的构件的组合、用于执行特定功能的元件或步骤以及用于执行特定功能的程序指令构件的组合。还应理解,框图和流程图中的每个框,以及框图和流程图中的框的组合可以通过执行特定功能、元件或步骤的基于专用硬件的计算机系统,或专用硬件和计算机指令的组合实施。
尽管已经结合目前被认为最实际的实施方案描述所公开技术的某些实施方案,但是应理解,所公开技术不限于所公开实施方案,但是相反,预期涵盖包括在所附权利要求的范围内的各种修改和等效布置。尽管本文中采用特定术语,但是这些术语仅用于一般性和描述性意义,而不是用于限制目的。
本书面描述使用示例来公开所公开技术的某些实施方案,包括最佳模式,并且还使本领域技术人员能够实践所公开技术的某些实施方案,包括制造和使用任何设备或系统以及执行任何结合的方法。所公开技术的某些实施方案的可专利范围在权利要求书中限定,并且可以包括本领域技术人员想到的其它示例。如果此类其它示例具有不与权利要求书的字面语言不同的结构要素,或者如果它们包括与权利要求书的字面语言无实质区别的等同结构要素,则此类其它示例意图在权利要求书的范围内。

Claims (19)

1.一种用于在移动设备上提供改进的视频稳定性的方法,所述方法包括:
通过计算设备接收第一定向数据和第一图像数据,所述第一图像数据表示与相机相关联的第一输入帧,并且所述第一定向数据表示在获取所述第一输入帧期间所述相机的定向,其中,所述第一定向数据是从与所述相机相关联的陀螺仪获得的;
通过所述计算设备接收第二定向数据和第二图像数据,所述第二图像数据表示与所述相机相关联的第二输入帧,并且所述第二定向数据表示在获取所述第二输入帧期间所述相机的定向,其中,所述第二定向数据是从与所述相机相关联的所述陀螺仪获得的;
通过所述计算设备并且基于所述第一定向数据和所述第二定向数据来确定物理相机定向估计,所述物理相机定向估计与所述第二输入帧相关联并且是基于所述第二定向数据与所述第一定向数据之间的差;
通过所述计算设备并且基于所述物理相机定向估计来确定与所述第二输入帧相关联的初始校正相机定向,所述初始校正相机定向与所述第二输入帧相关联并且表示不是基于不期望的相机移动的相机定向;
通过所述计算设备确定使用与所述第二输入帧相关联的所述初始校正相机定向所生成的输出帧是否包括未定义像素;
通过所述计算设备确定与所述第二输入帧相关联的最终校正相机定向,所述最终校正相机定向被配置为防止在所述输出帧中包括所述未定义像素;和
通过所述计算设备并且基于与所述第二输入帧相关联的所述最终校正相机定向来生成所述输出帧。
2.根据权利要求1所述的方法,其中确定使用与所述第二输入帧相关联的所述初始校正相机定向所生成的输出帧是否包括未定义像素包括:确定覆盖在所述第二输入帧的图像上的稳定网格是否将完全覆盖使用所述初始校正相机定向所生成的所述输出帧的整个图像区域。
3.根据权利要求1所述的方法,其中,确定与所述第二输入帧相关联的最终校正相机定向包括:响应于确定使用与所述第二输入帧相关联的所述初始校正相机定向所生成的所述输出帧包括所述未定义像素,通过所述计算设备将与所述第二输入帧相关联的所述初始校正相机定向与所述物理相机定向估计混合,以生成所述最终校正相机定向。
4.根据权利要求1所述的方法,其中,所述物理相机定向估计包括表示所述相机的偏航、俯仰和滚动的数据。
5.根据权利要求1所述的方法,其中,在所述第一输入帧中包括第一输入扫描线,并且所述第二输入帧包括第二输入扫描线。
6.根据权利要求1所述的方法,还包括:
通过所述计算设备并且基于与所述第二输入帧相关联的所述最终校正相机定向和所述物理相机定向估计,确定用于将所述第二输入帧的像素映射到所述输出帧的变换。
7.根据权利要求6所述的方法,其中,所述变换包括稳定网格。
8.根据权利要求1所述的方法,其中,确定与所述第二输入帧相关联的所述初始校正相机定向包括:通过所述计算设备并且基于包括所述第一定向数据和所述第二定向数据的逻辑回归,确定相机平移的概率。
9.根据权利要求8所述的方法,其中,响应于确定平移的所述概率是零,确定与所述第二输入帧相关联的所述初始校正相机定向和与所述第一输入帧相关联的校正相机定向相同。
10.根据权利要求9所述的方法,其中,确定与所述第二输入帧相关联的所述初始校正相机定向包括:通过所述计算设备并且基于历史相机定向数据,使用非线性平滑滤波器确定所述相机旋转的平滑近似。
11.一种用于在移动设备上提供改进的视频稳定性的系统,所述系统包括:
一个或多个处理器;
存储器,所述存储器耦合到所述一个或多个处理器并存储指令,所述指令当被所述一个或多个处理器执行时使所述系统执行一种方法,所述方法包括:
通过计算设备接收第一定向数据和第一图像数据,所述第一图像数据表示与相机相关联的第一输入帧,并且所述第一定向数据表示在获取所述第一输入帧期间所述相机的定向,其中,所述第一定向数据是从与所述相机相关联的陀螺仪获得的;
通过所述计算设备接收第二定向数据和第二图像数据,所述第二图像数据表示与所述相机相关联的第二输入帧,并且所述第二定向数据表示在获取所述第二输入帧期间所述相机的定向,其中,所述第二定向数据是从与所述相机相关联的所述陀螺仪获得的;
通过所述计算设备并且基于所述第一定向数据和所述第二定向数据来确定物理相机定向估计,所述物理相机定向估计与第二输入帧相关联并且是基于所述第二定向数据与所述第一定向数据之间的差;
通过所述计算设备并且基于所述物理相机定向估计来确定与所述第二输入帧相关联的初始校正相机定向,所述初始校正相机定向与第二输入帧相关联并且表示不是基于不期望的相机移动的相机定向;
通过所述计算设备确定使用与所述第二输入帧相关联的所述初始校正相机定向所生成的输出帧是否包括未定义像素;
通过所述计算设备确定与所述第二输入帧相关联的最终校正相机定向,所述最终校正相机定向被配置为防止在所述输出帧中包括所述未定义像素;和
通过所述计算设备并且基于与所述第二输入帧相关联的所述最终校正相机定向来生成所述输出帧。
12.根据权利要求11所述的系统,其中,确定与所述第二输入帧相关联的最终校正相机定向包括:响应于确定使用与所述第二输入帧相关联的所述初始校正相机定向所生成的所述输出帧包括所述未定义像素,通过所述计算设备将与所述第二输入帧相关联的所述初始校正相机定向与所述物理相机定向估计混合,以生成所述最终校正相机定向。
13.根据权利要求11所述的系统,其中,确定与所述第二输入帧相关联的所述初始校正相机定向包括:通过所述计算设备并且基于包括所述第一定向数据和所述第二定向数据的逻辑回归,确定相机平移的概率。
14.根据权利要求13所述的系统,其中,响应于确定平移的所述概率是零,确定与所述第二输入帧相关联的所述初始校正相机定向和与所述第一输入帧相关联的校正相机定向相同。
15.根据权利要求14所述的系统,其中,确定与所述第二输入帧相关联的所述初始校正相机定向包括:通过所述计算设备并且基于历史相机定向数据,使用非线性平滑滤波器确定所述相机旋转的平滑近似。
16.根据权利要求15所述的系统,其中确定使用与所述第二输入帧相关联的所述初始校正相机定向所生成的输出帧是否包括未定义像素包括:确定覆盖在所述第二输入帧的图像上的稳定网格是否将完全覆盖使用所述初始校正相机定向所生成的所述输出帧的整个图像区域。
17.一种存储指令的非暂时性计算机可读介质,所述指令在被至少一个处理器执行时使所述至少一个处理器执行一种方法,所述方法包括:
通过计算设备接收第一定向数据和第一图像数据,所述第一图像数据表示与相机相关联的第一输入帧,并且所述第一定向数据表示在获取所述第一输入帧期间所述相机的定向,其中,所述第一定向数据是从与所述相机相关联的陀螺仪获得的;
通过所述计算设备接收第二定向数据和第二图像数据,所述第二图像数据表示与所述相机相关联的第二输入帧,并且所述第二定向数据表示在获取所述第二输入帧期间所述相机的定向,其中,所述第二定向数据是从与所述相机相关联的所述陀螺仪获得的;
通过所述计算设备并且基于所述第一定向数据和所述第二定向数据来确定物理相机定向估计,所述物理相机定向估计与第二输入帧相关联并且是基于所述第二定向数据与所述第一定向数据之间的差;
通过所述计算设备并且基于所述物理相机定向估计来确定与所述第二输入帧相关联的初始校正相机定向,所述初始校正相机定向与第二输入帧关联并且表示不是基于不期望的相机移动的相机定向;
通过所述计算设备确定使用与所述第二输入帧相关联的所述初始校正相机定向所生成的输出帧是否包括未定义像素;
通过所述计算设备确定与所述第二输入帧相关联的最终校正相机定向,所述最终校正相机定向被配置为防止在所述输出帧中包括所述未定义像素;和
通过所述计算设备并且基于与所述第二输入帧相关联的所述最终校正相机定向来生成所述输出帧。
18.根据权利要求17所述的非暂时性计算机可读介质,其中,确定与所述第二输入帧相关联的所述初始校正相机定向包括:通过所述计算设备并且基于包括所述第一定向数据和所述第二定向数据的逻辑回归,确定相机平移的概率。
19.根据权利要求17所述的非暂时性计算机可读介质,其中,确定与所述第二输入帧相关联的最终校正相机定向包括:响应于确定使用与所述第二输入帧相关联的所述初始校正相机定向所生成的所述输出帧包括所述未定义像素,通过所述计算设备将与所述第二输入帧相关联的所述初始校正相机定向与所述物理相机定向估计混合,以生成所述最终校正相机定向。
CN202110451819.XA 2016-09-19 2017-09-18 提供移动设备的改进的视频稳定性的方法、系统和介质 Active CN113382161B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110451819.XA CN113382161B (zh) 2016-09-19 2017-09-18 提供移动设备的改进的视频稳定性的方法、系统和介质

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/269,447 US9888179B1 (en) 2016-09-19 2016-09-19 Video stabilization for mobile devices
US15/269,447 2016-09-19
CN201780041564.1A CN109644231B (zh) 2016-09-19 2017-09-18 提供移动设备的改进的视频稳定性的方法、系统和介质
PCT/US2017/052015 WO2018053400A1 (en) 2016-09-19 2017-09-18 Improved video stabilization for mobile devices
CN202110451819.XA CN113382161B (zh) 2016-09-19 2017-09-18 提供移动设备的改进的视频稳定性的方法、系统和介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780041564.1A Division CN109644231B (zh) 2016-09-19 2017-09-18 提供移动设备的改进的视频稳定性的方法、系统和介质

Publications (2)

Publication Number Publication Date
CN113382161A CN113382161A (zh) 2021-09-10
CN113382161B true CN113382161B (zh) 2023-05-09

Family

ID=60002018

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780041564.1A Active CN109644231B (zh) 2016-09-19 2017-09-18 提供移动设备的改进的视频稳定性的方法、系统和介质
CN202110451819.XA Active CN113382161B (zh) 2016-09-19 2017-09-18 提供移动设备的改进的视频稳定性的方法、系统和介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201780041564.1A Active CN109644231B (zh) 2016-09-19 2017-09-18 提供移动设备的改进的视频稳定性的方法、系统和介质

Country Status (4)

Country Link
US (2) US9888179B1 (zh)
EP (1) EP3466050A1 (zh)
CN (2) CN109644231B (zh)
WO (1) WO2018053400A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11477382B2 (en) * 2016-02-19 2022-10-18 Fotonation Limited Method of stabilizing a sequence of images
US9888179B1 (en) 2016-09-19 2018-02-06 Google Llc Video stabilization for mobile devices
US10681327B2 (en) * 2016-09-20 2020-06-09 Cyberlink Corp. Systems and methods for reducing horizontal misalignment in 360-degree video
US10565802B2 (en) * 2017-08-31 2020-02-18 Disney Enterprises, Inc. Collaborative multi-modal mixed-reality system and methods leveraging reconfigurable tangible user interfaces for the production of immersive, cinematic, and interactive content
US10545215B2 (en) * 2017-09-13 2020-01-28 Google Llc 4D camera tracking and optical stabilization
US10462370B2 (en) 2017-10-03 2019-10-29 Google Llc Video stabilization
US20190297265A1 (en) * 2018-03-21 2019-09-26 Sawah Innovations Inc. User-feedback video stabilization device and method
US10171738B1 (en) 2018-05-04 2019-01-01 Google Llc Stabilizing video to reduce camera and face movement
US10983363B2 (en) * 2019-09-19 2021-04-20 Fotonation Limited Method for stabilizing a camera frame of a video sequence
US11694311B2 (en) * 2020-03-04 2023-07-04 Nec Corporation Joint rolling shutter image stitching and rectification
NL2025452B1 (en) * 2020-04-29 2021-11-09 Navinfo Europe B V System and method for 3D positioning a landmark in images from the real world
US11190689B1 (en) 2020-07-29 2021-11-30 Google Llc Multi-camera video stabilization
CN112383712B (zh) * 2020-11-12 2021-12-14 北京环境特性研究所 一种机载视频陀螺稳像处理方法及装置
CN112532883B (zh) * 2020-11-27 2022-03-29 维沃移动通信有限公司 拍摄防抖方法、装置、电子设备和可读存储介质
WO2024076363A1 (en) * 2022-10-04 2024-04-11 Google Llc Field of view correction techniques for shutterless camera systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262830A (zh) * 2005-07-20 2008-09-10 布拉科成像S.P.A.公司 用于把对象的虚拟模型映射到对象的方法和系统
CN103563349A (zh) * 2011-05-31 2014-02-05 斯凯普公司 视频稳定化
CN103945111A (zh) * 2013-01-23 2014-07-23 索尼公司 信息处理装置、信息处理方法和成像装置
CN105264439A (zh) * 2013-08-09 2016-01-20 热成像雷达有限责任公司 采用多个虚拟设备分析热像数据的方法和将深度值与图像像素进行关联的方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007243250A (ja) * 2006-03-03 2007-09-20 Olympus Imaging Corp 撮像装置および撮像方法
CN101753774B (zh) * 2008-12-16 2012-03-14 财团法人资讯工业策进会 数字影像稳定方法与系统
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
US9294676B2 (en) * 2012-03-06 2016-03-22 Apple Inc. Choosing optimal correction in video stabilization
US8773542B2 (en) * 2012-05-17 2014-07-08 Samsung Electronics Co., Ltd. Apparatus and method for adaptive camera control method based on predicted trajectory
US20140320592A1 (en) * 2013-04-30 2014-10-30 Microsoft Corporation Virtual Video Camera
US9232138B1 (en) 2013-06-03 2016-01-05 Amazon Technologies, Inc. Image stabilization techniques
TWI502548B (zh) * 2013-06-14 2015-10-01 Vivotek Inc 即時影像處理方法及其裝置
US9224194B2 (en) * 2014-01-21 2015-12-29 Adobe Systems Incorporated Joint video deblurring and stabilization
US9888179B1 (en) 2016-09-19 2018-02-06 Google Llc Video stabilization for mobile devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262830A (zh) * 2005-07-20 2008-09-10 布拉科成像S.P.A.公司 用于把对象的虚拟模型映射到对象的方法和系统
CN103563349A (zh) * 2011-05-31 2014-02-05 斯凯普公司 视频稳定化
CN103945111A (zh) * 2013-01-23 2014-07-23 索尼公司 信息处理装置、信息处理方法和成像装置
CN105264439A (zh) * 2013-08-09 2016-01-20 热成像雷达有限责任公司 采用多个虚拟设备分析热像数据的方法和将深度值与图像像素进行关联的方法

Also Published As

Publication number Publication date
CN109644231B (zh) 2021-05-04
WO2018053400A1 (en) 2018-03-22
US9888179B1 (en) 2018-02-06
US10200613B2 (en) 2019-02-05
CN113382161A (zh) 2021-09-10
CN109644231A (zh) 2019-04-16
US20180115714A1 (en) 2018-04-26
EP3466050A1 (en) 2019-04-10

Similar Documents

Publication Publication Date Title
CN113382161B (zh) 提供移动设备的改进的视频稳定性的方法、系统和介质
US10529052B2 (en) Virtual lens simulation for video and photo cropping
US9860448B2 (en) Method and electronic device for stabilizing video
US20230109047A1 (en) Methods and apparatus for re-stabilizing video in post-processing
JP2010072813A (ja) 画像処理装置および画像処理プログラム
US20210289147A1 (en) Images with virtual reality backgrounds
US20230308758A1 (en) Systems and methods for assessing stabilization of videos
WO2017024954A1 (zh) 图像显示方法及装置
US20220279128A1 (en) Systems and methods for horizon leveling videos
US9916863B1 (en) Systems and methods for editing videos based on shakiness measures
CN114303364B (zh) 用于稳定视频的系统和方法
JP6103942B2 (ja) 画像データ処理装置及び画像データ処理プログラム
Lee Novel video stabilization for real-time optical character recognition applications
KR101741150B1 (ko) 영상에디팅을 수행하는 영상촬영장치 및 방법
KR101725932B1 (ko) 영상에디팅을 수행하는 영상촬영장치 및 방법

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