DVS Domain Adaption Note

Unsupervised Domain Adaption Algorithms

  • GRL: Gradient Reversal Layer。 目标是让两个domain的distribution在feature extractor眼中无法区分(即match两个domain使其分布趋同)。
  • MMD:Minimize the Maximum Mean Discrepancy between the target and source domain。最小化两个域之间的最大平均差异。作者提出了一个metric来衡量域间差异,通过加loss来抑制这个差异,最终达到让网络最终层输出与域无关的稳定feature。
  • AFN:比较玄学。他们说之所以在target domain上表现不好是因为目标向量的norm相比源域的更小。所以它们就逐渐提高深度embedding的L2 norms来解决这个问题。
  • Rotation:作者添加了一个额外的自监督任务,即预测图片的绝对旋转角度。因为它同时接受源域和目标域的输入,所以理论上会学的更倾向于用共通的参数。甚至还有人扩展了这个方法,让网络直接去预测paired多模态图片的相对旋转角度。
  • Entropy:Grandvalet提出了一种表征目标域不确定性的方法,通过加一个正则项来帮助减缓domain shift的影响。

N-ROD: a Neuromorphic Dataset for Synthetic-to-Real Domain Adaptation

  • CVPRW, 2021, Site

  • 核心思想就是用已有的上面提到的各种UDA方法来减轻Synthetic和Real Event Data的domain shift。

  • Pipeline也非常直接,就是给RGB和Event frame分别整一个Feature Extractor,然后让Synthetic的rgb和events feature concat到一起,real的concat到一起,送入一个通用的Domain Adaptation Block(DABlock)作为一个branch,另一个branch做预测。

    image-20230422182441632

  • 训练的时候他们用了RGB和Event Frames,但测试的时候只用Event Frames。

  • 值得一提的是,既然能用这种架构,说明上面那些UDA方法都可以被归纳为一个auxiliary head来进行plug-and-play。

  • 另外,他们提供了一个数据集,包含有相同目标的real和syn版本。

Bridging the Gap Between Events and Frames Through Unsupervised Domain Adaptation

  • IEEE ROBOTICS AND AUTOMATION LETTERS, 2022

  • 感性的认知上,这篇文章主要的手法是循环式Loss,类似cycle gan;主要的逻辑是style transfer。

  • 核心优点有两个:

    1. 不使用视频生成events,而是从单个image直接生成。
    2. 不需要paired data。
  • 缺点:

    1. 高度依赖所参考的events frame的参数,如dvs相机的ego motion speed,events frame的accumulation方法和参数(如时间)
    2. 有前提假设:环境亮度恒定,且events frame的采样时间短。
  • 不被拒稿的创新点:

    1. 首先是整体流程相对新颖,他们通过先生成optical flow,再结合frame图像的gradient和time difference生成events的。

      image-20230419112731101

    2. 把events frame和rgb image之间的domain adaption转化成了一个style transfer问题。events frame只需要贡献style feature就好,而rgb image则基于这个style,它自己的feature map,以及它自己的gradient输出相应的events frame。最后的loss计算也非常有style transfer的味道:

      • 计算原始rgb image和最终生成的events frame的feature map二者对应的content feature的Loss。
      • 计算原始event frame和最终生成的events frame的feature map二者对应的style feature的Loss。
    3. 通过上述手段,相当于作者强制让event feature extractor和rgb frame feature extractor输出的content feature达成一致,从而做到让RGB frame干的活(task,这里是目标检测)同样的events frame出来的feature也能干。

    4. 虽然作者说他的

    5. 作者大量使用了Loss,尤其是Adversarial Loss来enforce每个环节生成的内容都足够符合目标域的distribution。

      以下是主Loss:

      1. 原始rgb image的feature map做输入,在task(这里是object Detection)上面的loss。
      2. 最终生成的events frame的feature map做输入,在task上面的loss。

      循环(Cycle)Loss:

      1. Content部分:让生成的events frame的feature map与最初rgb image的feature map做L1 Loss
      2. Style部分:让生成的events frame的style feature map和最初events frame的feature map做L1 Loss

      对抗Loss:

      1. 首先是最开始rgb image和event frame生成的两个feature map,训练一个PatchGAN Discriminator来尽可能区分二者,同时加一个generator loss到主loss。

        image-20230419135409950

      2. 对生成的events frame和原始的events frame也做一个GAN,尽可能让Discriminator无法区分出来生成的和真实的。

        image-20230419135721458

    6. 作者不但在深度学习pipeline上做的很好,还充分利用了events 生成的物理知识,通过结合image gradient、optical flow、event trigger mechanism等,在整体流程中把物理prior完美融入。

  • 核心idea是把event features拆分成两部分,一部分是内容,另一部分是运动特征。通过这种方式,他们可以很高效的让events和images的潜在空间(latent space)进行匹配。他们使用了一个生成式事件模型。

  • 虽然说的是直接生成events,实际上生成的是accumulated events frame。

  • 注意他的\(R_{ref}\)并非一个深度学习block,而是一个使用了原图gradient和pseudo flow的内积操作!

  • 同样值得一提的是,他们在pseudo flow generation部分并没有加额外的supervision!之所以即使这样还能生成挺好的pseudo flow,是因为如果想用image gradient和这里生成的东西内积后得到events,根据公式这个feature map必须是flow:

    image-20230419163354478

  • 虽然左下角那个content feature没用到,但同样的events feature extractor,再最右边生成的feature map则被用来做了content reference。

    image-20230419115118001

  • 作者怎么控制的events feature extractor出来的两个feature map分别代表content和style?

    • 通过他定义的各种GAN Loss和Cycle Loss教这两个feature map做人。
  • 他们做的augmentation也挺有趣,基本是这样的:先正常预测到pseudo flow为止,然后适当随机给预测的全局flow加一个bias,预测出events后再次生成pseudo flow,进行cycle loss。目的是确保events frame feature extractor输出的两个feature map分别表征内容和style(motion)。

    image-20230419165600573

Object Tracking by Jointly Exploiting Frame and Event Domain

  • ICCV, 2021

  • 目标问题:Object Tracking。

  • Modality:DVS+RGB。本文研究的不是domain shift而是domain fusion,或者说,如何用DVS信息来提高RGB表现。

  • Pipeline理解:

    • 首先,每个rgb frame会对应好几个events frame。
    • events frame们先每个单独进行feature extraction,self-attention,然后结果被element-wise add到一起。
    • rgb frame则直接过一系列的feature extraction blocks,直接得到feature map。
    • 这两者的feature map被送到CDMS block中做cross-attention互相融合,然后过adaptive weighting module被分别赋予不同的权重,最后加到一起得到一个统一的feature map。
    • 上述过程中,无论是rgb还是events frame,都有深浅两个branch,浅的那个就是early exit。最终会得到两个feature map,一个是\(K_l\),一个是\(K_h\)
    • 后面其实就没什么好说的了,就是单纯把这两个feature map放到classifier和Bbox regressor里面就好了。

    image-20230419174703447

    image-20230419174720669

Multi-domain collaborative feature representation for robust visual object tracking

  • The Visual Computer, 2021
  • 目标问题:Object Tracking
  • Pipeline:
    • 整体思路是比较典中典的N路并行多模态运算啦。
      1. 第一路:一个SNN feature extractor,输入是raw events(根据shape推算,其实应该是time voxel)。
      2. 第二路:accumulate events into event count frames, 然后和RGB图concat。之后过一个feature extractor。
      3. 第三路:RGB-only feature extractor。
    • 最后把三路结果concat起来,过一些block,得到tracking result。
  • 有点意思的是,他们的SNN branch是直接用的pretrain model然后给freeze起来用了。模型来自于“Eventbased angular velocity regression with spiking networks”。