【事件相机数据处理整理】
部分参考的博客:https://blog.csdn.net/tfb760/article/details/105970156
(仅用于学习)
对事件流数据进行处理
根据事件相机工作原理,在相应的像素点的亮度变化达到某一阈值时,事件相机会触发一个事件(event),这样的事件是离散的异步的点。对这种异步的数据进行滤波可以采用离散傅里叶变化(DFT)[1]法或者改进传统的就按及滤波方法,采用不断更新一个内部状态实现在数据流上的直接进行卷积滤波。
事件流噪声分类与产生的原因
事件相机的噪声来源可能来源于数字信号传输时的脉冲噪声以及光电二极管所引起的高斯噪声等[3]。
1、背景噪声
在背景中并没有发生事件,却产生了事件。原因:背景噪声与温度相关,温度越高数量越多,与场景中亮度无关。传感器硬件重感光器件的光子不稳定,造成的事件的不稳定,这个无法避免。
2、感光阈值C造成的噪声
根据事件相机的原理,当亮度达到某一阈值C后,会产生事件,但是这个阈值C不是不变的,跟当前环境的亮度有关系。实际中的阈值一般以理论阈值C为期望的正态分布,标准差δ一般为2%~4%。
3、热点噪声
和传统相机一样,事件相机也会产生热点噪声。产生的原因可能是像素损坏,或充放电装置存在问题导致产生高频事件。背景噪声是没有运动物体经过时产生的噪声,而热点噪声是在整个时间轴上一直出现的事件。(我手头的事件相机可能就存在这种噪声,如下图)。这种噪声会一直出现,消除不掉,但是好在是仅仅单个像素点,可以通过滤波滤除。
背景噪声与热点噪声示意图[5]:
噪声模型
常见的噪声模型用概率形式表示:例如一个事件观测到时,认为他是一个高斯分布和均匀分布的叠加,高斯分布的期望为真实值,而均匀分布代表没有事件时产生噪声的概率。
去噪声的方法:存在许多去噪声的方法,但核心是围绕保证快速实时性,因为数据到来很快且多,如果不是这种高速算法,那么就没有什么意义了。较为可采用的去噪方法有:1.窗口抑制,即当一个事件发生后周围一个窗口(空间窗口,多为一圈即8个像素)内短时间内的事件认为是噪声;2.倔强时间法,refractory period,即认为当一个事件发生后,这个像素在短时间内产生的接下来的事件都是噪声,这种方式可以避免高速运动时同一个位置产生数据过于密集。
去噪方法1效果(左原来的,右滤波后):
去噪方法2效果(左原来的,右滤波后):
可视化方法
由于单个事件没有意义。根据事件相机的原理,像素感受的亮度变化一般是由场景中运动物体边缘与背景的差异形成的,具有空间稀疏性,需要可视化处理。
1、利用固定时间窗口。以某一固定时间进行累计得到事件帧。但是不能改善状态差异导致的帧间的信息量差异。
2、利用事件数量。以达到某一数量的事件数为阈值,输出一个事件帧。
3、利用事件信息数量及事件阈值双限制的方式进行累计得到事件帧。这样产生的事件帧既可以保证高时间分辨率又可以使事件中具有足够的信息进一步处理。
4、基于生命周期的方法。根据图像平面上事件的速度进行编译的,这种算法可以在任何时刻构建清晰的边缘图像。这种方法是来扩大基于事件相机的数据流的寿命和每个事件的速度,同时过滤噪声[4]。利用新事件的速度信息,以负速度方向重置相邻像素的寿命,有效地抑制加速梯度引起的运动模糊。
参考文献:
[1]. Quentin Sabatier, et al. Asynchronous Event-Based Fourier Analysis. 2017.
[2]. Cedric Scheerlinck, et al. Aysnchronous Spacial Image Convolutions for Event Cameras. 2019.
[3]. 闫昌达等,基于事件相机的可视化及降噪算法研究. 2015
[4]. Elias Mueggler, et al. Lifetime Estimation of Events from Dynamic Vision Sensors. 2014.
[5]. Yang Feng. Event Density Based Denoising Method for Dynamic Vision Sensor.2020.