掌桥专利:专业的专利平台
掌桥专利
首页

事件流数据处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 13:43:30


事件流数据处理方法、装置、电子设备及存储介质

技术领域

本发明涉及数据处理技术领域,尤其涉及一种事件流数据处理方法、装置、电子设备及存储介质。

背景技术

随着数据处理技术的发展,尤其是随着机器视觉的不断发展,对于图像的采集、处理和识别等过程的实时性要求越来越高,基于固定帧率进行图像采集的传统相机,对于高速运动的物体,由于采样帧率不够快而存在较为严重的运动模糊等,对于光线分布不均的场景,存在过曝、欠曝等问题,进而在传统相机的基础上,事件相机作为一种新型传感器应运而生。事件相机以事件流的范式记录图像场景的亮度变化信息,具有高时间分辨率和高动态范围等优势。事件相机可以模拟人类视觉系统的信息采集与处理方式,集中注意力去响应发生“事件”的像素位置,产生事件流数据。

然而,事件流数据具有数据量大的特点,事件流数据处理方法存在处理效率低的问题。

发明内容

本发明提供一种事件流数据处理方法,用以解决现有技术中事件流数据处理效率低的缺陷,实现提高事件流数据处理效率的目的。

本发明提供一种事件流数据处理方法,包括:获取待处理的事件流数据;所述事件流数据为利用事件相机获取到的数据;对所述事件流数据进行数据用途分类,得到所述事件流数据中的应用数据序列集;对所述应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个所述候选应用数据序列对应的中间数据序列;基于所述中间数据序列,对所述事件流数据进行处理,得到目标事件流数据。

根据本发明提供的一种事件流数据处理方法,所述应用数据序列集包括对象位置数据序列,所述对所述应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个所述候选应用数据序列对应的中间数据序列包括:对所述对象位置数据序列中各个对象位置数据进行处理,得到中间数据序列,以及,得到所述中间数据序列中各个中间数据的中间数据长度;所述基于中间数据序列,对所述事件流数据进行处理,得到目标事件流数据包括:根据所述中间数据长度,将所述中间数据序列中各个中间数据进行顺序连接,得到目标数据序列;基于所述目标数据序列,对所述事件流数据进行处理,得到目标事件流数据。

根据本发明提供的一种事件流数据处理方法,所述基于所述目标数据序列,对所述事件流数据进行处理,得到目标事件流数据包括:根据预设数据长度,对所述目标数据序列中的各个目标数据进行划分,得到目标数据序列对应的数据子序列;对所述数据子序列中的数据进行数据类型转换,得到目标事件流数据。

根据本发明提供的一种事件流数据处理方法,所述应用数据序列集包括事件流时间数据序列和事件流条件数据序列,所述对所述应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个所述候选应用数据序列对应的中间数据序列包括:

根据所述事件流时间戳数据序列中的候选事件流时间数据戳与前向事件流时间戳数据的差异,得到各个所述候选事件流时间戳数据对应的时间戳数据差异值;所述前向事件流时间戳数据为所述候选事件流时间戳数据对应的前向事件流时间戳数据;根据所述事件流条件数据序列中的候选事件流条件数据携带的亮度标识,将所述事件流条件数据转换为预设编码数据;将所述预设编码数据和所述时间戳数据差异值交替相邻排列,得到所述中间数据序列;所述基于中间数据序列,对所述事件流数据进行处理,得到目标事件流数据包括:将所述中间数据序列中个各个中间数据,按照所述事件流时间数据序列中各个事件流时间数据生成时间的递增方向顺序排列,得到目标事件流数据。

根据本发明提供的一种事件流数据处理方法,所述亮度标识包括像素点的亮度增大标识和像素点的亮度减小标识,所述根据所述事件流条件数据序列中的候选事件流条件数据携带的亮度标识,将所述事件流条件数据转换为预设编码数据包括:若亮度标识为亮度增大标识时,将所述事件流条件数据转换为第一预设编码数据;若亮度标识为亮度减小标识时,将所述事件流条件数据转换为第二预设编码数据;其中,第一预设编码数据和所述第二预设编码数据极性相反。

根据本发明提供的一种事件流数据处理方法,对所述目标事件流数据进行数据类型转换,得到所述预设数据长度的所述数据子序列;对所述数据子序列进行顺序排列,得到所述目标数据序列;根据所述中间数据长度,对所述目标数据序列进行划分,得到中间数据序列;对所述中间数据序列中的各个中间数据进行数据类型转换,得到所述对象位置数据序列。

根据本发明提供的一种事件流数据处理方法,所述方法还包括:将所述预设编码数据,确定为首位标识数据;根据所述首位标识数据,将所述目标事件流数据分解为对应的中间数据序列;获取所述中间数据序列中候选中间数据中与所述首位标识数据相邻的次位数据;将所述次位数据确定为所述事件流时间数据差异值;基于所述时间数据差异值,对所述事件流时间数据的初始数据进行处理,得到各个候选中间数据对应所述事件流时间数据序列;其中,所述初始数据为首次获取到的所述事件流数据。

本发明还提供一种事件流数据处理装置,包括:事件流数据获取模块,用于获取待处理的事件流数据;所述事件流数据为利用事件相机获取到的数据;应用数据序列集得到模块,用于对所述事件流数据进行数据用途分类,得到所述事件流数据中的应用数据序列集;中间数据序列得到模块,用于对所述应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个所述候选应用数据序列对应的中间数据序列;目标事件流数据得到模块,用于基于所述中间数据序列,对所述事件流数据进行处理,得到目标事件流数据。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述事件流数据处理方法的步骤。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述事件流数据处理方法的步骤。

本发明提供的事件流数据处理,通过获取待处理的事件流数据;该事件流数据为利用事件相机获取到的数据;对事件流数据进行数据用途分类,得到事件流数据中的应用数据序列集;对应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个候选应用数据序列对应的中间数据序列;基于中间数据序列,对事件流数据进行处理,得到目标事件流数据。对事件流数据进行分类,并且针对分类后的各个用用数据序列进行转换为中间数据序列,基于该中间数据序列,对事件流数据进行处理,避免了获取到的事件流数据因冗余度高而导致处理效率低的问题,提高了事件流数据处理效率。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的事件流数据处理方法的场景应用之一;

图2是本发明提供的事件流数据处理方法的流程示意图之一;

图3是本发明提供的事件流数据处理方法的流程示意图之二;

图4是本发明提供的事件流数据处理方法的流程示意图之三;

图5是本发明提供的事件流数据处理方法的流程示意图之四;

图6是本发明提供的事件流数据处理方法的流程示意图之五;

图7是本发明提供的事件流数据处理方法的流程示意图之六;

图8是本发明提供的事件流数据处理装置的结构示意图;

图9是本发明提供的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请提供的事件流数据处理方法,可以应用于如图1所示的应用环境中,具体应用到一种事件流数据处理系统中。该事件流数据处理系统包括终端102与服务器104,其中,终端102通过网络与服务器104进行通信。服务器104执行一种事件流数据处理方法,具体的,服务器104获取终端102发送的事件流数据,该事件流数据为利用事件相机获取到的数据;对事件流数据进行数据用途分类,得到事件流数据中的应用数据序列集;对应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个候选应用数据序列对应的中间数据序列;基于所述中间数据序列,对事件流数据进行处理,得到目标事件流数据。其中,终端102可以但不限于是各种事件相机、个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

下面结合图2-图7描述本发明的事件流数据处理方法。

在一个实施例中,如图2所示,提供了一种事件流数据处理方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

步骤202,获取待处理的事件流数据;该事件流数据为利用事件相机获取到的数据。

具体的,服务器可以从与之连接的事件相机上获取到待处理的事件流数据。其中的事件相机是一种能够异步地响应于局部像素点亮度变化的成像传感器,在事件相机中,每个像素点都能独立且异步地运行,并在发生亮度变化时输出事件流数据。

步骤204,对事件流数据进行数据用途分类,得到事件流数据中的应用数据序列集。

其中,数据用途是指数据的应用范围。例如,数据的用途为用作表示像素点的空间坐标或者用作表示数据的获取时间等。应用数据序列集是指由应用数据序列组成的集合,该集合中有至少一个应用数据序列;应用数据序列是指有一种数据用途的事件流数据组成的序列。例如,用作表示像素点的空间坐标x的事件流数据,组成了具有一定时间顺序的空间坐标x组成的序列,例如,空间坐标x组成的序列为{x1,x2……xn}。

具体的,服务器在得到事件流数据之后,对该事件流数据进行数据用途的分类,将事件流数据分类成应用数据序列集。

在一个实施例中,对该事件流数据进行数据用途的分类分别为表示像素点坐标x的应用数据序列{x1,x2……xn},表示事件流数据获取时间t的应用数据序列{t1,t2……tn},以及,表示事件流数据中表示像素点亮度变化p的应用数据序列{p1,p2……pn},从而得到了应用数据序列集{{x1,x2……xn},{t1,t2……tn},{p1,p2……pn}}。

步骤206,对应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个候选应用数据序列对应的中间数据序列。

具体的,服务器在得到应用数据序列集之后,在该应用数据序列集中选择任意一个或者多个应用数据序列,对该选择到的应用数据序列中的应用数据进行处理,得到该选择的应用数据序列对应的中间数据序列。

在一个实施例中,服务器可以将候选应用数据序列中的各个应用数据进行数据类型的转换,如果转换后首位存在0,则省略掉第一个非零位前所有的“0”,得到该候选应用数据序列对应的中间数据序列。例如,将得到的十进制的像素点坐标x的应用数据序列{328,342,306,26,60,319,298,131},转换成二进制的中间数据序列{101001000,101010110,100110010,11010,111100,100111111,100101010,10000011}。

步骤208,基于中间数据序列,对事件流数据进行处理,得到目标事件流数据。

具体的,服务器在得到中间数据序列,对该中间数据序列进行相应的处理之后,得到目标事件流数据。

在一个实施例中,服务器在得到中间数据序列,按照预设长度对中间数据序列进行划分,得到相同的预设长度的中间数据序列,将按照预设长度分割好的中间数据序列中的数据,进行数据类型转换,得到目标事件流数据,例如,预设长度为7,中间数据序列为二进制的序列{101001000,101010110,100110010,11010,111100,100111111,100101010,10000011},将该中间数据序列按照预设长度7进行划分,得到划分之后的中间数据序列为{1010010,0010101,0110100,1100101,1010111,1001001,1111110,0101010,1000001},对上述7位二进制进行数据类型转换,转换为十进制数据,得到十进制数据对应的序列{82,21,52,101,87,73,126,42,65},根据该十进制数据序列中的数据和目标数据流数据之间的映射关系,得到目标事件流数据为{R,NAK符,4,e,W,I,~,*,A}。

上述事件流数据处理方法中,通过获取待处理的事件流数据;该事件流数据为利用事件相机获取到的数据;对事件流数据进行数据用途分类,得到事件流数据中的应用数据序列集;对应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个候选应用数据序列对应的中间数据序列;基于中间数据序列,对事件流数据进行处理,得到目标事件流数据。对事件流数据进行分类,并且针对分类后的各个应用数据序列进行转换为中间数据序列,基于该中间数据序列,对事件流数据进行处理,避免了获取到的事件流数据因冗余度高而导致处理效率低的问题,提高了事件流数据处理效率。

在一个实施例中,应用数据序列集包括对象位置数据序列,对应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个候选应用数据序列对应的中间数据序列包括:对对象位置数据序列中各个对象位置数据进行处理,得到中间数据序列,以及,得到中间数据序列中各个中间数据的中间数据长度;基于中间数据序列,对事件流数据进行处理,得到目标事件流数据包括:根据中间数据长度,将中间数据序列中各个中间数据进行顺序连接,得到目标数据序列;基于目标数据序列,对事件流数据进行处理,得到目标事件流数据。

其中,对象位置数据是指能够表示对象位置的数据,例如,能够表示对象坐标的数据(x,y)。对象是指事件流数据中的对象,例如,对象为像素点;数据长度是指能够表示数据的长度,该长度可以以数据的位数表示的数据。例如,以二进制的数据表示的数据001001,则该数据的数据长度为6位。

具体的,服务器在得到数据序列集中候选应用数据序列为对象位置数据序列时,对该序列中的各个对象位置数据进行数据类型的转换处理,得到中间数据序列,并且得到相应的中间数据长度。根据该中间数据长度对转换后的各个中间数据进行顺序连接,得到目标数据序列;基于目标数据序列,对事件流数据进行处理,得到目标事件流数据。

例如,以对象位置数据序列为像素点的横坐标x,横坐标x为十进制的序列{328,342,306,26,60,319,298,131},对该序列中的各个横坐标x进行数据类型转换,将十进制转换为二进制的中间数据序列{101001000,101010110,100110010,11010,111100,100111111,100101010,10000011},得到中间数据长度分别为9,9,9,5,6,9,9,8,根据该长度将中间数据序列中的各个数据进行从左到右首尾相连,得到{1010010001010101101001100101101011110010011111110010101010000011}的目标数据序列,基于该目标数据序列,可以完成对事件流数据的处理,得到目标事件流数据。

本实施例中,通过对对象位置数据序列中各个对象位置数据,得到中间数据序列,以及,得到中间数据序列中各个中间数据的中间数据长度,根据中间数据长度,将中间数据序列中各个中间数据进行顺序连接,得到目标数据序列;基于目标数据序列,对事件流数据进行处理,得到目标事件流数据。能够达到将对象位置数据转换为服务器能够快速处理的数据类型,进而能够提高事件流数据处理效率。

在一个实施例中,如图3所示,基于目标数据序列,对事件流数据进行处理,得到目标事件流数据包括:

步骤302,根据预设数据长度,对目标数据序列中的各个目标数据进行划分,得到目标数据序列对应的数据子序列。

具体的,服务器得到目标数据序列之后,根据预设数据长度,对该目标数据序列中的数据进行划分,划分成各个数据子序列。其中的预设数据长度可以为7位,在目标数据序列中从左到右进行划分,划分完毕之后,删除预设数据长度取模不为零的部分对应的数据。例如,预设数据长度为7位,目标数据序列为{10100100010101011010011001011010111100,10011111110010101010000011},该序列中共有64位数据,对预设长度7取模,余数为1,则将序列中最后1位进行另行保存,得到的数据子序列为{1010010},{0010101},{0110100},{1100101},{1010111},{1001001},{1111110},{0101010},{1000001}。

在一个实施例中,序列中最后1位进行另行保存的方法为将该位的数据以后缀形式设置于中间数据长度后。例如,中间数据长度分别为9,9,9,5,6,9,9,8,在长度为8的后面添加空格,将上述多余出的序列中最后1位后缀于空格后,即99956998空格“1”,可以理解的,在上述长度组成的序列中表示长度的数字之间无任何分隔符号。例如,长度9和长度5之间无任何分隔符号。

步骤304,对数据子序列中的数据进行数据类型转换,得到目标事件流数据。

具体的,服务器在得到数据子序列之后,将该数据子序列中的数据转换为十进制,并根据该十进制与事件流数据编码字符之间的对应关系,得到相应目标事件流数据。例如,数据子序列为{1010010},{0010101},{0110100},{1100101},{1010111},{1001001},{1111110},{0101010},{1000001},该数据子序列中的数据转换为十进制为{82,21,52,101,87,73,126,42,65},通过十进制与事件流数据编码字符之间的对应关系,得到目标事件流数据为{R,NAK符,4,e,W,I,~,*,A}。

本实施例中,通过根据预设数据长度,对目标数据序列中的各个目标数据进行划分,得到目标数据序列对应的数据子序列,对数据子序列中的数据进行数据类型转换,得到目标事件流数据,能够达到减少事件流数据冗余,提高事件流数据处理效率的目的。

在一个实施例中,应用数据序列集包括事件流时间戳数据序列和事件流条件数据序列,对应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个候选应用数据序列对应的中间数据序列包括:根据事件流时间戳数据序列中的候选事件流时间戳数据与前向事件流时间戳数据的差异,得到各个候选事件流时间戳数据对应的时间数据差异值;上述前向事件流时间戳数据为候选事件流时间戳数据对应的前向事件流时间戳数据;根据事件流条件数据序列中的候选事件流条件数据携带的亮度标识,将事件流条件数据转换为预设编码数据;将预设编码数据和时间戳数据差异值交替相邻排列,得到中间数据序列;基于中间数据序列,对事件流数据进行处理,得到目标事件流数据包括:将中间数据序列中个各个中间数据,按照事件流时间戳数据序列中各个事件流时间戳数据生成时间的递增方向顺序排列,得到目标事件流数据。

其中,时间数据差异值是指时间戳的差值,该差值为候选事件流时间戳数据与前向事件流时间戳数据的差异,前向事件流时间戳数据是与候选事件流时间戳数据相邻,并且先于选事件流时间戳数据获取到的事件流时间戳数据。例如,候选事件流时间戳数据为1599040360353766,前向事件流时间戳数据为1599040360353764,则时间戳数据差异值为2。亮度标识是指能够表示亮度变化的标记,该标记可以为数字表示,例如,亮度标识为1,表示亮度增大;亮度标识为0,表示亮度减小。

具体的,服务器确定候选应用数据序列为事件流时间戳数据序列和事件流条件数据序列之后,通过事件流时间数据序列中事件流时间戳数据的差异得到时间戳数据差异值,以及,通过事件流条件数据序列中中的事件流条件数据携带的亮度标识得到预设编码数据,结合时间数据差异值和预设编码数据,得到中间数据序列,基于该中间数据序列,得到目标事件流数据。

在一个实施例中,假设事件流时间戳数据序列为{1599040360353764,1599040360353766,1599040360353777,1599040360353785,1599040360353806,1599040360353846,1599040360353857,1599040360353888,1599040360353892,1599040360353898}包含了10个事件的事件流数据,得到的时间戳数据差异值为{0,2,11,8,21,40,11,31,4,6},事件流条件数据序列中的候选事件流条件数据携带的亮度标识为{0,1,0,0,0,0,0,1,0,1},根据该亮度标识与预设编码数据的对应关系,将事件流条件数据转换为预设编码数据{-,+,-,-,-,-,-,+,-,+},将上述预设编码数据和时间数据差异值交替相邻排列,得到中间数据序列{-0,+2,-11,-8,-21,-40,-11,+31,-4,+6},并且该方向是与各个事件流时间戳数据生成时间戳的递增方向顺序相同,从事件流数据获取开始的方向开始,到事件流数据获取完成的方向结束。

本实施例中,通过根据事件流时间戳数据序列中的候选事件流时间戳数据与前向事件流时间戳数据的差异,得到各个候选事件流时间戳数据对应的时间戳数据差异值;上述前向事件流时间戳数据为候选事件流时间戳数据对应的前向事件流时间戳数据;根据事件流条件数据序列中的候选事件流条件数据携带的亮度标识,将事件流条件数据转换为预设编码数据;将预设编码数据和时间戳数据差异值交替相邻排列,得到中间数据序列,将中间数据序列中各个中间数据,按照事件流时间戳数据序列中各个事件流时间戳数据生成时间的递增方向顺序排列,得到目标事件流数据,将事件流时间戳数据和事件流条件数据进行联合编码处理,能够达到减少事件流时间戳数据和事件流条件数据处理过程中多余冗余字符,例如,多余字符为空格等,提高了事件流数据处理效率。

在一个实施例中,亮度标识包括像素点的亮度增大标识和像素点的亮度减小标识,根据事件流条件数据序列中的候选事件流条件数据携带的亮度标识,将事件流条件数据转换为预设编码数据包括:若亮度标识为亮度增大标识时,将事件流条件数据转换为第一预设编码数据;若亮度标识为亮度减小标识时,将事件流条件数据转换为第二预设编码数据;其中,第一预设编码数据和第二预设编码数据极性相反。

具体的,服务器在获取事件流数据时需要有事件的触发条件,该触发条件发生,事件相机产生事件流数据,并将该事件流数据传输给服务器,当某个像素点的亮度增加到一定的亮度阈值时,产生事件数据;或者,当某个像素点的亮度减小到一定的亮度阈值时,产生事件数据。事件流条件数据为像素点亮度变化数据,例如,在像素点亮度增加10lcd/m

在一个实施例中,若亮度标识为亮度增加标识时,将事件流条件数据转换为第一预设编码数据+,若亮度标识为亮度减少标识时,将事件流条件数据转换为第二预设编码数据-,并且第一预设编码数据+表示的是正极性,第二预设编码数据-表示的是负极性,两者极性相反。

本实施例中,通过将事件流条件数据转换为第一预设编码数据或者第二预设编码数据,能够达到减少事件流条件数据处理过程中的数据冗余,提高了事件流条件数据处理效率。

在一个实施例中,如图4所示,方法还包括:

步骤402,对目标事件流数据进行数据类型转换,得到预设数据长度的数据子序列。

具体的,服务器在得到目标事件流数据之后,可以利用该目标事件流数据与数据子序列中数据的数据进行数据类型转换,得到预设数据长度的数据子序列。例如,目标事件流数据为{R,NAK符,4,e,W,I,~,*,A},先将该目标事件流数据转换为十进制的序列{82,21,52,101,87,73,126,42,65},然后转换为预设长度为7的数据子序列{1010010},{0010101},{0110100},{1100101},{1010111},{1001001},{1111110},{0101010},{1000001}。

步骤404,对数据子序列进行顺序排列,得到目标数据序列。

具体的,服务器在得到数据子序列之后,对数据子序列进行顺序排列,得到目标数据序列为{101001000101010110100110010110101111001001111111001010101000001}。

步骤406,根据中间数据长度,对目标数据序列进行划分,得到中间数据序列中间数据序列。

具体的,服务器得到目标数据序列{101001000101010110100110010110101111001001111111001010101000001}之后,存储有中间数据长度分别为9,9,9,5,6,9,9,8,以及对应的在编码过程中删除的最后1位数据“1”,即9,9,9,5,6,9,9,8空格“1”,将空格后的“1”添加到上述目标数据序列的最后一位,得到中间数据序列{101001000,101010110,100110010,11010,111100,100111111,100101010,10000011}。

步骤408,对中间数据序列中的各个中间数据进行数据类型转换,得到对象位置数据序列。

具体的,服务器在得到中间数据序列之后,对其中的数据从二进制转换为十进制,得到对象位置数据序列{328,342,306,26,60,319,298,131}。

本实施例中,通过对目标事件流数据进行数据类型转换,得到预设数据长度的数据子序列,对数据子序列进行顺序排列,得到目标数据序列,根据中间数据长度,对目标数据序列进行划分,得到中间数据序列中间数据序列,对中间数据序列中的各个中间数据进行数据类型转换,得到对象位置数据序列,能够达到在服务器接收到目标事件流数据后,对目标事件流数据进行准确、快速解码的目的,提高了目标事件流数据的处理效率。

在一个实施例中,如图5所示,事件流数据处理方法还包括:

步骤502,将预设编码数据,确定为首位标识数据。

其中,首位标识数据是指处在第一位的,并且能够起标识作用的数据。

具体的,预设编码数据包括+,-,将该预设编码数据,确定为首位标识数据。

步骤504,根据首位标识数据,将目标事件流数据分解为对应的中间数据序列。

具体的,服务器得到首位标识数据之后,根据该标识数据,将目标事件流数据分解为对应的中间数据序列。假设,目标事件流数据为-0+2-11-8-21-40-11+31-4+6,将该目标事件流数据分解为对应的中间数据序列{-0,+2,-11,-8,-21,-40,-11,+31,-4,+6}。

步骤506,获取中间数据序列中候选中间数据中与首位标识数据相邻的次位数据。

其中,次位数据是指与首位标识数据相邻的后缀的数据,例如,中间数据序列中的中间数据+2的首位标识数据位+,次位数据为2。

具体的,服务器获取到中间数据序列之后,对该中间数据序列中各个中间数据进行分解,得到各个中间数据的次位数据。例如,中间数据序列为{-0,+2,-11,-8,-21,-40,-11,+31,-4,+6},则获取到的中间数据序列中各个候选中间数据对应的次位数据组成的次位数据序列为{0,2,11,8,21,40,11,31,4,6}。

步骤508,将次位数据确定为事件流时间戳数据差异值。

具体的,服务器得到次位数据后,在次位数据组成的序列中的第一次位数据确定为事件流时间戳数据差异值。例如,次位数据序列为{0,2,11,8,21,40,11,31,4,6},则将其中的各个数据确定为事件流时间戳数据差异值。

步骤510,基于时间戳数据差异值,对事件流时间戳数据的初始数据进行处理,得到各个候选中间数据对应事件流时间戳数据序列;其中,该初始数据为首次获取到的事件流数据。

具体的,服务器获取到事件流时间戳数据差异值之后,基于该时间戳数据差异值,以初始数据为基数,以时间戳数据差异值为增加值,不断累加,得到事件流时间戳数据序列。例如,初始数据为1599040360353764,时间戳数据差异值分别为{0,2,11,8,21,40,11,31,4,6},则得到的事件流时间戳数据序列为{1599040360353764,1599040360353766,1599040360353777,1599040360353785,1599040360353806,1599040360353846,1599040360353857,1599040360353888,1599040360353892,1599040360353898}。

本实施例中,通过将预设编码数据,确定为首位标识数据,根据首位标识数据,将目标事件流数据分解为对应的中间数据序列,将次位数据确定为事件流时间戳数据差异值,基于时间戳数据差异值,对事件流时间戳数据的初始数据进行处理,得到各个候选中间数据对应事件流时间戳数据序列,能够达到利用目标事件流数据分解为事件流时间戳数据的目的,减少了在解码过程中冗余信息的误解码,从而实现提高了对目标事件流数据进行解码效率和准确率的目的。

在一个实施例中,以对事件相机获取到事件流数据进行编码为例,在数据中包括了像素点的空间坐标、时间戳和极性标记,像素点的空间坐标中的x坐标为例,将该x坐标转换为二进制,并保存各个转换后的二进制长度,以前8个事件为例,转换后的对应表如下表1所示:

表1坐标转换对应表

如图6所示,将上述转换为二进制形式的数据进行无间隔地连接在一起,形成一串二进制序列。将该二进制序列以每7位划分一次,得到二进制的子序列。根据该子序列中数据与十进制以及ASCII编码表映射关系,将上述子序列中的数据映射为ASCII字符,如表2所示,为将上述子序列中的数据映射为ASCII字符。

表2数据对应表

具体的,第8组子序列10000011在进行划分过程中,最后位上的数据“1”以后缀形式,添加到二进制长度,以空格为分隔标志,表示为9,9,9,5,6,9,9,8空格“1”。保存编码后的ASCII字符,每个字符仅占1个字节,减少了冗余。

具体的,对时间戳进行差分编码,对极性标记编码为特殊符号,并用其分隔时间戳的差分值,由于时间戳具有升序的数据特征,因此对时间戳进行差分编码,减少其数据表达上的冗余。如表3所示,第2、3列为数据集前10个事件的时间戳及差分值。

表3时间戳及联合编码对应表

具体的,由于极性标记具有二项性,因此可用特殊符号来进行标记,并用此作为时间戳差分值的分隔符,进一步减少不同类别数据存储上的冗余。如表3所示,第4和第5列为实施例数据集前10个事件的极性标记及其二项映射编码,将极性标记按照正负分别表示为‘+’、‘-’。利用极性标记的编码符号作为分隔符,分隔时间戳差分值。如表3所示,第6列为数据集前10个事件的时间戳和极性标记联合编码的结果。这样以来,极性标记便充当了相邻事件时间戳差分值间的分隔符,从不同类型数据联合存储的角度减少了冗余。数据集前10个事件的时间戳和极性标记编码后的序列为:“-0+2-11-8-21-40-11+31-4+6”。

在一个实施例中,可以对编码后的空间地址坐标进行解码,如图7所示,对空间地址坐标的解码,按照编码的逆过程,借助编码过程中保存的序列长度字典,逐步解码。数据集前8个事件的空间坐标x为例进行解码。将保存的ASCII字符映射为7位短二进制序列,将所有7位短序列无间隔地连接在一起,成为一个较长的二进制序列,即“bin连接序列”,然后,根据编码过程中保存的“序列长度字典”,将连接起来的“bin连接序列”的首位开始,按照序列长度字典中每一个空间地址坐标所对应二进制序列长度,依次无间隔地截取相应长度的二进制序列。截取的二进制序列转化为十进制,即解码出原始空间地址坐标,如图7所示的黑色框位置最后一位添加的“1”是基于在编码时,保存的二进制长度以空格形式分割开的数据,即9,9,9,5,6,9,9,8空格“1”中的后缀“1”。

具体的,对时间戳和极性标记的解码,划分编码后的合并序列为每个事件对应的短序列,将编码后的合并序列,根据‘+’、‘-’符号划分为每一个事件所对应的短序列。短序列的首位,为极性标记位,此后为时间戳的差分值。具体的,极性标记的解码划分的每个短序列对应于一个事件的极性标记和时间戳。短序列的首位,为极性标记位,根据‘+’、‘-’符号分别解码为正极性、负极性。划分的短序列,解码了首位后,其后的序列为该事件时间戳差分值。根据保存的初始时间戳,可不断累加差分值从而解码出原始时间戳。

下面对本发明提供的事件流数据处理装置进行描述,下文描述的事件流数据处理装置与上文描述的事件流数据处理方法可相互对应参照。

在一个实施例中,如图8所示,提供了一种事件流数据处理装置800,包括:事件流数据获取模块802、应用数据序列集得到模块804、中间数据序列得到模块806和目标事件流数据得到模块808,其中:事件流数据获取模块802,用于获取待处理的事件流数据;事件流数据为利用事件相机获取到的数据;应用数据序列集得到模块804,用于对事件流数据进行数据用途分类,得到事件流数据中的应用数据序列集;中间数据序列得到模块806,用于对应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个候选应用数据序列对应的中间数据序列;目标事件流数据得到模块808,用于基于中间数据序列,对事件流数据进行处理,得到目标事件流数据。

在一个实施例中,中间数据序列得到模块806,用于对对象位置数据序列中各个对象位置数据进行处理,得到中间数据序列,以及,得到中间数据序列中各个中间数据的中间数据长度;根据中间数据长度,将中间数据序列中各个中间数据进行顺序连接,得到目标数据序列;基于目标数据序列,对事件流数据进行处理,得到目标事件流数据。

在一个实施例中,中间数据序列得到模块806,用于根据预设数据长度,对目标数据序列中的各个目标数据进行划分,得到目标数据序列对应的数据子序列;对数据子序列中的数据进行数据类型转换,得到目标事件流数据。

在一个实施例中,中间数据序列得到模块806,用于根据事件流时间戳数据序列中的候选事件流时间戳数据与前向事件流时间戳数据的差异,得到各个候选事件流时间戳数据对应的时间戳数据差异值;前向事件流时间戳数据为候选事件流时间戳数据对应的前向事件流时间戳数据;根据事件流条件数据序列中的候选事件流条件数据携带的亮度标识,将事件流条件数据转换为预设编码数据;将预设编码数据和时间数据差异值交替相邻排列,得到中间数据序列;将中间数据序列中各个中间数据,按照事件流时间戳数据序列中各个事件流时间戳数据生成时间戳的递增方向顺序排列,得到目标事件流数据。

在一个实施例中,中间数据序列得到模块806,用于若亮度标识为亮度增大标识时,将事件流条件数据转换为第一预设编码数据;若亮度标识为亮度减小标识时,将事件流条件数据转换为第二预设编码数据;其中,第一预设编码数据和第二预设编码数据极性相反。

在一个实施例中,事件流数据处理装置,用于对数据子序列进行顺序排列,得到目标数据序列;根据中间数据长度,对目标数据序列进行划分,得到中间数据序列;对中间数据序列中的各个中间数据进行数据类型转换,得到对象位置数据序列。

在一个实施例中,事件流数据处理装置,用于将预设编码数据,确定为首位标识数据;根据首位标识数据,将目标事件流数据分解为对应的中间数据序列;获取中间数据序列中候选中间数据中与首位标识数据相邻的次位数据;将次位数据确定为事件流时间戳数据差异值;基于时间戳数据差异值,对事件流时间戳数据的初始数据进行处理,得到各个候选中间数据对应事件流时间戳数据序列;其中,初始数据为首次获取到的事件流数据。

图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(Communications Interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行事件流数据处理方法,该方法包括:获取待处理的事件流数据;事件流数据为利用事件相机获取到的数据;对事件流数据进行数据用途分类,得到事件流数据中的应用数据序列集;对应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个候选应用数据序列对应的中间数据序列;基于中间数据序列,对事件流数据进行处理,得到目标事件流数据。

此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的事件流数据处理方法,该方法包括:获取待处理的事件流数据;所述事件流数据为利用事件相机获取到的数据;对所述事件流数据进行数据用途分类,得到所述事件流数据中的应用数据序列集;对所述应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个所述候选应用数据序列对应的中间数据序列;基于所述中间数据序列,对所述事件流数据进行处理,得到目标事件流数据。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的事件流数据处理方法,该方法包括:获取待处理的事件流数据;所述事件流数据为利用事件相机获取到的数据;对所述事件流数据进行数据用途分类,得到所述事件流数据中的应用数据序列集;对所述应用数据序列集中候选应用数据序列中的各个应用数据进行处理,得到各个所述候选应用数据序列对应的中间数据序列;基于所述中间数据序列,对所述事件流数据进行处理,得到目标事件流数据。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 事件流数据处理方法、装置、电子设备及存储介质
  • 一种数据处理方法、装置、电子设备和存储介质
技术分类

06120113788677