本发明涉及一种影子数据增强方法及装置、训练方法、存储介质和芯片,具体涉及一种为使脉冲神经网络具有更强准确性、鲁棒性和普适性的数据增强方法、训练方法、存储介质和芯片。
背景技术:
1、脉冲神经网络(snn),被誉为第三代神经网络,其模仿大脑运行原理,具有事件驱动特性和丰富的时空动力学特征,计算代价小、功耗低。值得一提的是,神经形态硬件或类脑芯片是非冯诺依曼架构,其并不基于计算机程序而执行传统意义上的各种数学/程序函数计算。
2、基于事件的成像装置是一种仿生的新型视觉传感器,例如事件相机(eventcamera)、动态视觉传感器(dvs、davis)、基于事件成像的融合传感器等神经形态视觉传感器,后续以事件相机为例,但并不以此为限。不同于传统的帧图像传感器(比如aps传感器),事件相机不以固定的速率捕捉图像,其每个像素独立工作,根据感受到的光线变化,当光线的强弱变化超出某个阈值时,输出on事件(光强增大)或off事件(光强变弱),具体可以参考现有技术1:ep3731516a1。
3、事件相机捕捉场景中的变化/运动信息,输出的事件通常包括事件产生的时间戳(精确到us/ns)、产生事件的像素坐标(x,y)和事件的极性(光强变亮或变暗,或者像素的光电压值即灰度值),其中,事件的极性在某些情况下可忽略。事件相机基于光强的变化产生事件,其输出只有正负,而没有强度,对于人工神经网络、深度神经网络来说,无法分析事件产生的原因,可能会提供错误的特征信息,影响训练结果。
4、基于事件相机(或帧图像经过差帧而获得脉冲序列)和脉冲神经网络(snn)组合的感知与计算方案,可提供一种低功耗(可以低至毫瓦级)、高实时性(可至微秒级)的“感算一体”解决方案,应用于边缘计算、物联网等终端场景,在不联网的情况下实现终端智能。基于事件(event/spike)的成像装置产生的事件流是目前最适合snn应用的一类数据集,然而目前基于事件相机的数据集,如neuromorphic-mnist、dvs-gesture等规模比较小且应用场景不丰富,如何发展大规模或契合实际使用场景的snn训练数据集是产业界的难题。
5、事件相机的成像原理是每个像素点接收来自对应实体空间位置的光线,基于光线变化产生一个事件数据,其对光线变化具有非常高的灵敏性,因此,容易将外界微小的干扰捕捉成噪声事件。尤其是,当光源照射用户时,若在站立的地面或靠近的桌面/墙面/镜子/玻璃等产生影子,若产生的影子在事件相机的视野范围内,当用户做出某个动作时,在地面或墙面等地方存在的影子也会产生事件数据。影子的位置、大小受用户、光源与传感器(也称为镜头)的距离和角度的影响。在实际应用场景中,由于影子出现在视野范围内的情况非常普遍,部署有基于训练数据集得到的网络配置参数的神经形态硬件推理精度的稳定性、鲁棒性不够理想,容易导致推理错误。并且由于环境的复杂性、多变性,本领域技术人员期待神经形态硬件在实际环境下能具有与训练模型同样的精度,以及更好的环境适应能力,录制的训练数据不可能覆盖到所有可能的影子位置和大小,因此需要对训练数据做关于影子的数据增强,以得到多样性的包含影子的训练数据,使得模型具有更好的鲁棒性和环境适应性。
技术实现思路
1、为了解决或缓解上述部分或全部技术问题,本发明是通过如下技术方案实现的:
2、一种影子数据增强方法,考虑影子噪声的影响,在样本数据中增加影子数据,包括如下步骤:
3、基于样本数据,确定满足预设条件的像素区域,获得目标范围;
4、选取目标范围外至少一个像素点为影子中心点进行影子数据增强;
5、其中,所述预设条件为以下情形之一:
6、i)连续区域内,任意像素单元的像素值或产生的脉冲事件数量大于或等于第一阈值;
7、ii)连续区域内,像素值或产生的脉冲事件数量大于或等于第一阈值的像素单元的数量大于或等于第二阈值。
8、在某些实施例中,以影子中心点为中心,基于预设的影子尺寸或/和形状,获得产生影子噪声的像素区域;
9、将产生影子噪声的像素区域内所有像素单元的像素值或产生的影子事件数量设置为第一数值,并将产生影子噪声的像素区域旋转预设角度,从而得到影子数据。
10、在某些实施例中,以影子中心点为中心,基于预设的影子尺寸或/和形状,获得产生影子噪声的像素区域;
11、随机将产生影子噪声的像素区域内一半以上像素单元的像素值或产生的影子事件数量设置为第一数值,并将产生影子噪声的像素区域旋转预设角度,从而得到影子数据。
12、在某些实施例中,所述第一数值小于所述第一阈值。
13、在某些实施例中,所述第一数值大于或等于第三阈值。
14、在某些实施例中,若样本数据不是事件帧格式,先对样本数据进行预处理,将样本数据转换为事件帧;基于事件帧中像素单元的像素值或产生的脉冲事件数量获得目标范围。
15、在某些实施例中,通过以下方式之一调整影子尺寸,以调整产生影子噪声的像素区域:
16、i)产生影子噪声的像素区域的尺寸与影子和事件相机之间的距离成反比;所述距离为横坐标或/和纵坐标距离;
17、ii)产生影子噪声的像素区域的尺寸与光源大小成反比;
18、iii)产生影子噪声的像素区域的尺寸与用户或动作或物体与反射面的垂直程度成反比。
19、在某些实施例中,所述第一数值的大小与用户或动作或物体的运动速度成正比。
20、在某些实施例中,产生影子噪声的像素区域内,设置为第一数值的像素单元数量与用户或动作或物体的运动速度成正比。
21、在某些实施例中,将影子数据加到与样本数据对应事件帧数据中,完成影子数据增强,或者基于影子数据直接更新样本数据中与影子数据坐标相对应的像素单元的像素值。
22、在某些实施例中,所述形状为圆形或矩形。
23、在某些实施例中,在视野范围内,选取目标范围外的左侧或右侧或下侧至少一个像素点为影子中心点。
24、一种使用影子进行数据增强的装置,包括:
25、判断模块,基于样本数据集确定满足预设条件的像素区域,得到目标范围;
26、选择模块,与所述判断模块耦接,在目标范围外选择一个像素点作为影子中心点,并选定影子尺寸和形状;
27、增强模块,与所述选择模块耦接,基于选择模块确定的参数,以影子中心点为中心,进行影子数据增强;
28、其中,所述预设条件为以下情形之一:
29、i)连续区域内,任意像素单元的像素值或产生的脉冲事件数量大于或等于第一阈值;
30、ii)连续区域内,像素值或产生的脉冲事件数量大于或等于第一阈值的像素单元的数量大于或等于第二阈值。
31、在某些实施例中,所述增强模块,基于选择模块确定的参数,以影子中心点为中心,获得产生影子噪声的像素区域;
32、将产生影子噪声的像素区域内一半以上像素单元的像素值或产生的影子事件数量设置为第一数值,并将产生影子噪声的像素区域旋转预设角度,从而得到影子数据。
33、在某些实施例中,所述第一数值小于所述第一阈值。
34、在某些实施例中,所述第一数值大于或等于第三阈值。
35、在某些实施例中,所述第一数值的大小与用户或动作或物体的运动速度成正比。
36、在某些实施例中,产生影子噪声的像素区域内,设置为第一数值的像素单元数量与用户或动作或物体的运动速度成正比。
37、在某些实施例中,若样本数据不是事件帧格式,所述使用影子进行数据增强的装置还包括预处理模块;
38、所述预处理模块耦接于样本数据与判断模块之间,用于将样本数据转换为事件帧。
39、一种脉冲神经网络训练方法,基于如前所述的影子数据增强方法,对脉冲神经网络训练集的样本数据进行至少一次数据增强;基于增强后的训练集完成对脉冲神经网络的训练。
40、一种存储介质,该存储介质上存储有计算机代码,通过执行该计算机代码,以实现如前所述的影子数据增强方法。
41、一种芯片,包括脉冲神经网络处理器,所述脉冲神经网络处理器部署有使用如前所述的脉冲神经网络训练方法获得的最优配置参数。
42、在某些实施例中,所述芯片为类脑芯片或神经拟态芯片,具有事件触发机制。
43、在某些实施例中,所述芯片包括图像传感器,所述图像传感器与所述脉冲神经网络处理器集成在一起,或通过接口耦接。
44、一种电子产品,所述电子产品上配有如前所述的芯片。
45、本发明的部分或全部实施例,具有如下有益技术效果:
46、1)本发明通过对训练数据做关于影子的数据增强,以得到多样性的包含影子的训练数据,以使脉冲神经网络能够适应复杂、多变的实际工作环境,具有更好的精度和稳定性。
47、2)本发明基于在实际应用场景中传感器视野范围内存在影子的情况,针对性地进行了关于影子的数据增强,方法简单、易实施,有效解决了相应的问题。
48、3)本发明在训练数据量较少时具有优越性,基于用户与事件相机的相对位置,用户、光源与反射面的相对位置(距离和角度),以及动作速度,获得丰富、多样的训练数据。
49、更多的有益效果将在优选实施例中作进一步的介绍。
50、以上披露的技术方案/特征,旨在对具体实施方式部分中所描述的技术方案、技术特征进行概括,因而记载的范围可能不完全相同。但是该部分披露的这些新的技术方案同样属于本发明文件所公开的众多技术方案的一部分,该部分披露的技术特征与后续具体实施方式部分公开的技术特征、未在说明书中明确描述的附图中的部分内容,以相互合理组合的方式披露更多的技术方案。
51、本发明任意位置所披露的所有技术特征所组合出的技术方案,用于支撑对技术方案的概括、专利文件的修改、技术方案的披露。