CN113766119A - 虚拟形象显示方法、装置、终端及存储介质 - Google Patents
虚拟形象显示方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN113766119A CN113766119A CN202110512971.4A CN202110512971A CN113766119A CN 113766119 A CN113766119 A CN 113766119A CN 202110512971 A CN202110512971 A CN 202110512971A CN 113766119 A CN113766119 A CN 113766119A
- Authority
- CN
- China
- Prior art keywords
- timestamp
- video frame
- data
- camera
- application program
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 230000008569 process Effects 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 24
- 238000005259 measurement Methods 0.000 claims description 5
- 238000009877 rendering Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 12
- 230000001133 acceleration Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 241000282326 Felis catus Species 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/265—Mixing
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请提供了一种虚拟形象显示方法、装置、终端及存储介质,属于计算机技术领域。方法包括:通过应用程序,获取SurfaceText输出的目标视频帧,目标视频帧是对摄像机当前采集的原始视频帧进行处理得到的;通过应用程序,调用SurfaceText的getTimeStamp,获取第一时间戳,第一时间戳用于表示SurfaceText处理得到目标视频帧的时间点;通过应用程序,确定摄像机在第一时间戳对应的姿态数据,并基于姿态数据确定目标视频帧中的目标位置,将虚拟形象显示在目标位置。通过上述方法能够缓解摄像机在移动过程中采集视频的情况下,视频中的虚拟形象的抖动程度,从而提高虚拟形象的显示效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种虚拟形象显示方法、装置、终端及存储介质。
背景技术
增强现实(Augmented Reality,AR)能够借助计算机图形技术和可视化技术构建现实环境中不存在的虚拟形象,并将该虚拟形象融合到真实环境对应的视频中,将融合虚拟形象后的视频呈现给用户,来为用户提供一个感官效果真实的环境。在真实环境对应的视频中融入虚拟形象时,需要确定视频帧中用来显示虚拟形象的目标位置,将虚拟形象显示在该目标位置处。
相关技术中,摄像机采集视频帧后将视频帧传输至应用程序需要一段时间,导致应用程序获取视频帧的时间点与摄像机实际采集该视频帧的时间点之间的偏差较大,按照应用程序获取该视频帧的时间点对应的姿态数据来确定视频帧中的目标位置,则确定的目标位置的准确度低,从而导致摄像机在移动过程中采集视频的情况下,视频中的虚拟形象的抖动现象严重,显示效果较差。
发明内容
本申请实施例提供了一种虚拟形象显示方法、装置、终端及存储介质,能够缓解摄像机在移动过程中采集视频的情况下,视频中的虚拟形象的抖动程度,从而提高虚拟形象的显示效果。所述技术方案如下:
一方面,提供了一种虚拟形象显示方法,由终端执行,所述方法包括:
通过应用程序,获取视频帧处理组件SurfaceText输出的目标视频帧,所述目标视频帧是对摄像机当前采集的原始视频帧进行处理得到的;
通过所述应用程序,调用所述SurfaceText的时间戳获取接口getTimeStamp,获取第一时间戳,所述第一时间戳用于表示所述SurfaceText处理得到所述目标视频帧的时间点;
通过所述应用程序,确定所述摄像机在所述第一时间戳对应的姿态数据,并基于所述姿态数据确定所述目标视频帧中的目标位置,将虚拟形象显示在所述目标位置。
另一方面,提供了一种虚拟形象显示装置,所述装置包括:
视频帧获取模块,用于通过应用程序,获取视频帧处理组件SurfaceText输出的目标视频帧,所述目标视频帧是对摄像机当前采集的原始视频帧进行处理得到的;
时间戳获取模块,用于通过所述应用程序,调用所述SurfaceText的时间戳获取接口getTimeStamp,获取第一时间戳,所述第一时间戳用于表示所述SurfaceText处理得到所述目标视频帧的时间点;
虚拟形象显示模块,用于通过所述应用程序,确定所述摄像机在所述第一时间戳对应的姿态数据,并基于所述姿态数据确定所述目标视频帧中的目标位置,将虚拟形象显示在所述目标位置。
在一种可能的实现方式中,所述装置还包括:
接口调用模块,用于通过所述应用程序调用数据更新接口updateTextImage,触发所述SurfaceText对所述摄像机当前采集的所述原始视频帧进行处理,得到所述目标视频帧。
在一种可能的实现方式中,所述虚拟形象显示模块,包括:
数据获取单元,用于通过所述应用程序,获取视频采集过程中所述摄像机的多条姿态数据,以及每条姿态数据对应的第二时间戳,所述第二时间戳用于表示生成对应姿态数据的时间点;
数据选取单元,用于从多个第二时间戳中选取目标时间戳对应的姿态数据,所述目标时间戳为所述多个第二时间戳中与所述第一时间戳之间的偏差最小的第二时间戳;
数据确定单元,用于将选取的姿态数据确定为所述摄像机在所述第一时间戳对应的姿态数据。
在一种可能的实现方式中,所述数据获取单元,用于通过所述应用程序,从缓存池中获取多条惯性测量单元IMU数据以及每条IMU数据对应的第二时间戳;将所述多条IMU数据确定为所述摄像机的多条姿态数据;其中,所述缓存池用于存储所述视频采集过程中生成的IMU数据。
在一种可能的实现方式中,所述第一时间戳基于正常运行时钟Uptime标定,所述第二时间戳基于实时运行时钟ElapsedRealtime标定;
所述虚拟形象显示模块,还包括:
差值确定单元,用于获取所述视频采集过程中的任一时刻,所述ElapsedRealtime与所述Uptime的时间差值;
时间戳转化单元,用于基于所述时间差值,将所述第二时间戳转化为所述Uptime下的时间戳,或者,基于所述时间差值,将所述第一时间戳转化为所述ElapsedRealtime下的时间戳。
在一种可能的实现方式中,所述时间戳转化单元,用于将所述第二时间戳减去所述时间差值,得到所述Uptime下的所述第二时间戳。
在一种可能的实现方式中,所述时间戳转化单元,用于将所述第一时间戳加上所述时间差值,得到所述ElapsedRealtime下的所述第一时间戳。
在一种可能的实现方式中,所述虚拟形象显示模块,用于基于所述姿态数据,确定第一水平面在所述目标视频帧中对应的第二水平面,所述第一水平面为所述摄像机所拍摄的三维空间中的任一水平面;将所述虚拟形象显示在所述第二水平面上。
在一种可能的实现方式中,所述虚拟形象显示模块,还用于通过视频帧渲染组件GLSurfaceView将所述目标视频帧渲染在所述应用程序的拍摄界面中。
另一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述计算机程序由所述处理器加载并执行以实现上述任一种可能实现方式中的虚拟形象显示方法中执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现上述任一种可能实现方式中的虚拟形象显示方法中执行的操作。
再一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括计算机程序,所述计算机程序存储在计算机可读存储介质中。终端的处理器从所述计算机可读存储介质读取所述计算机程序,所述处理器执行所述计算机程序,使得所述终端执行上述各种可选实现方式中的虚拟形象显示方法中执行的操作。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,考虑到SurfaceText能够较早获取到摄像机采集的原始视频帧,因此,通过应用程序直接从SurfaceText获取目标视频帧,则避免了对目标视频帧进行一系列处理后传输至应用程序所带来的时间偏差,使得应用程序获取的第一时间戳与摄像机采集原始视频帧的时间戳之间的偏差较小,因此,摄像机在第一时间戳对应的姿态数据与摄像机实际采集原始视频帧时的姿态数据之间的偏差较小,因此,基于摄像机在第一时间戳对应的姿态数据确定视频帧中的目标位置的准确度高,能够缓解摄像机在移动过程中采集视频的情况下,视频中的虚拟形象的抖动程度,从而提高虚拟形象的显示效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种虚拟形象显示方法的流程图;
图3是本申请实施例提供的一种虚拟形象显示方法的流程图;
图4是本申请实施例提供的一种确定第一时间戳对应的姿态数据的过程示意图;
图5是本申请实施例提供的一种将第一时间戳和第二时间戳统一至同一标定时钟下的过程示意图;
图6是本申请实施例提供的一种为视频帧的产生过程的示意图;
图7是本申请实施例提供的一种融合虚拟形象后的目标视频帧;
图8是本申请实施例提供的一种虚拟形象显示装置的框图;
图9是本申请实施例提供的一种虚拟形象显示装置的框图;
图10是本申请实施例提供的一种终端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请所使用的术语“第一”、“第二”、“第三”、“第四”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一时间戳称为时间戳,且类似地,可将第二时间戳称为第一时间戳。
本申请所使用的术语“至少一个”、“多个”、“每个”、“任一”,至少一个包括一个、两个或两个以上,多个包括两个或两个以上,而每个是指对应的多个中的每一个,任一是指多个中的任意一个。举例来说,多个时间戳包括3个时间戳,而每个是指这3个时间戳中的每一个时间戳,任一是指这3个时间戳中的任意一个,可以是第一个,可以是第二个、也可以是第三个。
图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境包括终端101和服务器102。终端101和服务器102之间通过无线或者有线网络连接。可选地,终端101为智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、摄像机、照相机或者其他终端。可选地,服务器102是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式***,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端101上安装有由服务器102提供服务的应用程序,终端101能够通过该应用程序实现例如数据传输、消息交互等功能。可选地,应用程序为终端101操作***中的应用程序,或者为第三方提供的应用程序。该应用程序具有视频拍摄功能以及AR功能,例如,该应用程序能够在拍摄的视频帧中显示各种虚拟形象,当然,该应用程序还能够具有其他功能,本申请实施例对此不做限制。可选地,该应用程序为短视频应用、拍照应用、游戏应用、购物应用、聊天应用或者其他应用。本申请实施例中,服务器102用于为终端101提供虚拟形象,终端101用于采集视频,并在采集的视频中融合虚拟形象。
本申请中的虚拟形象显示方法能够应用在AR场景下。例如,用户从终端中的应用程序中选取喜欢的虚拟形象后,通过应用程序拍摄视频,则终端能够通过本申请提供的虚拟形象显示方法将用户选取的虚拟形象融合在当前拍摄的视频中。
图2是本申请实施例提供的一种虚拟形象显示方法的流程图。参见图2,该实施例包括:
201、终端通过应用程序,获取视频帧处理组件SurfaceText输出的目标视频帧,目标视频帧是对摄像机当前采集的原始视频帧进行处理得到的。
应用程序为终端中的任一应用程序,本申请实施例对此不做限制。SurfaceText是Android api 11(一种安卓***接口的版本)之后的版本支持的视频帧处理组件,SurfaceText能够作为视频或图像的输出载体,还能够作为视频或图像缓存的地方。SurfaceText在对视频或者图像处理时,处理的视频或者图像无需显示在终端的界面中。终端通过摄像机采集原始视频帧后,会将该原始视频帧传输至SurfaceText,SurfaceText会对摄像机采集的原始视频帧进行处理,得到目标视频帧。例如,原始视频帧为位图,SurfaceText将该位图转化成纹理图像,即目标视频帧。
202、终端通过应用程序,调用SurfaceText的时间戳获取接口getTimeStamp,获取第一时间戳,第一时间戳用于表示SurfaceText处理得到目标视频帧的时间点。
时间戳(timestamp)是一个字符序列,唯一地表示某一时间点。
getTimeStamp是一种时间戳获取接口,用来提供SurfaceText处理得到的最新视频帧的时间戳。由于目标视频帧是SurfaceText对摄像机当前采集的原始视频帧进行处理得到的,因此,目标视频帧即为SurfaceText处理得到的最新视频帧,相应的,调用getTimeStamp所得到的第一时间戳即为目标视频帧的时间戳,表示SurfaceText处理得到目标视频帧的时间点。
203、终端通过应用程序,确定摄像机在第一时间戳对应的姿态数据,并基于姿态数据确定目标视频帧中的目标位置,将虚拟形象显示在目标位置。
姿态数据表示摄像机的姿态。在拍摄视频的过程中,摄像机的姿态可能会发生变化,例如,终端旋转一定角度,导致摄像机姿态发生变化,而摄像机的姿态发生变化,可能导致采集的视频帧中的目标位置发生变化,因此,为了能够将虚拟形象显示在视频帧的目标位置处,需要基于摄像机在采集视频帧时的姿态数据,确定视频帧中的目标位置。其中,目标位置能够设置为任意位置,本申请实施例对此不做限制。
虚拟形象是指现实环境中不存在的,通过计算机技术所构建出来的虚拟的形象。从虚拟形象的类型来说,虚拟形象包括卡通形象的图像和实际形象的图像,例如,卡通形象为猫的卡通形象、人物的卡通形象或者其他卡通形象。实际形象的图像为实际的猫的图像、实际的人物的图像或者其他实际形象的图像。从虚拟形象的显示效果来说,虚拟形象包括动态的虚拟形象和静态的虚拟形象。从虚拟形象的来源来说,虚拟形象包括从服务器获取的虚拟形象和从终端本地获取的虚拟形象。
在本申请实施例中,考虑到SurfaceText能够较早获取到摄像机采集的原始视频帧,因此,通过应用程序直接从SurfaceText获取目标视频帧,则避免了对目标视频帧进行一系列处理后传输至应用程序所带来的时间偏差,使得应用程序获取的第一时间戳与摄像机采集原始视频帧的时间戳之间的偏差较小,因此,摄像机在第一时间戳对应的姿态数据与摄像机实际采集原始视频帧时的姿态数据之间的偏差较小,因此,基于摄像机在第一时间戳对应的姿态数据确定视频帧中的目标位置的准确度高,能够缓解摄像机在移动过程中采集视频的情况下,视频中的虚拟形象的抖动程度,从而提高虚拟形象的显示效果。
图3是本申请实施例提供的一种虚拟形象显示方法的流程图。参见图3,该实施例包括:
301、终端通过应用程序调用数据更新接口updateTextImage,触发视频帧处理组件SurfaceText对摄像机当前采集的原始视频帧进行处理,得到目标视频帧。
updateTextImage是一种数据更新接口,当updateTextImage被调用时,会触发SurfaceTexture获取最新的原始视频帧,即当前采集的原始视频帧,对该视频帧进行处理,得到目标视频帧。
可选地,SurfaceText对摄像机当前采集的原始视频帧进行处理,得到目标视频帧包括:SurfaceText将属于位图的原始视频帧转化成属于纹理图像的目标视频帧。
302、终端通过应用程序,获取SurfaceText输出的目标视频帧。
其中,目标视频帧是对摄像机当前采集的原始视频帧进行处理得到的。
303、终端通过应用程序,调用SurfaceText的时间戳获取接口getTimeStamp,获取第一时间戳,第一时间戳用于表示SurfaceText处理得到目标视频帧的时间点。
304、终端通过应用程序,确定摄像机在第一时间戳对应的姿态数据。
在一种可能的实现方式中,终端通过应用程序,确定摄像机在第一时间戳对应的姿态数据,包括:终端通过应用程序,获取视频采集过程中摄像机的多条姿态数据,以及每条姿态数据对应的第二时间戳;从多个第二时间戳中选取目标时间戳对应的姿态数据,将选取的姿态数据确定为摄像机在第一时间戳对应的姿态数据。其中,第二时间戳用于表示生成对应姿态数据的时间点。目标时间戳为多个第二时间戳中与第一时间戳之间的偏差最小的第二时间戳。
在本申请实施例中,从多条姿态数据中选取对应的第二时间戳与第一时间戳之间的偏差最小的姿态数据,将该姿态数据确定为摄像机在第一时间戳对应的姿态数据,则该姿态数据与摄像机实际采集视频帧时的姿态数据的偏差最小,如此能够保证基于该姿态数据确定的目标位置最准确,从而缓解摄像机在移动过程中采集视频的情况下,视频中的虚拟形象的抖动程度,提高虚拟形象的显示效果。
在一种可能的实现方式中,终端通过应用程序,获取视频采集过程中摄像机的多条姿态数据,以及每条姿态数据对应的第二时间戳,包括:终端通过应用程序,从缓存池中获取多条IMU(Inertial Measurement Unit,惯性测量单元)数据以及每条IMU数据对应的第二时间戳;将多条IMU数据确定为摄像机的多条姿态数据。
其中,缓存池用于存储视频采集过程中生成的IMU数据。终端在视频采集过程中,会通过终端中的IMU实时生成IMU数据以及IMU数据对应的第二时间戳,将生成的IMU数据以及IMU数据对应的第二时间戳一并存储到该缓存池中。后续终端能够直接从缓存池中获取IMU数据以及IMU数据对应的第二时间戳。可选地,终端中的IMU包括角速度传感器和加速度传感器。角速度传感器用于测量终端在三维空间中相对于某个坐标系的角速度,加速度传感器用于测量终端在三维空间中的三个坐标轴方向上的加速度。相应的,IMU数据包括某个时刻终端在三维空间中相对于某个坐标系的角速度和终端在三维空间中的三个坐标轴方向上的加速度。基于该角速度和该加速度能够确定出终端的姿态,而摄像机处于终端中,因此,该IMU数据能够作为摄像机的姿态数据。
在一种可能的实现方式中,第一时间戳基于正常运行时钟Uptime标定,第二时间戳基于实时运行时钟ElapsedRealtime标定。由于标定视频帧的时间戳的时钟为Uptime,标定姿态数据的时间戳的时钟为ElapsedRealtime,即标定视频帧的时间戳的时钟与标定姿态数据的时间戳的时钟不同,因此需要将标定视频帧的时钟与标定姿态数据的时钟进行统一,也即是,将视频帧对应的第一时间戳与姿态数据对应的第二时间戳的量纲进行统一。相应的,终端通过应用程序,从多个第二时间戳中选取目标时间戳对应的姿态数据之前,方法还包括:终端通过应用程序,获取视频采集过程中的任一时刻,ElapsedRealtime与Uptime的时间差值;基于时间差值,将第二时间戳转化为Uptime下的时间戳,或者,基于时间差值,将第一时间戳转化为ElapsedRealtime下的时间戳。
其中,Uptime(一种时钟)记录的是从***启动到当前时刻的过程中,***非休眠期的总时长。ElapsedRealtime(一种时钟)记录的是从***启动到当前时刻的总时长。在使用Android(一种操作***)***的终端中,存在部分终端基于Uptime来标定视频帧对应的时间戳,另一部分终端基于ElapsedRealtime来标定视频帧对应的时间戳,而使用Android***的所有终端都是基于ElapsedRealtime来标定姿态数据对应的第二时间戳。因此,存在第一时间戳与第二时间戳的量纲不统一的情况。另外,由于在视频采集过程中,终端并未处于休眠期,因此,ElapsedRealtime与Uptime的时间差值是个恒定值,因此,获取视频采集过程中任一时刻,ElapsedRealtime与Uptime的时间差值,则能够基于该时间差值对第一时间戳和第二时间戳进行量纲统一。
在本申请实施例中,考虑到视频帧对应的第一时间戳与姿态数据对应的第二时间戳的量纲不统一的情况,将第二时间戳转化为Uptime下的时间戳,或者将第一时间戳转化为ElapsedRealtime下的时间戳,以使第一时间戳与第二时间戳的量纲统一,在基于第二时间戳来确定摄像机在第一时间戳对应的姿态数据时,能够保证确定的姿态数据的准确性。
在一种可能的实现方式中,终端通过应用程序,基于时间差值,将第二时间戳转化为Uptime下的时间戳,包括:终端通过应用程序,将第二时间戳减去时间差值,得到Uptime下的第二时间戳。其中,该时间差值即为***启动到当前时刻的休眠期的总时长。
在本申请实施例中,由于ElapsedRealtime与Uptime的时间差值即为终端的***启动到当前时刻的休眠期的总时长,基于ElapsedRealtime标定的第二时间戳比基于Uptime标定的第一时间戳要多出该休眠期的总时长,因此,只需将第二时间戳减去该时间差值,则能够将第一时间戳和第二时间戳统一到ElapsedRealtime下,方法简单高效。
在一种可能的实现方式中,终端通过应用程序,基于时间差值,将第一时间戳转化为ElapsedRealtime下的时间戳,包括:终端通过应用程序,将第一时间戳加上时间差值,得到ElapsedRealtime下的第一时间戳。
在本申请实施例中,由于ElapsedRealtime与Uptime的时间差值即为终端的***启动到当前时刻的休眠期的总时长,基于ElapsedRealtime标定的第二时间戳比基于Uptime标定的第一时间戳要多出该休眠期的总时长,因此,只需将第一时间戳加上该时间差值,则能够将第一时间戳和第二时间戳统一到Uptime下,方法简单高效。
图4为确定第一时间戳对应的姿态数据的过程示意图。参考图4,图4中的两条时间轴分别对应视频帧标定时钟和IMU数据标定时钟,视频帧标定时钟用于标定视频帧对应的时间戳,IMU数据标定时钟用于标定IMU数据对应的时间戳。从图中能够看出,由于采集视频帧的频率与生成IMU数据的频率不同,例如,采集视频帧的频率为30次/s,而生成IMU数据的频率为200次/s,因此,视频帧与IMU数据并不是一一对应产生的,对于一个视频帧来说,需要从缓存池中的多条IMU数据中选取出与该视频帧最为匹配的一条IMU数据,即对应的第二时间戳与视频帧对应的第一时间戳之间的偏差最小一条IMU数据。
图5为将第一时间戳和第二时间戳统一至同一时钟下的过程示意图。参考图5,在获取到视频帧的第一时间戳之后,会判断标定第一时间戳的时钟是ElapsedRealtime还是Uptime,如果ElapsedRealtime,则无需进行时钟转化,如果是Uptime,则需要将第一时间戳加上ElapsedRealtime与Uptime之间的时间差值,以将第一时间戳转化为ElapsedRealtime下的第一时间戳。另外,将第一时间戳和第二时间戳统一至ElapsedRealtime下之后,确定视频帧的第一时间戳与该视频帧对应的姿态数据的第二时间戳之间的偏差,则该偏差能够客观反映标定的视频帧的时间戳的准确程度,并且能够量化视频中虚拟形象的抖动程度。
305、终端通过应用程序,基于姿态数据确定目标视频帧中的目标位置,将虚拟形象显示在目标位置。
在一种可能的实现方式中,该步骤包括:终端通过应用程序,基于姿态数据,确定第一水平面在目标视频帧中对应的第二水平面;将虚拟形象显示在第二水平面上,其中,第一水平面为摄像机所拍摄的三维空间中的任一水平面。
其中,第一水平面为应用程序随机从摄像机拍摄的三维空间中选取的一个水平面,或者,第一水平面是基于用户在应用程序的拍摄界面中的触发操作来确定的水平面。对于基于用户的触发操作来确定第一水平面的情况,终端通过应用程序获取到任一目标视频帧,且将该目标视频帧显示在拍摄界面中后,确定目标视频帧中触发的目标像素点;从摄像机拍摄的三维空间中确定该目标像素点对应的空间点,并确定该空间点所处的水平面,将该空间点所处的水平面确定为第一水平面。通过这种方法实现由用户来决定虚拟形象在视频中的显示位置,能够提升与用户间的互动效果。
在本申请实施例中,应用程序会获取到多个连续的目标视频帧,由于每个目标视频帧中的第二水平面是与三维空间中的第一水平面对应的,因此,将虚拟形象显示在每个目标视频帧中的第二水平面上,则能够保证视频中的虚拟形象始终处于三维空间中的一个固定的水平面上,而不会出现虚拟形象在视频中上下抖动的现象,从而保证虚拟形象的显示效果。
在一种可能的实现方式中,终端通过应用程序,调用SurfaceText的时间戳获取接口getTimeStamp,获取第一时间戳之后,方法还包括:终端通过视频帧渲染组件GLSurfaceView将目标视频帧渲染在应用程序的拍摄界面中。
其中,GLSurfaceView是一种视频帧渲染组件,终端通过SurfaceText对原始视频帧进行处理,得到目标视频帧之后,将目标视频帧传输至GLSurfaceView,通过GLSurfaceView将目标视频帧渲染在应用程序的拍摄界面,供用户进行预览。相应的,终端通过应用程序将虚拟形象显示在拍摄界面中的目标视频帧中的目标位置。此种情况下,用户在通过终端中的应用程序拍摄视频时,拍摄界面中的视频画面则为已经融合有虚拟形象的视频画面。
在本申请实施例中,终端通过getTimeStamp将目标视频帧对应的时间戳提供给应用程序之后,才通过GLSurfaceView,将目标视频帧渲染在应用程序的拍摄界面中,而不是在将目标视频帧渲染在拍摄界面之后,才通过应用程序标定目标视频帧的时间戳,如此使得应用程序获取到的目标视频帧的时间戳更加接近摄像机采集原始视频帧的时间戳,从而使得应用程序基于获取的时间戳所确定的姿态数据更加接近摄像机采集原始视频帧时的姿态数据,进而保证通过应用程序所确定的目标视频帧中目标位置的准确性。
图6为视频帧的产生过程的示意图。参考图6,首先由摄像机的驱动层来驱动摄像机的硬件层采集原始视频帧,然后***服务层将原始视频帧传输至应用层的SurfaceText,SurfaceText对原始视频帧处理得到目标视频帧,然后应用程序获取该目标视频帧,GLSurfaceView将目标视频帧渲染在应用程序的拍摄界面中,应用程序确定虚拟形象在目标视频帧中的目标位置后,将虚拟形象显示在拍摄界面中的目标视频帧中的目标位置。从视频帧的产生过程能够看出,视频帧真正产生的时刻是在摄像机的硬件层,因此,在应用层能够做的事情就是尽可能早地给视频帧标定时间戳,这样所标定出的时间戳更准确。本申请实施例中,通过分析Android原生相机的底层原理以及***层面的接口调用流程,提供了一种尽早标定视频帧的时间戳的方案,即从能够较早拿到视频帧且提供时间戳获取接口的SurfaceText来获取视频帧和视频帧对应的时间戳,而不是从onFrameAvailable(视频帧获取接口)来获取视频帧,基于从onFrameAvailable获取视频帧的时刻标定视频帧的时间戳。由于SurfaceText输出的视频帧还需要后续进一步的处理,才能传输至onFrameAvailable,因此SurfaceText获取视频帧的时刻要远早于onFrameAvailable,因此,SurfaceText处理得到目标视频帧的第一时间戳所表示的时间点更加接近摄像机采集原始视频帧的时间点,因此,第一时间戳对应的摄像机的姿态数据与摄像机实际采集原始视频帧时的姿态数据偏差较小,因此,基于该方法获取的姿态数据确定视频帧中的参考位置的准确度高,能够缓解摄像机在移动且采集视频的情况下,视频中的虚拟形象的抖动程度。
图7为融合虚拟形象后的目标视频帧。参考图7,视频帧中的虚拟形象为猫咪701,该猫咪701显示在真实环境中的桌面上。
需要说明的一点是,Android原生的Camera2(一种摄像机组件)提供有时间戳获取接口,用来提供采集原始视频帧的时间戳,然而市面上只有约40%的终端支持Camera2,大部分终端不支持Camera2,而只支持Camera1(一种摄像机组件)。由于Camera1并未提供用来获取采集原始视频帧的时间戳的接口,因此,对于这部分终端,能够采用本申请实施例提供的方法获取到较为准确的视频帧的时间戳,以缓解这部分终端在移动过程中采集视频时,视频中虚拟形象的抖动程度。另外,通过对100种类型的终端的实验结果分析,本申请实施例提供的虚拟形象显示方法能够缓解市面上97%的终端类型的虚拟形象的抖动程度,实现了97%的终端覆盖率。并且,本申请实施例中获取的视频帧的时间戳的平均误差在15ms左右,该误差不会影响应用程序确定视频帧中的目标位置,因此,本申请实施例提供的虚拟形象显示方法能够有效解决视频中虚拟形象的抖动问题。
在本申请实施例中,考虑到SurfaceText能够较早获取到摄像机采集的原始视频帧,因此,通过应用程序直接从SurfaceText获取目标视频帧,则避免了对目标视频帧进行一系列处理后传输至应用程序所带来的时间偏差,使得应用程序获取的第一时间戳与摄像机采集原始视频帧的时间戳之间的偏差较小,因此,摄像机在第一时间戳对应的姿态数据与摄像机实际采集原始视频帧时的姿态数据之间的偏差较小,因此,基于摄像机在第一时间戳对应的姿态数据确定视频帧中的目标位置的准确度高,能够缓解摄像机在移动过程中采集视频的情况下,视频中的虚拟形象的抖动程度,从而提高虚拟形象的显示效果。
在本申请实施例中,从多条姿态数据中选取对应的第二时间戳与第一时间戳之间的偏差最小的姿态数据,将该姿态数据确定为摄像机在第一时间戳对应的姿态数据,则该姿态数据与摄像机实际采集视频帧时的姿态数据的偏差最小,如此能够保证基于该姿态数据确定的目标位置最准确,从而缓解摄像机在移动过程中采集视频的情况下,视频中的虚拟形象的抖动程度,提高虚拟形象的显示效果。
在本申请实施例中,考虑到视频帧对应的第一时间戳与姿态数据对应的第二时间戳的量纲不统一的情况,将第二时间戳转化为Uptime下的时间戳,或者将第一时间戳转化为ElapsedRealtime下的时间戳,以使第一时间戳与第二时间戳的量纲统一,在基于第二时间戳来确定摄像机在第一时间戳对应的姿态数据时,能够保证确定的姿态数据的准确性。
在本申请实施例中,由于ElapsedRealtime与Uptime的时间差值即为终端的***启动到当前时刻的休眠期的总时长,基于ElapsedRealtime标定的第二时间戳比基于Uptime标定的第一时间戳要多出该休眠期的总时长,因此,只需将第二时间戳减去该时间差值,则能够将第一时间戳和第二时间戳统一到ElapsedRealtime下,方法简单高效。
在本申请实施例中,由于ElapsedRealtime与Uptime的时间差值即为终端的***启动到当前时刻的休眠期的总时长,基于ElapsedRealtime标定的第二时间戳比基于Uptime标定的第一时间戳要多出该休眠期的总时长,因此,只需将第一时间戳加上该时间差值,则能够将第一时间戳和第二时间戳统一到Uptime下,方法简单高效。
在本申请实施例中,应用程序会获取到多个连续的目标视频帧,由于每个目标视频帧中的第二水平面是与三维空间中的第一水平面对应的,因此,将虚拟形象显示在每个目标视频帧中的第二水平面上,则能够保证视频中的虚拟形象始终处于三维空间中的一个固定的水平面上,而不会出现虚拟形象在视频中上下抖动的现象,从而保证虚拟形象的显示效果。
在本申请实施例中,终端通过getTimeStamp将目标视频帧对应的时间戳提供给应用程序之后,才通过GLSurfaceView,将目标视频帧渲染在应用程序的拍摄界面中,而不是在将目标视频帧渲染在拍摄界面之后,才通过应用程序标定目标视频帧的时间戳,如此使得应用程序获取到的目标视频帧的时间戳更加接近摄像机采集原始视频帧的时间戳,从而使得应用程序基于获取的时间戳所确定的姿态数据更加接近摄像机采集原始视频帧时的姿态数据,进而保证通过应用程序所确定的目标视频帧中目标位置的准确性。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
图8是本申请实施例提供的一种虚拟形象显示装置的框图。参见图8,该实施例包括:
视频帧获取模块801,用于通过应用程序,获取视频帧处理组件SurfaceText输出的目标视频帧,目标视频帧是对摄像机当前采集的原始视频帧进行处理得到的;
时间戳获取模块802,用于通过应用程序,调用SurfaceText的时间戳获取接口getTimeStamp,获取第一时间戳,第一时间戳用于表示SurfaceText处理得到目标视频帧的时间点;
虚拟形象显示模块803,用于通过应用程序,确定摄像机在第一时间戳对应的姿态数据,并基于姿态数据确定目标视频帧中的目标位置,将虚拟形象显示在目标位置。
在一种可能的实现方式中,参见图9,装置还包括:
接口调用模块804,用于通过应用程序调用数据更新接口updateTextImage,触发SurfaceText对摄像机当前采集的原始视频帧进行处理,得到目标视频帧。
在一种可能的实现方式中,参见图9,虚拟形象显示模块803,包括:
数据获取单元8031,用于通过应用程序,获取视频采集过程中摄像机的多条姿态数据,以及每条姿态数据对应的第二时间戳,第二时间戳用于表示生成对应姿态数据的时间点;
数据选取单元8032,用于从多个第二时间戳中选取目标时间戳对应的姿态数据,目标时间戳为多个第二时间戳中与第一时间戳之间的偏差最小的第二时间戳;
数据确定单元8033,用于将选取的姿态数据确定为摄像机在第一时间戳对应的姿态数据。
在一种可能的实现方式中,数据获取单元8031,用于通过应用程序,从缓存池中获取多条惯性测量单元IMU数据以及每条IMU数据对应的第二时间戳;将多条IMU数据确定为摄像机的多条姿态数据;其中,缓存池用于存储视频采集过程中生成的IMU数据。
在一种可能的实现方式中,第一时间戳基于正常运行时钟Uptime标定,第二时间戳基于实时运行时钟ElapsedRealtime标定;
参见图9,虚拟形象显示模块803,还包括:
差值确定单元8034,用于获取视频采集过程中的任一时刻,ElapsedRealtime与Uptime的时间差值;
时间戳转化单元8035,用于基于时间差值,将第二时间戳转化为Uptime下的时间戳,或者,基于时间差值,将第一时间戳转化为ElapsedRealtime下的时间戳。
在一种可能的实现方式中,时间戳转化单元8035,用于将第二时间戳减去时间差值,得到Uptime下的第二时间戳。
在一种可能的实现方式中,时间戳转化单元8035,用于将第一时间戳加上时间差值,得到ElapsedRealtime下的第一时间戳。
在一种可能的实现方式中,虚拟形象显示模块803,用于基于姿态数据,确定第一水平面在目标视频帧中对应的第二水平面,第一水平面为摄像机所拍摄的三维空间中的任一水平面;将虚拟形象显示在第二水平面上。
在一种可能的实现方式中,虚拟形象显示模块803,还用于通过视频帧渲染组件GLSurfaceView将目标视频帧渲染在应用程序的拍摄界面中。
需要说明的是:上述实施例提供的虚拟形象显示装置在显示虚拟形象时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟形象显示装置与虚拟形象显示方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图10示出了本申请一个示例性实施例提供的终端1000的结构框图。该终端1000可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1000还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
终端1000包括有:处理器1001和存储器1002。
处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器1001所执行以实现本申请中方法实施例提供的虚拟形象显示方法。
在一种可能的实现方式中,终端1000还可选包括有:***设备接口1003和至少一个***设备。处理器1001、存储器1002和***设备接口1003之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口1003相连。具体地,***设备包括:显示屏1004、摄像头组件1005和电源1006中的至少一种。
***设备接口1003可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和***设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和***设备接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
显示屏1004用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1004是触摸显示屏时,显示屏1004还具有采集在显示屏1004的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。此时,显示屏1004还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1004可以为一个,设置终端1000的前面板;在另一些实施例中,显示屏1004可以为至少两个,分别设置在终端1000的不同表面或呈折叠设计;在另一些实施例中,显示屏1004可以是柔性显示屏,设置在终端1000的弯曲表面上或折叠面上。甚至,显示屏1004还可以设置成非矩形的不规则图形,也即异形屏。显示屏1004可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1005用于采集图像或视频。可选地,摄像头组件1005包括前置摄像头和后置摄像头。前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1005还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
电源1006用于为终端1000中的各个组件进行供电。电源1006可以是交流电、直流电、一次性电池或可充电电池。当电源1006包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1000还包括有一个或多个传感器1010。该一个或多个传感器1010包括但不限于:加速度传感器1007、陀螺仪传感器1008、压力传感器1009、光学传感器1010。
加速度传感器1007可以检测以终端1000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1007可以用于检测重力加速度在三个坐标轴上的分量。处理器1001可以根据加速度传感器1007采集的重力加速度信号,控制显示屏1004以横向视图或纵向视图进行用户界面的显示。加速度传感器1007还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1008可以检测终端1000的机体方向及转动角度,陀螺仪传感器1008可以与加速度传感器1007协同采集用户对终端1000的3D动作。处理器1001根据陀螺仪传感器1008采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1009可以设置在终端1000的侧边框和/或显示屏1004的下层。当压力传感器1009设置在终端1000的侧边框时,可以检测用户对终端1000的握持信号,由处理器1001根据压力传感器1009采集的握持信号进行左右手识别或快捷操作。当压力传感器1009设置在显示屏1004的下层时,由处理器1001根据用户对显示屏1004的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器1010用于采集环境光强度。在一个实施例中,处理器1001可以根据光学传感器1010采集的环境光强度,控制显示屏1004的显示亮度。具体地,当环境光强度较高时,调高显示屏1004的显示亮度;当环境光强度较低时,调低显示屏1004的显示亮度。在另一个实施例中,处理器1001还可以根据光学传感器1010采集的环境光强度,动态调整摄像头组件1005的拍摄参数。
本领域技术人员可以理解,图10中示出的结构并不构成对终端1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例的虚拟形象显示方法中执行的操作。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或该计算机程序包括计算机程序,该计算机程序存储在计算机可读存储介质中。终端的处理器从该计算机可读存储介质读取该计算机程序,该处理器执行该计算机程序,使得该终端执行上述各种可选实现方式中的虚拟形象显示方法中执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种虚拟形象显示方法,其特征在于,由终端执行,所述方法包括:
通过应用程序,获取视频帧处理组件SurfaceText输出的目标视频帧,所述目标视频帧是对摄像机当前采集的原始视频帧进行处理得到的;
通过所述应用程序,调用所述SurfaceText的时间戳获取接口getTimeStamp,获取第一时间戳,所述第一时间戳用于表示所述SurfaceText处理得到所述目标视频帧的时间点;
通过所述应用程序,确定所述摄像机在所述第一时间戳对应的姿态数据,并基于所述姿态数据确定所述目标视频帧中的目标位置,将虚拟形象显示在所述目标位置。
2.根据权利要求1所述的方法,其特征在于,所述通过应用程序,获取视频帧处理组件SurfaceText输出的目标视频帧之前,所述方法还包括:
通过所述应用程序调用数据更新接口updateTextImage,触发所述SurfaceText对所述摄像机当前采集的所述原始视频帧进行处理,得到所述目标视频帧。
3.根据权利要求1所述的方法,其特征在于,所述通过所述应用程序,确定所述摄像机在所述第一时间戳对应的姿态数据,包括:
通过所述应用程序,获取视频采集过程中所述摄像机的多条姿态数据,以及每条姿态数据对应的第二时间戳,所述第二时间戳用于表示生成对应姿态数据的时间点;
从多个第二时间戳中选取目标时间戳对应的姿态数据,所述目标时间戳为所述多个第二时间戳中与所述第一时间戳之间的偏差最小的第二时间戳;
将选取的姿态数据确定为所述摄像机在所述第一时间戳对应的姿态数据。
4.根据权利要求3所述的方法,其特征在于,所述通过所述应用程序,获取视频采集过程中所述摄像机的多条姿态数据,以及每条姿态数据对应的第二时间戳,包括:
通过所述应用程序,从缓存池中获取多条惯性测量单元IMU数据以及每条IMU数据对应的第二时间戳;
将所述多条IMU数据确定为所述摄像机的多条姿态数据;
其中,所述缓存池用于存储所述视频采集过程中生成的IMU数据。
5.根据权利要求3所述的方法,其特征在于,所述第一时间戳基于正常运行时钟Uptime标定,所述第二时间戳基于实时运行时钟ElapsedRealtime标定;
所述从所述多个第二时间戳中选取目标时间戳对应的姿态数据之前,所述方法还包括:
获取所述视频采集过程中的任一时刻,所述ElapsedRealtime与所述Uptime的时间差值;
基于所述时间差值,将所述第二时间戳转化为所述Uptime下的时间戳,或者,基于所述时间差值,将所述第一时间戳转化为所述ElapsedRealtime下的时间戳。
6.根据权利要求5所述的方法,其特征在于,所述基于所述时间差值,将所述第二时间戳转化为所述Uptime下的时间戳,包括:
将所述第二时间戳减去所述时间差值,得到所述Uptime下的所述第二时间戳。
7.根据权利要求5所述的方法,其特征在于,所述基于所述时间差值,将所述第一时间戳转化为所述ElapsedRealtime下的时间戳,包括:
将所述第一时间戳加上所述时间差值,得到所述ElapsedRealtime下的所述第一时间戳。
8.根据权利要求1所述的方法,其特征在于,所述基于所述姿态数据确定所述目标视频帧中的目标位置,将虚拟形象显示在所述目标位置,包括:
基于所述姿态数据,确定第一水平面在所述目标视频帧中对应的第二水平面,所述第一水平面为所述摄像机所拍摄的三维空间中的任一水平面;
将所述虚拟形象显示在所述第二水平面上。
9.根据权利要求1所述的方法,其特征在于,所述通过所述应用程序,调用所述SurfaceText的时间戳获取接口getTimeStamp,获取第一时间戳之后,所述方法还包括:
通过视频帧渲染组件GLSurfaceView将所述目标视频帧渲染在所述应用程序的拍摄界面中。
10.一种虚拟形象显示装置,其特征在于,所述装置包括:
视频帧获取模块,用于通过应用程序,获取视频帧处理组件SurfaceText输出的目标视频帧,所述目标视频帧是对摄像机当前采集的原始视频帧进行处理得到的;
时间戳获取模块,用于通过所述应用程序,调用所述SurfaceText的时间戳获取接口getTimeStamp,获取第一时间戳,所述第一时间戳用于表示所述SurfaceText处理得到所述目标视频帧的时间点;
虚拟形象显示模块,用于通过所述应用程序,确定所述摄像机在所述第一时间戳对应的姿态数据,并基于所述姿态数据确定所述目标视频帧中的目标位置,将虚拟形象显示在所述目标位置。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
接口调用模块,用于通过所述应用程序调用数据更新接口updateTextImage,触发所述SurfaceText对所述摄像机当前采集的所述原始视频帧进行处理,得到所述目标视频帧。
12.根据权利要求10所述的装置,其特征在于,所述虚拟形象显示模块,包括:
数据获取单元,用于通过所述应用程序,获取视频采集过程中所述摄像机的多条姿态数据,以及每条姿态数据对应的第二时间戳,所述第二时间戳用于表示生成对应姿态数据的时间点;
数据选取单元,用于从多个第二时间戳中选取目标时间戳对应的姿态数据,所述目标时间戳为所述多个第二时间戳中与所述第一时间戳之间的偏差最小的第二时间戳;
数据确定单元,用于将选取的姿态数据确定为所述摄像机在所述第一时间戳对应的姿态数据。
13.根据权利要求12所述的装置,其特征在于,
所述数据获取单元,用于通过所述应用程序,从缓存池中获取多条惯性测量单元IMU数据以及每条IMU数据对应的第二时间戳;将所述多条IMU数据确定为所述摄像机的多条姿态数据;其中,所述缓存池用于存储所述视频采集过程中生成的IMU数据。
14.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至权利要求9任一项所述的虚拟形象显示方法所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至权利要求9任一项所述的虚拟形象显示方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110512971.4A CN113766119B (zh) | 2021-05-11 | 2021-05-11 | 虚拟形象显示方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110512971.4A CN113766119B (zh) | 2021-05-11 | 2021-05-11 | 虚拟形象显示方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113766119A true CN113766119A (zh) | 2021-12-07 |
CN113766119B CN113766119B (zh) | 2023-12-05 |
Family
ID=78787054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110512971.4A Active CN113766119B (zh) | 2021-05-11 | 2021-05-11 | 虚拟形象显示方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113766119B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103673990A (zh) * | 2012-09-13 | 2014-03-26 | 北京同步科技有限公司 | 获取摄像机姿态数据的装置及其方法 |
EP3301545A1 (en) * | 2016-09-30 | 2018-04-04 | Seiko Epson Corporation | Computer program, object tracking method, and display device |
CN108200334A (zh) * | 2017-12-28 | 2018-06-22 | 广东欧珀移动通信有限公司 | 图像拍摄方法、装置、存储介质及电子设备 |
DE102017011418A1 (de) * | 2017-12-11 | 2018-07-12 | Daimler Ag | Verfahren und Vorrichtung zum Anzeigen eines virtuellen Objekts |
CN108289220A (zh) * | 2018-01-15 | 2018-07-17 | 深圳市奥拓电子股份有限公司 | 虚拟图像处理方法、图像处理***及存储介质 |
CN109814710A (zh) * | 2018-12-27 | 2019-05-28 | 青岛小鸟看看科技有限公司 | 数据处理方法、装置及虚拟现实设备 |
US20190355170A1 (en) * | 2017-07-04 | 2019-11-21 | Tencent Technology (Shenzhen) Company Limited | Virtual reality content display method and apparatus |
WO2020038109A1 (zh) * | 2018-08-22 | 2020-02-27 | Oppo广东移动通信有限公司 | 拍照方法、装置、终端及计算机可读存储介质 |
CN110971930A (zh) * | 2019-12-19 | 2020-04-07 | 广州酷狗计算机科技有限公司 | 虚拟形象直播的方法、装置、终端及存储介质 |
US20200118342A1 (en) * | 2018-10-15 | 2020-04-16 | University Of Maryland, College Park | Methods and apparatuses for dynamic navigable 360 degree environments |
CN111131735A (zh) * | 2019-12-31 | 2020-05-08 | 歌尔股份有限公司 | 视频录制方法、视频播放方法、装置及计算机存储介质 |
US20200219267A1 (en) * | 2017-09-04 | 2020-07-09 | Universität Zürich | Visual-inertial odometry with an event camera |
CN111464749A (zh) * | 2020-05-07 | 2020-07-28 | 广州酷狗计算机科技有限公司 | 进行图像合成的方法、装置、设备及存储介质 |
CN111586360A (zh) * | 2020-05-14 | 2020-08-25 | 佳都新太科技股份有限公司 | 一种无人机投影方法、装置、设备及存储介质 |
CN111738220A (zh) * | 2020-07-27 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 三维人体姿态估计方法、装置、设备及介质 |
CN112333491A (zh) * | 2020-09-23 | 2021-02-05 | 字节跳动有限公司 | 视频处理方法、显示装置和存储介质 |
-
2021
- 2021-05-11 CN CN202110512971.4A patent/CN113766119B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103673990A (zh) * | 2012-09-13 | 2014-03-26 | 北京同步科技有限公司 | 获取摄像机姿态数据的装置及其方法 |
EP3301545A1 (en) * | 2016-09-30 | 2018-04-04 | Seiko Epson Corporation | Computer program, object tracking method, and display device |
US20190355170A1 (en) * | 2017-07-04 | 2019-11-21 | Tencent Technology (Shenzhen) Company Limited | Virtual reality content display method and apparatus |
US20200219267A1 (en) * | 2017-09-04 | 2020-07-09 | Universität Zürich | Visual-inertial odometry with an event camera |
DE102017011418A1 (de) * | 2017-12-11 | 2018-07-12 | Daimler Ag | Verfahren und Vorrichtung zum Anzeigen eines virtuellen Objekts |
CN108200334A (zh) * | 2017-12-28 | 2018-06-22 | 广东欧珀移动通信有限公司 | 图像拍摄方法、装置、存储介质及电子设备 |
CN108289220A (zh) * | 2018-01-15 | 2018-07-17 | 深圳市奥拓电子股份有限公司 | 虚拟图像处理方法、图像处理***及存储介质 |
WO2020038109A1 (zh) * | 2018-08-22 | 2020-02-27 | Oppo广东移动通信有限公司 | 拍照方法、装置、终端及计算机可读存储介质 |
US20200118342A1 (en) * | 2018-10-15 | 2020-04-16 | University Of Maryland, College Park | Methods and apparatuses for dynamic navigable 360 degree environments |
CN109814710A (zh) * | 2018-12-27 | 2019-05-28 | 青岛小鸟看看科技有限公司 | 数据处理方法、装置及虚拟现实设备 |
CN110971930A (zh) * | 2019-12-19 | 2020-04-07 | 广州酷狗计算机科技有限公司 | 虚拟形象直播的方法、装置、终端及存储介质 |
CN111131735A (zh) * | 2019-12-31 | 2020-05-08 | 歌尔股份有限公司 | 视频录制方法、视频播放方法、装置及计算机存储介质 |
CN111464749A (zh) * | 2020-05-07 | 2020-07-28 | 广州酷狗计算机科技有限公司 | 进行图像合成的方法、装置、设备及存储介质 |
CN111586360A (zh) * | 2020-05-14 | 2020-08-25 | 佳都新太科技股份有限公司 | 一种无人机投影方法、装置、设备及存储介质 |
CN111738220A (zh) * | 2020-07-27 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 三维人体姿态估计方法、装置、设备及介质 |
CN112333491A (zh) * | 2020-09-23 | 2021-02-05 | 字节跳动有限公司 | 视频处理方法、显示装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113766119B (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107509038B (zh) | 一种拍摄方法及移动终端 | |
CN110427110B (zh) | 一种直播方法、装置以及直播服务器 | |
KR20210113333A (ko) | 다수의 가상 캐릭터를 제어하는 방법, 기기, 장치 및 저장 매체 | |
CN110213153B (zh) | 未读消息的显示方法、获取方法、装置、终端及存储介质 | |
CN110362762B (zh) | 内容数据展示方法、装置、电子设备及存储介质 | |
KR20200123223A (ko) | 애플리케이션을 위한 디스플레이 적응 방법 및 장치, 디바이스, 및 저장 매체 | |
CN110032384B (zh) | 资源更新的方法、装置、设备及存储介质 | |
CN110196673B (zh) | 图片交互方法、装置、终端及存储介质 | |
CN112565911B (zh) | 弹幕显示方法、弹幕生成方法、装置、设备及存储介质 | |
CN111026992A (zh) | 多媒体资源预览方法、装置、终端、服务器及存储介质 | |
CN110839174A (zh) | 图像处理的方法、装置、计算机设备以及存储介质 | |
CN111949879A (zh) | 推送消息的方法、装置、电子设备及可读存储介质 | |
CN111368114A (zh) | 信息展示方法、装置、设备及存储介质 | |
CN110662105A (zh) | 动画文件的生成方法、装置及存储介质 | |
CN113384880A (zh) | 虚拟场景显示方法、装置、计算机设备及存储介质 | |
CN110968815B (zh) | 页面刷新方法、装置、终端及存储介质 | |
CN108317992A (zh) | 一种物距测量方法及终端设备 | |
CN110045958B (zh) | 纹理数据生成方法、装置、存储介质及设备 | |
CN114040113A (zh) | 图像处理方法及其装置 | |
CN113032590B (zh) | 特效展示方法、装置、计算机设备及计算机可读存储介质 | |
CN112770177B (zh) | 多媒体文件生成方法、多媒体文件发布方法及装置 | |
CN108492339B (zh) | 获取资源压缩包的方法、装置、电子设备及存储介质 | |
CN112023403B (zh) | 基于图文信息的对战过程展示方法及装置 | |
CN112181442B (zh) | 卸载页面显示方法、装置、终端、服务器及存储介质 | |
CN110971840A (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 |