本文主要提出了一个适用于DVS数据的语义分割网络。
背景
DVS属于一种比较有前途的传感器,可以捕捉环境的强度变化,DVS将数据强度以事件流的形式输出,事件表示为在特定时刻特定像素处的强度变化。
DVS的优点如下:
- 高时间分辨率,可以在微秒捕获多个事件;
- 高动态范围,可以在弱光或黑暗环境下捕获信息
- 低功耗和带宽要求
在图像识别领域,DVS的使用难点如下:
- 对于CNN模型来说,缺乏合适的DVS事件流表示
- 缺少标记的训练数据集
本文的创新点如下:
- 提出了一个Xception-based CNN模型,可以直接将DVS数据作为输入,并针对DDD17数据集提出了语义分割标签的制作方法
- 对DVS表示方法进行了比较(即将DVS数据编码为网络可用的数据)
1.事件表征
传统RGB图像为三维的(高、宽和通道数),事件相机输出事件流,事件表征为强度信号对数的政府变化(超过阈值):
每个事件由四个不同的部件定义:变化像素的两个坐标(xi,yi),极性(pi,正极性,p=1; 负极性,p=-1)和时间戳(ti)。
事件是异步的,并且具有特定编码,不能为当今视觉识别任务中广泛使用的CNN等提供良好的输入。
基于事件位置的密集编码
-
方法1
\delta函数表示克罗内克函数,如果两个输入量相等,输出为1,否则为0;W为时间窗(间隔),汇总事件信息;N为W内发生的事件数;加号里面的函数表示事件ei的坐标(xi,yi)是否与(x,y)匹配,极性pi是否与p相匹配。该表示有两个通道(正负极性)。 -
方法2
仅使用一个通道编码事件的发生,使用存储在每个像素中发生的最后一个事件的信息 -
方法3
对于位置(xi,yi)的信息,使用时间点ti的大小为T的整数区间内的所有事件进行存储
上述编码方法使用仅使用时间步ti观察每个事件属于哪个时间间隔。
基于时间信息的密集编码
-
time surfaces
两通道(每个极性一个通道),对于每个像素,仅存储时间间隔W内最近的时间步信息 -
增强的time surfaces
结合W内发生的所有的事件计算每个像素的信息 -
Zhu
两个通道在每个像素处分别存储在时间间隔内发生在该位置上最近的正或负的标准化时间戳
本文提出的编码方法(基于时间信息的)
结合了目前展示的优秀想法:使用事件直方图2通道编码事件的空间分布;集成间隔期内发生的所有时间戳的信息。
本文方法将事件表征为6通道的图像,前两个通道表示正负事件的直方图
剩下的四个通道用于存储间隔期间发生的所有事件时间戳相关的信息,看做存储他们如何沿T分布的方法;建议存储在每个像素处发生的事件的标准化时间戳的平均值(M)和标准差(S),对正负事件分别计算:
2.语义分割
使用Xception作为编码器,使用了一个轻量级解码器,将训练量集中在编码器繁重的计算方面。并且使用了一些tricks:使用跳跃连接优化深部结构,避免梯度消失;使用了辅助的损失函数,提升学习过程的收敛速度。
损失函数方面,使用了softmax交叉熵损失函数,计算为每个像素的损失函数的综合。
3.Ev-Seg数据集
该算法包括了生成的语义分段标签,被用作数据集的发部分自己的ground truth。
生成标签
对于DVS数据来说,人眼难以帮助手工标注语义标签。本文使用对应的灰度图像生成一组近似的训练标签,步骤如下:
- 首先在城市环境数据集Cityscapes上进行语义分割,使用的是图像的灰度版本,使用的结构与本文的结构相同
- 使用前一步训练的灰度模型,对自身数据集所选序列的所有灰度图像进行语义分割
- 裁剪所有图像的底部进行后处理(DDD17图像底部始终包含汽车的仪表盘,只在生成的标签中引入噪音)
数据集的选择
DDD17由40个不同驱动装置的序列组成,这些序列的记录场景不同,光照条件也不同,对于灰度图像来说,适用的数据为城市景观数据,且需要选择白天记录且没有过度暴露的序列,针对上述要求选择DDD17的子集。
测试指标
- 准确率
N表示像素数量,yi为groud-truth,yi^为预测图像 - MIoU
yi,c表示像素i是否属于特定的类别c。
文章的源码发布在github上:https://github.com/Shathe/Ev-SegNet,具体细节可参考源码