EV-FlowNet: Self-Supervised Optical Flow Estimation for Event-based Cameras论文分析

EV-FlowNet: Self-Supervised Optical Flow Estimation for Event-based Cameras论文分析

related work之前的部分就不写了。

方法(Method):

A. Event事件的代表

目的:

  1. 让event数据更像frame-flow的数据,方便充分利用现有网络(image-like input)
    1.1 拥有相对少的输入通道数(channel)
    1.2 在相邻像素点间具有空间相关行
  2. 总结好event stream 中具有的必要信息

方法:
将输入规范化为一个四通道的量(图):
前两个通道记录在每个像素点上出现的正/负event的量
后两个通道记录在像素点上最近的正/负event的时间戳

这样,通过图像的梯度就可以明显的得到光流。这种方法抛弃了除最近发生事件的时间戳以外的所有时间戳,这方便了网络的预测。

缺点:
拥有稠密事件或强运动的区域的所有像素点都将被最近的event的记录(timestamp覆写)覆盖,而且时间戳的值会很小。

解决方法:
通过时间窗口( [t_start^((i) ),t_end^((i) ) ] )的大小的改变来规范化时间戳图像的强度,使最后两个通道的最大值为1。这使得时间戳的大小和事件的“大小”一致,即:
速度快的event有小的时间窗,速度慢的event有大的时间窗

B. 自监督损失函数

存在问题:
少量的标记数据集

解决方法:自监督
在训练时,向网络提供事件时间戳图像和在time window发生前后的一对灰度图:
事件时间戳图像被放入网络中,来预测像素流(光流)
灰度图用来预测预测流的损失
损失函数包括photometric loss 和smoothness loss
Photometric loss:
用双线性取样的方法扭曲第二张灰度图到第一张灰度图,用Photometric loss最小化两张图的强度区别:
l_photometric (u,v;I_t,I_(t+1) )=∑_(x,y)▒ρ(I_t (x,y)-I_(t+1) (x+u(x,y),y+v(x,y)))
其中,ρ为Charbonnier损失方程(在图像超分辨率里有用到,具体方程没查到),用来抑制杂点。
Smoothness loss:
规范化输出流,最小化在相邻像素点间的差异
l_smoothness (u,v)=∑_(x,y)▒∑_(i,j∈N(x,y))▒〖ρ(u(x,y)-u(i,j))+ρ(v(x,y)-v(i,j))〗
这里的 ρ为Charbonnier损失方程吗?后面的括号是信号与系统中类似时间的标记还是做乘法?
这里,N(x,y)为(x,y)的邻域。
总的损失方程为:
L_total=l_photometric+λl_smoothness
C. 网络结构
Encode:
四层卷积层,每次卷积后的通道数翻倍。
两层残差层
Decode:
四层上取样卷积层,unsampling通过对最近的相邻像素进行重新取样获得。在每一个上插值卷积层,有一个对上一个跳跃连接,激励函数用tanh。

光流数据集:
使用MVSEC提供的标记数据集,数据集提供了相机的位姿(旋转用旋转向量,平移用相机坐标?)和深度图信息,用来计算相机的速度和角速度,其中角速度使用反对称矩阵的形式来表示。
用这些速度估计出运动场,从而给出原始标记数据未失真的像素坐标位置。(用李群和李代数表示)

训练结论:
预测的光流总出现在标记数据附近,在没有event的位置输出的光流为0。在high texture的位置效果较好,而low texture的位置则较为紊乱。
在EV-FlowNet (counts only) 上的效果最差。这里只有图的前两个通道,即对event量的统计,没有时间戳的信息;EV-FlowNet (timestamps only)的效果比大部分的效果要好,由于时间戳给出了相邻像素间的关联性信息,以及速度信息。然而,只有时间戳的网络在噪音较大或快速移动的情况下效果不好,由于旧的时间戳会被新时间戳快速替代。综合了上面两种表示的网络的效果会更好,因为有较少event的像素点是噪声的可能性较大,而有较多event的像素点往往携带了重要信息。
另外,较大的网络(4层)的效果没有较小的网络(2层)的好,这可能是较大的网络出现了过拟合导致的,另外增大数据量对较大的网络和较小的网络的效果都没有明显的改善。

你可能感兴趣的:(event,camera)