CN109658514B - 一种数据处理方法、装置和计算机存储介质 - Google Patents

一种数据处理方法、装置和计算机存储介质 Download PDF

Info

Publication number
CN109658514B
CN109658514B CN201710940374.5A CN201710940374A CN109658514B CN 109658514 B CN109658514 B CN 109658514B CN 201710940374 A CN201710940374 A CN 201710940374A CN 109658514 B CN109658514 B CN 109658514B
Authority
CN
China
Prior art keywords
image data
thread
unit
calculation
attitude
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
CN201710940374.5A
Other languages
English (en)
Other versions
CN109658514A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710940374.5A priority Critical patent/CN109658514B/zh
Publication of CN109658514A publication Critical patent/CN109658514A/zh
Application granted granted Critical
Publication of CN109658514B publication Critical patent/CN109658514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Abstract

本发明实施例公开了一种数据处理方法、装置和计算机存储介质。所述方法包括:持续接收多帧图像数据;基于当前接收的图像数据计算终端的姿态参数;当所述姿态参数未计算完成时,丢弃所述图像数据后接收到的、待进行姿态参数计算的其他图像数据,直至所述姿态参数计算完成;当所述姿态参数计算完成时,按照所述姿态参数确定虚拟对象的姿态;检测到所述图像数据中包括预设目标对象,获得所述预设目标对象在所述图像数据中的位置,基于所述位置在所述图像数据中添加满足所述姿态的虚拟对象,绘制输出图像数据。

Description

一种数据处理方法、装置和计算机存储介质
技术领域
本发明涉及数据处理技术,具体涉及一种数据处理方法、装置和计算机存储介质。
背景技术
增强现实(AR,Augmented Reality)技术是一种将真实世界的信息和虚拟世界的信息结合的新技术,在展示真实世界的信息时,还可以将虚拟世界的信息进行展示。在呈现包含有真实世界的信息和虚拟世界的信息的图像的过程中,需要实时的计算相机姿态以及绘制图像,计算以及绘制的过程依赖于设备自身性能;若设备的性能较低,在耗费中央处理器(CPU)资源的计算过程以及耗费图形处理器(GPU)资源的绘制过程中,无法做到较好的同步,从而会导致绘制的虚拟对象有明显的延时,使得图像出现卡顿、拖尾的现象。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种数据处理方法、装置和计算机存储介质。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种数据处理方法,所述方法包括:
持续接收多帧图像数据;
基于当前接收的图像数据计算终端的姿态参数;所述姿态参数表征终端在空间中的相对姿态;
当所述姿态参数未计算完成时,丢弃所述图像数据后接收到的、待进行姿态参数计算的其他图像数据,直至所述姿态参数计算完成;
当所述姿态参数计算完成时,按照所述姿态参数确定待添加至输出图像数据中的虚拟对象的姿态;
检测到所述图像数据中包括预设目标对象,获得所述预设目标对象在所述图像数据中的位置,基于所述位置在所述图像数据中添加满足所述姿态的虚拟对象,绘制输出图像数据。
上述方案中,所述方法还包括:当所述姿态参数未计算完成时,基于当前接收的所述图像数据绘制输出图像数据。
上述方案中,所述基于所述图像数据计算终端的姿态参数,包括:
接收线程接收第一图像数据,在计算线程处于等待状态时将所述第一图像数据传输至计算线程;
所述计算线程基于所述第一图像数据计算终端的第一姿态参数。
上述方案中,当所述第一姿态参数计算完成时,按照所述姿态参数确定虚拟对象的姿态,包括:当所述计算线程计算完成所述第一姿态参数时,所述计算线程生成第一请求数据,发送所述第一请求数据至绘制线程;
所述绘制线程按照所述第一姿态参数确定所述虚拟对象的第一姿态。
上述方案中,所述当所述计算线程计算完成所述第一姿态参数时,所述方法还包括:
所述计算线程切换至等待状态;
所述接收线程接收到第二图像数据时,检测所述计算线程的状态;所述第二图像数据为在所述第一图像数据后接收到的图像数据;
当所述计算线程处于等待状态时,所述接收线程将所述第二图像数据传输至所述计算线程,以使所述计算线程基于所述第二图像数据计算终端的第二姿态参数。
上述方案中,所述方法还包括:所述计算线程基于所述接收线程接收到的第二图像数据计算终端的第二姿态参数;
当所述第二姿态参数未计算完成时,所述绘制线程在所述第二图像数据中添加满足所述第一姿态的虚拟对象,绘制包含有所述虚拟对象的输出图像数据。
上述方案中,所述检测到所述图像数据中包括预设目标对象,获得所述预设目标对象在所述图像数据中的位置,包括:
检测到所述图像数据中包括预设目标对象,识别所述预设目标对象在所述图像数据中的持续时长;当所述预设目标对象在所述图像数据中的持续时长达到预设时长时,获得所述预设目标对象在所述图像数据中的位置。
本发明实施例还提供了一种数据处理装置,所述装置包括:接收单元、计算单元、识别单元和绘制单元;其中,
所述接收单元,用于持续接收多帧图像数据;
所述计算单元,用于基于所述接收单元当前接收的图像数据计算终端的姿态参数;所述姿态参数表征终端在空间中的相对姿态;
所述接收单元,还用于当所述计算单元计算姿态参数未完成时,丢弃所述图像数据后接收到的、待进行姿态参数计算的其他图像数据,直至所述姿态参数计算完成;
所述识别单元,用于检测所述图像数据中是否包括预设目标对象;在所检测到所述图像数据中包括预设目标对象时,获得所述预设目标对象在所述图像数据中的位置;
所述绘制单元,用于当所述计算单元计算所述姿态参数完成时,按照所述姿态参数确定待添加至输出图像数据中的虚拟对象的姿态;基于所述识别单元获得的所述位置在所述图像数据中添加满足所述姿态的虚拟对象,绘制输出图像数据。
上述方案中,所述绘制单元,还用于当所述计算单元计算所述姿态参数未完成时,基于所述接收单元当前接收的图像数据绘制输出图像数据。
上述方案中,所述接收单元,用于持续接收多帧图像数据,将接收的多帧图像数据发送至所述绘制单元;还用于接收第一图像数据,在所述计算单元处于等待状态时将所述第一图像数据传输至所述计算单元;
所述计算单元,用于基于所述第一图像数据计算终端的第一姿态参数;还用于在所述第一姿态参数计算完成时,生成第一请求数据,发送所述第一请求数据至所述绘制单元;
所述绘制单元,用于基于所述第一请求数据,按照所述计算单元计算的所述第一姿态参数确定所述虚拟对象的第一姿态。
上述方案中,所述计算单元,还用于所述第一姿态参数计算完成时,切换至等待状态;
所述接收单元,还用于接收到第二图像数据时,检测所述计算单元的状态;所述第二图像数据为在所述第一图像数据后接收到的图像数据;当所述计算单元处于等待状态时,将所述第二图像数据传输至所述计算单元,以使所述计算单元基于所述第二图像数据计算终端的第二姿态参数。
上述方案中,所述计算单元,还用于基于所述接收单元接收的第二图像数据计算终端的第二姿态参数;
所述绘制单元,还用于当所述计算单元计算所述第二姿态参数未完成时,在所述第二图像数据中添加满足所述第一姿态的虚拟对象,绘制包含有所述虚拟对象的输出图像数据。
上述方案中,所述识别单元,用于检测到所述图像数据中包括预设目标对象,识别所述预设目标对象在所述图像数据中的持续时长;当所述预设目标对象在所述图像数据中的持续时长达到预设时长时,获得所述预设目标对象在所述图像数据中的位置。
本发明实施例还提供了一种计算机存储介质,其上存储有计算机指令,该指令被处理器执行时实现本发明实施例所述数据处理方法的步骤。
本发明实施例还提供了一种数据处理装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明实施例所述数据处理方法的步骤。
本发明实施例提供的数据处理方法、装置和计算机存储介质,所述方法包括:持续接收多帧图像数据;基于当前接收的图像数据计算终端的姿态参数;所述姿态参数表征终端在空间中的相对姿态;当所述姿态参数未计算完成时,丢弃所述图像数据后接收到的、待进行姿态参数计算的其他图像数据,直至所述姿态参数计算完成;当所述姿态参数计算完成时,按照所述姿态参数确定待添加至输出图像数据中的虚拟对象的姿态;检测到所述图像数据中包括预设目标对象,获得所述预设目标对象在所述图像数据中的位置,基于所述位置在所述图像数据中添加满足所述姿态的虚拟对象,绘制输出图像数据。采用本发明实施例的技术方案,在姿态参数未计算完成时丢弃在后接收到的、待进行姿态参数计算的图像数据,以避免由于计算姿态参数的时长不定,从而导致绘制与计算不同步、绘制的输出图像中虚拟对象的姿态与原本应与实际背景相匹配的实际姿态严重不匹配、绘制的输出图像中虚拟对象具有明显滞后的问题,从而实现了姿态参数的计算过程与输出图像数据的绘制过程的基本时间同步,解决了输出的图像出现卡顿、拖尾的问题,提升了用户的视觉体验。
附图说明
图1为本发明实施例的数据处理方法的一种流程示意图;
图2a和图2b分别为本发明实施例的数据处理方法的一种应用场景示意图;
图3为本发明实施例的数据处理方法的另一种流程示意图;
图4为本发明实施例的数据处理方法的一种时序处理流程示意图;
图5为本发明实施例的数据处理装置的一种组成结构示意图;
图6为本发明实施例的数据处理装置的一种硬件组成结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细的说明。
本发明实施例提供了一种数据处理方法。图1为本发明实施例的数据处理方法的一种流程示意图;如图1所示,所述数据处理方法包括:
步骤101:持续接收多帧图像数据。
步骤102:基于当前接收的图像数据计算终端的姿态参数,所述姿态参数表征终端在空间中的相对姿态。
步骤103:当所述姿态参数未计算完成时,丢弃所述图像数据后接收到的、待进行姿态参数计算的其他图像数据,直至所述姿态参数计算完成。
步骤104:当所述姿态参数计算完成时,按照所述姿态参数确定待添加至输出图像数据中的虚拟对象的姿态。
步骤105:检测到所述图像数据中包括预设目标对象,获得所述预设目标对象在所述图像数据中的位置,基于所述位置在所述图像数据中添加满足所述姿态的虚拟对象,绘制输出图像数据。
本发明实施例的数据处理方法应用于数据处理装置中,所述数据处理装置可位于具有图像采集组件(所述图像采集组件例如摄像头、相机等组件)的终端设备中;所述终端设备具体可以是手机、平板电脑、笔记本电脑等移动终端;所述终端设备也可以是台式电脑、一体机电脑等固定终端。
本实施例中,接收的图像数据可由终端中的图像采集组件采集获得。在执行本实施例的数据处理方法时,图像采集组件处于激活状态,通过所述图像采集组件采集图像数据。在实际应用中,图像采集组件实时采集图像数据,在本实施方式中,接收到的图像数据具体可以是以预设时间范围为单位接收到的连续的多帧图像数据,即从第一时刻到第二时刻持续接收到的多帧图像数据。
本实施例中,终端的姿态参数表征终端在空间中的相对姿态;所述终端在空间中的相对姿态表示终端在空间中的相对位置、朝向以及与预设平面之间的相对角度。作为一种实施方式,若以图像数据中的参照平面建立的xy轴、以垂直于该平面的z轴建立三维坐标系,则终端的姿态参数可包括三维坐标系中的坐标以及该终端与z轴之间的角度,坐标表示终端与参照平面之间的相对位置关系,角度可表示终端的姿态角度。当然,终端的姿态参数不限于上述表示方式,其他能够表示终端在空间中的姿态情况的参数均可作为本实施例中的终端的姿态参数。
这里,所述基于所述图像数据计算终端的姿态参数,包括:识别所述图像数据的特征对象,基于所述特征对象在所述图像数据中的对应关系计算所述终端的姿态参数。实际应用中,可基于图像数据中的特定特征对象在不同的帧图像数据中的位置确定终端的姿态参数,也可基于图像数据中的至少两个特征对象之间的相对位置关系确定终端的姿态参数,也可结合上述两种方式确定终端的姿态参数。当然,本实施例中终端的姿态参数的确定方式不限于上述描述,任何能够基于图像数据计算终端的姿态参数的实现方式均在本发明实施例的保护范围之内。
本实施例中,在姿态参数未计算完成时,对于待进行姿态参数计算的其他图像数据进行丢弃,但此时基于该其他图像数据进行绘制输出图像数据;在姿态参数计算完成时,若检测到图像数据中包括预设目标对象,按照所述姿态参数确定待添加至输出图像数据中的虚拟对象的姿态,及按照所述姿态参数将虚拟对象添加至输出图像中,使得虚拟对象的姿态与当前终端的姿态保持一致,从而使得添加的虚拟对象与作为背景的图像数据保持协调一致,不会导致用户在浏览图像时具有违和感。
其中,姿态参数的计算以及输出图像数据的绘制过程具体可包括以下两种情况:
作为第一种实施方式,当所述姿态参数未计算完成时,基于当前接收的所述图像数据绘制输出图像数据,输出所述输出图像数据。本实施方式适用于在先接收到的图像数据(相比于当前接收到第二图像数据而言,在先接收到的图像数据为第一图像数据)不包括预设目标对象的场景,即在先接收到的第一图像数据中不包括预设目标对象时,直接基于当前接收的第二图像数据进行输出图像的绘制,绘制的输出图像数据与接收到的图像数据是一致的。
作为第二种实施方式,当所述姿态参数未计算完成时,在当前接收到的图像数据中添加满足在先确定的姿态的虚拟对象,绘制包含有所述虚拟对象的输出图像数据。本实施方式适用于在先接收到的图像数据(相比于当前接收到第二图像数据而言,在先接收到的图像数据为第一图像数据)包括预设目标对象的场景,即在先接收到的第一图像数据中包括预设目标对象时,基于在先确定的第一姿态绘制添加在第二图像数据中的虚拟对象,即在所述第二图像数据中添加满足所述第一姿态的虚拟对象,从而保持作为背景图像的第二图像数据的实时更新,而在第二姿态参数未计算完成时,虚拟对象按照在先确定的第一姿态进行绘制,这样可保证输出的画面不停滞不卡顿。虽然说本实施方式中的虚拟对象的姿态并未与实际背景下的终端姿态并不完全匹配,但姿态参数的计算时间并不需要很长(最长可能也不超过几秒),而在计算的时间段内,终端的移动范围也十分有限,相应的终端的姿态的变化也十分有限,可以趋近于在先确定的姿态,在用户看来,虚拟对象的姿态与实际相匹配的实际姿态并无任何不相符的感觉。相比于现有技术中,不针对待进行姿态参数计算的图像数据的方式,由于姿态参数的计算的耗时,以及待进行姿态参数的图像数据的不断累积,使得计算出的姿态参数与当前的实际背景图像的姿态差别越来越明显,从而才会导致绘制的输出图像中虚拟对象具有明显滞后的问题。
作为另一实施方式,若当前接收的图像数据不包括预设目标对象,则直接基于当前接收到的所述图像数据绘制输出图像数据,输出所述输出图像数据,即所述输出图像数据中不包括虚拟对象。在本实施方式中,绘制线程依旧基于接收线程发送的图像数据进行输出图像数据的绘制,只是在本实施方式中所述输出图像数据中不包括虚拟对象,仅表示实时采集的背景实景。
这里,所述检测到所述图像数据中包括预设目标对象,获得所述预设目标对象在所述图像数据中的位置,包括:检测到所述图像数据中包括预设目标对象,识别所述预设目标对象在所述图像数据中的持续时长;当所述预设目标对象在所述图像数据中的持续时长达到预设时长时,获得所述预设目标对象在所述图像数据中的位置。实际应用中,判断图像数据是否包括预设目标对象可在对图像数据中添加虚拟对象进行绘制之前的任何时间点执行,包括在姿态参数的计算之前。当在基于接收的图像数据计算终端的姿态参数前判断图像数据是否包括预设目标对象、并且判断结果为图像数据不包括预设目标对象时,也即图像数据中未追踪到预设目标对象时,可不计算终端的姿态参数,这样也可大大节省了系统资源。
具体的,对于一定时间范围的图像数据通常会包括多帧图像数据;对所述多帧图像数据进行识别,若其中某一帧图像数据中识别出所述预设目标对象,且所述帧图像数据后预设数量的帧图像数据中依然识别出所述预设目标对象,则可获得所述预设目标对象在图像数据中的持续时长,当该持续时长达到预设时长,或者所述预设数量达到预设数量时,可确定所述图像数据中追踪到所述预设目标对象。在实际应用中,在执行本实施例的数据处理方法之前,预先存储有包含所述预设目标对象的图像数据,或者存储有对应于所述预设目标对象的特征数据;基于预先存储的所述预设目标对象的图像数据、或者对应于所述预设目标对象的特征数据进行所述图像数据中预设目标对象的识别。其中,所述预设目标对象可以是任何物体,本实施例对所述预设目标对象的类别不做任何限定。
作为另一种实施方式,识别当前接收的图像数据是否包括预设目标对象还可以包括:识别所述图像数据携带的位置信息是否在预设区域范围内;当所述图像数据携带的位置信息在所述在预设区域范围内时,可确定所述图像数据包括预设目标对象。即图像数据的采集位置在预设区域范围内时,确定所述图像数据包括预设目标对象。
实际应用中,本发明实施例的数据处理过程可由接收线程、计算线程和绘制线程实现。其中,接收线程用于接收数据,接收的数据可包括连续采集的多帧图像数据;一方面,接收线程需要将图像数据传输至绘制线程待进行输出图像的绘制,另一方面,接收线程还需要将图像数据发送至计算线程进行姿态参数的计算。
这里,所述基于所述图像数据计算终端的姿态参数,包括:接收线程接收采集的第一图像数据,在计算线程处于等待状态时将所述第一图像数据传输至计算线程;所述计算线程基于所述第一图像数据计算终端的第一姿态参数。相应的,所述当所述第一姿态参数计算完成时,按照所述姿态参数确定虚拟对象的姿态,包括:当所述计算线程计算完成所述第一姿态参数时,所述计算线程生成第一请求数据,发送所述第一请求数据至绘制线程;所述绘制线程按照所述第一姿态参数确定所述虚拟对象的第一姿态;所述基于在所述图像数据中添加满足所述姿态的虚拟对象绘制输出图像数据,包括:所述绘制线程在所述第一图像数据中添加满足所述第一姿态的虚拟对象,绘制包含有虚拟对象的输出图像数据。其中,所述第一图像数据具体可以对应于一时间范围的图像数据,例如可以是第一时刻至第二时刻获得的图像数据。其中,所述计算线程发送所述第一请求数据至绘制线程时,携带有计算获得的第一姿态参数。
这里,所述当所述计算线程计算完成所述第一姿态参数时,所述方法还包括:所述计算线程切换至等待状态;所述接收线程接收到第二图像数据时,检测所述计算线程的状态;所述第二图像数据为在所述第一图像数据后接收到的图像数据;当所述计算线程处于等待状态时,将所述第二图像数据传输至所述计算线程,以使所述计算线程基于所述第二图像数据计算终端的第二姿态参数。
在本实施方式中,所述计算线程可具有两种状态:计算状态和等待状态;在计算线程未进行姿态参数的计算时,所述计算线程处于等待状态;在所述计算线程处于等待状态时,接收线程可将接收的图像数据发送至所述计算线程进行姿态参数的计算;在所述计算线程处于计算状态时,所述接收线程无法将后续接收到的图像数据发送至所述计算线程,而是将后续接收到的、待发送至计算线程的图像数据丢弃,以避免由于计算线程计算姿态参数的时长不定,从而导致绘制线程与计算线程不同步、绘制的输出图像中虚拟对象的姿态与原本应与实际背景相匹配的实际姿态不匹配的问题,避免给用户带来不佳的视觉体验效果。可以理解为,所述计算线程为独立的线程,在所述计算线程处于等待状态时,允许接收所述接收线程传输的图像数据;在所述计算线程处于计算状态时,计算线程禁止接收所述接收线程传输的图像数据;在所述计算线程计算完成时,通过发送第一请求数据指示绘制线程可以进行包含有更新姿态的虚拟对象的输出图像的绘制。
作为另一种实施方式,所述方法还包括:若当前接收的图像数据不包括预设目标对象,所述计算线程切换至等待状态。
在前述实施方式中,计算线程的状态仅与是否处于计算处理过程相关,即计算线程在计算终端的姿态参数时,所述计算线程处于计算状态;在所述计算线程计算姿态参数完成时,所述计算线程切换至等待状态,以等待下一个数据的传输,可以理解为,所述计算线程实时计算终端的姿态参数。本实施方式区别于前述实施方式,在对所述图像数据进行识别后,确定所述图像数据中不包括所述预设目标对象、或者所述预设目标对象在图像数据中的持续时长未达到预设时长时,也即未追踪到预设目标对象时,所述计算线程均处于等待状态;直至识别出当前接收的图像数据包括预设目标对象时,所述计算线程由等待状态切换至计算状态,这样避免了计算线程实时计算姿态参数导致终端计算资源的大量消耗。
本实施例中,所述持续接收多帧数据,包括:接收线程持续接收多帧图像数据,将接收的多帧图像数据发送至绘制线程的缓存区域,以便绘制线程基于接收的图像数据进行输出图像的绘制。其中,当姿态参数计算完成时,按照计算获得的姿态参数确定虚拟对象的姿态,在当前接收到的图像数据中按照所述姿态添加虚拟对象,绘制包含有所述虚拟对象的输出图像数据。具体可参照图2a和图2b所示的应用场景为例,若预设目标对象为“花”,则识别出图2a中的图像数据中包括“花”对应的特征数据,则可确定当前的图像数据中包括预设目标对象11,进一步在输出图像数据中添加一虚拟对象,例如图2b中所示在输出图像数据中添加一虚拟礼盒的虚拟对象12。本应用场景具体可以是基于AR方式的发放礼物的场景,例如预先设置目标对象,用户可基于该预置的目标对象搜索相应的实物,如果终端采集的图像数据中包括相应的实物,则表明匹配一致,系统可通过虚拟礼盒的显示表明该用户获得了礼物;更进一步地,用户通过操作触发该虚拟对象(例如图2b中的虚拟礼盒),则可呈现礼盒打开,礼物呈现的效果,这样可大大增加用户的交互体验。
本实施方式中,计算线程在计算姿态参数的过程中(即姿态参数未计算完成),绘制线程依旧进行输出图像的绘制,其中包括两种实施方式:
作为一种实施方式,当所述姿态参数未计算完成时,绘制线程基于接收线程当前接收的所述图像数据绘制输出图像数据。本实施方式适用于在先接收到的图像数据(相比于当前接收到第二图像数据而言,在先接收到的图像数据为第一图像数据)不包括预设目标对象的场景,即在先接收到的第一图像数据中不包括预设目标对象时,直接基于当前接收的第二图像数据进行输出图像的绘制,绘制的输出图像数据与接收到的图像数据是一致的。
作为另一种实施方式,当所述姿态参数未计算完成时,绘制线程在接收线程当前接收到的图像数据中添加满足在先确定的姿态的虚拟对象,绘制包含有所述虚拟对象的输出图像数据。具体可包括:计算线程基于所述接收线程接收到的第二图像数据计算终端的第二姿态参数;当所述第二姿态参数未计算完成时,所述绘制线程在所述第二图像数据中添加满足所述第一姿态的虚拟对象,绘制包含有所述虚拟对象的输出图像数据。本实施方式适用于在先接收到的图像数据(相比于当前接收到第二图像数据而言,在先接收到的图像数据为第一图像数据)包括预设目标对象的场景,即在先接收到的第一图像数据中包括预设目标对象时,基于在先确定的第一姿态绘制添加在第二图像数据中的虚拟对象,即在所述第二图像数据中添加满足所述第一姿态的虚拟对象,从而保持作为背景图像的第二图像数据的实时更新,而在第二姿态参数未计算完成时,虚拟对象按照在先确定的第一姿态进行绘制,这样可保证输出的画面不停滞不卡顿。虽然说本实施方式中的虚拟对象的姿态并未与实际背景下的终端姿态并不完全匹配,但姿态参数的计算时间并不需要很长(最长可能也不超过几秒),而在计算的时间段内,终端的移动范围也十分有限,相应的终端的姿态的变化也十分有限,可以趋近于在先确定的姿态,在用户看来,虚拟对象的姿态与实际相匹配的实际姿态并无任何不相符的感觉。相比于现有技术中,不针对待进行姿态参数计算的图像数据的方式,由于姿态参数的计算的耗时,以及待进行姿态参数的图像数据的不断累积,使得计算出的姿态参数与当前的实际背景图像的姿态差别越来越明显,从而才会导致绘制的输出图像中虚拟对象具有明显滞后的问题。
采用本发明实施例的技术方案,在姿态参数未计算完成时丢弃在后接收到的、待进行姿态参数计算的图像数据,以避免由于计算姿态参数的时长不定,从而导致绘制与计算不同步、绘制的输出图像中虚拟对象的姿态与原本应与实际背景相匹配的实际姿态严重不匹配、绘制的输出图像中虚拟对象具有明显滞后的问题,从而实现了姿态参数的计算过程与输出图像数据的绘制过程的基本时间同步,解决了输出的图像出现卡顿、拖尾的问题,提升了用户的视觉体验。
本发明实施例还提供了一种数据处理方法。本实施例可应用于基于自然特征点跟踪(NFT,Natural Feature Tracking)标识物(Marker)的AR应用(app).在本实施方式中以接收线程、计算线程和绘制线程的描述方式进行描述,图3为本发明实施例的数据处理方法的另一种流程示意图;如图3所示,所述方法包括:
步骤201:接收线程接收图像数据。
步骤202:判断计算线程是否处于等待状态,当判断结果为否时,执行步骤203:丢弃待发送给计算线程用于进行相机矩阵计算的图像数据;当判断结果为是时,执行步骤204。本实施方式中,所述计算线程是否切换至等待状态可通过步骤209的Marker未追踪成功确定,也可通过计算线程当前是否在计算相机矩阵确定;所述相机矩阵为表征终端姿态的姿态参数的一种示例;当相机矩阵未计算完成时,所述计算线程处于计算状态;当相机矩阵计算完成时,计算线程可切换至等待状态。
步骤204:唤醒计算线程,接收线程发送图像数据至计算线程,由所述计算线程进行相机矩阵的计算。另一方面,所述接收线程也将图像数据发送至绘制线程,待计算线程计算完成后,通知绘制线程进行输出图像的绘制。
步骤205:计算线程计算相机矩阵。
步骤206:判断Marker追踪是否成功;当Marker追踪成功时,执行步骤207和步骤208;当Marker追踪不成功时,执行步骤209。这里,Marker可作为预设目标对象,判断Marker追踪是否成功,具体是通过识别所述图像数据,当所述图像数据包括Marker时,或者所述图像数据中包括Marker、且所述图像数据中包括Marker的连续的帧图像的数量达到预设阈值时,确定Marker追踪成功。相应的,当所述图像数据中每一帧图像数据均不包括Marker、或者所述图像数据中包括Marker的连续的帧图像的数量未达到预设阈值时,可确定Marker追踪不成功。
步骤207:计算线程通知绘制线程,并传输相机矩阵。
步骤208:绘制线程基于相机矩阵确定虚拟对象的姿态,基于绘制包含有虚拟物体的图像。
步骤209:计算线程切换至等待状态。
本发明实施例可采用终端的摄像头作为数据采集设备,输入实时的视频流数据;通过计算出相机矩阵,结合预置的相机投影矩阵,应用于OpenGL绘制虚拟物体;计算线程与绘制线程是不同线程,使得耗时巨大的计算线程不会影响绘制线程,不会导致界面的卡顿,使计算获得的相机矩阵与绘制的图像达到同步,不会引起渲染拖尾效果。
从上述两个实施例中可以看出,本发明实施例的数据处理方法中,判断接收到的图像数据是否包括预设目标对象,也即图像数据是否追踪到Marker的过程,可以在姿态参数的计算之间进行识别判定,也可以在姿态参数计算参数之后、绘制输出图像之前进行判定;区别在于,前者在姿态参数计算之前判定接收到的图像数据不括预设目标对象,也即图像数据未追踪到Marker时,则无需进行姿态参数的计算,从而减少了系统资源的消耗;而后者在姿态参数计算之后、绘制输出图像之前进行判定,随着图像数据的不断接收,计算线程实时处于姿态参数的计算处理状态,相比于前者,系统资源的消耗相对有所增加。
图4为本发明实施例的数据处理方法的一种时序处理流程示意图;如图4所示,本发明实施例的数据处理方法可包括:
步骤301:接收线程接收帧图像1。
步骤302a:当帧图像1中不包括预设目标对象,也即预设目标对象未追踪成功时,直接发送帧图像1至绘制线程进行输出图像的绘制并输出给用户。此时,输出的图像与接收到的图像一致,为实景图像。
步骤302b:当帧图像1中包括预设目标对象,也即预设目标对象追踪成功时,发送帧图像1至计算线程和绘制线程,由计算线程进行姿态参数1的计算,同时,绘制线程基于帧图像1进行输出图像的绘制并输出给用户;在计算线程计算姿态参数1的过程中,接收线程持续接收到帧图像2至n,则不发送帧图像2至n至计算线程,但持续将帧图像2至n发送至绘制线程进行输出图像的绘制并输出给用户,n为正整数。此时,输出的图像依然与接收到的图像一致,均为实景图像。
步骤303:在计算线程计算姿态参数1完成后,通知绘制线程,并携带该姿态参数1;此时,绘制线程接收到接收线程发送的帧图像n+1,则绘制线程基于姿态参数1确定虚拟对象的姿态1,在帧图像n+1中添加满足姿态1的虚拟对象,绘制输出图像并输出给用户。
步骤304:接收线程接收到帧图像n+2。
步骤305:当帧图像n+2中包括预设目标对象,也即预设目标对象追踪成功时,发送帧图像n+2至计算线程和绘制线程,由计算线程进行姿态参数2的计算,同时,由于新的姿态并未计算完成,则绘制线程继续基于姿态1在帧图像n+2中中添加虚拟对象,绘制输出图像并输出给用户;在计算线程计算姿态参数2的过程中,接收线程持续接收到帧图像n+3至m,m为大于n的正整数;则不发送帧图像n+3至m至计算线程,但持续将帧图像n+3至m发送至绘制线程,由绘制线程继续基于姿态1分别在帧图像n+3至m中添加虚拟对象,绘制输出图像并输出给用户。
步骤306:在计算线程计算姿态参数2完成后,通知绘制线程,并携带该姿态参数2;此时,绘制线程接收到接收线程发送的帧图像m+1,则绘制线程基于姿态参数2确定虚拟对象的姿态2,在帧图像m+1中添加满足姿态2的虚拟对象,绘制输出图像并输出给用户。
后续接收到的帧图像按照前述步骤301至步骤305的操作循环进行,这里不进行赘述。
由上述描述可以看出,在姿态参数未计算完成时丢弃在后接收到的、待进行姿态参数计算的图像数据,而并非累积,从而避免了由于计算姿态参数的时长不定,从而导致绘制与计算不同步、绘制的输出图像中虚拟对象的姿态与原本应与实际背景相匹配的实际姿态严重不匹配、绘制的输出图像中虚拟对象具有明显滞后的问题,如果在步骤302b中持续接收到的帧图像2至n并未丢弃而是缓存下来供计算线程进行姿态参数的计算,则在姿态参数1计算完成后,在对应接收到帧图像n+2时,计算线程此时基于帧图像2在进行姿态参数的计算,此时的帧图像2与帧图像n+2已经具有一定的延时;如此累积下来,则计算的姿态参数的延时会越来越严重。因此,采用本发明实施例的技术方案,实现了姿态参数的计算过程与输出图像数据的绘制过程的基本时间同步,解决了输出的图像出现卡顿、拖尾的问题,提升了用户的视觉体验。
本发明实施例还提供了一种数据处理装置。图5为本发明实施例的数据处理装置的一种组成结构示意图;如图5所示,所述装置包括:接收单元41、计算单元43、识别单元42和绘制单元44;其中,
所述接收单元41,用于持续接收多帧图像数据;
所述计算单元43,用于基于所述接收单元41当前接收的图像数据计算终端的姿态参数;所述姿态参数表征终端在空间中的相对姿态;
所述接收单元41,还用于当所述计算单元43计算姿态参数未完成时,丢弃所述图像数据后接收到的、待进行姿态参数计算的其他图像数据,直至所述姿态参数计算完成;
所述识别单元42,用于检测所述图像数据中是否包括预设目标对象;在所检测到所述图像数据中包括预设目标对象时,获得所述预设目标对象在所述图像数据中的位置;
所述绘制单元44,用于当所述计算单元43计算所述姿态参数完成时,按照所述姿态参数确定待添加至输出图像数据中的虚拟对象的姿态;基于所述识别单元42获得的所述位置在所述图像数据中添加满足所述姿态的虚拟对象,绘制输出图像数据。
本实施例中,所述数据处理装置可位于终端设备中,所述终端设备还具有图像采集组件;所述图像采集组件例如摄像头、相机等组件,用于采集图像数据。本实施例中所述终端具体可以是手机、平板电脑、笔记本电脑等移动终端;所述终端设备也可以是台式电脑、一体机电脑等固定终端。
在实际应用中,图像采集组件实时采集图像数据;在本实施方式中,所述接收单元41接收到的数据具体可以是以预设时间范围为单位接收到的连续的多帧数据,即从第一时刻到第二时刻连续接收到的多帧图像数据。
本实施例中,所述计算单元43,用于识别所述图像数据的特征对象,基于所述特征对象在所述图像数据中的对应关系计算所述终端的姿态参数。
作为一种实施方式,所述绘制单元44,还用于当所述计算单元43计算所述姿态参数未完成时,基于所述接收单元41当前接收的图像数据绘制输出图像数据。
作为一种实施方式,所述装识别单元42,用于检测到所述图像数据中包括预设目标对象,识别所述预设目标对象在所述图像数据中的持续时长;当所述预设目标对象在所述图像数据中的持续时长达到预设时长时,获得所述预设目标对象在所述图像数据中的位置。作为一种实施方式,所述预设目标对象为图像数据中的物体,该物体例如桌子、椅子、特定的照片等等,该物体也可以是特定标识,例如文字、字符等。作为另一种实施方式,所述预设目标对象还可以为特定位置,则所述识别单元42,还可以用于,识别所述图像数据携带的位置信息是否在预设区域范围内;当所述图像数据携带的位置信息在所述在预设区域范围内时,可确定所述图像数据包括预设目标对象。
本实施例中,所述接收单元41,用于持续接收多帧图像数据,将接收的多帧图像数据发送至所述绘制单元44;还用于接收第一图像数据,在所述计算单元43处于等待状态时将所述第一图像数据传输至所述计算单元43;所述第一图像数据为当前接收到的图像数据;
所述计算单元43,用于基于所述第一图像数据计算终端的第一姿态参数;还用于在所述第一姿态参数计算完成时,生成第一请求数据,发送所述第一请求数据至绘制单元44;
所述绘制单元44,用于基于所述第一请求数据,按照所述计算单元43计算的所述第一姿态参数确定所述虚拟对象的第一姿态;基于在所述第一图像数据中添加满足所述第一姿态的虚拟对象绘制输出图像数据,输出所述输出图像数据。
其中,所述第一图像数据具体可以对应于一时间范围的图像数据,例如可以是第一时刻至第二时刻获得的图像数据。其中,所述计算单元43发送所述第一请求数据至绘制线程时,携带有计算获得的第一姿态参数。
本实施例中,所述计算单元43,还用于所述第一姿态参数计算完成时,切换至等待状态;
所述接收单元41,还用于接收到第二图像数据时,检测所述计算单元43的状态;所述第二图像数据为在所述第一图像数据后接收到的图像数据;当所述计算单元43处于等待状态时,将所述第二图像数据传输至所述计算单元43,以使所述计算单元43基于所述第二图像数据计算终端的第二姿态参数。
具体的,本实施例中的接收单元41、计算单元43和绘制单元44可以理解为接收线程、计算线程和绘制线程;其中,接收线程用于接收数据,接收的数据可包括采集的图像数据;一方面,接收线程需要将图像数据传输至绘制线程进行输出图像的绘制,另一方面,接收线程还需要将图像数据发送至计算线程进行姿态参数的计算。在本实施方式中,计算线程在计算姿态参数的过程中(即姿态参数未计算完成),绘制线程不可进行输出图像的绘制,即时在接收线程将采集的图像数据发送至绘制线程的缓存后,绘制线程依旧处于等待状态,直至计算进程计算姿态参数完成后,向绘制进程发送第一请求数据,所述绘制进程基于所述第一请求数据进行输出图像的绘制。在本实施方式中,所述计算线程可具有两种状态:计算状态和等待状态;在计算线程未进行姿态参数的计算时,所述计算线程处于等待状态;在所述计算线程处于等待状态时,接收线程可将接收的图像数据发送至所述计算线程进行姿态参数的计算;在所述计算线程处于计算状态时,所述接收线程无法将后续接收到的图像数据发送至所述计算线程,而是将后续接收到的、待发送至计算线程的图像数据丢弃,以避免由于计算线程计算姿态参数的时长不定,从而导致绘制线程与计算线程不同步、绘制的输出图像中虚拟对象的姿态与原本应与实际背景相匹配的实际姿态不匹配的问题,避免给用户带来不佳的视觉体验效果。可以理解为,所述计算线程为独立的线程,在所述计算线程处于等待状态时,允许接收所述接收线程传输的图像数据;在所述计算线程处于计算状态时,计算线程禁止接收所述接收线程传输的图像数据;在所述计算线程计算完成时,通过发送第一请求数据指示绘制线程可以进行包含有更新姿态的虚拟对象的输出图像的绘制。
作为一种实施方式,所述计算单元43,还用于当所述识别单元42检测到所述图像数据中不包括预设目标对象时,切换至等待状态。
本实施方式中,所述计算单元43在计算姿态参数的过程中(即姿态参数未计算完成),绘制单元44依旧进行输出图像的绘制,其中包括两种实施方式:
作为一种实施方式,所述绘制单元44,还用于当所述计算单元43计算所述姿态参数未完成时,基于所述接收单元41当前接收的所述图像数据绘制输出图像数据,输出所述输出图像数据。本实施方式适用于在先接收到的图像数据不括预设目标对象的场景,直接基于当前接收的图像数据进行输出图像的绘制,绘制的输出图像数据与接收到的图像数据是一致的。
作为另一种实施方式,所述绘制单元44,还用于当所述计算单元43计算所述姿态参数未完成时,在所述接收单元41当前接收到的图像数据中添加满足在先确定的姿态的虚拟对象,绘制包含有所述虚拟对象的输出图像数据。
作为另一实施方式,所述绘制单元44,还用于当所述识别单元42检测到所述图像数据中不包括预设目标对象时,即当前接收的图像数据中不包括预设目标对象时,或者当前接收到的图像数据中包括预设目标对象、但所述预设目标对象在所述图像数据中的持续时长未达到预设时长时,则直接基于所述接收单元41当前接收到的所述图像数据绘制输出图像数据,输出所述输出图像数据,即所述输出图像数据中不包括虚拟对象。
本领域技术人员应当理解,本发明实施例的数据处理装置中各处理单元的功能,可参照前述数据处理方法的相关描述而理解,本发明实施例的数据处理装置中各处理单元,可通过实现本发明实施例所述的功能的模拟电路而实现,也可以通过执行本发明实施例所述的功能的软件在智能终端上的运行而实现。
本发明实施例中,所述装置中的接收单元41、计算单元43、识别单元42和绘制单元44,在实际应用中均可由中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现。
本发明实施例还提供了一种数据处理装置。图6为本发明实施例的数据处理装置的一种硬件组成结构示意图;如图6所示,数据处理装置50包括:至少一个处理器51、存储器52以及至少一个通信接口54,还可以包括摄像头53;所述处理器51、存储器52以及通信接口54均通过总线系统55耦合在一起。可理解,总线系统55用于实现这些组件之间的连接通信。总线系统55除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统55。
具体的,本实施例中,所述存储器52上存储有可在处理器51上运行的计算机程序;所述处理器51执行所述程序时实现:持续接收多帧图像数据;基于当前接收的图像数据计算终端的姿态参数;所述姿态参数表征终端在空间中的相对姿态;当所述姿态参数未计算完成时,丢弃所述图像数据后接收到的、待进行姿态参数计算的其他图像数据,直至所述姿态参数计算完成;当所述姿态参数计算完成时,按照所述姿态参数确定待添加至输出图像数据中的虚拟对象的姿态;检测到所述图像数据中包括预设目标对象,获得所述预设目标对象在所述图像数据中的位置,基于所述位置在所述图像数据中添加满足所述姿态的虚拟对象,绘制输出图像数据。
作为一种实施方式,所述处理器51执行所述程序时实现:当所述姿态参数未计算完成时,基于当前接收的图像数据绘制输出图像数据。
作为一种实施方式,所述处理器51执行所述程序时实现:接收线程接收第一图像数据,在计算线程处于等待状态时将所述第一图像数据传输至计算线程;所述计算线程基于所述第一图像数据计算终端的第一姿态参数。
作为一种实施方式,所述处理器51执行所述程序时实现:当所述计算线程计算完成所述第一姿态参数时,所述计算线程生成第一请求数据,发送所述第一请求数据至绘制线程;所述绘制线程按照所述第一姿态参数确定所述虚拟对象的第一姿态。
作为一种实施方式,所述处理器51执行所述程序时实现:当所述计算线程计算完成所述第一姿态参数时,所述计算线程切换至等待状态;所述接收线程接收到第二图像数据时,检测所述计算线程的状态;所述第二图像数据为在所述第一图像数据后接收到的图像数据;当所述计算线程处于等待状态时,所述接收线程将所述第二图像数据传输至所述计算线程,以使所述计算线程基于所述第二图像数据计算终端的第二姿态参数。
作为一种实施方式,所述处理器51执行所述程序时实现:所述计算线程基于所述接收线程接收到的第二图像数据计算终端的第二姿态参数;当所述第二姿态参数未计算完成时,所述绘制线程在所述第二图像数据中添加满足所述第一姿态的虚拟对象,绘制包含有所述虚拟对象的输出图像数据。
作为一种实施方式,所述处理器51执行所述程序时实现:检测到所述图像数据中包括预设目标对象,识别所述预设目标对象在所述图像数据中的持续时长;当所述预设目标对象在所述图像数据中的持续时长达到预设时长时,获得所述预设目标对象在所述图像数据中的位置。
本实施例中,所述存储器52可以由任何类型的易失性或非易失性存储设备、或者它们的组合来实现。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,Ferromagnetic Random Access Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器52旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器52用于存储各种类型的数据以支持数据处理装置50的操作。这些数据的示例包括:用于在数据处理装置50上操作的任何计算机程序,如操作系统521和应用程序522等。其中,操作系统521包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序522可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等任何支持输出图像数据的应用程序,尤其适用于支持输出包含有虚拟对象的图像数据的应用程序,例如支持AR功能的应用程序。实现本发明实施例方法的程序也可以包含在应用程序522中。
本实施例中,所述处理器51可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器51中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器51可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等;所述处理器51同时还具有图形处理能力,可以是图形处理器(GPU,Graphics Processing Unit)。处理器51可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器52中,处理器51读取存储器52中的信息,结合其硬件完成前述方法的步骤。
本发明实施例还提供了一种计算机存储介质。其上存储有计算机指令,该指令被处理器执行时实现:持续接收多帧图像数据;基于当前接收的图像数据计算终端的姿态参数;所述姿态参数表征终端在空间中的相对姿态;当所述姿态参数未计算完成时,丢弃所述图像数据后接收到的、待进行姿态参数计算的其他图像数据,直至所述姿态参数计算完成;当所述姿态参数计算完成时,按照所述姿态参数确定待添加至输出图像数据中的虚拟对象的姿态;检测到所述图像数据中包括预设目标对象,获得所述预设目标对象在所述图像数据中的位置,基于所述位置在所述图像数据中添加满足所述姿态的虚拟对象,绘制输出图像数据。
作为一种实施方式,该指令被处理器执行时实现:当所述姿态参数未计算完成时,基于当前接收的图像数据绘制输出图像数据。
作为一种实施方式,该指令被处理器执行时实现:接收线程接收第一图像数据,在计算线程处于等待状态时将所述第一图像数据传输至计算线程;所述计算线程基于所述第一图像数据计算终端的第一姿态参数。
作为一种实施方式,该指令被处理器执行时实现:当所述计算线程计算完成所述第一姿态参数时,所述计算线程生成第一请求数据,发送所述第一请求数据至绘制线程;所述绘制线程按照所述第一姿态参数确定所述虚拟对象的第一姿态。
作为一种实施方式,该指令被处理器执行时实现:当所述计算线程计算完成所述第一姿态参数时,所述计算线程切换至等待状态;所述接收线程接收到第二图像数据时,检测所述计算线程的状态;所述第二图像数据为在所述第一图像数据后接收到的图像数据;当所述计算线程处于等待状态时,所述接收线程将所述第二图像数据传输至所述计算线程,以使所述计算线程基于所述第二图像数据计算终端的第二姿态参数。
作为一种实施方式,该指令被处理器执行时实现:所述计算线程基于所述接收线程接收到的第二图像数据计算终端的第二姿态参数;当所述第二姿态参数未计算完成时,所述绘制线程在所述第二图像数据中添加满足所述第一姿态的虚拟对象,绘制包含有所述虚拟对象的输出图像数据。
作为一种实施方式,该指令被处理器执行时实现:检测到所述图像数据中包括预设目标对象,识别所述预设目标对象在所述图像数据中的持续时长;当所述预设目标对象在所述图像数据中的持续时长达到预设时长时,获得所述预设目标对象在所述图像数据中的位置。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种数据处理方法,其特征在于,所述方法包括:
持续采集多帧图像数据;
通过接收线程接收所述多帧图像数据中的第一图像数据,并在计算线程处于等待状态时,将所述第一图像数据传输至所述计算线程;
通过所述计算线程,计算所述第一图像数据对应的终端的第一姿态参数;所述第一姿态参数表征所述终端在空间中的相对姿态;
当所述第一姿态参数未计算完成时,丢弃在接收到的所述第一图像数据后接收到的、待进行姿态参数计算的其他图像数据,直至所述第一姿态参数计算完成;
当所述第一姿态参数计算完成时,按照所述第一姿态参数确定待添加至输出图像数据中的虚拟对象的姿态;
检测到所述第一图像数据中包括预设目标对象,获得所述预设目标对象在所述第一图像数据中的位置,基于所述位置在所述第一图像数据中添加满足所述姿态的虚拟对象,绘制输出图像数据;
所述计算线程切换至等待状态;
当所述接收线程接收到所述多帧图像数据中的第二图像数据时,检测所述计算线程的状态;其中,所述第二图像数据为在所述第一图像数据后接收到的图像数据;
当所述计算线程处于等待状态时,通过所述接收线程,将所述第二图像数据传输至所述计算线程,以使所述计算线程基于所述第二图像数据计算终端的第二姿态参数;
当所述第二姿态参数计算完成时,按照所述第二姿态参数确定待添加至输出图像数据中的虚拟对象的更新姿态;
基于所述更新姿态,绘制输出图像数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述第一姿态参数未计算完成时,基于当前接收的图像数据绘制输出图像数据。
3.根据权利要求1所述的方法,其特征在于,当所述第一姿态参数计算完成时,按照所述姿态参数确定虚拟对象的姿态,包括:当所述计算线程计算完成所述第一姿态参数时,所述计算线程生成第一请求数据,发送所述第一请求数据至绘制线程;
所述绘制线程按照所述第一姿态参数确定所述虚拟对象的第一姿态。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:所述计算线程基于所述接收线程接收到的第二图像数据计算终端的第二姿态参数;
当所述第二姿态参数未计算完成时,所述绘制线程在所述第二图像数据中添加满足所述第一姿态的虚拟对象,绘制包含有所述虚拟对象的输出图像数据。
5.根据权利要求1所述的方法,其特征在于,所述检测到所述第一图像数据中包括预设目标对象,获得所述预设目标对象在所述第一图像数据中的位置,包括:
检测到所述第一图像数据中包括预设目标对象,识别所述预设目标对象在所述第一图像数据中的持续时长;当所述预设目标对象在所述第一图像数据中的持续时长达到预设时长时,获得所述预设目标对象在所述第一图像数据中的位置。
6.一种数据处理装置,其特征在于,所述装置包括:接收单元、计算单元、识别单元和绘制单元;其中,
所述接收单元,用于持续采集多帧图像数据;
所述计算单元,用于通过接收单元接收所述多帧图像数据中的第一图像数据,并在计算单元处于等待状态时,将所述第一图像数据传输至所述计算单元;通过所述计算单元,计算所述第一图像数据对应的终端的第一姿态参数;所述第一姿态参数表征所述终端在空间中的相对姿态;
所述接收单元,还用于当所述计算单元计算第一姿态参数未完成时,丢弃在接收到的所述第一图像数据后接收到的、待进行姿态参数计算的其他图像数据,直至所述第一姿态参数计算完成;
所述识别单元,用于检测所述第一图像数据中是否包括预设目标对象;在所检测到所述第一图像数据中包括预设目标对象时,获得所述预设目标对象在所述第一图像数据中的位置;
所述绘制单元,用于当所述计算单元计算所述第一姿态参数完成时,按照所述第一姿态参数确定待添加至输出图像数据中的虚拟对象的姿态;基于所述识别单元获得的所述位置在所述图像数据中添加满足所述姿态的虚拟对象,绘制输出图像数据;
所述计算单元,还用于所述第一姿态参数计算完成时,切换至等待状态;
所述接收单元,还用于当所述接收单元接收到所述多帧图像数据中的第二图像数据时,检测所述计算单元的状态;其中,所述第二图像数据为在所述第一图像数据后接收到的图像数据;当所述计算单元处于等待状态时,通过所述接收单元,将所述第二图像数据传输至所述计算单元,以使所述计算单元基于所述第二图像数据计算终端的第二姿态参数;当所述第二姿态参数计算完成时,按照所述第二姿态参数确定待添加至输出图像数据中的虚拟对象的更新姿态;基于所述更新姿态,绘制输出图像数据。
7.根据权利要求6所述的装置,其特征在于,所述绘制单元,还用于当所述计算单元计算所述姿态参数未完成时,基于所述接收单元当前接收的图像数据绘制输出图像数据。
8.根据权利要求6所述的装置,其特征在于,所述计算单元,还用于在所述第一姿态参数计算完成时,生成第一请求数据,发送所述第一请求数据至所述绘制单元;
所述绘制单元,用于基于所述第一请求数据,按照所述计算单元计算的所述第一姿态参数确定所述虚拟对象的第一姿态。
9.根据权利要求8所述的装置,其特征在于,所述计算单元,还用于基于所述接收单元接收的第二图像数据计算终端的第二姿态参数;
所述绘制单元,还用于当所述计算单元计算所述第二姿态参数未完成时,在所述第二图像数据中添加满足所述第一姿态的虚拟对象,绘制包含有所述虚拟对象的输出图像数据。
10.根据权利要求6所述的装置,其特征在于,所述识别单元,用于检测到所述图像数据中包括预设目标对象,识别所述预设目标对象在所述图像数据中的持续时长;当所述预设目标对象在所述图像数据中的持续时长达到预设时长时,获得所述预设目标对象在所述图像数据中的位置。
11.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-5任一项所述数据处理方法的步骤。
12.一种数据处理装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5任一项所述数据处理方法的步骤。
CN201710940374.5A 2017-10-11 2017-10-11 一种数据处理方法、装置和计算机存储介质 Active CN109658514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710940374.5A CN109658514B (zh) 2017-10-11 2017-10-11 一种数据处理方法、装置和计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710940374.5A CN109658514B (zh) 2017-10-11 2017-10-11 一种数据处理方法、装置和计算机存储介质

Publications (2)

Publication Number Publication Date
CN109658514A CN109658514A (zh) 2019-04-19
CN109658514B true CN109658514B (zh) 2022-03-11

Family

ID=66108837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710940374.5A Active CN109658514B (zh) 2017-10-11 2017-10-11 一种数据处理方法、装置和计算机存储介质

Country Status (1)

Country Link
CN (1) CN109658514B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111427697B (zh) * 2020-03-18 2023-06-06 深圳市瑞立视多媒体科技有限公司 基于多线程的动作捕捉方法、装置、设备及存储介质
CN114078432B (zh) * 2020-08-11 2023-07-14 北京小米移动软件有限公司 驱动方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100941749B1 (ko) * 2008-08-25 2010-02-11 에이알비전 (주) 증강 현실 장치 및 가상 이미지 합성 방법
CN102419631A (zh) * 2010-10-15 2012-04-18 微软公司 虚拟内容到现实内容中的融合
CN104104862A (zh) * 2013-04-04 2014-10-15 索尼公司 图像处理装置和图像处理方法
CN104205175A (zh) * 2012-03-29 2014-12-10 索尼公司 信息处理装置,信息处理系统及信息处理方法
NZ628782A (en) * 2012-02-22 2016-04-29 Micronet Co Ltd Ar image processing apparatus and method
CN106873768A (zh) * 2016-12-30 2017-06-20 中兴通讯股份有限公司 一种增强现实方法、装置及系统
CN107194871A (zh) * 2017-05-25 2017-09-22 维沃移动通信有限公司 一种图像处理方法及移动终端
CN107222529A (zh) * 2017-05-22 2017-09-29 北京邮电大学 增强现实处理方法、web模块、终端和云端服务器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101056418B1 (ko) * 2011-03-31 2011-08-11 주식회사 맥스트 모바일 센서를 이용한 증강 현실 콘텐츠 추적 장치 및 방법
US20130147786A1 (en) * 2011-12-08 2013-06-13 Mattew Ross SMITH Method and apparatus for executing high performance computation to solve partial differential equations and for outputting three-dimensional interactive images in collaboration with graphic processing unit, computer readable recording medium, and computer program product
WO2014031899A1 (en) * 2012-08-22 2014-02-27 Goldrun Corporation Augmented reality virtual content platform apparatuses, methods and systems

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100941749B1 (ko) * 2008-08-25 2010-02-11 에이알비전 (주) 증강 현실 장치 및 가상 이미지 합성 방법
CN102419631A (zh) * 2010-10-15 2012-04-18 微软公司 虚拟内容到现实内容中的融合
NZ628782A (en) * 2012-02-22 2016-04-29 Micronet Co Ltd Ar image processing apparatus and method
CN104205175A (zh) * 2012-03-29 2014-12-10 索尼公司 信息处理装置,信息处理系统及信息处理方法
CN104104862A (zh) * 2013-04-04 2014-10-15 索尼公司 图像处理装置和图像处理方法
CN106873768A (zh) * 2016-12-30 2017-06-20 中兴通讯股份有限公司 一种增强现实方法、装置及系统
CN107222529A (zh) * 2017-05-22 2017-09-29 北京邮电大学 增强现实处理方法、web模块、终端和云端服务器
CN107194871A (zh) * 2017-05-25 2017-09-22 维沃移动通信有限公司 一种图像处理方法及移动终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mobile augmented reality based on invisible marker;Changmin Lim et al.;《2016 IEEE International Symposium on Mixed and Augmented Reality Adjunct Proceedings》;20161230;第78-81页 *
基于智能手机的增强现实技术综述;杨丽娟 等;《软件导刊》;20160315;第15卷(第3期);第127-129页 *

Also Published As

Publication number Publication date
CN109658514A (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
US11450055B2 (en) Displaying method, animation image generating method, and electronic device configured to execute the same
CN110310326B (zh) 一种视觉定位数据处理方法、装置、终端及计算机可读存储介质
WO2020015468A1 (zh) 一种图像传输方法、装置、终端设备及存储介质
WO2023279705A1 (zh) 直播方法、装置、系统、计算机设备、存储介质及程序
US20230162452A1 (en) Implementation and display of augmented reality
KR20170031733A (ko) 디스플레이를 위한 캡처된 이미지의 시각을 조정하는 기술들
CN107911737B (zh) 媒体内容的展示方法、装置、计算设备及存储介质
CN109582122B (zh) 增强现实信息提供方法、装置及电子设备
CN107422840B (zh) 用于识别目标对象的方法和系统
US9922439B2 (en) Displaying method, animation image generating method, and electronic device configured to execute the same
CN113032080B (zh) 页面实现方法、应用程序、电子设备及存储介质
US11756276B2 (en) Image processing method and apparatus for augmented reality, electronic device, and storage medium
EP2630616A1 (en) Method and apparatus for providing hand detection
CN109992111B (zh) 增强现实扩展方法和电子设备
US11553009B2 (en) Information processing device, information processing method, and computer program for switching between communications performed in real space and virtual space
CN113192164A (zh) 虚拟形象随动控制方法、装置、电子设备和可读存储介质
CN109658514B (zh) 一种数据处理方法、装置和计算机存储介质
US20240331245A1 (en) Video processing method, video processing apparatus, and storage medium
KR101308184B1 (ko) 윈도우 형태의 증강현실을 제공하는 장치 및 방법
KR102272753B1 (ko) 이미지를 표시하는 전자 장치 및 그 제어 방법
CN108985275B (zh) 增强现实设备及电子设备的显示追踪方法和装置
CN113780045B (zh) 用于训练距离预测模型的方法和装置
CN105469048A (zh) 一种提高人脸检测性能的方法
CN114429506A (zh) 图像处理方法、装置、设备、存储介质和程序产品
CN110941344B (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