基于仿生图像传感器的数据处理方法、装置、设备和介质

文档序号:25870569发布日期:2021-07-16 08:48阅读:278来源:国知局
基于仿生图像传感器的数据处理方法、装置、设备和介质

本发明涉及数字图像处理技术领域,特别是涉及一种基于仿生图像传感器的数据处理方法、装置、设备和介质。



背景技术:

在计算机视觉中,数据采集工作主要依赖于图像传感器。常规的CMOS图像传感器以一系列连续的图像帧来捕捉场景。这些图像帧中通常包含大量重复背景等冗余数据。冗余数据的读取、传输和计算处理,增加了不必要的传输存储和计算开销。此外,由于曝光机制的限制,连续两帧之间存在信息欠采样问题,导致运动模糊和运动轨迹的丢失。因此,常规图像传感器通常存在带宽瓶颈、功耗浪费、信息丢失、运算能力不足以及系统复杂度高等问题。

受生物视觉原理的启发,研究人员从像素层级和电路结构模仿生物视网膜,设计了一种基于事件的仿生图像传感器。与传统相机以固定的帧率连续测量所有像素的绝对亮度不同,仿生图像传感器以不同步的速率捕获每个像素亮度变化,且只有在捕捉到场景的瞬时变化时才会产生事件输出。因此,仿生图像传感器能异步输出敏感的运动信息,具有高时间分辨率、高动态范围、低延迟、低带宽要求等特点。

但是仿生图像传感器输出的异步事件流表征形式和常规图像帧的数据结构存在很大差异,现有成熟的图像处理技术(如卷积神经网络)难以直接应用于事件流数据。

因此,基于事件数据的处理技术还需要开发新的算法。



技术实现要素:

鉴于以上所述现有技术的缺点,本申请的目的在于提供一种基于仿生图像传感器的数据处理方法、装置、设备和介质,以解决现有技术中异步事件流与常规图像帧的数据结构存在很大差异,难以直接应用的问题。

为实现上述目的及其他相关目的,本申请提供一种基于仿生图像传感器的数据处理方法,所述方法包括:读取仿生图像传感器所采集的由像素位置、极性、及时间戳表达的事件流;分别将预设的第一三维数组和第二三维数组的数组中各地址对应的数据值设定一初始值;依据每个到达的事件的像素位置和极性分别确定第一三维数组和第二三维数组中的目标地址;根据第一三维数组中确定的目标地址,将其对应的数据值更新为初始值N,并将其周围预设邻域窗口范围内各邻域地址对应的数据值减去预设值k,以及将预设邻域窗口范围外的非邻域地址的数据值维持不变;和/或,根据第二三维数组中确定的目标地址,将其对应的数据值更新为当前事件对应的时间戳;当满足预设条件时,以最新更新的第一三维数组作或者以最新更新的第一三维数组结合第二三维数组作为编码后的事件帧输出,并返回第一步骤继续读取事件流。

于本申请的一实施例中,所述根据第二三维数组中确定的目标地址,将其对应的数据值更新为当前事件对应的时间戳,包括:将当前事件的时间戳与第二三维数组中目标地址最新更新的数据值进行比较,判断若两者之间的差值是否大于预设时间值;若是,则分别对第一三维数组与第二三维数组中的目标地址进行更新;若否,则均不进行更新。

于本申请的一实施例中,所述预设邻域窗口范围为(2R+1)×(2R+1);其中,R表示所关注邻域范围的半径。

于本申请的一实施例中,所述第一三维数组各地址的数据值范围为[N-k(2R+1)2,N]。

于本申请的一实施例中,所述以最新更新的第一三维数组结合第二三维数组作为编码后的事件帧输出,包括:将最新更新的第一三维数组乘以归一化后的最新更新的第二三维数组,作为编码后的事件帧输出;其中,编码方法可采用基于频率的编码方法或基于时间的编码方法。

于本申请的一实施例中,所述预设条件包括:时间戳跨度满足一预设时间窗口的时长时,或者,事件发生总数满足预设值时。

为实现上述目的及其他相关目的,本申请提供一种基于仿生图像传感器的数据处理装置,所述装置包括:读取模块,用于读取仿生图像传感器所获取的由像素位置、极性、及时间戳表达的事件流;初始化模块,用于分别将预设的第一三维数组和第二三维数组的数组中各地址对应的数据值设定一初始值;处理模块,用于依据每个到达的事件的像素位置和极性分别确定第一三维数组和第二三维数组中的目标地址;根据第一三维数组中确定的目标地址,将其对应的数据值更新为初始值,并将其周围预设邻域窗口范围内各邻域地址对应的数据值减去预设值,以及将预设邻域窗口范围外的非邻域地址的数据值维持不变;和/或,根据第二三维数组中确定的目标地址,将其对应的数据值更新为当前事件对应的时间戳;当满足预设条件时,以最新更新的第一三维数组作或者以最新更新的第一三维数组结合第二三维数组作为编码后的事件帧输出,并返回第一步骤继续读取事件流。

为实现上述目的及其他相关目的,本申请提供一种计算机设备,所述设备包括:存储器、处理器、及通信器;所述存储器用于存储计算机指令;所述处理器运行计算机指令实现如上所述的方法;所述通信器通信连接仿生图像传感器,以获取其采集的由像素位置、极性、及时间戳表达的事件流。

为实现上述目的及其他相关目的,本申请提供一种计算机可读存储介质,存储有计算机指令,所述计算机指令被运行时执行如上所述的方法。

综上所述,本申请的一种基于仿生图像传感器的数据处理方法、装置、设备和介质,通过读取仿生图像传感器所采集的由像素位置、极性、及时间戳表达的事件流;分别将预设的第一三维数组和第二三维数组的数组中各地址对应的数据值设定一初始值;依据每个到达的事件的像素位置和极性分别确定第一三维数组和第二三维数组中的目标地址;根据第一三维数组中确定的目标地址,将其对应的数据值更新为初始值,并将其周围预设邻域窗口范围内各邻域地址对应的数据值减去预设值,以及将预设邻域窗口范围外的非邻域地址的数据值维持不变;和/或,根据第二三维数组中确定的目标地址,将其对应的数据值更新为当前事件对应的时间戳;当满足预设条件时,以最新更新的第一三维数组作或者以最新更新的第一三维数组结合第二三维数组作为编码后的事件帧输出,并返回第一步骤继续读取事件流。

具有以下有益效果:

本申请与现有技术相比,能更好地编码仿生图像传感器输出事件流固有的时空特征。对于不同运动快慢的物体都能很明显地编码出物体的轮廓。

附图说明

图1显示为本申请于一实施例中基于仿生图像传感器的数据处理方法的流程示意图。

图2显示为本申请于一实施例中三维数组及简化过程的模型示意图。

图3显示为本申请于一实施例中基于仿生图像传感器的数据处理方法的处理流程示意图。

图4显示为本申请于一实施例中基于仿生图像传感器的数据处理装置的模块示意图。

图5显示为本申请于一实施例中计算机设备的结构示意图。

具体实施方式

以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,虽然图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,但其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

在通篇说明书中,当说某部分与另一部分“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部分“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素,排除在外,而是意味着可以还包括其它构成要素。

其中提到的第一、第二及第三等术语是为了说明多样的部分、成分、区域、层及/或段而使用的,但并非限定于此。这些术语只用于把某部分、成分、区域、层或段区别于其它部分、成分、区域、层或段。因此,以下叙述的第一部分、成分、区域、层或段在不超出本申请范围的范围内,可以言及到第二部分、成分、区域、层或段。

再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。

如图1所示,展示为本申请一实施例中的基于仿生图像传感器的数据处理方法的流程示意图。如图所示,所述方法包括:

步骤S101:读取仿生图像传感器所采集的由像素位置x,y、极性p、及时间戳t表达的事件流。

通常仿生图像传感器的输出是一串可变数据速率序列,称为数字“事件”或“脉冲”。每个事件代表在特定时间某个像素处的亮度(对数强度)发生预先定义幅值的变化。当对数强度增加一个阈值(ON阈值)时,它将产生一个表示亮度增加ON事件。反之,对数强度降低阈值(OFF阈值)时,将产生亮度减少的OFF事件。仿生图像传感器输出每个事件以一个(x,y,t,p)四元组表示。x,y表示感知到该事件的像素位置,t为记录事件的事件戳,极性p表示事件的ON/OFF性质,及通常用0或1表示。随着环境的不断变化,仿生图像传感器感知的一系列事件以序列的形式输出,形成事件流。

步骤S102:分别将预设的第一三维数组和第二三维数组的数组中各地址对应的数据值设定一初始值N。

有选地,第一三维数组可以表示为时间面S(x,y,p),第二三维数组可以表示为时间戳平面T(x,y,p)。这里面前两个维度(x,y)代表事件发生在事件帧中的像素位置,第三个维度(p)代表事件的极性。

其中,时间面可以解释为一个平面,平面内每个像素单元位置的值是与时间有关的计算量。时间戳是每个事件发生的时间。每个事件是由(x,y,p,t)表示的,时间戳是里面的t。

而每一个于第一三维数组或第二三维数组中具体的(x,y,p)位置的数据值,初始均设定一初始值N,例如初始值N为0,随着后续不断有时间流的进入,对相应位置上的S数据值或T数据值进行更新。

步骤S103:依据每个到达的事件的像素位置和极性分别确定第一三维数组和第二三维数组中的目标地址。

这里需要说明的是,像素位置(x,y)和极性(p)实质构成了针对三维数组中的寻址地址,即第一三维数组和第二三维数组是由(x,y,p)三维坐标构成的,换句话说,每到来一个事件,根据事件的(x,y,p)数据,便可以确定第一三维数组和第二三维数组中具体的位置或地址。

步骤S104:根据第一三维数组中确定的目标地址,将其对应的数据值更新为初始值,并将其周围预设邻域窗口范围内各邻域地址对应的数据值减去预设值k,以及将预设邻域窗口范围外的非邻域地址的数据值维持不变;和/或,根据第二三维数组中确定的目标地址,将其对应的数据值更新为当前事件对应的时间戳。

简单来说,当确定了第一三维数组中的目标地址,则无论此时目标地址的数据值已更新为多少时,都对其对应的数据值重新更新为初始值N,如0。

其次,通过预设表示所关注邻域范围的半径R,找到邻域窗口范围为(2R+1)×(2R+1),然后对位于目标位置(x,y)的邻域窗口(2R+1)×(2R+1)范围内的所有第一三维数组中位置对应的数据值都减去预设值k,如k=1。其中,经试验比对,当R为3时,输出效果最好。

最后,其余邻域窗口范围外的非邻域地址的数据值保持不变。如此可以保证S中值的取值范围为[-(2R+1)2,0]。具体更新过程可以通过如下公式表示:

S(x,y,p)=0。

于本申请一实施例中,所述根据第二三维数组中确定的目标地址,将其对应的数据值更新为当前事件对应的时间戳,包括:

A、将当前事件的时间戳与第二三维数组中目标地址最新更新的数据值进行比较,判断若两者之间的差值是否小于预设时间值Ttr;

B、若是,则分别对第一三维数组与第二三维数组中的目标地址进行更新;若否,则均不进行更新。

简单来说,每当每个事件(x,y,p,t)到达时,首先将该事件时间戳t与第二三维数组(时间戳平面)T中(x,y)像素位置记录的最新时间T(x,y,p)进行比较。只有当两者之间的差值大于预设时间值Ttr时,才考虑更新第一三维数组(时间面)S。同时,第二三维数组(时间戳平面)中的T(x,y,p)被更新为新的时间戳t。否则,当两者之间的差值小于等于预设时间值Ttr时,第一三维数组(时间面)S和第二三维数组(时间戳平面)T均不更新。

需要说明的是,仿生图像传感器捕捉到的事件数量与物体运动快慢有关。运动较快的物体周围会产生更多的事件,可称为“密集事件”。运动慢的物体周围产生事件较少,称为“稀疏事件”。

假设一个时间面,这个时间面上每个像素的值都与相应位置发生的事件有关。每当一个事件到来时,时间面上对应位置的像素值会更新为一个预设值,同时该点周围位置的像素值会有一定程度的减少。这主要是为了体现接收到信号位置对邻域范围的抑制效应。

对于某个像素位置,其邻域位置发生的事件越多,该像素点受到的抑制越多,像素值减少的幅度越大。相反,邻域范围内事件发生较少的像素会受到较轻的惩罚。在邻域范围内没有事件发生时,该像素值将一直保持到时间面的截止时间。

通常,事件帧中“密集事件”区域像素值较大,轮廓较明显。在引入邻域抑制机制后,这部分区域像素权重被抑制地也更多。而“稀疏事件”区域的轮廓受到抑制较小。经过如此平衡后,无论是“密集事件”区域还是“稀疏事件”区域,映射到时间面上的事件轮廓都应该是相似的,而不存在“稀疏事件”区域被过度抑制的情况。

为了进一步减少“密集事件”影响,本申请还在事件整合处理前增加一个时间滤波器。具体来说,当一个事件到来时,计算其与该像素位置前一个事件的时间间隔。通过比较该时间间隔和设定一个时间间隔阈值,决定该事件是否经过后续的编码处理。当时间戳间隔小于设定阈值时,这两个事件被认为是重复事件,该事件将不做处理。而每一个时间间隔较大的事件都会顺利通过滤波器,使编码后的事件帧发生相应的变化。这种简单的时间滤波器可以过滤掉一部分“密集事件”区域的事件,减小其对时间面的贡献,而“稀疏事件”区域则不受滤波器的影响。

为进一步理解本申请步骤S104的技术内容,以下将针对本方法进行详细的举例说明:

如图2所示,首先,为了便于理解第一三维数组(时间面)S和第二三维数组(时间戳平面)T,可将三维数组的元素(x,y,p)简化为m,即S(x,y,p)简化为S(m);T(x,y,p)简化为T(m)。

其次,假设m=8,初始化第一三维数组(时间面)S和第二三维数组(时间戳平面)T中各值为初始值0。即:S=[0 0 0 0 0 0 0 0],T=[0 0 0 0 0 0 0 0]。

假设第1个事件(x,y,p,t)到来,其可简化为(m,t),假设(m,t)为(5,2),那么数组中确定的位置或地址为5,对应的事件戳为2;为了便于理解,这里假设预设邻域窗口范围为1,则相应的可得:

S=[0 0 0 -1 0 -1 0 0],T=[0 0 0 0 2 0 0 0];

假设第2个事件(x,y,p,t)到来,(m,t)为(2,6),那么数组中确定的位置或地址为2,对应的事件戳为6,则相应的可得:

S=[-1 0 -1 -1 0 -1 0 0],T=[0 6 0 0 2 0 0 0];

假设第3个事件(x,y,p,t)到来,(m,t)为(3,10),那么数组中确定的位置或地址为3,对应的事件戳为10,则相应的可得:

S=[-1 -1 0 -2 0 -1 0 0],T=[0 6 10 0 2 0 0 0];

假设第4个事件(x,y,p,t)到来,(m,t)为(3,11),那么数组中确定的位置或地址为3,对应的事件戳为11;为了便于理解,这里假设预设时间值Ttr大于1,由于相同位置3的时间戳11-10并没有大于1,因此,S和T均不更新,故可得:

S=[-1 -1 0 -2 0 -1 0 0],T=[0 6 10 0 2 0 0 0]。

以此类推,继续编码下一个事件。当到达预设时间窗口的时长时,输出最新更新的第一三维数组作(时间面)S;或者以最新更新的第一三维数组(时间面)S结合第二三维数组(时间戳平面)T作为编码后的事件帧输出,并返回第一步骤继续读取事件流。

步骤S105:当满足预设条件时,以最新更新的第一三维数组作或者以最新更新的第一三维数组结合第二三维数组作为编码后的事件帧输出,并返回第一步骤继续读取事件流。

于一些实施案例中,所述预设条件包括:时间戳跨度满足一预设时间窗口的时长时,或者,事件发生总数满足预设值时。

需要说明的是,这里所述的时间窗口简单来说,可以是对应常规图像帧时间窗口,例如20ms或40ms,也可以是根据事件流输出情况自行调整时间窗口。本申请将预设时间窗口内的所有事件进行整合,来输出一帧的事件帧。

或者,在对静止画面较多或特殊场景下的视频数据处理时,还可针对事件总数作为分割提取事件流的条件,以此更关注事件发生时图像物体的轮廓。

综上原因,所以本申请在一时间窗口内的事件流中,可以将最近发生的事件赋予占有较大的权重,因此,本申请第一三维数组和第二三维数组优选反映最新的事件,即将数组中各位置或数据值按最新的更新。这样,在这一时间窗口内将最近的事件进行突出,能够对于不同运动快慢的物体都能很明显地编码出物体的轮廓。

于本申请一实施例中,可以将最新更新的第一三维数组作为编码后的事件帧输出;或者,将最新更新的第一三维数组乘以归一化后的最新更新的第二三维数组,作为编码后的事件帧输出;其中,编码方法可采用基于频率的编码方法或基于时间的编码方法。

简单来说,本申请中既可以只输出最新更新的第一三维数组(时间面)S作为事件帧,此时第二三维数组(时间戳平面)T则主要用来比较时间戳大小,以此判断是否更新第一三维数组(时间面)S;也可以将第一三维数组(时间面)S与第二三维数组(时间戳平面)T融合,其含义在于:将最近发生的事件赋予占有较大的权重,所以乘以归一化后的T,也可以更好地描述事件。第二三维数组(时间戳平面)T作为事件帧,虽然是已有的方法,但与第一三维数组(时间面)S融合后效果会更好。

但需要说明的是,无论是仅基于第一三维数组(时间面)S作为事件帧,还是将二者融合作为事件帧,均要比仅基于第二三维数组(时间戳平面)T作为事件帧效果好。

而本申请输出事件帧的编码方法可以采用如基于频率的编码方法或者基于时间的编码方法。

需要说明的是,硬件输出的事件流可以看作是一连串的序列,本申请的工作就是将这种数据编码成类似图像帧的平面,以适应基于图像帧的图像处理算法。最后输出的像素值的含义和常规图像不同,它包含了事件发生的时间和密集程度等信息。输出事件帧只是数据形式上和图像帧类似。都是一个平面,对应xy的值代表该位置的一个数据。在图像帧中,这个通常是像素值,取值在0~255之间。而事件帧中这个值不是灰度像素,而是和事件有关的一个值。在本申请的方法中,这个值的与事件的发生时间和频率有关。

于一些实施方案中,本申请所述方法的详细处理流程实施例可如图3所示。

首先,通过仿生图像传感器来读取时间流;

然后,针对到来的每一个事件(x,y,p,t),依据每个到达的事件的像素位置xy和极性p分别确定第一三维数组S和第二三维数组T中的目标地址,然后将该事件的时间戳t与第二三维数组(时间戳平面)T中(x,y)像素位置记录的最新时间T(x,y,p)进行比较,判断是否大于时间阈值Ttr;若大于,则更新第二三维数组(时间戳平面)中的T(x,y,p)为新的时间戳t;若不大于,则等待下一次事件;

其次,依据公式:S(x,y,p)=0,根据第一三维数组S中确定的目标地址,将其对应的数据值更新为初始值N(设为0),并将其周围预设邻域窗口范围内各邻域地址对应的数据值减去预设值k(设为1),以及将预设邻域窗口范围外的非邻域地址的数据值维持不变;

最后,判断是否满足预设条件,该预设条件可以是时间戳跨度满足一预设时间窗口的时长时,或者,还可以是事件发生总数满足预设值时,若满足,则以最新更新的第一三维数组作或者以最新更新的第一三维数组结合第二三维数组作为编码后的事件帧输出,并返回第一步骤继续读取事件流,以获取下一个事件帧;若不满足,则继续读取下一个事件,直至满足。

于一些可实现的实施方案中,本申请所述方法于代码的体现可如下所示:

综上所述,本申请与现有技术相比,能更好地编码仿生图像传感器输出事件流固有的时空特征。对于不同运动快慢的物体都能很明显地编码出物体的轮廓。

如图4所示,展示为本申请于一实施例中的事件流编码为事件帧的数据处理装置的模块示意图。如图所示,所述装置400包括:

读取模块401,用于读取仿生图像传感器所获取的由像素位置、极性、及时间戳表达的事件流;

初始化模块402,用于分别将预设的第一三维数组和第二三维数组的数组中各地址对应的数据值设定一初始值N;

处理模块403,用于依据每个到达的事件的像素位置和极性分别确定第一三维数组和第二三维数组中的目标地址;根据第一三维数组中确定的目标地址,将其对应的数据值更新为初始值,并将其周围预设邻域窗口范围内各邻域地址对应的数据值减去预设值k,以及将预设邻域窗口范围外的非邻域地址的数据值维持不变;和/或,根据第二三维数组中确定的目标地址,将其对应的数据值更新为当前事件对应的时间戳;当满足预设条件时,以最新更新的第一三维数组作或者以最新更新的第一三维数组结合第二三维数组作为编码后的事件帧输出,并返回第一步骤继续读取事件流。

需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请所述方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

还需要说明的是,应理解以上装置400的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块403可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块403的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC);或,一个或多个微处理器(digital signal processor,简称DSP);或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等;再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器;再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

如图5所示,展示为本申请于一实施例中的计算机设备的结构示意图。如图所示,所述计算机设备500包括:存储器501、处理器502、及通信器503;所述存储器501用于存储计算机指令;所述处理器502运行计算机指令实现如图1所述的方法;所述通信器503通信连接仿生图像传感器,以获取其采集的由像素位置、极性、及时间戳表达的事件流。

在一些实施例中,所述计算机设备500中的所述存储器501的数量均可以是一或多个,所述处理器502的数量均可以是一或多个,所述通信器503的数量均可以是一或多个,而图5中均以一个为例。

于本申请一实施例中,所述计算机设备500中的处理器502会按照如图1所述的步骤,将一个或多个以应用程序的进程对应的指令加载到存储器501中,并由处理器502来运行存储在存储器501中的应用程序,从而实现如图1所述的方法。

所述存储器501可以包括随机存取存储器(RandomAccessMemory,简称RAM),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。所述存储器501存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

所述处理器502可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在一些具体的应用中,所述计算机设备500的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清除说明起见,在图5中将各种总线都成为总线系统。

于本申请的一实施例中,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图1所述的方法。

在任何可能的技术细节结合层面,本申请可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本申请的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。

综上所述,本申请提供的一种基于仿生图像传感器的数据处理方法、装置、设备和介质,通过读取仿生图像传感器所采集的由像素位置、极性、及时间戳表达的事件流;分别将预设的第一三维数组和第二三维数组的数组中各地址对应的数据值设定一初始值N;依据每个到达的事件的像素位置和极性分别确定第一三维数组和第二三维数组中的目标地址;根据第一三维数组中确定的目标地址,将其对应的数据值更新为初始值,并将其周围预设邻域窗口范围内各邻域地址对应的数据值减去预设值k,以及将预设邻域窗口范围外的非邻域地址的数据值维持不变;和/或,根据第二三维数组中确定的目标地址,将其对应的数据值更新为当前事件对应的时间戳;和/或,根据第二三维数组中确定的目标地址,将其对应的数据值更新为当前事件对应的时间戳;当满足预设条件时,以最新更新的第一三维数组作或者以最新更新的第一三维数组结合第二三维数组作为编码后的事件帧输出,并返回第一步骤继续读取事件流。

本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中包含通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1