基于事件相机的可视化及降噪算法
2021-03-26闫昌达王霞左一凡李磊磊陈家斌
闫昌达,王霞,*,左一凡,李磊磊,陈家斌
(1.北京理工大学 光电学院,北京100081; 2.北京理工大学 自动化学院,北京100081)
事件相机(Event Camera)是一种新兴的生物视觉传感器,传统帧相机(Frame-based Camera)通过固定的曝光时间以一定帧率采集图像,事件相机则通过检测每一像素点的事件——亮度变化,在亮度变化超过设定阈值时异步输出像素地址事件流数据。传统帧相机受限于软硬件条件,帧率一般为15~200 fps(fps为帧/s),在高速运动的场景中会产生运动模糊。与此同时,在高动态的工作场景下会产生过曝与欠曝的现象,丢失场景部分细节信息。事件相机则具有高时间分辨率、高动态范围的特点[1],由于每一像素的异步输出特性,没有帧率的概念其响应时间可达到微秒级别,由于其检测光强对数的变化,其动态范围可达140 dB[2]。
事件相机的特性使其吸引了很多领域研究人员的关注,比如在图像信息处理方面,关注的是图像中的“边”“角”等纹理边缘信息,传统帧相机得到的图像存在很多冗余信息,增加了计算量和对硬件水平的要求,事件相机可以直接输出稀疏的运动边缘信息,简化计算。此外,事件相机在视觉导航定位方向有应用潜力,在实际应用场景中,由于剧烈运动、光照条件变化、平台功耗限制等影响,传统帧相机存在运动模糊、过曝欠曝等限制[2],运动剧烈时检测的有效特征点减少,造成视觉信息不可靠[3],事件相机则可以弥补这些不足。事件相机可应用于无人车、无人机、自主机器人以及增强现实(Augmented Reality,AR)和同时定位及地图构建[4-5](Simultaneous Localization and Mapping,SLAM)技术,相比于传统帧相机具有低延时、高动态、抗运动模糊、低运算量的特点,可以提高导航系统的鲁棒性[6]。
事件相机在实际应用上还存在问题。一方面事件相机由于其本身结构对环境亮度变化十分敏感,在输出的异步事件流中包含大量噪声干扰。噪声可能来源于数字信号传输时的脉冲噪声以及光电二极管所引起的高斯噪声等,对于进一步的应用以及事件流可视化质量造成很大影响[7]。提高事件相机检测亮度变化的阈值有助于降低噪声,但是降低了对于物体运动引起的亮度变化检测的灵敏度,造成信息丢失。所以,对于事件流进行降噪处理是非常重要的预处理环节。
苏黎世联邦理工学院的Delbruck教授团队,提出了一种根据临近事件发生时间的噪声过滤方法[8],通过在所发生事件的空间邻域内记录事件时间,并与邻域内发生的下一事件的时间进行比较,若二者的时间差大于所设定的时间阈值,则将其作为噪声过滤并刷新当前事件时间。该算法体现了事件流的时间和空间连续性,对于背景的噪声具有较好的处理效果,但是其判断相邻事件时间间隔的方法可能在物体运动刚发生时造成有效事件被过滤的情况。中国科学院长春光学精密机械与物理研究所的吕恒毅等提出了一种基于事件密度的噪声处理方法[9]。首先,利用基于当前事件的一个时空邻域建立事件密度矩阵,通过计算矩阵的L1范数并与设定的阈值进行比较进行粗滤波。然后,利用粗滤波后的事件再次建立事件密度矩阵进行精滤波,并判断除事件像素位置外其余元素是否全部为0,若全部为0则判断为噪声进行滤除。该算法可以对同一像素点连续出现的噪声进行处理,但是一方面其时空邻域的选取以及两步滤波的方式,可能造成在运动起始或缓慢时大量有效事件被过滤。另一方面,异步事件流信息形式难以处理,且单一事件包含的信息过少,处理时需要集合事件进行处理,同时事件流信息不直观,不利于人眼观察,所以需要进行可视化处理以推进下一步工作。基于事件相机可视化的相关工作可以简要分为2类:①针对事件流本身,通过固定时间窗口等方式获得事件“帧”,便于进行进一步观测和应用处理;②对事件流信息进行图像重建,得到估计的强度图像达到可视化的效果。
南洋理工大学陈守顺等提出了一种事件流可视化方案,实现高低帧率调节,并在FPGA平台验证其有效性[10]。但该方法在高帧率时降低了事件“帧”包含的信息量,在平缓运动时得到的信息过少不利于进一步处理。西安电子科技大学的谢雪梅教授团队进行了改进,利用重叠累积的方式,可以在保证高速的情况下也保证事件“帧”信息的丰富[7]。但是,两“帧”之间包含的重复事件在进一步处理时可能会造成信息冗余。集合事件得到事件“帧”的方法,可以作为输入,如特征检测、位姿估计、神经网络等。
格拉茨科技大学的Reinbacher等提出了一个由事件流进行实时灰度强度图像重建,并且在重建过程中考虑相机噪声对于亮度的影响的变分模型[11]。帝国理工学院的Davison教授团队提出一种从事件流估计强度图像和光流的滑动窗口变分优化算法,在快速运动和高动态范围场景取得了较好的重建结果,在传统帧相机发生运动模糊的情况下依然可以获得运动物体边缘轮廓[12]。澳大利亚国立大学的Mahony教授团队提出了一种异步滤波器将事件流和强度图像融合为高时间分辨率高动态范围的图像[13]。由事件流估计恢复强度图像的方式主要为人眼观察服务,或者以重建运动模糊、高动态范围的图像为目标,并不是为进一步的实际任务处理服务。
本文研究针对事件流信息的降噪处理以及前一种事件流可视化的方法,通过形成事件“帧”的形式可进行进一步基于事件相机的相关研究。利用物体边缘运动引起的事件流所具有的时间和空间连续性,对事件流进行噪声处理,本文选取的时空邻域在运动起始和平缓时保留更多有效事件信息。对于处理后的有效事件利用事件数量以及时间阈值双限制的方式累积事件形成事件“帧”,在运动平缓时可以保证帧率,体现事件相机低延时特性,运动剧烈时可以平均事件“帧”包含的事件数量,达到可视化及利于进一步应用目的。
1 事件相机原理及数据结构
事件相机的最早形式为动态视觉传感器[13](Dynamic Vision Sensor,DVS),其 像 素 结 构 如图1(a)所示[14]。图中:I为光电流;Vp为感光器输出电压;A=C1/C2为差分电路增益;V0为差分电路输出电压。每个像素独立通过检测光强对数的变化,如果变化的量超过设定的阈值,则根据其变化的情况输出“变亮”或“变暗”事件同时记录新的光强对数。DVS相机仅输出单纯的异步事件流信息,在一定程度上可以满足计算的需求但是不直观,不利于人眼观察。
出于对DVS相机的改进,出现了结合事件和强度图像的基于异步时间的图像传感器[14](Asynchronous Time based Image Sensor,ATIS),以及可以输出事件流也可以输出强度图像的动态与主动式像素视觉传感器[15](Dynamic and Active pixel Vision Sensor,DAVIS),其二者的像素结构如图1(b)和图1(c)所示。图1(b)[15]中:Iph为光电流;Vdiff为差分电路输出电压。图1(c)[16]中:Vpd为光电二极管PD电压;Vpr为感光器输出电压;Ipr为偏置电流;Vdr为MN1下方电压节点;Vaps为APS电压。ATIS相机通过结合2个子像素的方法,ATIS相机的像素中1个子像素为DVS的像素结构,在其受到光强变化产生事件信号时激发另一子像素进行曝光成像,可以得到亮度变化超过阈值部分像素的强度图像。
图1 三种事件相机的像素结构Fig.1 Pixel structure of three event cameras
图2 传统帧相机和事件相机输出对比Fig.2 Comparison of frame-based camera and event camera output
DAVIS相机则将DVS像素和传统帧相机像素电路结合,利用同一个光电二极管作为APS像素和DVS像素的输入,可以同时输出异步的事件流信息以及同步的全局快门图像。ATIS相机和DAVIS相机一定程度上解决了事件相机观察不直观的问题,但是对于输出的事件流依然存在无法观察的问题。事件流数据包含事件发生的像素位置、发生时间及事件极性,伴随亮度变化产生,亮度不变则无数据,各像素间具有异步特性。而像素感受的亮度变化,一般由场景中运动物体边缘与背景的差异造成,如图2所示,具有空间稀疏性,所以事件流反映了场景的运动状态,在剧烈运动时会产生密集的大量事件,在平缓运动时产生较少的事件输出。所以利用固定时间窗口的方式,进行事件累积得到的事件“帧”如图3(a)和图3(b)所示,可以通过改变帧率的方式整体调整每一帧的事件量,但是不能改善运动状态差异导致的帧间信息量差异。本文为保证事件流可视化的事件“帧”既包含足够信息进行进一步处理,又尽量保证高时间分辨率特性,利用事件信息数量及时间阈值双限制的方式累积事件得到事件“帧”,如图3(d)所示。在形成事件“帧”时,发现事件流包含大量噪声事件,在进一步处理过程中噪声事件会造成干扰,所以在保证有效事件信息数量的情况下需进行噪声处理,以得到适合进一步处理任务的事件“帧”。
图3 事件流可视化方法对比Fig.3 Comparison of event stream visualization methods
本文假设事件相机零延时,所得到的事件流即边缘运动信息,环境中的运动具有时间和空间连续性,所以其引发的事件流也具有时间和空间的连续性,而噪声则具有随机性,利用这种差异对事件流进行噪声处理,并对得到的有效事件进行可视化,可为进一步的处理提供包含足够数量的有效事件信息同时也尽量保持事件相机低延时的特点,实验结果证明了本文可视化及降噪算法的有效性。
2 事件流的可视化及降噪算法
事件相机输出的异步事件流代表像素点亮度变化超出阈值,单个事件可以表示为eventi=(xi,yi,ti,pi),i为序号,(x,y)为事件发生的像素位置坐标,t为事件发生时间,p∈{0,1}表示事件极性(0代表亮度变暗,1代表亮度变亮)。假设事件相机零延时且无噪声干扰,则t时刻物体边缘运动所引起的事件集合可以表示为
式中:N为物体边缘在事件相机成像区域中所占的像素点数。假设噪声noise表示为式(2),j为序号,Nnoise为噪声事件点像素数,则实际事件流集合event′表示为式(3)。
实际处理中,事件相机也具有一定延时且不同边缘位置与背景亮度变化差异不一定一致,同时运动的物体边缘并非反应在事件流的绝对同一时刻。所以,一般需要一定的时间窗口进行事件累积。
2.1 基于时间空间连续性的噪声处理
根据假设物体边缘运动所引起的事件流具有时间和空间连续性,而噪声具有随机性,所以通过对某时刻的所有事件进行判断其前后时刻的相邻空间是否有相关事件发生即可判断此事件是否为噪声。考虑实际事件相机存在低延时将前后时刻扩展为时间窗口长度为Δt的(t-Δt,t+Δt)时间窗口,将事件eventi需要计算的去心邻域表示为式(4),设L为空间窗口长度,则事件eventi是否为噪声可以通过式(5)判断。
通过噪声处理将得到的噪声事件eventno去除,得到有效事件eventef进行下一步累积事件的可视化处理。
2.2 事件数量和时间阈值双限制的累积事件“帧”
将噪声处理后得到的有效事件在一定时间窗口内进行事件累积,形成事件“帧”是最简单的可视化方法之一,但是场景环境运动状态会导致单位时间得到的事件信息量不均匀,进而导致运动平缓时所形成的事件“帧”包含事件信息过少,运动剧烈时所形成的事件“帧”包含事件信息过多,均不利于进一步应用处理。通过重叠累积事件的方式可以提高平缓运动时的信息量且保证高帧率,但是剧烈运动时依然会造成事件过多,且重复累积的事件在进一步处理中产生冗余。
若为保证事件“帧”包含信息量一致采用累积等量事件的方式,可以保证在运动平缓和剧烈时均得到包含更利于进一步处理的事件信息量的事件“帧”。但是,在运动平缓时累积一帧所需时间较长,导致事件“帧”包含大量“过时”信息。
噪声处理及可视化算法如下:
1.初始化起始时间t0,累计事件数量n=0。
2.输入事件eventi,确定其去心邻域U·(eventi,L,Δt)。
3.根据式(5)判断事件点为噪声点还是有效事件点,若为噪声点返回步骤2,若为有效点记录eventefn,n+1。
4.判断ti-t0>Tth,若成立执行步骤6。
5.判断n<Nth,若成立返回步骤2。
图4 本文算法结构示意图Fig.4 Structure of proposed algorithm
3 实验与分析
为验证和分析事件流可视化及降噪效果,本文在真实事件数据集上进行实验和测试。数据集由ETH Zurich的传感器实验室利用DAVIS 240C型号的事件相机获取,采用其中城市部分环境采集数据[17]。DAVIS 240C分辨率为240×180,动态范围为120 dB,最小敏感度为11%,最小延时为12μs。
实验分别比较固定时间窗口、重叠累积、固定事件数量、时间和事件双限制4种事件“帧”形成方法,并且进行事件流降噪前后对比。如图5~图10所示。选取的场景1为运动较平缓时刻,场景2为运动较剧烈时刻。
由图5(b)~图5(d)、图7(b)~图7(d)可以看出,利用运动边缘引起的事件流的时间和空间的连续性,可以对背景处的噪声进行较好的处理,但是在物体边缘的噪声依然存在。图5(c)中对于噪声处理较好,但是由于场景1的运动较为平缓,大量有效事件也被滤除,丢失大量场景物体边缘信息。由表1、表2可以看出,运动越平缓事件去除率越高,其中文献[9]事件去除率最高,导致检测事件数量严重降低,尤其在平缓运动时损失过多物体边缘信息,本文噪声处理方法相比于文献[9]的方法,在运动起始或缓慢时可以保存更多细节边缘事件信息,相比于文献[8]的方法,噪声处理中改变的时空邻域可以获得更多的事件点,在运动越平缓时效果越明显。图6、图8展示了降噪处理后进行角点检测[18]的效果,可以看出,噪声处理可以有效降低噪声事件对角点检测的干扰,当运动平缓时本文降噪方法保留更多的事件信息,可以提升有效角点检测数量。
图9、图10中,图(a)、(b)为固定时间窗口处理方式;图(c)、(d)为文献[7]的重叠累积处理方式;图(e)、(f)为固定事件数量处理方式;图(g)、(h)为双重限制方法,XX/YY意义同上。由图9、图10对比可以看出,在平缓运动状态和剧烈运动状态下事件随时间分布不均匀,图9(a)、(b)和图10(a)、(b)按照固定时间窗口的方式累积事件会造成事件“帧”包含信息量产生差异,运动平缓时可能导致信息不足,运动剧烈时可能造成物体边缘模糊。利用重叠累积的方式,可以在保证与固定时间窗口相同事件信息量的情况下提高帧率,但是依然无法解决事件随时间分布不均,导致事件“帧”包含信息过多或过少的问题。图9(e)、(f)和图10(e)、(f)按照事件数量进行事件“帧”累积,可以保证均匀的信息量。但是,在运动十分平缓时会造成一帧输出时间过长同时包含大量“过时”事件,丢失了事件相机的低延时优势。本文方法如图9(g)、(f)和图10(g)、(h)所示,可以在运动剧烈时保证事件“帧”信息相对均匀分布,在运动平缓时按照时间输出事件“帧”,保持了事件信息的低延时特性。
图5 噪声处理效果图(场景1)Fig.5 Noise processing(Scene 1)
图6 角点检测效果图(场景1)Fig.6 Corner detection(Scene 1)
图7 噪声处理效果图(场景2)Fig.7 Noise processing(Scene 2)
图8 角点检测效果图(场景2)Fig.8 Corner detection(Scene 2)
图9 不同参数3种可视化方法对比(场景1)Fig.9 Comparison of three visualization methods with different parameters(Scene 1)
在进行噪声处理后,不同可视化方法处理得到的事件“帧”帧率以及平均包含事件数量,在噪声处理后,平均包含事件数量以及事件数量方差可以一定程度反应不论运动剧烈或平缓,事件“帧”包含信息的均匀性,如表3和表4所示。可以看出,重叠累积的方式可以有效提高帧率,但是无法改善事件随时间分布不均的问题,按照事件数量累积可以使事件“帧”的事件信息平均,但是在平缓运动的情况下帧率过低,本文方法可以有效降低事件数量方差,提高事件“帧”信息的均匀性。
图10 不同参数3种可视化方法对比(场景2)Fig.10 Comparison of three visualization methods with different parameters(Scene 2)
表1 噪声处理后事件数量统计(场景1)Table 1 Counts of the number of events after noise processing(Scene 1)
表2 噪声处理后事件数量统计(场景2)Table 2 Counts of the number of events after noise processing(Scene 2)
表4 事件“帧”帧率及事件方差统计(场景2)Table 4 Frame rate and variance of events number(Scene 2)
4 结 论
本文利用运动边缘引起的事件流具有时间和空间的连续性进行噪声处理,并利用事件数量和时间阈值双重限制的方法进行事件流可视化。本文通过对真实数据集进行实验表明:
1)基于事件流时空连续性的噪声处理方法可以降低事件噪声,时空邻域的选取在运动起始和平缓时也可以保留更多事件信息。
2)事件数量和时间阈值双限制的可视化方法可以为进一步任务提供事件“帧”,在运动平缓时可以保证事件“帧”输出的低延时特性,运动剧烈时可以平均事件“帧”包含的事件信息量。
后续工作将会针对物体边缘依然存在噪声残余的问题以及算法结构进行优化,降低运行时间。未来将进一步进行基于事件相机的检测、跟踪、定位等视觉导航任务研究。