本发明涉及事件相机及数据压缩,尤其涉及的是一种事件相机数据的无损压缩编码方法、装置、智能终端及存储介质。
背景技术:
1、随着人们对相机分辨率以及高动态范围需求的日渐提升,传统相机已经逐渐无法满足需求。传统相机存在着两个问题,一个是运动模糊,当场景中的运动速度超过相机的采样速率之后,就会产生运动模糊;另一个问题是由于光线的问题造成曝光不足或者过曝的动态范围问题。事件相机的产生为人们解决了这些问题。
2、事件相机是一种仿生传感器,与传统的定格相机不同:不是在固定的位置捕捉图像速率,是异步测量每像素的亮度变化,并输出一个事件流——包括编码时间t,位置(x,y)和亮度变化符p∈{1,-1}。与传统相机相比,事件相机具有吸引人的特性:高时间分辨率μs量级),非常高的动态范围(140dbvs.60db),低功耗,高像素带宽(khz量级)从而减少运动模糊。因此,事件摄像机在具有挑战性的场景中有很大的潜力。
3、现有技术的事件数据压缩方法大多运用了编码的方式,虽然能对数据进行压缩,但是需要进行比较复杂步骤并且在数据还原时会产生一定的数据损失。
4、因此,现有技术还有待改进和发展。
技术实现思路
1、本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种事件相机数据的无损压缩编码方法、装置、智能终端及存储介质,旨在解决现有技术的事件相机数据的压缩编码过程复杂并且会产生数据损失的技术问题,本发明基于信息无损转化的前提下,以较简单的转换步骤,实现一个压缩率较低的数据压缩方法,并克服了现有事件相机数据文件占用内存过大、不易存储和下载的缺点。
2、本发明解决问题所采用的技术方案如下:
3、第一方面,本发明实施例提供一种事件相机数据的无损压缩编码方法,其中,所述方法包括:
4、获取事件图像区域,并对事件图像区域进行分块,分为多个长宽为指定像素的区域;
5、对分块后的区域,根据每个事件点e(t,x,y,p)的原坐标(x,y),计算出每个事件点所属的块b以及块内的位置(xb,yb),生成每个事件点的新位置坐标e(b,yb,xb);
6、根据计算的每个事件点的新位置坐标,将每个事件点表示为e(b,yb,xb,t,p),基于新的事件点集合以多级键值对的数据结构进行存储;
7、将以多级键值对的数据结构存储的数据,保存为二进制数据报文,最后压缩为二进制文件。
8、所述的事件相机数据的无损压缩编码方法,其中,所述获取事件图像区域,并对事件图像区域进行分块,分为多个长宽为指定像素的区域的步骤包括:
9、获取事件图像的总行数height和总列数width;
10、对事件图像进行区域分块,根据每个块block的尺寸block_size×block_size,结合所获取的事件图像的总行数height和总列数width,分别计算出横向的块block数bw,和纵向的块block数bh。
11、所述的事件相机数据的无损压缩编码方法,其中,所述获取事件图像区域,并对事件图像区域进行分块,分为多个长宽为指定像素的区域的步骤还包括:
12、根据分块后的行块数bh、列块数bw,以及图像的行数height、列数width构建压缩后的文件头。
13、所述的事件相机数据的无损压缩编码方法,其中,所述对分块后的区域,根据每个事件点e(t,x,y,p)的原坐标(x,y),计算出每个事件点所属的块b以及块内的位置(xb,yb),生成每个事件点的新位置坐标e(b,yb,xb)的步骤包括:
14、对分块后的区域,根据每个事件点e(t,x,y,p)的原坐标(x,y);
15、对每个事件点e(t,x,y,p),t为事件发生时间,x、y为发生时所在图像位置,p为事件极性{1,-1};计算出事件点在图像分块后所属的区域位置(b,xb,yb),b为所属块、(xb,yb)为块内的位置,实现将位置坐标由2*4字节大小的(x,y)转换为3*1字节大小的(b,yb,xb)。
16、所述的事件相机数据的无损压缩编码方法,其中,所述根据计算的每个事件点的新位置坐标,将每个事件点表示为e(b,yb,xb,t,p),基于新的事件点集合以多级键值对的数据结构进行存储的步骤包括:
17、基于将每个事件点的信息由e(t,x,y,p)转为e(t,b,xb,yb,p)的前提下,以键值对的格式对数据进行多级存储;
18、基于以键值对的格式对数据进行多级存储的结果,对每个时间信息数组做进一步处理,先将每个时间数组进行升序排序,然后将值转化为与前一时间点的差。
19、所述的事件相机数据的无损压缩编码方法,其中,所述以键值对的格式对数据进行多级存储的步骤包括:
20、设b为一级主键,对应的value为多个以y为主键的键值对数组;y为二级主键,对应的value为以x为主键的键值对数组;x为三级主键,对应的value为两个数组,分别存放满足(b,xb,yb)位置下的正事件点和负事件点的时间信息。
21、所述的事件相机数据的无损压缩编码方法,其中,所述将以多级键值对的数据结构存储的数据,保存为二进制数据报文,最后压缩为二进制文件的步骤包括:
22、基于得到的以多级键值对的数据结构存储的数据,在存储时分别对(b,xb,yb)前加上标识符,在每个时间数组前,加上表示正极性事件标识符p或表示负极性事件标识符n,以及数组的长度;
23、再进行数据向数组的转换,最终得到的二进制流报文,数据最终由多级键值对形式保存为二进制数据文件。
24、一种事件相机数据的无损压缩编码装置,其中,所述装置包括:
25、分块模块,用于获取事件图像区域,并对事件图像区域进行分块,分为多个长宽为指定像素的区域;
26、转换模块,用于对分块后的区域,根据每个事件点e(t,x,y,p)的原坐标(x,y),计算出每个事件点所属的块b以及块内的位置(xb,yb),生成每个事件点的新位置坐标e(b,yb,xb);
27、多级键值对的数据结构转换模块,用于根据计算的每个事件点的新位置坐标,将每个事件点表示为e(b,yb,xb,t,p),基于新的事件点集合以多级键值对的数据结构进行存储;
28、二进制压缩模块,用于将以多级键值对的数据结构存储的数据,保存为二进制数据报文,最后压缩为二进制文件。
29、一种智能终端,其中,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序时,实现任意一项所述的方法的步骤。
30、一种非临时性计算机可读存储介质,其中,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行任意一项所述的方法。
31、本发明的有益效果:本发明提供的一种事件相机数据的无损压缩编码方法,只通过特定的数据结构对事件相机数据信息进行一次重组,在不会造成任何数据信息丢失的情况下,对事件相机数据文件进行了压缩。可以将原事件数据文件转为本文的压缩文件,也可以将压缩后的文件无损地还原回原文件。本发明的压缩方法能有效地对事件相机数据文件进行压缩、过程无损失、步骤简单。并且通过本发明实施例的方法克服了现有事件相机数据文件占用内存过大、不易存储和下载的缺点;本发明压缩后的数据文件减少了内存占用。