GCN 从理论到源码分析

GCN 从理论到源码分析

GNN 简介

在 CNN 中,模型的输入数据一般都是固定宽高的数据,比如图片,这类数据在形状上是规则的,称为欧几里得结构化数‘据。而许多重要的现实世界数据集以图表或网络的形式出现:社会网络、知识图表、蛋白质相互作用网络、万维网等,这种数据是不规则的,没有固定形状,称为非欧几里得结构化数据。虽然 CNN 取得了巨大的成功,然而却不能直接把 CNN 应用到这种数据上。近年来一些研究致力于把 RNN 和 CNN 推广到非欧几里得结构化数据,出现了很多新的算法。包括谱卷积和空间卷积,其中Defferrard et al. (NIPS 2016) 基于类神经网络模型学习的自由参数Chebyshev多项式的谱域近似平滑滤波器在 MNIST 数据集上取得了很好的效果。而基于谱卷积 (spectral graph convolutions),衍生出了Kipf & Welling (ICLR 2017),不仅运算更加快速,而且在一些基准数据集上的准确率也更高。

阅读更多
论文/Spatial Temporal Graph Convolutional Networks-笔记

论文/Spatial Temporal Graph Convolutional Networks-笔记

Title

Video to Events: Recycling Video Datasets for Event Cameras

Summary

Event cameras 有 high dynamic range (HDR)、high temporal resolution 和 no motion blur 等优点,在 event data 上的算法已经取得了很好的效果。但是这些应用需要大量数据,而公开的 event data 数据集很少,这篇论文提出一种方法,可以将传统相机采集的视频数据集转换为 event data 数据集。并且在 object recognition 和 semantic segmentation 两个任务上评价了这种方法。有如下两个优点:

  1. 即使在传统摄像图像模糊或曝光过度的场景下,在生成数据训练的模型也可以利用 Event cameras 的优点,在真实事件数据上具有很好的泛化能力。
  2. 在这些转换数据训练出来的模型,可以在真实数据上进行微调,改进分类和语义分割任务的效果。在这些生成的 event data 上训练的模型的效果始终比只在 event data 上训练的模型好,这表明了 event data 包含了全部视觉信息,并且可以用 end to end 的方法来处理这些数据。

SYSTEM OVERVIEW

  1. 改论文首先把 frame 转换为 event,包括两步:frame upsampling 和 event generation。然后再转换成类似于 tensor 的表示形式。
  2. frame upsampling:
    1. 使用的方法来源于 Super SloMo: High quality estimation of multiple intermediate frames for video interpolation。
    2. 虽然使用 ESIM 可以根据 frame 生成任意 temporal resolution 的 event,但是 frame 的采样率太低,因此需要使用上采样将 frame 的采样率提升。而 Super SloMo 方法在智能手机中广泛使用,因此使用这种方法。中间生成的 frame 数量既不能太多(增加计算量),也不能太少(导致亮度信号的混叠)。这里使用 bidirectional optical flow 来计算需要生成的 frame 的数量。
  3. event generation:
    1. 使用的方法来源于 ESIM: an open event camera simulator。
    2. 对于每个像素,通过在视频帧之间进行线性插值来生成时间上的连续强度信号,然后根据强度变化是否超过某个 threshold(C) 来生成 event。由于 C 在不同的传感器上是不一样的,因此在训练集上使用随机化的 C 作为 threshold,在测试集上使用均匀采样来确定 C \(\sim \mathcal{U}\left(C_{\min }, C_{\max }\right)\)。在这个论文中 \(C_{\min }=0.05\)\(C_{\max }=0.5\)
    3. 最后把一个时间窗口内的 event data 转换成 tensor-like representation:EST。这种表示方法把 positive 和 negative event 分为两个 grid,维度为 \(H \times W \times C\),其中 \(C\) 是 temporal bins 的数量,\(C = 15\)

Experiments

进行了两个实验:Object Recognition 和 semantic segmentation。都是基于生成的 event data 来进行模型训练。这些模型可以在真实的 event data 上有很好的泛化能力;在真实数据上进行微调后的效果超过现有的其他模型;可以应用到那些 frame 模糊或者曝光不足的场景。

  1. o=Object c=Classification:使用 N-Caltech101 和 Caltech101 数据集
    1. 首先将 Caltech101 的图片数据转换为视频数据(moving a virtual camera in front of a 2D projection of the sample),然后使用 ESIM 转换为 event data。名字为 sim-NCaltech101。
    2. 模型使用在 ImageNet 上预训练好的 ResNet-34,sim-NCaltech101 作为训练集,真实的 N-Caltech101 作为测试集,准确率为 75.1%。另一个对比实验的训练集和测试集均为 N-Caltech101,准确率为 86.3%。
    3. 由于数据集的样本不平衡,从网上下载了其他数据。准确率最高为 80.7%。
    4. 在 N-Caltech101真实数据集上进行微调之后,准确率为 90.6%,超过其他所有 event-based 的方法,但是没有超过 image-based 的94.7%。
    5. 最后研究了 Frame Upsampling 对模型的提升效果。对每个图片,先用 530 Hz 的采样率记录 300 毫秒的视频,然后降采样,再使用 ESIM 上采样。对比 3 种数据所训练模型的准确率。在 downsampling factor 为 80 时,downsampled 的准确率为 61.8%,经过 ESIM 上采样的模型准确率为 68.7%。
  2. Semantic Segmentation:使用 DDD17 数据集。数据转换过程和上面类似,event data 转换为 tensor 包括两种表示方式:EST 和 6-channel representation。模型使用 UNet。很多配置都是参考 SegNet 论文里的配置,包括 label 的生成方式, 6-channel representation、使用的模型、评价指标(Acc、MIoU)、Time-Of-Window(10、50、250)。
    1. 在生成的 event 数据上的模型的 MIou 为 48.2%,在真实 event 数据上的准确率为 54.8%。
    2. 但是把这个模型在真实 event 数据上经过微调,MIoU 为 56.01%,效果超过其他所有方法。
    3. 最后在 frame-based 上训练的模型在 motion blur 或者 overand under-exposure 的场景下效果不好,而 event-based 的模型依然可以获得好的划分效果。
  3. 这种方法也有限制。如果原始视频中有 blurry frames,那么生成的 frame 也是模糊的,从而生成的 event 带有噪声。对噪声的建模可以作为 future work。

Conclusion

  1. 提出了一个框架,将现有视频数据集转换为event data 数据集,这些数据可以更好地为新的研究提供便利。
  2. 在这些生成的数据集上训练的模型也能够利用 event camera 的特点,可以很好地泛化到真实数据,即使在标准图像模糊或曝光过度的情况下也是如此。
  3. 通过对目标识别和语义分割两个相关视觉任务的实验,表明基于生成的 event 数据训练的模型,可以在真实数据上进行微调,精度超过现有的其他方法。

Notes

  • 在 event 数据集中,classification 的数据集有:(N)-MNIST 和 N-Caltech101。action recognition 的数据集有 DVS-Gesture dataset。human pose dataset 有 DAVIS Human Pose Dataset。driving dataset 有 DDD17 和 MVSEC。
  • Synthetic Events 的方法有 Pix2NVS(computes per-pixel luminance from conventional video frames),但是 timestamp 不准确。后来出现了插值法先把原来低帧率的 frame 转变为高帧率,然后再转换成 event。
论文/Graph-Based Object Classification for Neuromorphic Vision Sensing 论文解读

论文/Graph-Based Object Classification for Neuromorphic Vision Sensing 论文解读

Title

Graph-Based Object Classification for Neuromorphic Vision Sensing

Summary

NVS 可以显著提高采样率,同时显著提高能量效率和对光照变化的鲁棒性。然而 NVS 不使用帧表示图像,所以不能利用最先进的循环神经网络(CNNs)。我们提出了一个基于 NVS 的紧凑的图表示,并使用结合残差网络来做分类,这种残差 Graph CNN 保持了尖峰事件的时空一致性,同时需要较少的计算和存储。 现在所有的图像识别的数据都是来源于 CMOS APS。然而 APS 的传感对于机器学习系统来说是很麻烦的,因为它的帧速率有限,帧间冗余度高,在变化的光照下快门调整缓慢而模糊,并且需要高功率。

阅读更多