CN115719295A - 一种动态视觉传感器事件转帧的低成本实现方法及装置 - Google Patents
一种动态视觉传感器事件转帧的低成本实现方法及装置 Download PDFInfo
- Publication number
- CN115719295A CN115719295A CN202110978862.1A CN202110978862A CN115719295A CN 115719295 A CN115719295 A CN 115719295A CN 202110978862 A CN202110978862 A CN 202110978862A CN 115719295 A CN115719295 A CN 115719295A
- Authority
- CN
- China
- Prior art keywords
- counter
- reading
- event
- dvs
- address
- 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.)
- Pending
Links
Images
Landscapes
- Image Input (AREA)
Abstract
本发明涉及一种动态视觉传感器事件转帧的低成本实现方法及装置,方法包括:基于DVS图像大小和降采样因子确定采样区域的数量,将采样区域与计数器一一对应;每当有新的DVS事件到来,计算该DVS事件所对应的采样区域,更新该DVS事件的采样区域所对应的计数器;当表示新的一帧开始的framesync信号有效时,从存储空间的首地址开始,依次对各个地址进行读取清零操作,得到事件帧。与现有技术相比,本发明将降采样和像素计数同时进行,减少了计数器的数量,从而减少了存储空间的大小,降低了成本;摒弃乒乓缓存的方式,存储空间中只存储一帧事件帧的计数器,进一步减少了存储空间的大小,降低了成本。
Description
技术领域
本发明涉及图像处理技术领域,尤其是涉及一种动态视觉传感器事件转帧的低成本实现方法及装置。
背景技术
传统的视觉图像采集方式以固定频率采集的“帧”为基础,基于这些连续的图像帧进行图像处理和特征提取等操作时,图像采集传感器需要以较高的帧率运行,而且输出的图像流中包含大量与目标无关的冗余数据,具有高冗余、高延迟、高噪声、低动态范围和高数据量等缺陷。
现有技术中,基于地址、事件表达的视觉图像传感器(DVS)模仿生物视觉的工作机理,像素异步工作,对于单个像素点,只有当其接受光强度发生改变时,才会有事件(脉冲)信号输出,比如说亮度变化超过一个阈值,那么将增加一个该像素点亮度变化的事件,输出事件的地址(对应像素位置)和事件的性质(变亮变暗等)。在动态视觉传感器中当仅输出光强发生变化像素的地址及其变化的符号,而不是被动依次读出“帧”内每个像素信息,从源头上消除冗余数据,具有场景变化实时动态响应、图像超稀疏表示、事件异步输出等特点。在像素光强很少变化时,DVS输出的事件数很少,从而减少冗余数据,降低系统功耗。每个像素独立工作,当像素光强变化很快时,DVS会在微秒量级的延迟内输出相应的事件,结合脉冲神经网络(SNN)的脉冲输入特性,可以在较短的延迟内实现图像的分类,可以应用于高速目标跟踪等场景。
深度神经网络(DNN)研究近年来取得了飞速发展并得到初步应用,实现这样的深度学习算法,通常需要消耗大量的算力。基于深度神经网络的图像处理方法中,对DVS数据进行训练与基于活跃像素传感器(APS)的普通图像数据进行训练类似,目前主流的算法还是以帧为单位。这就需要将DVS事件(携带像素地址信息和脉冲的正负号)转成帧,当然帧率可以比APS帧率高很多,例如1000帧/秒。
中国专利CN113012200A中公开了一种运动物体的定位方法、装置、电子设备及存储介质,获取事件流信息,并根据预设采样周期,对所述事件流信息进行采样,以获取采样事件帧,基于采样事件帧进行后续处理。现有技术中,DVS事件转帧一般的实现方法如下:设定时间间隔,时间间隔内DVS至少要输出一次事件,在时间间隔内,一个像素点每增加一个事件,则该像素点增加一个计数,时间间隔结束后统计每个像素点的计数,输出所有的像素点对应的计数,从而得到事件帧。具体的:当表示新的一帧开始的framesync信号有效时,输出统计的每个像素的计数值作为事件帧,同时将这些像素的计数值清零,开始下一帧中的像素计数。
假定DVS像素数为1024*768,对每个像素进行计数实现事件到帧的转换时,假定每个像素的计数器位宽为8比特,那么做DVS事件到帧的转换,所需的存储空间为1024*768*8比特=1024*768Byte=768K Byte。在framesync有效后,开始存储空间的读取和清零,这将持续较长的时间,如果存储空间是有1个读端口和1个写端口的深度为192K,宽度是32比特的SRAM,(宽度指的是能存多长的数据,深度指的是能存多少个这么长的数据),这个读出过程会持续192K时钟周期。在这段时间内,很有可能又有新的DVS事件到来,为了让后一帧与正在读出的一帧互不干扰,存储空间一般是分为两部分(乒乓缓存):前一帧在第一部分缓存中,在第一部分缓存读出的过程中到来的事件进入后一帧的统计,后一帧的计数器在第二部分缓存中。下一个framesync有效时,第二部分的缓存读出,新事件计数进入第一部分缓存。因此,乒乓缓存条件下,要求的存储空间为768K*2=1536K Byte。
由于DVS的像素数(例如1024*768)较大,往往超过神经网络支持的最大像素数(例如224*224),同时神经网络不需要较高的分辨率就能进行分类,这就需要对转换后的帧实现降采样(或者称为池化)。典型的DVS数据事件转帧的实现如图2所示,通过对DVS中的每个像素进行计数实现了事件到帧的转换,然后对一个帧中的数据进行降采样(如4:1降采样等),就可以得到适用于神经网络的事件帧。在降采样时,降采样后的数据位宽可能超过了预设的位宽,可以做截断处理(在精度降低很少的情况下)。现有技术中,如果考虑到降采样过程,在存储空间中需要一块空间用来存放对像素进行计数得到的帧,还需要一块空间存放对帧中的数据进行降采样得到的事件帧,要求的存储空间会进一步增大。存储空间大导致硬件成本较高,也影响了读写速度,增加了时间成本,因此需要一种低成本的动态视觉传感器事件转帧实现方法。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种动态视觉传感器事件转帧的低成本实现方法及装置。
本发明的目的可以通过以下技术方案来实现:
一种动态视觉传感器事件转帧的低成本实现方法,包括以下步骤:
S1、获取DVS图像大小和降采样因子,基于DVS图像大小和降采样因子确定采样区域的数量,将采样区域与存储空间中的计数器一一对应,记录每个采样区域所对应的计数器在存储空间中的地址;
S2、每当有新的DVS事件到来,获取该DVS事件的像素位置,计算该DVS事件所对应的采样区域,更新该DVS事件的采样区域所对应的计数器;
S3、当表示新的一帧开始的framesync信号有效时,从存储空间的首地址开始,依次对各个地址进行读取清零操作,得到事件帧,所述读取清零操作具体为:读出当前地址中计数器的读数,将当前地址中的计数器清零。
进一步的,步骤S3中,将存储空间中的计数器的读数读取至外部存储器得到事件帧,在进行读取清零操作时,先将当前地址中计数器的读数读取至片上缓存,同时将当前地址中的计数器清零,再从片上缓存中将计数器的读数写入外部存储器。
进一步的,在对地址i中的计数器进行读取清零操作的过程中,如果有新的DVS事件到来,则计算所述新的DVS事件所对应的计数器在存储空间中的地址j:
如果j>i,则继续对地址i中的计数器进行读取清零操作,完成对地址i中的计数器的读取清零操作后,更新所述新的DVS事件所对应的计数器,继续进行下一地址的读取清零操作;在读取地址j中的计数器时,这一个新的DVS事件将被读出,在当前读取的事件帧中体现;
如果j<i,则继续对地址i中的计数器进行读取清零操作,完成对地址i中的计数器的读取清零操作后,更新所述新的DVS事件所对应的计数器,继续进行下一地址的读取清零操作;这一个新的DVS事件将在下一次读取的事件帧中体现;
如果j=i,且计数器的读数尚未写入片上缓存,则读出地址i中计数器的读数,基于新的DVS事件更新读出的计数器读数,将更新后的计数器读数写入片上缓存,将地址i中的计数器清零,继续进行下一地址的读取清零操作;这一个新的DVS事件将体现在当前读取的事件帧中;
如果j=i,且计数器中的读数已经写入片上缓存,则基于新的DVS事件直接写入计数器的读数,继续进行下一地址的读取清零操作;这一个DVS事件将体现在下一次读取的事件帧中,基于新的DVS事件直接写入计数器的读数可以理解为先将计数器清零,再基于新的DVS事件更新计数器。
进一步的,基于新的DVS事件更新读出的计数器读数具体为:如果计数器尚未计数至该计数器的最大值,则将计数器读数加1,否则,计数器读数保持不变;基于新的DVS事件直接写入计数器的读数具体为:对计数器进行写1操作。
进一步的,步骤S2中,更新该DVS事件的采样区域所对应的计数器具体为:如果计数器尚未计数至该计数器的最大值,则将计数器加1,否则,计数器保持不变;将计数器加1的具体操作为:读出计数器的读数,加1后重新写入计数器。
对于单个像素点,当其接受光强度发生改变时,会有事件(脉冲)信号输出,比如说亮度变化超过一个阈值,那么将增加一个该像素点亮度变化的事件,即DVS事件,输出事件的地址(对应像素位置)和事件的性质(变亮变暗等),本申请不关注事件的性质,每接收到一个DVS事件,就根据DVS事件对应的像素位置判断其所属的采样区域,进而更新采样区域对应的计数器,如果计数器尚未计数至最大值,则计数器加1,否则计数器不变。
进一步的,所述DVS图像大小为ROW_MAX*COL_MAX,其中ROW_MAX表示DVS图像的像素行数,COL_MAX表示DVS图像的像素列数,所述降采样因子包括行降采样因子和列降采样因子,其中行降采样因子为ROW_POOL:1,列降采样因子为COL_POOL:1,降采样区域的大小为ROW_POOL*COL_POOL;其中,ROW_MAX、COL_MAX、ROW_POOL和COL_POOL均为正整数。
进一步的,PIXEL_WIDTH表示预设置的一个像素所对应的计数器的位宽,则一个采样区域所对应的计数器的位宽为:
PIXEL_WIDTH+ceil(log2(ROW_POOL*COL_POOL))
则存储空间的大小为:
Num*(PIXEL_WIDTH+ceil(log2(ROW_POOL*COL_POOL)))
其中,函数ceil(x)返回不小于x的最小整数值,Num表示计数器的数量。
进一步的,采样区域的数量与计数器的数量相等,计数器的数量Num为:
Num=(ceil(ROW_MAX/ROW_POOL))*(ceil(COL_MAX/COL_POOL))
其中,函数ceil(x)返回不小于x的最小整数值。
进一步的,步骤S3中,每经过一个预设置的时间间隔,表示新的一帧开始的framesync信号有效一次。
一种动态视觉传感器事件转帧的低成本实现装置,基于如上所述的动态视觉传感器事件转帧的低成本实现方法,包括存储空间、外部存储器和控制器;所述存储空间中的计数器用于对DVS事件计数,所述外部存储器用于存放事件帧,所述控制器用于接收DVS事件,并基于接收的DVS事件对存储空间进行读操作、写操作和更新操作,对外部存储器进行写操作。
本申请的不足之处在于帧与帧之间的边界不清晰,由于在读取当前帧的过程中新的DVS事件也会影响当前的事件帧,因此相邻帧的时间间隔是不固定的。但是,DVS事件本身就是基于事件的,当亮度变化超过阈值即会产生DVS事件,其本身并没有清晰的帧边界,现有技术中所说的帧只是人为规定时间间隔得到的一段时间内的DVS事件统计,其目的只是为了便于划分帧,以进行后续的数据处理、人工智能训练等。本申请的帧没有清晰固定的时间间隔,只是使用了与现有技术不同的划分帧的方法,但是并未丢失DVS事件,能够保证后续数据处理、人工智能训练时能得到所有的信息,不会影响后续的数据处理和人工智能训练。
与现有技术相比,本发明具有以下有益效果:
(1)降采样和像素计数同时进行,大大减少了计数器的数量,从而减少了存储空间的大小,降低了成本。
(2)摒弃乒乓缓存的方式,存储空间中只存储一帧事件帧的计数器,计数器读取过程中如果有新的DVS事件到来,将新的DVS事件并入当前帧或下一帧,进一步减少了存储空间的大小,降低了成本。
(3)每一个DVS事件都能在事件帧中得到体现,没有丢失任何DVS事件,确保DVS事件转帧后进行后续数据处理和人工智能训练的过程中得到了所有的信息。
附图说明
图1为本发明的DVS事件转帧中降采样与像素计数同时进行的示意图;
图2为现有技术中DVS事件转帧示意图;
图3为本发明中降采样与像素计数同时进行的示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1:
一种动态视觉传感器事件转帧的低成本实现方法,如图1所示,包括以下步骤:
S1、获取DVS图像大小和降采样因子,基于DVS图像大小和降采样因子确定采样区域的数量,将采样区域与存储空间中的计数器一一对应,记录每个采样区域所对应的计数器在存储空间中的地址;
S2、每当有新的DVS事件到来,获取该DVS事件的像素位置,计算该DVS事件所对应的采样区域,更新该DVS事件的采样区域所对应的计数器;
步骤S2中,更新该DVS事件的采样区域所对应的计数器具体为:如果计数器尚未计数至该计数器的最大值,则将计数器加1,否则,计数器保持不变;将计数器加1的具体操作为:读出计数器的读数,加1后重新写入计数器。
对于单个像素点,当其接受光强度发生改变时,会有事件(脉冲)信号输出,比如说亮度变化超过一个阈值,那么将增加一个该像素点亮度变化的事件,即DVS事件,输出事件的地址(对应像素位置)和事件的性质(变亮变暗等),本申请不关注事件的性质,每接收到一个DVS事件,就根据DVS事件对应的像素位置判断其所属的采样区域,进而更新采样区域对应的计数器,如果计数器尚未计数至最大值,则计数器加1,否则计数器不变。
S3、当表示新的一帧开始的framesync信号有效时,从存储空间的首地址(即地址0)开始,依次对各个地址进行读取清零操作,得到事件帧,读取清零操作具体为:读出当前地址中计数器的读数,将当前地址中的计数器清零。
步骤S3中,每经过一个预设置的时间间隔,表示新的一帧开始的framesync信号有效一次。
步骤S3中,将存储空间中的计数器的读数读取至外部存储器件得到事件帧,在进行读取清零操作时,先将当前地址中计数器的读数读取至片上缓存,同时将当前地址中的计数器清零,再从片上缓存中将计数器的读数写入外部存储器。存储器的读写操作、并行执行等操作均为本领域人员所熟知,此处不多赘述。
在对地址i中的计数器进行读取清零操作的过程中,如果有新的DVS事件到来,则计算新的DVS事件所对应的计数器在存储空间中的地址j:
如果j>i,则继续对地址i中的计数器进行读取清零操作,完成对地址i中的计数器的读取清零操作后,更新新的DVS事件所对应的计数器,继续进行下一地址的读取清零操作;在读取地址j中的计数器时,这一个新的DVS事件将被读出,在当前读取的事件帧中体现;
如果j<i,则继续对地址i中的计数器进行读取清零操作,完成对地址i中的计数器的读取清零操作后,更新新的DVS事件所对应的计数器,继续进行下一地址的读取清零操作;这一个新的DVS事件将在下一次读取的事件帧中体现;
如果j=i,且计数器的读数尚未写入片上缓存,则读出地址i中计数器的读数,基于新的DVS事件更新读出的计数器读数,将更新后的计数器读数写入片上缓存,将地址i中的计数器清零,继续进行下一地址的读取清零操作;这一个新的DVS事件将体现在当前读取的事件帧中;基于新的DVS事件更新读出的计数器读数具体为:如果计数器尚未计数至该计数器的最大值,则将计数器读数加1,否则,计数器读数保持不变;
如果j=i,且计数器中的读数已经写入片上缓存,则基于新的DVS事件直接写入计数器的读数,继续进行下一地址的读取清零操作;这一个DVS事件将体现在下一次读取的事件帧中,基于新的DVS事件直接写入计数器的读数可以理解为先将计数器清零,再基于新的DVS事件更新计数器;基于新的DVS事件直接写入计数器的读数具体为:对计数器进行写1操作。
一种动态视觉传感器事件转帧的低成本实现装置,基于如上的动态视觉传感器事件转帧的低成本实现方法,包括存储空间、外部存储器和控制器;存储空间中的计数器用于对DVS事件计数,外部存储器用于存放事件帧,控制器用于接收DVS事件,并基于接收的DVS事件对存储空间进行读操作、写操作和更新操作,对外部存储器进行写操作。
DVS图像大小为ROW_MAX*COL_MAX,其中ROW_MAX表示DVS图像的像素行数,COL_MAX表示DVS图像的像素列数,降采样因子包括行降采样因子和列降采样因子,其中行降采样因子为ROW_POOL:1,列降采样因子为COL_POOL:1,降采样区域的大小为ROW_POOL*COL_POOL;其中,ROW_MAX、COL_MAX、ROW_POOL和COL_POOL均为正整数。
PIXEL_WIDTH表示预设置的一个像素所对应的计数器的位宽,则一个采样区域所对应的计数器的位宽为:
PIXEL_WIDTH+ceil(log2(ROW_POOL*COL_POOL))
则存储空间的大小为:
Num*(PIXEL_WIDTH+ceil(log2(ROW_POOL*COL_POOL)))
其中,函数ceil(x)返回不小于x的最小整数值,Num表示计数器的数量。
采样区域的数量与计数器的数量相等,计数器的数量Num为:
Num=(ceil(ROW_MAX/ROW_POOL))*(ceil(COL_MAX/COL_POOL))
其中,函数ceil(x)返回不小于x的最小整数值。
本实施例中,如图3所示,DVS图像的分辨率为8*8,即,DVS图像大小为8*8,行降采样因子为4:1,列降采样因子为4:1,共有4个采样区域,一个采样区域中的16个像素均映射到同一个计数器上。如图3中像素pixel(0,0)对应的计数器为pool(0,0),像素pixel(2,4)对应的计数器为pool(0,1),像素pixel(6,0)和pixel(7,2)对应的计数器均为pool(1,0)。
接收到一个DVS事件后,根据DVS事件中所携带的位置信息(pixel_row,pixel_col)确定该DVS事件的降采样后的像素位置,再计算中所属的采样区域,进而将采样区域对应的计数器加1,如第一个DVS事件的位置信息为pixel_row=1,pixel_col=2,其对应的计数器为pool(0,0),如果该计数器的计数没有达到最大值,则将该计数器加1,如果达到最大值,则保持不变,第二个DVS事件的位置信息为pixel_row=6,pixel_col=5,其对应的计数器为pool(1,1),如果该计数器的计数没有达到最大值,则将该计数器加1,如果达到最大值,则保持不变。
(1)传统的DVS事件转帧方法如图2所示:
对于一个768*1024的DVS图像而言,传统的DVS事件转帧方法是在存储空间中留出768*1024个计数器,每个计数器对应一个像素,当像素的亮度变化超过阈值时,动态视觉传感器产生一个DVS事件,当一个DVS事件到达时,将该DVS事件对应的计数器加1,可以设计数器的位宽PIXEL_WIDTH为8位。在表示新的一帧开始的framesync信号有效时,将存储空间中各个计数器的读数读出,得到一个768*1024的帧,帧中的每个值的大小表示一个像素亮度变化超过阈值的次数。
在读取存储空间中计数器的读数的过程中,如果存储空间是有1个读端口和1个写端口的深度为192K、宽度是32比特的SRAM,宽度指的是能存多长的数据,深度指的是能存多少个这么长的数据,那么这个读出过程持续192K时钟周期,读取时间较长,考虑到这段时间中可能会有新的DVS事件到来,因此采用乒乓缓存的方式:整个存储空间分为两部分,第一部分的大小为768*1024*8=768K Byte,第二部分的大小同样为768*1024*8=768K Byte,假定当前在第一部分中进行像素计数,在framesync信号有效时,从第一部分中读取各个计数器的值,同时,开始在第二部分中进行像素计数,直至framesync信号再次有效,从第二部分中读取各个计数器的值,同时,开始在第一部分中进行像素计数,循环往复。
DVS的像素数(例如1024*768)有可能超过神经网络支持的最大像素数(例如224*224),同时神经网络不需要较高的分辨率就能进行分类,因此读取计数器得到的768*1024的帧需要进行降采样。如果进行降采样,读取计数器得到一个768*1024的帧,对这个帧的行列均进行4:1的降采样,得到一个192*256的事件帧,那么还需要一块存储空间,来存放这个降采样得到的事件帧。之后进行位宽截断,发送至外部存储器DDR。
如果降采样所占用的空间不计入存储空间中,那么存储空间的大小至少为768K*2=1536K Byte。
(2)本申请将降采样与DVS转帧计数同时进行,如图1所示:
对于一个768*1024的DVS图像而言,行列均进行4:1的降采样,计数器的数目为768*1024/16,降为原来的1/16。每个计数器对应一个采样区域,当一个像素的亮度变化超过阈值时,动态视觉传感器产生一个DVS事件,当一个DVS事件到达时,计算该DVS事件所属的采样区域,将该采样区域所对应的计数器加1,同时,由于计数器要对采样区域内16个像素进行计数,因此其位宽增加为8+ceil(log2(4*4))=12。在表示新的一帧开始的framesync信号有效时,将存储空间中各个计数器的读数读出,得到一个192*256的帧,帧中的每个值的大小表示一个采样区域中的所有像素亮度变化超过阈值的次数。之后进行位宽截断,发送至外部存储器DDR。
本申请没有采用乒乓缓存的方式,在读取存储空间中计数器的读数过程中,如果有新的DVS事件到来,根据新的DVS事件所对应的计数器的地址与当前正在读取的地址,决定将新的DVS事件并入当前的事件帧或者并入下一个事件帧中。
在对地址i中的计数器进行读取清零操作的过程中,如果有新的DVS事件到来,则计算新的DVS事件所对应的计数器在存储空间中的地址j:
如果j>i,则继续对地址i中的计数器进行读取清零操作,完成对地址i中的计数器的读取清零操作后,更新新的DVS事件所对应的计数器,继续进行下一地址的读取清零操作;在读取地址j中的计数器时,这一个新的DVS事件将被读出,在当前读取的事件帧中体现;
如果j<i,则继续对地址i中的计数器进行读取清零操作,完成对地址i中的计数器的读取清零操作后,更新新的DVS事件所对应的计数器,继续进行下一地址的读取清零操作;这一个新的DVS事件将在下一次读取的事件帧中体现;
如果j=i,且计数器的读数尚未写入片上缓存,则读出地址i中计数器的读数,基于新的DVS事件更新读出的计数器读数,将更新后的计数器读数写入片上缓存,将地址i中的计数器清零,继续进行下一地址的读取清零操作;这一个新的DVS事件将体现在当前读取的事件帧中;基于新的DVS事件更新读出的计数器读数具体为:如果计数器尚未计数至该计数器的最大值,则将计数器读数加1,否则,计数器读数保持不变;
如果j=i,且计数器中的读数已经写入片上缓存,则基于新的DVS事件直接写入计数器的读数,继续进行下一地址的读取清零操作;这一个DVS事件将体现在下一次读取的事件帧中,基于新的DVS事件直接写入计数器的读数可以理解为先将计数器清零,再基于新的DVS事件更新计数器;基于新的DVS事件直接写入计数器的读数具体为:对计数器进行写1操作。
因此本申请中存储空间的大小为192*256*12=73.728K Byte,而传统的DVS事件转帧方法所需的存储空间的大小为1536K Byte,显然,本申请大大降低了存储空间。
一方面,本申请将降采样与像素计数同时进行,大大减少了存储空间(本申请为73.728K Byte,传统技术为768K Byte),另一方面,没有使用乒乓缓存的方式,而是只存储一帧计数器,进一步减少了存储空间(本申请为73.728K Byte,传统技术为1536K Byte)。
本申请的不足之处在于帧与帧之间的边界不清晰,由于在读取当前帧的过程中新的DVS事件也会影响当前的事件帧,因此相邻帧的时间间隔是不固定的。但是,DVS事件本身就是基于事件的,当亮度变化超过阈值即会产生DVS事件,其本身并没有清晰的帧边界,现有技术中所说的帧只是人为规定时间间隔得到的一段时间内的DVS事件统计,其目的只是为了便于划分帧,以进行后续的数据处理、人工智能训练等。本申请的帧没有清晰固定的时间间隔,只是使用了与现有技术不同的划分帧的方法,但是并未丢失DVS事件,能够保证后续数据处理、人工智能训练时能得到所有的信息,不会影响后续的数据处理和人工智能训练。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (10)
1.一种动态视觉传感器事件转帧的低成本实现方法,其特征在于,包括以下步骤:
S1、获取DVS图像大小和降采样因子,基于DVS图像大小和降采样因子确定采样区域的数量,将采样区域与存储空间中的计数器一一对应;
S2、每当有新的DVS事件到来,获取该DVS事件的像素位置,计算该DVS事件所对应的采样区域,更新该DVS事件的采样区域所对应的计数器;
S3、当表示新的一帧开始的framesync信号有效时,从存储空间的首地址开始,依次对各个地址进行读取清零操作,得到事件帧,所述读取清零操作具体为:读出当前地址中计数器的读数,将当前地址中的计数器清零。
2.根据权利要求1所述的一种动态视觉传感器事件转帧的低成本实现方法,其特征在于,步骤S3中,将存储空间中的计数器的读数读取至外部存储器得到事件帧,在进行读取清零操作时,先将当前地址中计数器的读数读取至片上缓存,同时将当前地址中的计数器清零,再从片上缓存中将计数器的读数写入外部存储器。
3.根据权利要求2所述的一种动态视觉传感器事件转帧的低成本实现方法,其特征在于,在对地址i中的计数器进行读取清零操作的过程中,如果有新的DVS事件到来,则计算所述新的DVS事件所对应的计数器在存储空间中的地址j:
如果j>i,则继续对地址i中的计数器进行读取清零操作,完成对地址i中的计数器的读取清零操作后,更新所述新的DVS事件所对应的计数器,继续进行下一地址的读取清零操作;
如果j<i,则继续对地址i中的计数器进行读取清零操作,完成对地址i中的计数器的读取清零操作后,更新所述新的DVS事件所对应的计数器,继续进行下一地址的读取清零操作;
如果j=i,且计数器的读数尚未写入片上缓存,则读出地址i中计数器的读数,基于新的DVS事件更新读出的计数器读数,将更新后的计数器读数写入片上缓存,将地址i中的计数器清零,继续进行下一地址的读取清零操作;
如果j=i,且计数器中的读数已经写入片上缓存,则基于新的DVS事件直接写入计数器的读数,继续进行下一地址的读取清零操作。
4.根据权利要求3所述的一种动态视觉传感器事件转帧的低成本实现方法,其特征在于,基于新的DVS事件更新读出的计数器读数具体为:如果计数器尚未计数至该计数器的最大值,则将计数器读数加1,否则,计数器读数保持不变;基于新的DVS事件直接写入计数器的读数具体为:对计数器进行写1操作。
5.根据权利要求1所述的一种动态视觉传感器事件转帧的低成本实现方法,其特征在于,步骤S2中,更新该DVS事件的采样区域所对应的计数器具体为:如果计数器尚未计数至该计数器的最大值,则将计数器加1,否则,计数器保持不变。
6.根据权利要求1所述的一种动态视觉传感器事件转帧的低成本实现方法,其特征在于,所述DVS图像大小为ROW_MAX*COL_MAX,其中ROW_MAX表示DVS图像的像素行数,COL_MAX表示DVS图像的像素列数,所述降采样因子包括行降采样因子和列降采样因子,其中行降采样因子为ROW_POOL:1,列降采样因子为COL_POOL:1,降采样区域的大小为ROW_POOL*COL_POOL;其中,ROW_MAX、COL_MAX、ROW_POOL和COL_POOL均为正整数。
7.根据权利要求6所述的一种动态视觉传感器事件转帧的低成本实现方法,其特征在于,PIXEL_WIDTH表示预设置的一个像素所对应的计数器的位宽,则一个采样区域所对应的计数器的位宽为:
PIXEL_WIDTH+ceil(log2(ROW_POOL*COL_POOL))
则存储空间的大小为:
Num*(PIXEL_WIDTH+ceil(log2(ROW_POOL*COL_POOL)))
其中,函数ceil(x)返回不小于x的最小整数值,Num表示计数器的数量。
8.根据权利要求7所述的一种动态视觉传感器事件转帧的低成本实现方法,其特征在于,采样区域的数量与计数器的数量相等,计数器的数量Num为:
Num=(ceil(ROW_MAX/ROW_POOL))*(ceil(COL_MAX/COL_POOL))
其中,函数ceil(x)返回不小于x的最小整数值。
9.根据权利要求1所述的一种动态视觉传感器事件转帧的低成本实现方法,其特征在于,步骤S3中,每经过一个预设置的时间间隔,表示新的一帧开始的framesync信号有效一次。
10.一种动态视觉传感器事件转帧的低成本实现装置,其特征在于,基于如权利要求1-9中任一所述的动态视觉传感器事件转帧的低成本实现方法,包括存储空间、外部存储器和控制器;所述存储空间中的计数器用于对DVS事件计数,所述外部存储器用于存放事件帧,所述控制器用于接收DVS事件,并基于接收的DVS事件对存储空间进行读操作、写操作和更新操作,对外部存储器进行写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110978862.1A CN115719295A (zh) | 2021-08-25 | 2021-08-25 | 一种动态视觉传感器事件转帧的低成本实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110978862.1A CN115719295A (zh) | 2021-08-25 | 2021-08-25 | 一种动态视觉传感器事件转帧的低成本实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115719295A true CN115719295A (zh) | 2023-02-28 |
Family
ID=85253513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110978862.1A Pending CN115719295A (zh) | 2021-08-25 | 2021-08-25 | 一种动态视觉传感器事件转帧的低成本实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115719295A (zh) |
-
2021
- 2021-08-25 CN CN202110978862.1A patent/CN115719295A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4964159B2 (ja) | ビデオのフレームのシーケンスにおいてオブジェクトを追跡するコンピュータに実装される方法 | |
CN113408671B (zh) | 一种对象识别方法及装置、芯片及电子设备 | |
US20230410328A1 (en) | Target tracking method and system of spiking neural network based on event camera | |
CN108287336B (zh) | 一种面阵盖革apd激光雷达距离像强度像生成系统 | |
US20220100658A1 (en) | Method of processing a series of events received asynchronously from an array of pixels of an event-based light sensor | |
CN111064865A (zh) | 一种动态视觉传感器背景活动噪声过滤器及处理器 | |
CN111294520B (zh) | 一种基于fpga的实时幸运成像方法及系统 | |
CN111353544A (zh) | 一种基于改进的Mixed Pooling-YOLOV3目标检测方法 | |
CN116486250A (zh) | 一种基于嵌入式的多路图像采集与处理方法及系统 | |
CN106780415B (zh) | 一种直方图统计电路及多媒体处理系统 | |
CN114092338B (zh) | 图像缩放快速计算方法 | |
CN114070959A (zh) | 一种基于fpga的视频去噪硬件实现方法 | |
CN115719295A (zh) | 一种动态视觉传感器事件转帧的低成本实现方法及装置 | |
CN115049885B (zh) | 一种存算一体卷积神经网络图像分类装置及方法 | |
US20210217179A1 (en) | Object detection with image background subtracted | |
CN111783876A (zh) | 自适应智能检测电路及图像智能检测方法 | |
CN115470895A (zh) | 图像卷积电路、方法、图像识别方法、装置及设备 | |
CN110264488B (zh) | 一种二值图像边缘提取装置 | |
CN117788269B (zh) | 一种基于fpga的光斑质心快速定位方法及其相关设备 | |
CN108827281A (zh) | 一种星敏感器的组合成像驱动方法 | |
CN111881715B (zh) | 一种人脸检测硬件加速方法、系统和设备 | |
CN112435158B (zh) | 一种可滤除低频空间噪声的红外图像非均匀校正方法 | |
CN115205095A (zh) | 一种基于帧差型传感器的片上实时光流检测系统 | |
CN116880907B (zh) | 一种实时波长峰值提取方法、装置、设备及存储介质 | |
CN114298913B (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 |