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

通信系统、通信方法、存储介质及程序产品

文献发布时间:2023-06-19 16:04:54



技术领域

本公开涉及通信技术领域,尤其涉及一种通信系统、通信方法、存储介质及程序产品。

背景技术

随着针对人工智能算法和非冯诺依曼硬件架构的研究逐渐深入,学术领域及产业中出现了诸多新型硬件及系统,例如迅速迭代发展的多核芯片、众核芯片、深度学习加速器、神经形态芯片、通用类脑计算芯片等。区别于传统的中央处理器CPU、图形处理器GPU等具有中心化特征的通用处理器,以众核架构为特点的神经形态芯片具有典型的去中心化特征,这使得相比通用处理器,神经形态芯片在用于脑仿真、神经工程学建模与神经网络加速时具有低功耗、低延迟等重要优势。

事件相机是一种新型传感器。区别于传统的相机以拍摄完整的一张图像为目标,事件相机主要采集目标图像的变化量,因此其输出具备稀疏特性,这使得相较于传统相机,事件相机具有低延迟、高动态范围以及低功耗等优点。由于神经形态芯片和事件相机在功耗、延迟等方面特性相似,因此如何充分对神经形态芯片和事件相机进行结合,实现低延迟、低功耗的通信系统,成为本领域的研究热点。

发明内容

有鉴于此,本公开提出了一种通信系统、通信方法、存储介质及程序产品,本公开提出的通信系统能够充分利用事件相机的稀疏特性,减少事件相机和神经形态芯片之间的通信带宽,能够有效提高帧率,从而发挥神经形态芯片和事件相机的高能效优势。

根据本公开的一方面,提供了一种通信系统,包括事件相机、预处理模块和神经形态芯片,所述预处理模块连接在所述事件相机和所述神经形态芯片之间,所述预处理模块用于:接收来自所述事件相机的第一数据;根据所述第一数据,确定第二数据在所述神经形态芯片上的存储位置;根据所述存储位置对所述第一数据进行处理,得到包括所述第二数据的数据包;将所述数据包输出至所述神经形态芯片。

在一种可能的实现方式中,所述事件相机用于:在第一图像参数下产生事件,所述第一数据包括产生事件的像素点位置信息、产生事件的时间信息、事件极性信息,所述产生事件的像素点位置信息是第一图像参数下的像素点位置信息。

在一种可能的实现方式中,所述神经形态芯片用于:根据所述数据包获取第二图像参数下的图像数据。

在一种可能的实现方式中,所述神经形态芯片包括多个处理器核,每个处理器核对应一块用于存储所述第二数据的存储区域,每个处理器核用于存储第二图像参数下至少一个像素点位置的第二数据。

在一种可能的实现方式中,所述确定第二数据在所述神经形态芯片上的存储位置,包括:将所述第一数据的产生事件的像素点位置信息映射为第二图像参数下的像素点位置信息;根据所述第二图像参数下的像素点位置信息,确定第二数据在神经形态芯片上存储的处理器核以及在该处理器核对应的存储地址;确定所述第二数据在神经形态芯片上的存储位置为该处理器核对应的所述存储地址。

在一种可能的实现方式中,所述根据所述存储位置对所述第一数据进行处理,得到包括所述第二数据的数据包,包括:根据所述存储位置中的处理器核对应的存储地址对所述第一数据进行处理,得到包括所述第二数据的数据包,使得所述数据包的包头中包括所述存储地址的标识。

在一种可能的实现方式中,所述第二数据至少包括所述第二图像参数下的像素点位置信息以及所述产生事件的时间信息、事件极性信息。

在一种可能的实现方式中,所述神经形态芯片还用于,在接收到所述数据包时将所述第二数据存储至所述存储地址;所述根据所述数据包获取第二图像参数下的图像数据,包括:对满足预设条件的第二数据进行积分,获得一帧第二图像参数下的图像数据,所述预设条件为第二数据所包括的产生事件的时间信息位于第一时间段内。

在一种可能的实现方式中,所述通信系统还包括设置在所述预处理模块和所述神经形态芯片之间的容错模块,所述容错模块用于:接收来自所述预处理模块的所述数据包;判断所述数据包未出现错误时,控制所述预处理模块将所述数据包输出至所述神经形态芯片;判断所述数据包出现错误时,控制所述预处理模块不输出所述数据包。

在一种可能的实现方式中,所述将所述数据包输出至所述神经形态芯片,包括:将所述数据包输出至容错模块;在所述容错模块控制下,将所述数据包输出至所述神经形态芯片。

根据本公开的另一方面,提供了一种通信方法,应用于通信系统中的预处理模块,所述通信系统包括事件相机、所述预处理模块和神经形态芯片,所述预处理模块连接在所述事件相机和所述神经形态芯片之间,所述方法包括:接收来自所述事件相机的第一数据;根据所述第一数据,确定第二数据在所述神经形态芯片上的存储位置;根据所述存储位置对所述第一数据进行处理,得到包括所述第二数据的数据包;将所述数据包输出至所述神经形态芯片。

根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被预处理模块执行时实现上述方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在预处理模块中运行时,所述预处理模块执行上述方法。

根据本公开实施例的通信系统,通过预处理模块接收来自事件相机的第一数据,并根据第一数据确定第二数据在神经形态芯片上的存储位置,可以以该确定的存储位置对第一数据进行处理,得到包括第二数据的数据包并输出到神经形态芯片。由于数据包是根据来自事件相机的第一数据实时处理得到,因此仍具备稀疏特性,传输数据包所需的带宽可以低于传输整帧数据所需的带宽,使得事件相机和神经形态芯片之间的通信带宽降低;且数据包是根据确定的第二数据在神经形态芯片上的存储位置处理得到的,因此符合神经形态芯片对于数据存储的要求,从而使得数据包中的数据能够为神经形态芯片所使用。通过这种方式,使得本公开实施例的通信系统在充分利用事件相机的稀疏特性,以减少事件相机和神经形态芯片之间的通信带宽、有效提高帧率的同时,保证神经形态芯片运行稳定性,从而发挥神经形态芯片和事件相机的高能效优势。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出根据本公开实施例的通信系统的示例性结构示意图。

图2示出根据本公开实施例的神经形态芯片103上一个处理器核对应的存储区域的示例。

图3示出根据本公开实施例的通信系统的示例性结构示意图。

图4示出根据本公开实施例的通信方法的示例性工作流程。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

为了使神经形态芯片和事件相机进行结合,实现低延迟、低功耗的通信系统,现有技术提出将事件相机输出的数据按照时间累积后,复原成完整的一帧图像,再将复原的图像数据传输给神经形态芯片进行处理。该方案虽然实现了神经形态芯片和事件相机的结合,但一定程度上没有很好地利用事件相机输出的稀疏性,在帧率高的情况下,对神经形态芯片和事件相机之间的数据传输带宽提出了非常高的要求。而通常情况下,现有神经形态芯片进行数据处理的速度极快(即低延迟),但是若数据传输带宽不足,则碍于通信压力,整个通信系统可能无法实现实时的、高吞吐量、高帧率的运行。

有鉴于此,本公开提出了一种通信系统、通信方法、存储介质及程序产品,本公开提出的通信系统能够充分利用事件相机的稀疏特性,减少事件相机和神经形态芯片之间的通信带宽,能够有效提高帧率,从而发挥神经形态芯片和事件相机的高能效优势。

图1示出根据本公开实施例的通信系统的示例性结构示意图。

如图1所示,在一种可能的实现方式中,本公开提出一种通信系统,包括事件相机101、预处理模块102和神经形态芯片103,所述预处理模块102连接在所述事件相机101和所述神经形态芯片103之间,所述预处理模块102用于:

接收来自所述事件相机101的第一数据;

根据所述第一数据,确定第二数据在所述神经形态芯片103上的存储位置;

根据所述存储位置对所述第一数据进行处理,得到包括所述第二数据的数据包;

将所述数据包输出至所述神经形态芯片103。

其中,事件相机101可作为通信系统的传感器,神经形态芯片103可作为通信系统的核心计算单元,预处理模块102可负责事件相机101到神经形态芯片103的数据传输。第一数据可以是事件相机101获得的事件,第二数据可以是事件所包括的信息中、神经形态芯片103进行数据处理需使用的部分信息。第二数据若传输到神经形态芯片103,在神经形态芯片103上将以一定的存储位置进行存储,在存储位置不同时,神经形态芯片103对该第二数据的处理方式可能不同。因此,接收来自事件相机101的第一数据后,预处理模块102可以先行确定第二数据在所述神经形态芯片103上的存储位置,再根据确定的存储位置得到包括第二数据的数据包并输出。该数据包的格式可以是符合通信系统的路由协议的数据包,本公开对于通信系统的路由协议的具体类型不作限制。

根据本公开实施例的通信系统,通过预处理模块接收来自事件相机的第一数据,并根据第一数据确定第二数据在神经形态芯片上的存储位置,可以以该确定的存储位置对第一数据进行处理,得到包括第二数据的数据包并输出到神经形态芯片。由于数据包是根据来自事件相机的第一数据实时处理得到,因此仍具备稀疏特性,传输数据包所需的带宽可以低于传输整帧数据所需的带宽,使得事件相机和神经形态芯片之间的通信带宽降低;且数据包是根据确定的第二数据在神经形态芯片上的存储位置处理得到的,因此符合神经形态芯片对于数据存储的要求,从而使得数据包中的数据能够为神经形态芯片所使用。通过这种方式,使得本公开实施例的通信系统在充分利用事件相机的稀疏特性,以减少事件相机和神经形态芯片之间的通信带宽、有效提高帧率的同时,保证神经形态芯片运行稳定性,从而发挥神经形态芯片和事件相机的高能效优势。

在一种可能的实现方式中,所述事件相机101用于:在第一图像参数下产生事件,所述第一数据包括产生事件的像素点位置信息、产生事件的时间信息、事件极性信息,所述产生事件的像素点位置信息是第一图像参数下的像素点位置信息。

本公开实施例的事件相机101可以基于现有技术来实现。下面简单介绍事件相机101的工作原理。

事件相机是一种受生物视网膜启发的图像传感器。不同于传统相机以固定帧率捕捉一幅完整的图像,事件相机的每个像素单独检测相对光照的变化,只在相对光照有变化时产生第一数据(即事件)并输出,因此通常具有稀疏、低冗余的特点。

事件相机101输出的第一数据可以是如下的四元组:

(timestamp,polarity,x,y)

其中,timestamp可以是产生事件的时间信息,可代表绝对时间,分辨率可达1μs。

x和y可以是产生事件的像素点位置信息,事件相机101包括的像素点个数可与其参数相关,例如,第一图像参数包括事件相机包括的像素点数a*b(每行a个像素点,每列b个像素点),事件相机101在第一图像参数a*b下产生事件时,可认为事件相机101包括a*b个像素点,若位于第m行、第n列的像素点产生事件,则x和y可以分别等于m和n,其中,0≤m≤a且为整数,0≤n≤b且为整数。

polarity可以是事件极性信息,用于指示产生事件的像素点在产生事件的时间的亮度与在更早的时间的亮度的变化,亮度增加超过一定阈值时事件极性信息数值可为1,亮度减少超过一定阈值时事件极性信息数值可为-1。

因此,事件相机101在第一图像参数a*b下产生事件,可以是第一图像参数a*b下,当某个像素点处亮度发生变化时产生第一数据,使第一数据可以包括产生事件的像素点位置信息、产生事件的时间信息、事件极性信息。由于事件相机101在第一图像参数a*b下产生事件,因此,产生事件的像素点位置信息也可以是第一图像参数a*b下的像素点位置信息。

在一种可能的实现方式中,所述神经形态芯片103用于:根据所述数据包获取第二图像参数下的图像数据。

本公开实施例的神经形态芯片103作为通信系统的核心计算单元,可以用于运行一些现有技术的算法或模型,例如可实现图像识别、视频目标检测的算法或模型等等,以进行数据处理。一般情况下,神经形态芯片103可运行的算法或模型的输入数据的参数通常是预先设置好的,例如本公开实施例中神经形态芯片103运行的算法或模型的输入数据参数可预先设置为第二图像参数c*d,其中,第二图像参数可表示神经形态芯片103运行的算法或模型的输入数据的像素点数。由于数据包是具备稀疏性的数据,并不包括整帧数据,因此,神经形态芯片103用于根据数据包获取第二图像参数下的图像数据,以得到可以输入神经形态芯片103运行的算法或模型的、整帧的图像数据。其示例性实现方式在下文中进行描述。

在一种可能的实现方式中,所述神经形态芯片103包括多个处理器核,每个处理器核对应一块用于存储所述第二数据的存储区域,每个处理器核用于存储第二图像参数下至少一个像素点位置的第二数据。

举例来说,本公开实施例的神经形态芯片103可以是众核架构的芯片,即,神经形态芯片103可包括多个处理器核。每个处理器核可对应一块用于存储第二数据的存储区域,该存储区域可位于神经形态芯片103上。每个处理器核可用于存储第二图像参数c*d下至少一个像素点位置的第二数据。可选地,该至少一个像素点位置包括哪些像素点位置可以是预先设置的,也可以是根据应用场景需要、各处理核对应的存储区域的内存等实时确定的,其预先设置方式以及实时确定方式可以基于现有技术来实现,本公开对此不作限制。不同存储区域的存储地址范围可以不同,各处理器核上各像素点位置对应的存储地址也可以不同。

图2示出根据本公开实施例的神经形态芯片103上一个处理器核对应的存储区域的示例。如图2所示,在该存储区域中包括子区域A,用于存储当前帧图像对应的时间段(例如下文所述的第一时间段)内的第二数据,在子区域A中,对应于第二图像参数c*d下的至少一个像素点分别划分相应存储地址,不同像素点对应的存储地址可以不同。图2中(x’,y’)为像素点在第二图像参数c*d下的坐标。则图2的示例中,假设第二数据精度为INT8,此时第二图像参数c*d下的至少一个像素点(如(0,0)、(1,0)、(2,0)、(3,0)、(0,1)、(1,1)、(2,1)等)中,每个像素点的数据需占据16Byte(8Byte+8Byte)的地址空间。通过对处理器核对应的存储区域进行设置可使数据包的路由寻址和神经形态芯片与事件相机的数据对齐更为便捷。

通过这种方式,使得每一处理器核对应的存储区域都能够存储第二数据,以使神经形态芯片实现其众核架构所具备的功能时更便捷,提升神经形态芯片的数据处理效率。

在一种可能的实现方式中,所述确定第二数据在所述神经形态芯片103上的存储位置,包括:

将所述第一数据的产生事件的像素点位置信息映射为第二图像参数下的像素点位置信息;

根据所述第二图像参数下的像素点位置信息,确定第二数据在神经形态芯片103上存储的处理器核以及在该处理器核对应的存储地址;

确定所述第二数据在神经形态芯片103上的存储位置为存储至该处理器核对应的所述存储地址。

举例来说,由于每个处理器核对应一块用于存储第二数据的存储区域,多个处理器核的处理能力可能不同、且能够运行的算法或模型也可能不同,因此,在预处理模块102得到数据包之前,需确定第二数据在神经形态芯片103上的存储位置,存储位置可包括处理器核信息和存储地址信息,例如存储于哪一处理器核对应的存储区域、具体存储于该存储区域中的哪部分存储地址。每一处理器核能够存储的第二数据是有限的,因此根据应用场景需求、各处理器核对应的存储区域大小,第二图像参数c*d下的一帧图像数据的数据量比较小时,可能一个处理器核就能够进行处理,即第二图像参数c*d下的不同像素点位置对应的第二数据均可以存储至同一处理器核;第二图像参数c*d下的一帧图像数据的数据量比较大时,可能需要多个处理器核协同处理,即第二图像参数c*d下不同像素点位置对应的第二数据可能需存储于不同的处理器核。

第一数据包括的产生事件的像素点位置信息,是第一图像参数a*b下的像素点位置,而神经形态芯片103根据数据包获取的是第二图像参数c*d下的图像数据,第一图像参数a*b和第二图像参数c*d不同时,需要对产生事件的像素点位置信息(即第一图像参数a*b下的像素点位置)进行映射,使其成为第二图像参数c*d下像素点位置。第一图像参数a*b下的像素点位置信息与第二图像参数c*d下的像素点位置信息的映射关系可以是已知的,基于此,则根据第一数据中产生事件的像素点位置信息,例如(x,y)=(0,0),可以映射得到与该像素点位置对应的一个第二图像参数下的像素点位置,例如(x’,y’)=(0,0)。由于预先设置或确定了每个处理器核中,在哪些存储地址上,存储哪些像素点的第二数据,在每个处理器核对应的第二图像参数c*d下的像素点位置已知时,则可唯一确定该第二图像参数下的像素点位置(0,0)对应的第二数据应存储于哪个处理器核对应的存储区域中,例如处理器核1。且由于各处理器核上各像素点位置对应的存储地址不同,因此根据与第一数据中产生事件的像素点位置对应的一个第二图像参数下的像素点位置,可以唯一确定该第二图像参数下的像素点位置对应的第二数据在该处理器核对应的存储地址,例如处理器核1中与(x’,y’)=(0,0)对应的16byte存储地址p~q。

在此基础上,可以确定第二数据在神经形态芯片103上的存储位置是:第二数据存储至处理器核1对应的存储地址p~q。

通过这种方式,使得可以确定第二数据在神经形态芯片103上的存储位置,以使数据包输出到神经形态芯片103之后,其包括的第二数据以确定的存储位置存储时,处理器核能够正常获取到第二数据,并运行对应的算法或模型对该第二数据进行处理。

在一种可能的实现方式中,所述根据所述存储位置对所述第一数据进行处理,得到包括所述第二数据的数据包,包括:

根据所述存储位置中的处理器核对应的存储地址对所述第一数据进行处理,得到包括所述第二数据的数据包,使得所述数据包的包头中包括所述存储地址的标识。

举例来说,第二数据的存储位置由预处理模块102确定。为了使神经形态芯片103能够按照该存储位置存储第二数据,需使神经形态芯片103也获取到该存储位置的相关信息。

例如,神经形态芯片103可预先存储有各处理器核对应的存储区域中,各像素点对应的子区域的存储地址对应的标识。假设确定存储位置为存储至该处理器核1对应的存储地址p~q,在根据存储位置对第一数据进行处理,得到包括第二数据的数据包时,可在数据包的包头中加入存储地址p~q的标识。表1示出根据本公开实施例的数据包的包头所包括的信息的一个示例。

表1

参见表1,该包头的位数可以是32位,其中S占据一位,用于区分数据包承载的信息是指令还是数据。在S=0时表示数据包是包括第二数据的数据包,在S=1时表示该数据包是包括指令的指令包。

T占据一位,用于指示数据包的数据量大小。在T=0时表示数据包是数据量较小的数据包,在T=1时表示数据包是数据量较大的数据包。

P占据一位,用于指示包头数据是否发送结束。在P=0时表示包头数据发送未结束,在P=1时表示包头数据发送结束。

Q占据一位,用于指示数据包是否为中继/多播数据包。在Q=0时表示数据包是普通数据包,在Q=1时表示数据包是中继/多播数据包。在数据包是中继/多播数据包时,该数据包发送到对应的处理器核后,该处理器核可作为中转站将该数据包转发至其他的处理器核。

X、Y用于指示数据包要发送到的处理器核(目的簇)在神经形态芯片上的坐标。其中X用于指示目的簇的水平相对距离,Y用于指示目的簇的竖直相对距离。在第二数据精度为int8时,X、Y可分别占据8位,可以覆盖水平相对距离[-128,127]、竖直相对距离[-128,127]的范围。

A占据12位,即存储地址的标识,用于指示第二数据将要存储的存储地址,由于存储地址与第二图像参数c*d下的像素点位置信息具有对应关系,因此A也指示数据包所包括的第二数据中、第二图像参数c*d下的像素点位置信息。

在此情况下,神经形态芯片103根据存储地址的标识,可以确定第二数据的存储位置,从而能够满足使数据包包括的第二数据以确定的存储位置存储的需求。

本领域技术人员应理解,数据包的包头也可能包括更多的信息,例如在各处理器核具备相应的标识时,数据包的包头还可以包括第二数据在神经形态芯片上存储的处理器核的标识,以使神经形态芯片根据数据包的包头中的处理器核的标识可以更快速地确定由哪一处理器核对该数据包中的第二数据进行处理。本公开对于数据包的包头所包括的具体信息不作限制。

在一种可能的实现方式中,所述第二数据至少包括所述第二图像参数下的像素点位置信息以及所述产生事件的时间信息、事件极性信息。

由于神经形态芯片103需获取第二图像参数c*d下的图像数据,且第二数据被存储至神经形态芯片103,因此,第二数据可至少包括第二图像参数c*d下的像素点位置信息以及产生事件的时间信息、事件极性信息等与获取第二图像参数c*d下的图像数据相关的信息。根据第二图像参数c*d下的像素点位置信息以及产生事件的时间信息、事件极性信息获取第二图像参数c*d下的图像数据的方式可以基于现有技术来实现,在此不再赘述。

在一种可能的实现方式中,所述神经形态芯片103还用于,在接收到所述数据包时将所述第二数据存储至所述存储地址;

所述根据所述数据包获取第二图像参数下的图像数据,包括:

对满足预设条件的第二数据进行积分,获得一帧第二图像参数下的图像数据,所述预设条件为第二数据所包括的产生事件的时间信息位于第一时间段内。

举例来说,由于数据包的包头中包括存储地址的标识,因此神经形态芯片103在接收到数据包时,可以根据存储地址的标识将第二数据存储至该存储地址。此后,神经形态芯片103需使用该第二数据时,可以从该存储地址中获取相应的第二数据。例如,神经形态芯片103根据数据包获取第二图像参数c*d下的图像数据,可以是对满足预设条件的第二数据进行积分,获得一帧第二图像参数c*d下的图像数据。

由于该操作涉及到对第一时间段内的第二数据的积分操作,且获得的一帧第二图像参数c*d下的图像数据后续可能会输入到神经形态芯片上的算法或模型,也就是说,第一时间段内的第二数据以及一帧第二图像参数c*d下的图像数据可能会被重复地使用。因此,可选地,如图2所示,在一个处理器核对应的存储区域中,还可包括子区域B,用于存储前一帧图像对应的时间段(例如第一时间段)内的第二数据,以及子区域C,用于存储前一帧图像对应的时间段(例如第一时间段)内第二数据的积分。通过划分相应的子区域以专门存储该部分数据可使得数据处理时效率更高。

上述积分操作涉及到张量的加法,因此优选地,可设置为处理器核内进行向量和运算处理对应像素点位置的数据。进一步地,处理器核内可能会进行数据的卷积运算,由于卷积运算是根据“先深度(指像素点的值),再宽度(指像素点的横坐标),后高度(指像素点的纵坐标)”的方式进行运算,则可为一帧第二图像参数c*d下的图像数据也设置对应的存储位置,例如设置为也按照“先深度,再宽度,后高度”的方式存储。通过设置图像数据在神经形态芯片上的存储位置与该数据用于运算时的使用方式保持统一,可以提高神经形态芯片进行数据处理的效率。

本领域人员应理解,存储区域还可采用其他方式进行划分,只要满足每个处理器核可用于存储第二图像参数下至少一个像素点位置的第二数据即可,本公开对于神经形态芯片的一个处理器核对应的存储区域的具体划分方式不作限制。

图3示出根据本公开实施例的通信系统的示例性结构示意图。

在一种可能的实现方式中,所述通信系统还包括设置在所述预处理模块102和所述神经形态芯片103之间的容错模块104,所述容错模块104用于:

接收来自所述预处理模块102的所述数据包;

判断所述数据包未出现错误时,控制所述预处理模块102将所述数据包输出至所述神经形态芯片103;

判断所述数据包出现错误时,控制所述预处理模块102不输出所述数据包。

容错模块104可用于防止错误累积。举例来说,预处理模块102直接输出数据包到神经形态芯片103时,存在错误累积的风险。在此情况下,在通信系统中,可以设置有容错模块104,容错模块104可以设置在预处理模块102和神经形态芯片103之间。容错模块104可以接收来自预处理模块102的数据包,并对数据包是否出现错误进行判断。在判断数据包未出现错误时,控制预处理模块102将数据包输出至神经形态芯片103。在判断数据包出现错误时,控制预处理模块102不输出数据包。可选地,在第一数据输出的频率较高时,对事件相机到神经形态芯片的通信带宽也会造成压力。因此,容错模块104控制预处理模块102将数据包输出至神经形态芯片103时,可以控制数据包的输出频率,以提高事件相机到神经形态芯片的通信带宽的稳定性。

在一种可能的实现方式中,所述将所述数据包输出至所述神经形态芯片103,包括:

将所述数据包输出至容错模块104;

在所述容错模块104控制下,将所述数据包输出至所述神经形态芯片103。

举例来说,在通信系统包括容错模块104时,预处理模块102将数据包输出至神经形态芯片103,可以是先将数据包输出至容错模块104,由容错模块104对数据包是否出现错误进行判断,在容错模块104判断数据包未出现错误时,预处理模块102在容错模块104控制下,将数据包输出至神经形态芯片103。

通过这种方式,使得预处理模块输出的数据包可以是未出现错误的数据包,降低错误累积对神经形态芯片对第二数据进行处理的准确度造成的影响。且通过容错模块控制数据包的输出可以平衡数据包输出的频率,避免通信带宽出现较大波动。

本公开实施例还提出一种通信方法,图4示出根据本公开实施例的通信方法的示例性工作流程。如图4所示,该方法可应用于根据本公开实施例的通信系统中的预处理模块102,所述通信系统包括事件相机101、所述预处理模块102和神经形态芯片103,所述预处理模块102连接在所述事件相机101和所述神经形态芯片103之间,所述方法包括:

步骤S1,接收来自所述事件相机101的第一数据;

步骤S2,根据所述第一数据,确定第二数据在所述神经形态芯片103上的存储位置;

步骤S3,根据所述存储位置对所述第一数据进行处理,得到包括所述第二数据的数据包;

步骤S4,将所述数据包输出至所述神经形态芯片103。

关于该方法的示例性说明可参见上文,此处不再重复。

在一种可能的实现方式中,所述事件相机用于:在第一图像参数下产生事件,所述第一数据包括产生事件的像素点位置信息、产生事件的时间信息、事件极性信息,所述产生事件的像素点位置信息是第一图像参数下的像素点位置信息。

在一种可能的实现方式中,所述神经形态芯片用于:根据所述数据包获取第二图像参数下的图像数据。

在一种可能的实现方式中,所述神经形态芯片包括多个处理器核,每个处理器核对应一块用于存储所述第二数据的存储区域,每个处理器核用于存储第二图像参数下至少一个像素点位置的第二数据。

在一种可能的实现方式中,所述确定第二数据在所述神经形态芯片上的存储位置,包括:将所述第一数据的产生事件的像素点位置信息映射为第二图像参数下的像素点位置信息;根据所述第二图像参数下的像素点位置信息,确定第二数据在神经形态芯片上存储的处理器核以及在该处理器核对应的存储地址;确定所述第二数据在神经形态芯片上的存储位置为该处理器核对应的所述存储地址。

在一种可能的实现方式中,所述根据所述存储位置对所述第一数据进行处理,得到包括所述第二数据的数据包,包括:根据所述存储位置中的处理器核对应的存储地址对所述第一数据进行处理,得到包括所述第二数据的数据包,使得所述数据包的包头中包括所述存储地址的标识。

在一种可能的实现方式中,所述第二数据至少包括所述第二图像参数下的像素点位置信息以及所述产生事件的时间信息、事件极性信息。

在一种可能的实现方式中,所述神经形态芯片还用于,在接收到所述数据包时将所述第二数据存储至所述存储地址;所述根据所述数据包获取第二图像参数下的图像数据,包括:对满足预设条件的第二数据进行积分,获得一帧第二图像参数下的图像数据,所述预设条件为第二数据所包括的产生事件的时间信息位于第一时间段内。

在一种可能的实现方式中,所述通信系统还包括设置在所述预处理模块和所述神经形态芯片之间的容错模块,所述容错模块用于:接收来自所述预处理模块的所述数据包;判断所述数据包未出现错误时,控制所述预处理模块将所述数据包输出至所述神经形态芯片;判断所述数据包出现错误时,控制所述预处理模块不输出所述数据包。

在一种可能的实现方式中,所述将所述数据包输出至所述神经形态芯片,包括:将所述数据包输出至容错模块;在所述容错模块控制下,将所述数据包输出至所述神经形态芯片。

本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。

本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。

本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使预处理模块102实现本公开的各个方面的计算机可读程序指令。

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

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

相关技术
  • 通信方法、接入网设备、通信装置、计算机可读存储介质、程序产品以及通信系统
  • 通信系统、通信方法、存储介质及程序产品
技术分类

06120114698959