CN116137666A - 视频匀速显示方法及装置、计算机可读介质和电子设备 - Google Patents

视频匀速显示方法及装置、计算机可读介质和电子设备 Download PDF

Info

Publication number
CN116137666A
CN116137666A CN202111362221.XA CN202111362221A CN116137666A CN 116137666 A CN116137666 A CN 116137666A CN 202111362221 A CN202111362221 A CN 202111362221A CN 116137666 A CN116137666 A CN 116137666A
Authority
CN
China
Prior art keywords
camera
image frame
current
current image
smooth
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.)
Pending
Application number
CN202111362221.XA
Other languages
English (en)
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202111362221.XA priority Critical patent/CN116137666A/zh
Publication of CN116137666A publication Critical patent/CN116137666A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42653Internal components of the client ; Characteristics thereof for processing graphics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)

Abstract

本公开提供一种视频匀速显示方法及装置、计算机可读介质和电子设备,涉及视频防抖技术领域。该方法包括:获取当前图像帧以及所述当前图像帧对应的当前相机姿态数据;根据所述当前相机姿态数据,以及所述当前图像帧之后多个图像帧对应的相机姿态数据,构成相机姿态数据序列;通过所述相机姿态数据序列确定所述当前图像帧对应的平滑相机姿态数据;基于所述当前相机姿态数据和所述平滑相机姿态数据对所述当前图像帧进行匀速处理,得到匀速防抖后的当前图像帧。本公开能够解决相机拍摄过程中运动速度忽快忽慢的问题,可以让拍摄得到的视频运动速度均匀,提升视频质量。

Description

视频匀速显示方法及装置、计算机可读介质和电子设备
技术领域
本公开涉及视频防抖技术领域,具体涉及一种视频匀速显示方法、视频匀速显示装置、计算机可读介质和电子设备。
背景技术
随着科学技术的飞速发展,人们越来越喜欢通过智能手机上的相机记录生活。环拍方式是人们常用的拍摄方式,由于是手持拍摄,拍摄者的手部难免会产生随机的抖动、旋转的速度忽快忽慢。这样拍摄出的视频将会随机乱晃、运动速度忽快忽慢,而拍摄者心中理想的环拍视频应该是稳定不随机乱晃、运动速度均匀的。
目前,相关的视频处理方案中,要么无法实现视频的匀速显示,要么在进行视频匀速处理时,需要基于图像内容进行分析,计算开销较大,并且匀速处理的结果受图像内容质量的影响,匀速处理结果不稳定。
发明内容
本公开的目的在于提供一种视频匀速显示方法、视频匀速显示装置、计算机可读介质和电子设备,进而至少在一定程度上实现视频运动速度均匀,同时降低计算开销,提升处理结果的稳定性。
根据本公开的第一方面,提供一种视频匀速显示方法,包括:
获取当前图像帧以及所述当前图像帧对应的当前相机姿态数据;
根据所述当前相机姿态数据,以及所述当前图像帧之后多个图像帧对应的相机姿态数据,构成相机姿态数据序列;
通过所述相机姿态数据序列确定所述当前图像帧对应的平滑相机姿态数据;
基于所述当前相机姿态数据和所述平滑相机姿态数据对所述当前图像帧进行匀速处理,得到匀速防抖后的当前图像帧。
根据本公开的第二方面,提供一种视频匀速显示装置,包括:
当前相机姿态获取模块,用于获取当前图像帧以及所述当前图像帧对应的当前相机姿态数据;
相机姿态序列构建模块,用于根据所述当前相机姿态数据,以及所述当前图像帧之后多个图像帧对应的相机姿态数据,构成相机姿态数据序列;
平滑相机姿态确定模块,用于通过所述相机姿态数据序列确定所述当前图像帧对应的平滑相机姿态数据;
图像帧匀速模块,用于基于所述当前相机姿态数据和所述平滑相机姿态数据对所述当前图像帧进行匀速处理,得到匀速防抖后的当前图像帧。
根据本公开的第三方面,提供一种计算机可读介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法。
根据本公开的第四方面,提供一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的方法。
本公开的一种实施例所提供的视频匀速显示方法,获取当前图像帧以及当前图像帧对应的当前相机姿态数据,并可以根据当前相机姿态数据以及当前图像帧之后多个图像帧对应的相机姿态数据,构成相机姿态数据序列,进而可以通过相机姿态数据序列确定当前图像帧对应的平滑相机姿态数据,最后基于当前相机姿态数据和平滑相机姿态数据对当前图像帧进行匀速处理,得到匀速防抖后的当前图像帧。一方面,根据多帧的相机姿态数据,计算当前图像帧的平滑相机姿态数据,并通过平滑相机姿态数据实现对视频的匀速处理,处理结果不受相机的成像质量影响,有效降低误差,使处理结果更加稳定;另一方面,根据当前图像帧的当前相机姿态数据以及当前图像帧之后多个图像帧对应的相机姿态数据确定当前图像帧对应的平滑相机姿态数据,提升平滑相机姿态数据的准确性,并且保证整个处理过程中的匀速结果的平滑性与连贯性,提升匀速处理后的视频质量,提升用户使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本公开实施例的一种示例性系统架构的示意图;
图2示出了可以应用本公开实施例的一种电子设备的示意图;
图3示意性示出本公开示例性实施例中一种相机运动坐标轴的示意图;
图4示意性示出本公开示例性实施例中一种视频匀速显示方法的流程示意图;
图5示意性示出本公开示例性实施例中一种确定平滑相机姿态数据的流程示意图;
图6示意性示出本公开示例性实施例中一种裁切当前图像帧的流程示意图;
图7示意性示出本公开示例性实施例中一种更新平滑相机姿态数据的流程示意图;
图8示意性示出本公开示例性实施例中另一种更新平滑相机姿态数据的流程示意图;
图9示意性示出本公开示例性实施例中一种对当前图像帧进行匀速防抖的流程示意图;
图10示意性示出本公开示例性实施例中一种实现匀速防抖的原理示意图;
图11示意性示出本公开示例性实施例中一种将视频进行匀速显示的流程示意图;
图12示意性示出本公开示例性实施例中视频匀速显示装置的组成示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本公开实施例的一种视频匀速显示方法及装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是各种具有图像处理功能的电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
本公开实施例所提供的视频匀速显示方法一般由终端设备101、102、103中执行,相应地,视频匀速显示装置一般设置于终端设备101、102、103中。但本领域技术人员容易理解的是,本公开实施例所提供的视频匀速显示方法也可以由服务器105执行,相应的,视频匀速显示装置也可以设置于服务器105中,本示例性实施例中对此不做特殊限定。
举例而言,在一种示例性实施例中,可以是用户通过终端设备101、102、103将拍摄的当前图像帧、采集的当前相机姿态数据以及当前图像帧之后多个图像帧对应的相机姿态数据上传至服务器105,服务器通过本公开实施例所提供的视频匀速显示方法生成匀速处理后的当前图像帧,并将匀速处理后的当前图像帧传输给终端设备101、102、103等进行显示。
本公开的示例性实施方式提供一种用于实现视频匀速显示方法的电子设备,其可以是图1中的终端设备101、102、103或服务器105。该电子设备至少包括处理器和存储器,存储器用于存储处理器的可执行指令,处理器配置为经由执行可执行指令来执行视频匀速显示方法。
下面以图2中的移动终端200为例,对电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图2中的构造也能够应用于固定类型的设备。在另一些实施方式中,移动终端200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。各部件间的接口连接关系只是示意性示出,并不构成对移动终端200的结构限定。在另一些实施方式中,移动终端200也可以采用与图2不同的接口连接方式,或多种接口连接方式的组合。
如图2所示,移动终端200具体可以包括:处理器210、内部存储器221、外部存储器接口222、通用串行总线(Universal Serial Bus,USB)接口230、充电管理模块240、电源管理模块241、电池242、天线1、天线2、移动通信模块250、无线通信模块260、音频模块270、扬声器271、受话器272、麦克风273、耳机接口274、传感器模块280、显示屏290、摄像模组291、指示器292、马达293、按键294以及用户标识模块(subscriber identification module,SIM)卡接口295等。其中传感器模块280可以包括深度传感器2801、压力传感器2802、陀螺仪传感器2803等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(Graphics ProcessingUnit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器和/或神经网络处理器(Neural-Network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
NPU为神经网络(Neural-Network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现移动终端200的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
处理器210中设置有存储器。存储器可以存储用于实现六个模块化功能的指令:检测指令、连接指令、信息管理指令、分析指令、数据传输指令和通知指令,并由处理器210来控制执行。
充电管理模块240用于从充电器接收充电输入。电源管理模块241用于连接电池242、充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210、内部存储器221、显示屏290、摄像模组291和无线通信模块260等供电。
移动终端200的无线通信功能可以通过天线1、天线2、移动通信模块250、无线通信模块260、调制解调处理器以及基带处理器等实现。其中,天线1和天线2用于发射和接收电磁波信号;移动通信模块250可以提供应用在移动终端200上的包括2G/3G/4G/5G等无线通信的解决方案;调制解调处理器可以包括调制器和解调器;无线通信模块260可以提供应用在移动终端200上的包括无线局域网(Wireless Local Area Networks,WLAN)(如无线保真(Wireless Fidelity,Wi-Fi)网络)、蓝牙(Bluetooth,BT)等无线通信的解决方案。在一些实施例中,移动终端200的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得移动终端200可以通过无线通信技术与网络以及其他设备通信。
移动终端200通过GPU、显示屏290及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏290和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
移动终端200可以通过ISP、摄像模组291、视频编解码器、GPU、显示屏290及应用处理器等实现拍摄功能。其中,ISP用于处理摄像模组291反馈的数据;摄像模组291用于捕获静态图像或视频;数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号;视频编解码器用于对数字视频压缩或解压缩,移动终端200还可以支持一种或多种视频编解码器。
外部存储器接口222可以用于连接外部存储卡,例如Micro SD卡,实现扩展移动终端200的存储能力。外部存储卡通过外部存储器接口222与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储移动终端200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(Universal Flash Storage,UFS)等。处理器210通过运行存储在内部存储器221的指令和/或存储在设置于处理器中的存储器的指令,执行移动终端200的各种功能应用以及数据处理。
移动终端200可以通过音频模块270、扬声器271、受话器272、麦克风273、耳机接口274及应用处理器等实现音频功能。例如音乐播放、录音等。
深度传感器2801用于获取景物的深度信息。在一些实施例中,深度传感器可以设置于摄像模组291。
压力传感器2802用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器2802可以设置于显示屏290。压力传感器2802的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。
陀螺仪传感器2803可以用于确定移动终端200的运动姿态。在一些实施方式中,可以通过陀螺仪传感器2803确定移动终端200围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器2803可以用于拍摄防抖、导航、体感游戏场景等。
此外,还可以根据实际需要在传感器模块280中设置其他功能的传感器,例如气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器等。
移动终端200中还可包括其它提供辅助功能的设备。例如,按键294包括开机键,音量键等,用户可以通过按键输入,产生与移动终端200的用户设置以及功能控制有关的键信号输入。再如,指示器292、马达293、SIM卡接口295等。
目前大多数具有图像采集功能的终端设备,如智能手机等,均会配置惯性测量单元(Inertial Measurement Unit,IMU)。一般而言,IMU会安装在被测物体的重心上,IMU在运行时可以测量当前时刻相机沿相机坐标系中三个轴运动的角速度。
为方便说明以及理解,本公开实施例中的相机坐标系可以如图3所示,当终端设备处于默认屏幕方向时,X轴为水平向右延伸,Y轴为垂直向上延伸,Z轴为垂直于屏幕向外延伸,容易理解的是,在图3所示的相机坐标系中,屏幕后面的坐标将具有负Z值。
在相关的视频防抖技术中,一种技术方案是,使用惯性传感器来追踪相机的旋转,通过视频帧中特征点的坐标变化来估计相机的平移,然后融合相机的旋转运动和平移运动,对相机运动补偿后实现视频防抖;另一种技术方案是,将视频帧划分成许多个网格,通过特征点匹配估计每个网格格点的运动,然后对网格格点的运动向量做低通滤波产生一个新的网格,最后将每一帧的图像内容变换到扭曲网格的位置产生最后的输出视频,以此来实现视频防抖;还有一种技术方案是,通过对比基准帧和当前帧中静止对象计算出抖动幅度值,通过抖动幅度值对当前帧进行抖动消除;但是这几种技术方案仅能够实现视频防抖,无法解决相机拍摄过程中运动速度忽快忽慢的问题。
另外,还有一种技术方案是,通过对匹配相邻视频帧的特征点得到特征点的运动数据,然后根据特征点的运动数据计算平滑运动数据,最后根据平滑运动数据矫正视频帧。但是,这种技术方案需要对图像内容进行分析,并使用特征点匹配的方式估计相机运动,这种处理方式计算开销大,不适合需要实时计算的移动设备,并且由于依赖于图像内容的方法容易受成像质量的影响,不同的光照强度、光照颜色、图像清晰度都会对最终的估算结果有影响,因此根据图像内容来估算相机运动的准确度较低。
基于相关技术中出现的一种或者多种问题,本公开首先提供了一种视频匀速显示方法,下面以终端设备执行方法为例,对本公开示例性实施方式的视频匀速显示方法进行具体说明。
图4示出了本示例性实施方式中一种视频匀速显示方法的流程,包括以下步骤S410至步骤S440:
在步骤S410中,获取当前图像帧以及所述当前图像帧对应的当前相机姿态数据。
在一示例性实施例中,当前图像帧是指终端设备在拍摄目标视频时当前时刻对应的图像帧,当前相机姿态数据是指用于表征终端设备的相机在拍摄当前图像帧时所处旋转状态的数据,例如,当前相机姿态数据可以是相机在拍摄当前图像帧时的惯性测量数据,惯性测量数据可以包括相机沿三个方向轴的角速度数据,当前相机姿态数据也可以是用于表征相机在拍摄当前图像帧时的重力加速度数据,本示例实施例对此不做特殊限定。
在步骤S420中,根据所述当前相机姿态数据,以及所述当前图像帧之后多个图像帧对应的相机姿态数据,构成相机姿态数据序列。
在一示例性实施例中,当前图像帧之后多个图像帧是指当前时刻之后多个时刻对应的图像帧,当前图像帧之后多个图像帧可以是当前时刻之后连续多个时刻对应的图像帧,也可以是当前时刻之后不连续多个时刻对应的图像帧,例如,假设当前时刻可以是t,那么当前图像帧之后连续多个图像帧可以是t+1时刻、t+2时刻······t+m+1时刻对应的m帧图像帧,其中,m可以是大于或者等于60的正整数,也可以是大于或者等于90的正整数,具体m的值可以根据实际应用情况进行自定义设置,当然,也可以是t+1时刻、t+3时刻、t+7时刻·····对应的图像帧,本示例实施例不以此为限。
在步骤S430中,通过所述相机姿态数据序列确定所述当前图像帧对应的平滑相机姿态数据。
在一示例性实施例中,平滑相机姿态数据是指用于表征当前图像帧对应的目标视频在匀速运动时相机应该处于的旋转姿态的数据。
在步骤S440中,基于所述当前相机姿态数据和所述平滑相机姿态数据对所述当前图像帧进行匀速处理,得到匀速防抖后的当前图像帧。
在一示例性实施例中,匀速处理是指对当前相机姿态下的当前图像帧的显示内容进行裁切,使其显示内容符合平滑相机姿态的处理过程。
匀速防抖后的当前图像帧是指对当前图像帧进行匀速处理后得到的与平滑相机姿态对应的图像帧,通过匀速防抖后的多个图像帧构成匀速显示的视频。
下面对步骤S410至步骤S440进行详细说明。
在一示例性实施例中,可以获取以当前相机姿态拍摄当前图像帧时采集的惯性测量数据,惯性测量数据是指IMU单元测量得到的数据,IMU单元可以测量当前时刻相机沿三个轴运动的角速度。
在获取得到拍摄当前图像帧时的当前相机姿态对应的惯性测量数据之后,可以根据惯性测量数据确定当前相机姿态的欧拉角,具体而言,可以通过对IMU单元输出的角速度进行积分,得到当前时刻的相机姿态相对于初始时刻的相机姿态或者上一时刻的相机姿态之间的欧拉角。
四元数(Quaternions)是指一种超复数,是由实数加上三个虚数单位i、j和k组成,[i,j,k]是虚轴单位向量,对于i、j和k本身的几何意义可以理解为一种旋转,其中i旋转代表Z轴与Y轴相交平面中Z轴正向向Y轴正向的旋转,j旋转代表X轴与Z轴相交平面中X轴正向向Z轴正向的旋转,k旋转代表Y轴与X轴相交平面中Y轴正向向X轴正向的旋转,-i、-j、-k分别代表i、j、k旋转的反向旋转。
对于一个坐标系到另一个坐标系的变换,可以通过绕不同坐标轴的3次连续转动来实现,这三次的转动角度统一称之为欧拉角。欧拉角由三次绕轴旋转组成,而这三次转动顺序任意,且转动轴可以是参考系的,也可以是机体系的,欧拉角意义上并不直接等于相机姿态,只是描述了三次绕轴转动,使用欧拉角可以描述两种相机姿态之间的转换关系。
本示例实施例中可以定义欧拉角的旋转顺序为Z轴-Y轴-X轴,假设ω,
Figure BDA0003359345240000101
γ表示分别为绕Z轴,Y轴,X轴的旋转角度,相机在t1时刻姿态为P1,t2时刻姿态为P2,则从P1到P2的欧拉角可以表示为/>
Figure BDA0003359345240000111
欧拉角/>
Figure BDA0003359345240000112
可以表示t1时刻相机以相机姿态P1先绕Z轴转动ω,再绕Y轴转动/>
Figure BDA0003359345240000113
最后绕X轴转动γ就可以到达相机姿态P2
举例而言,假设在拍摄当前图像帧的当前时刻时相机姿态相对于初始时刻的相机姿态的欧拉角为P,且
Figure BDA0003359345240000114
由于使用欧拉角描述相机姿态会出现万向锁(Gimblelock)的问题,因此,为了更方便描述相机姿态,本示例实施例中将欧拉角转换为四元数描述相机姿态,假设欧拉角P对应的四元数为q,那么四元数可以表示为关系式(1):
Figure BDA0003359345240000115
其中,w、x、y、z可以分别表示四元数的四个通道值,具体的,w可以表示四元数q的实部,x、y、z可以表示四元数q的虚部。
可以对欧拉角进行转换得到当前相机姿态对应的四元数,并将转换得到的四元数作为描述当前图像帧的当前相机姿态对应的当前相机姿态数据,以及根据相同的转换过程,确定当前图像帧之后多个图像帧的相机姿态对应的四元数,并将转换得到的四元数作为当前图像帧之后多个图像帧的相机姿态数据。
在一示例性实施例中,相机姿态数据可以包括用于描述相机姿态的四元数,可以通过图5中的步骤实现通过相机姿态数据序列确定当前图像帧对应的平滑相机姿态数据,参考图5所示,具体可以包括:
步骤S510,通过对所述相机姿态数据序列中的各四元数进行拟合,确定当前相机运动速度;
步骤S520,对所述当前相机运动速度进行滑动平均处理,得到平滑相机运动速度;
步骤S530,根据所述平滑相机运动速度确定所述当前图像帧对应的平滑相机姿态数据。
其中,当前相机运动速度是指拍摄当前图像帧的相机运动速度,本实施例中通过对相机姿态数据序列中的各四元数进行拟合,具体而言,对各四元数的每个通道(即关系式(1)中的w、x、y、z)分别进行拟合,可以得到每个通道对应的拟合直线,本领域技术人员容易理解的是,每个通道对应的拟合直线的斜率就是当前图像帧的相机运动速度。
滑动平均处理是指对各时刻的当前相机运动速度进行加权迭代处理的过程,通过滑动平均处理可以使确定的各时刻当前相机运动速度变化更加平滑,平滑相机运动速度是指对当前时刻的当前相机运动速度进行滑动平均处理后得到的相机运动速度,平滑相机运动速度相比于当前相机运动速度,可以使调整后的视频更加平滑流畅。
举例而言,假设当前图像帧的当前相机姿态数据为四元数qi,当前图像帧之后连续多个图像帧对应的相机姿态数据为四元数qi+1、四元数qi+2······四元数qi+m-1,那么相机姿态数据序列可以表示为:
Figure BDA0003359345240000121
然后可以对
Figure BDA0003359345240000122
中各四元数的每个通道进行拟合,拟合得到的直线可以表示为关系式(2):
Figure BDA0003359345240000123
其中,w、x、y、z可以分别表示四元数的四个通道值,
Figure BDA0003359345240000124
可以分别表示拟合得到的拟合直线的斜率,/>
Figure BDA0003359345240000125
可以表示当前相机运动速度,
Figure BDA0003359345240000126
可以分别表示拟合得到的拟合直线的截距,为常数。
本示例实施例中继续对当前相机运动速度进行滑动平均处理,即对
Figure BDA0003359345240000127
Figure BDA0003359345240000128
进行滑动处理,滑动处理的过程可以表示为关系式(3):
Figure BDA0003359345240000129
/>
其中,
Figure BDA00033593452400001210
可以分别表示滑动平均后的斜率,/>
Figure BDA00033593452400001211
Figure BDA00033593452400001212
可以表示平滑相机运动速度,/>
Figure BDA00033593452400001213
可以表示上一时刻的平滑相机运动速度,σ可以表示预设的权重,例如,σ可以是0.95,也可以是0.9,具体σ的数值可以根据实际应用情况进行自定义设置,本示例实施例对此不做特殊限定。
在得到平滑相机运动速度
Figure BDA0003359345240000131
之后,可以通过该平滑相机运动速度预测当前图像帧的平滑相机姿态数据,例如,可以通过关系式(4)表示平滑相机姿态数据:
Figure BDA0003359345240000132
其中,q′可以表示当前时刻ti的平滑相机姿态数据,
Figure BDA0003359345240000133
Figure BDA0003359345240000134
可以分别表示平滑相机姿态数据q′的四个通道值,/>
Figure BDA0003359345240000135
Figure BDA0003359345240000136
可以分别表示上一时刻ti-1的平滑相机姿态数据的四个通道值。
当然,以上仅是示意性举例说明,并不应对本示例实施例造成任何特殊限定。
在一示例性实施例中,可以通过6中的步骤实现对匀速防抖后的当前图像帧的裁切,以保证匀速防抖后的当前图像帧的显示完整性,参考图6所示,具体可以包括:
步骤S610,获取预设的裁切比例,并根据所述裁切比例确定所述平滑相机姿态数据代表的平滑相机姿态下的裁切区域;
步骤S620,检测所述裁切区域是否在所述当前图像帧内;
步骤S630,若所述裁切区域不在所述当前图像帧内,则确定所述平滑相机姿态存在撞限位现象,并对所述平滑相机姿态数据进行更新;
步骤S640,若所述裁切区域在所述当前图像帧内,则确定所述平滑相机姿态不存在撞限位现象,并根据所述裁切区域对匀速防抖后的当前图像帧进行裁切并输出。
其中,裁切比例是指预先设置的、用于对调整后的当前图像帧进行裁切的数据,通过预设的裁切比例对调整后的当前图像帧进行裁切,可以保证最终输出的当前图像帧显示内容的完整,裁切比例可以根据当前图像帧的尺寸大小确定,也可以设置固定的裁切比例,本示例实施例对此不做特殊限定。
裁切区域是指根据裁切比例确定的、平滑相机姿态下需要对当前图像帧进行裁切输出的区域。
在本公开中定义撞限位现象为,在某些运动变化较为剧烈的拍摄场景中,对当前相机姿态进行调整后得到的新图像帧的某些区域不是原图像帧的成像范围。出现撞限位现象时无法根据当前图像帧转换得到调整后的相机姿态对应的新图像帧,因此,需要避免撞限位现象。
若检测到裁切区域不在当前图像帧内,则可以认为平滑相机姿态下的新图像帧的某些区域不是当前图像帧的成像范围,此时无法根据当前图像帧得到合适的新图像帧,即确定平滑相机姿态数据代表的平滑相机姿态存在撞限位现象,需要重新确定平滑相机姿态。
若检测到裁切区域在当前图像帧内,则可以认为平滑相机姿态下的新图像帧的内容区域在当前图像帧的成像范围内,可以根据当前图像帧得到平滑相机姿态下的新图像帧,即确定平滑相机姿态数据代表的平滑相机姿态不存在撞限位现象,可以继续根据裁切区域对匀速防抖后的当前图像帧进行裁切并输出,得到具有完整显示的新图像帧,即匀速防抖处理后的图像帧。
通过设置撞限位现象的检测,可以及时发现不合理的相机姿态调整,保证输出结果的准确性以及完整性,减少输出视频的突变现象,进一步提升匀速输出后的视频的平滑性,提升视频质量。
在一示例性实施例中,步骤S630可以包括步骤S710至步骤S740,实现对平滑相机姿态数据的更新,参考图7所示,具体可以包括:
步骤S710,对所述当前图像帧之后多个图像帧进行逐帧分析,直到检测到存在撞限位现象的目标图像帧;
步骤S720,以所述目标图像帧的原始相机姿态和原始平滑相机姿态为端点进行二分查找,确定不存在撞限位现象的临界平滑相机姿态;
步骤S730,根据所述临界平滑相机姿态更新所述当前图像帧对应的平滑相机运动速度;
步骤S740,通过更新后的平滑相机运动速度确定所述当前图像帧对应的平滑相机姿态数据,得到更新后的平滑相机姿态数据。
其中,目标图像帧是指当前图像帧之后多个图像帧中存在撞限位现象的图像帧,原始相机姿态是指目标图像帧对应的原始相机姿态数据代表的相机姿态,原始平滑相机姿态是指原始相机姿态数据计算得到的原始平滑相机姿态数据代表的相机姿态,可以通过关系式(1)计算目标图像帧对应的原始相机姿态数据,可以通过关系式(2)、关系式(3)、关系式(4)计算原始平滑相机姿态数据,具体计算过程参考前述实施例,此处不再赘述。
临界平滑相机姿态是指原始相机姿态与原始平滑相机姿态之间刚好不存在撞限位现象的相机姿态,具体可以将目标图像帧的原始相机姿态和原始平滑相机姿态作为二分法的两个端点进行二分查找,直到找到临界平滑相机姿态。
由于当前图像帧对应的平滑相机姿态存在撞限位现象,说明此时计算得到的平滑相机姿态数据不适用于对当前图像帧的匀速处理,因此需要进行更新调整。为了保证更新后的平滑相机姿态数据明确不会出现撞限位现象,本示例实施例中不仅仅判断当前图像帧帧是否存在撞限位现象,而且判断以当前运动趋势未来的图像帧(即当前图像帧之后多个图像帧)是否存在撞限位现象,如果未来的图像帧中存在撞限位现象,则可以提前对相机运动速度做出调整,即对平滑相机姿态数据进行更新,使相机的速度变化更加均匀。
可以根据临界平滑相机姿态更新当前图像帧对应的平滑相机运动速度,例如,可以通过关系式(5)和关系式(6)实现对平滑相机运动速度的更新:
Figure BDA0003359345240000151
Figure BDA0003359345240000152
其中,Δw、Δx、Δy、Δz可以表示用于更新当前图像帧对应的平滑相机运动速度的中间参数,
Figure BDA0003359345240000153
可以表示临界平滑相机姿态对应的四元数的四个通道值,/>
Figure BDA0003359345240000154
可以表示当前时刻t的上一时刻图像帧的相机姿态对应的四元数的四个通道值,ti+c可以表示临界平滑相机姿态对应的时刻,ti-1可以表示当前时刻t的上一时刻。/>
Figure BDA0003359345240000161
可以表示更新后的平滑相机运动速度,
Figure BDA0003359345240000162
可以表示上一时刻的平滑相机运动速度,ε可以表示预先设置的权重数据,例如,ε可以是0.9,也可以是0.8,具体数值可以根据实际应用情况进行自定义设置,本示例实施例对此不做特殊限定。
可以通过关系式(5)和关系式(6)计算得到更新后的平滑相机运动速度,进而可以根据该更新后的平滑相机运动速度以及关系式(4)重新确定当前图像帧对应的平滑相机姿态数据,得到更新后的平滑相机姿态数据。
通过检测未来的图像帧是否存在撞限位现象,并通过确定未来图像帧的临界平滑相机姿态,返回更新调整当前图像帧的平滑相机姿态数据,能够进一步保证当前图像帧以及未来图像帧不会出现撞限位现象,有效提升视频进行匀速后的准确性,使相机运动速度更加平滑,提升匀速输出视频的显示质量。
进一步的,在确定更新后的平滑相机姿态数据之后,可以继续通过图8所示的步骤对更新后的平滑相机姿态数据进行检测,参考图8所示,具体可以包括:
步骤S810,检测更新后的平滑相机姿态数据是否存在撞限位现象;
步骤S820,若所述更新后的平滑相机姿态数据存在撞限位现象,则以所述当前相机姿态和所述更新后的平滑相机姿态为端点进行二分查找,确定不存在撞限位现象的目标平滑相机姿态;
步骤S830,将所述目标平滑相机姿态对应的相机姿态数据作为更新后的平滑相机姿态数据。
其中,目标平滑相机姿态是指当前图像帧的当前相机姿态与更新后的平滑相机姿态数据代表的平滑相机姿态之间通过二分法查找到的刚好不存在撞限位现象的相机姿态。
下面以图像帧Ii+c为例,对本示例实施例中的撞限位现象检测调整策略进行说明:
第一,对当前图像帧之后的连续多个图像帧{qi+c,qi+c+1,…,qi+m-1},通过关系式(2)进行直线拟合得到斜率ki+c
第二,根据斜率ki+c以及关系式(3)计算平滑相机运动速度li+c
第三,根据平滑相机运动速度li+c以及关系式(4)预测平滑相机姿态数据q′i+c
第四,判断q′i+c对应的相机姿态是否存在撞限位现象:若q′i+c对应的相机姿态不存在撞限位现象,则返回到第一步骤,继续判断下一图像帧Ii+c+1;若q′i+c对应的相机姿态存在撞限位现象,则继续执行第五步骤;
第五,以qi+c对应的相机姿态和q′i+c对应的相机姿态作为两个端点,使用二分查找的方法查找到刚好不存在撞限位现象的临界平滑相机姿态Hi+c,能够使用二分查找是因为qi+c不存在撞限位现象,q′i+c存在撞限位现象,那么Hi+c在qi+c和q′i+c之间;以及,通过Hi+c关系式(5)和关系式(6)更新平滑相机运动速度li
第六,使用更新后的平滑相机运动速度li和关系式(4)预测当前图像帧的平滑相机运动姿态数据,即更新后的平滑相机运动姿态q′i;继续判断更新后的平滑相机运动姿态q′i是否存在撞限位现象,若更新后的平滑相机运动姿态q′i存在撞限位现象,继续以当前相机运动姿态qi和q′i为两个端点使用二分查找的方法查找刚好不撞限位的目标平滑相机姿态Hi,并将目标平滑相机姿态对应的相机姿态数据作为更新后的平滑相机姿态数据,即令q′i=Hi,并结束退出当前的撞限位现象检测调整流程,后面的图像帧{qi+c+1,…,qi+m-1}不用再继续判断。
在一示例性实施例中,当前相机姿态数据可以包括当前四元数,平滑相机姿态数据可以包括平滑四元数,可以通过图9中的步骤实现基于当前相机姿态数据和平滑相机姿态数据对当前图像帧的匀速处理,参考图9所示,具体可以包括:
步骤S910,根据所述当前四元数的共轭四元数以及所述平滑四元数确定旋转四元数;
步骤S920,基于预设的投影方式将处于二维坐标系的所述当前视频图像转换投影到三维坐标系中得到投影坐标集合;
步骤S930,根据所述旋转四元数对所述投影坐标集合中的点进行旋转,得到匀速后的投影坐标集合;
步骤S940,将所述匀速后的投影坐标集合按照所述投影方式进行反投影,得到匀速防抖后的当前图像帧。
其中,旋转四元数是指基于当前四元数的共轭四元数以及平滑四元数确定得到的一种旋转关系,例如,假设当前四元数可以表示为qi,当前四元数的共轭四元数可以表示为
Figure BDA0003359345240000181
平滑四元数可以表示为q′i,那么旋转四元数可以是/>
Figure BDA0003359345240000182
预设的投影方式是指用于将处于二维坐标系的当前视频图像的像素坐标转换投影到三维坐标系的处理方式,例如,预设的投影方式可以是相机小孔成像模型,也可以是坐标转换矩阵,本示例实施例对此不做特殊限定。
举例而言,可以通过预设的投影方式,如通过相机小孔成像模型将2D平面图像投影到3D球面上,假设相机拍摄的2D平面图像上像素点坐标为(x,y),通过相机小孔成像模型反向投影到3D球面上对应的像素点坐标为(X,Y,Z),即投影坐标集合。然后对3D球面上的像素点坐标(X,Y,Z)使用旋转四元数
Figure BDA0003359345240000183
旋转到新的像素点坐标(X′,Y′,Z′),最后将旋转得到的3D球面上的像素点坐标(X′,Y′,Z′)通过相机小孔成像模型反投影回2D平面得到(x′,y′)。对2D的当前图像帧Ii上的每一个像素点使用如上轴角旋转方式旋转后可以得到的新的图像帧I′i,其中,I′i为q′i姿态对应的视频帧,即I′i为匀速防抖后的当前图像帧,然后按照裁切比例对I′i裁切后输出。
图10示意性示出本公开示例性实施例中一种实现匀速防抖的原理示意图。
参考图10所示,步骤S1010,通过预设的投影方式,如通过相机小孔成像模型将当前图像帧1001上的像素点坐标(x,y)投影到3D球面1002上得到像素点坐标为(X,Y,Z);
步骤S1020,通过计算得到的旋转四元数对3D球面1002上的像素点坐标为(X,Y,Z)进行空间旋转,得到3D球面1003上的新的像素点坐标(X′,Y′,Z′);
步骤S1030,将3D球面1003上的新的像素点坐标(X′,Y′,Z′)按照预设的投影方式如通过相机小孔成像模型,反投影得到像素点坐标(x′,y′),并通过新的像素点坐标(x′,y′)得到匀速防抖后的当前图像帧,并对匀速防抖后的当前图像帧进行裁切,得到最终输出的图像帧1004。
图11示意性示出本公开示例性实施例中一种将视频进行匀速显示的流程示意图。
参考图11所示,步骤S1110,对采集的惯性测量数据进行积分得到当前时刻的图像帧到未来时刻的多个图像帧的欧拉角;
步骤S1120,将欧拉角转换成四元数;
步骤S1130,对四元数各个通道进行直线拟合得到当前相机运动速度;
步骤S1140,对当前相机运动速度进行滑动平均处理得到平滑相机运动速度;
步骤S1150,根据平滑相机运动速度预测相机在当前时刻的平滑相机姿态;
步骤S1160,对平滑相机姿态进行撞限位现象检测,若存在撞限位现象,则通过撞限位现象检测调整策略对平滑相机姿态进行更新;
步骤S1170,基于当前相机姿态数据以及更新后的平滑相机姿态数据,对当前图像帧进行匀速处理得到匀速防抖后的当前图像帧;
步骤S1180,对匀速防抖后的当前图像帧的进行裁切并输出,并结束当前流程。
综上所述,本示例性实施方式中,获取当前图像帧以及当前图像帧对应的当前相机姿态数据,并可以根据当前相机姿态数据以及当前图像帧之后多个图像帧对应的相机姿态数据,构成相机姿态数据序列,进而可以通过相机姿态数据序列确定当前图像帧对应的平滑相机姿态数据,最后基于当前相机姿态数据和平滑相机姿态数据对当前图像帧进行匀速处理,得到匀速防抖后的当前图像帧。一方面,根据多帧的相机姿态数据,计算当前图像帧的平滑相机姿态数据,并通过平滑相机姿态数据实现对视频的匀速处理,处理结果不受相机的成像质量影响,有效降低误差,使处理结果更加稳定;另一方面,根据当前图像帧的当前相机姿态数据以及当前图像帧之后多个图像帧对应的相机姿态数据确定当前图像帧对应的平滑相机姿态数据,提升平滑相机姿态数据的准确性,并且保证整个处理过程中的匀速结果的平滑性与连贯性,提升匀速处理后的视频质量,提升用户使用体验。
需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
进一步的,参考图12所示,本示例的实施方式中还提供一种视频匀速显示装置1200,可以包括当前相机姿态获取模块1210、相机姿态序列构建模块1220、平滑相机姿态确定模块1230和图像帧匀速模块1240。
其中:
当前相机姿态获取模块1210用于获取当前图像帧以及所述当前图像帧对应的当前相机姿态数据;
相机姿态序列构建模块1220用于根据所述当前相机姿态数据,以及所述当前图像帧之后多个图像帧对应的相机姿态数据,构成相机姿态数据序列;
平滑相机姿态确定模块1230用于通过所述相机姿态数据序列确定所述当前图像帧对应的平滑相机姿态数据;
图像帧匀速模块1240用于基于所述当前相机姿态数据和所述平滑相机姿态数据对所述当前图像帧进行匀速处理,得到匀速防抖后的当前图像帧。
在一示例性实施例中,相机姿态数据可以包括用于描述相机姿态的四元数,平滑相机姿态确定模块1230可以用于:
通过对所述相机姿态数据序列中的各四元数进行拟合,确定当前相机运动速度;
对所述当前相机运动速度进行滑动平均处理,得到平滑相机运动速度;
根据所述平滑相机运动速度确定所述当前图像帧对应的平滑相机姿态数据。
在一示例性实施例中,当前相机姿态获取模块1210可以用于:
获取以当前相机姿态拍摄所述当前图像帧时采集的惯性测量数据,并根据所述惯性测量数据确定所述当前相机姿态的欧拉角;
对所述欧拉角进行转换得到所述当前相机姿态对应的四元数,并将所述四元数作为所述当前图像帧对应的当前相机姿态数据;以及
确定所述当前图像帧之后多个图像帧对应的相机姿态数据。
在一示例性实施例中,视频匀速显示装置1200可以包括裁切单元,该裁切单元可以用于:
获取预设的裁切比例,并根据所述裁切比例确定所述平滑相机姿态数据代表的平滑相机姿态下的裁切区域;
检测所述裁切区域是否在所述当前图像帧内;
若所述裁切区域不在所述当前图像帧内,则确定所述平滑相机姿态存在撞限位现象,并对所述平滑相机姿态数据进行更新;
若所述裁切区域在所述当前图像帧内,则确定所述平滑相机姿态不存在撞限位现象,并根据所述裁切区域对匀速防抖后的当前图像帧进行裁切并输出。
在一示例性实施例中,裁切单元还可以用于:
对所述当前图像帧之后多个图像帧进行逐帧分析,直到检测到存在撞限位现象的目标图像帧;
以所述目标图像帧的原始相机姿态和原始平滑相机姿态为端点进行二分查找,确定不存在撞限位现象的临界平滑相机姿态;
根据所述临界平滑相机姿态更新所述当前图像帧对应的平滑相机运动速度;
通过更新后的平滑相机运动速度确定所述当前图像帧对应的平滑相机姿态数据,得到更新后的平滑相机姿态数据。
在一示例性实施例中,裁切单元还可以用于:
检测更新后的平滑相机姿态数据是否存在撞限位现象;
若所述更新后的平滑相机姿态数据存在撞限位现象,则以所述当前相机姿态和所述更新后的平滑相机姿态为端点进行二分查找,确定不存在撞限位现象的目标平滑相机姿态;
将所述目标平滑相机姿态对应的相机姿态数据作为更新后的平滑相机姿态数据。
在一示例性实施例中,当前相机姿态数据可以包括当前四元数,平滑相机姿态数据可以包括平滑四元数;图像帧匀速模块1240还可以用于:
根据所述当前四元数的共轭四元数以及所述平滑四元数确定旋转四元数;
基于预设的投影方式将处于二维坐标系的所述当前视频图像转换投影到三维坐标系中得到投影坐标集合;
根据所述旋转四元数对所述投影坐标集合中的点进行旋转,得到匀速后的投影坐标集合;
将所述匀速后的投影坐标集合按照所述投影方式进行反投影,得到匀速防抖后的当前图像帧。
上述装置中各模块的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
此外,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (10)

1.一种视频匀速显示方法,其特征在于,包括:
获取当前图像帧以及所述当前图像帧对应的当前相机姿态数据;
根据所述当前相机姿态数据,以及所述当前图像帧之后多个图像帧对应的相机姿态数据,构成相机姿态数据序列;
通过所述相机姿态数据序列确定所述当前图像帧对应的平滑相机姿态数据;
基于所述当前相机姿态数据和所述平滑相机姿态数据对所述当前图像帧进行匀速处理,得到匀速防抖后的当前图像帧。
2.根据权利要求1所述的方法,其特征在于,所述相机姿态数据包括用于描述相机姿态的四元数,所述通过所述相机姿态数据序列确定所述当前图像帧对应的平滑相机姿态数据,包括:
通过对所述相机姿态数据序列中的各四元数进行拟合,确定当前相机运动速度;
对所述当前相机运动速度进行滑动平均处理,得到平滑相机运动速度;
根据所述平滑相机运动速度确定所述当前图像帧对应的平滑相机姿态数据。
3.根据权利要求2所述的方法,其特征在于,所述获取所述当前图像帧对应的当前相机姿态数据,包括:
获取以当前相机姿态拍摄所述当前图像帧时采集的惯性测量数据,并根据所述惯性测量数据确定所述当前相机姿态的欧拉角;
对所述欧拉角进行转换得到所述当前相机姿态对应的四元数,并将所述四元数作为所述当前图像帧对应的当前相机姿态数据;以及
确定所述当前图像帧之后多个图像帧对应的相机姿态数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取预设的裁切比例,并根据所述裁切比例确定所述平滑相机姿态数据代表的平滑相机姿态下的裁切区域;
检测所述裁切区域是否在所述当前图像帧内;
若所述裁切区域不在所述当前图像帧内,则确定所述平滑相机姿态存在撞限位现象,并对所述平滑相机姿态数据进行更新;
若所述裁切区域在所述当前图像帧内,则确定所述平滑相机姿态不存在撞限位现象,并根据所述裁切区域对匀速防抖后的当前图像帧进行裁切并输出。
5.根据权利要求4所述的方法,其特征在于,所述对所述平滑相机姿态数据进行更新,包括:
对所述当前图像帧之后多个图像帧进行逐帧分析,直到检测到存在撞限位现象的目标图像帧;
以所述目标图像帧的原始相机姿态和原始平滑相机姿态为端点进行二分查找,确定不存在撞限位现象的临界平滑相机姿态;
根据所述临界平滑相机姿态更新所述当前图像帧对应的平滑相机运动速度;
通过更新后的平滑相机运动速度确定所述当前图像帧对应的平滑相机姿态数据,得到更新后的平滑相机姿态数据。
6.根据权利要求5所述的方法,其特征在于,所述对所述平滑相机姿态数据进行更新,包括:
检测更新后的平滑相机姿态数据是否存在撞限位现象;
若所述更新后的平滑相机姿态数据存在撞限位现象,则以所述当前相机姿态和所述更新后的平滑相机姿态为端点进行二分查找,确定不存在撞限位现象的目标平滑相机姿态;
将所述目标平滑相机姿态对应的相机姿态数据作为更新后的平滑相机姿态数据。
7.根据权利要求1所述的方法,其特征在于,所述当前相机姿态数据包括当前四元数,所述平滑相机姿态数据包括平滑四元数;
所述基于所述当前相机姿态数据和所述平滑相机姿态数据对所述当前图像帧进行匀速处理,得到匀速防抖后的当前图像帧,包括:
根据所述当前四元数的共轭四元数以及所述平滑四元数确定旋转四元数;
基于预设的投影方式将处于二维坐标系的所述当前视频图像转换投影到三维坐标系中得到投影坐标集合;
根据所述旋转四元数对所述投影坐标集合中的点进行旋转,得到匀速后的投影坐标集合;
将所述匀速后的投影坐标集合按照所述投影方式进行反投影,得到匀速防抖后的当前图像帧。
8.一种视频匀速显示装置,其特征在于,包括:
当前相机姿态获取模块,用于获取当前图像帧以及所述当前图像帧对应的当前相机姿态数据;
相机姿态序列构建模块,用于根据所述当前相机姿态数据,以及所述当前图像帧之后多个图像帧对应的相机姿态数据,构成相机姿态数据序列;
平滑相机姿态确定模块,用于通过所述相机姿态数据序列确定所述当前图像帧对应的平滑相机姿态数据;
图像帧匀速模块,用于基于所述当前相机姿态数据和所述平滑相机姿态数据对所述当前图像帧进行匀速处理,得到匀速防抖后的当前图像帧。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7任一项所述的方法。
CN202111362221.XA 2021-11-17 2021-11-17 视频匀速显示方法及装置、计算机可读介质和电子设备 Pending CN116137666A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111362221.XA CN116137666A (zh) 2021-11-17 2021-11-17 视频匀速显示方法及装置、计算机可读介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111362221.XA CN116137666A (zh) 2021-11-17 2021-11-17 视频匀速显示方法及装置、计算机可读介质和电子设备

Publications (1)

Publication Number Publication Date
CN116137666A true CN116137666A (zh) 2023-05-19

Family

ID=86326780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111362221.XA Pending CN116137666A (zh) 2021-11-17 2021-11-17 视频匀速显示方法及装置、计算机可读介质和电子设备

Country Status (1)

Country Link
CN (1) CN116137666A (zh)

Similar Documents

Publication Publication Date Title
CN110555883B (zh) 相机姿态追踪过程的重定位方法、装置及存储介质
CN108596827B (zh) 三维人脸模型生成方法、装置及电子设备
CN110059652B (zh) 人脸图像处理方法、装置及存储介质
CN111246095B (zh) 控制镜头运动的方法、装置、设备及存储介质
WO2021184952A1 (zh) 增强现实处理方法及装置、存储介质和电子设备
WO2021244140A1 (zh) 物体测量、虚拟对象处理方法及装置、介质和电子设备
US11776209B2 (en) Image processing method and apparatus, electronic device, and storage medium
WO2022007627A1 (zh) 一种图像特效的实现方法、装置、电子设备及存储介质
CN111866483B (zh) 颜色还原方法及装置、计算机可读介质和电子设备
WO2023138560A1 (zh) 风格化图像生成方法、装置、电子设备及存储介质
CN112927362A (zh) 地图重建方法及装置、计算机可读介质和电子设备
CN112270754A (zh) 局部网格地图构建方法及装置、可读介质和电子设备
CN115690382B (zh) 深度学习模型的训练方法、生成全景图的方法和装置
CN111432245B (zh) 多媒体信息的播放控制方法、装置、设备及存储介质
CN113289327A (zh) 移动终端的显示控制方法及装置、存储介质及电子设备
CN112581358A (zh) 图像处理模型的训练方法、图像处理方法及装置
WO2019000464A1 (zh) 一种图像显示方法、装置、存储介质和终端
CN113038010B (zh) 视频处理方法、视频处理装置、存储介质与电子设备
CN110363132B (zh) 活体检测方法、装置、电子设备及存储介质
CN112354185A (zh) 云游戏控制系统和云游戏控制方法
WO2023109564A1 (zh) 视频图像处理方法、装置、电子设备及存储介质
CN111385481A (zh) 图像处理方法及装置、电子设备及存储介质
CN116137025A (zh) 视频图像矫正方法及装置、计算机可读介质和电子设备
CN116137666A (zh) 视频匀速显示方法及装置、计算机可读介质和电子设备
CN111982293B (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