bootstrap table checkbox 事件_事件相机视觉定位

ef95829a343c89369666304912398f04.gif

因为之前实习期间写的几篇文章,偶尔还会收到大佬们的私信,问我能不能推荐实习生。现在我已经从鹅厂离职又回到学校啦,所以大家如果要找实习最好还是去论坛或者问在职的朋友推荐吧。

这两周调研了一些SNN光流估计方面的应用,其中比较有意思的一个方向是利用事件相机(Event-Based Camera) 实现位姿估计。关于事件相机这个领域,UZH-RPG机器人感知组的Davide Scaramuzza这两年做了很多相关的工作。这里推荐他们的资源页面,里面有包括相关文章,代码,数据集以及硬件资料等。

uzh-rpg/event-based_vision_resources​github.com
a516e2f898170337a36a133a9ca17ee2.png

事件相机角速度回归

这篇UZH RPG发在ICRA 2020上的文章叫做Event-Based Angular Velocity Regression with Spiking Networks:

Event-Based Angular Velocity Regression with Spiking Networks​ieeexplore.ieee.org

因为事件相机输出的是神经形态的数据,因此可以不用预处理地对脉冲神经网络进行训练。他们利用真实全景图片生成的数据集对角速度进行估计。

主要贡献:

  • 引入脉冲神经网络连续时间回归问题数据集
  • 新的卷积SNN架构用于数值回归
  • State-of-the-art ANN网络事件的视觉问题

目前瓶颈:

  • 反向传播不能直接应用在SNN -> 脉冲不可微
  • 几乎所有已报道工作为分类问题,回归(预测连续时间数值)工作很少

实现方法:

  • 神经元模型:脉冲响应模型 Spiking Response Model - SRM
  • 数据形式:通过事件元组(x, y, t, p) 表示像素(x, y) 在 t 时刻收到了极性为 p 的触发。P 为正表示该像素光强变亮,p为负表示该点处变暗
  • 神经网络结构:通过构建nl层前馈神经网络,W为权重矩阵,Sin为输入层,具体公式如下图所示:

4af8dd3fc1f49b00296c86ef8e04808d.png

6af922ffed83bb88aa6bf294e98dc74f.png
尖峰响应和不应期

其中(2)式表示SRM0型神经元模型,在脉冲响应之后的时间内两个输入尖峰可以进行交互

网络架构:

本文采用卷积脉冲神经网络,其中包括五层卷积层,一个池化层和全连接层,超参数如下表所示

2433bea78bd397e9579f5be88c1176f0.png
脉冲神经网络参数

其中,时间参数即公式5、6中的ts,tr,决定了响应和耐火核的衰减率。时间参数随深度逐渐增加,以说明事件相机的输入到输出变化

池化层选用全局均值脉冲池化(global average spike pooling),与CNN中的均值池化方法类似,在最后一个卷积层之后引入。

网络通过池化层之后输出的角速度为:

9e10e09feb27cd2f9cb4d796ebe09d57.png

其中,g_i为合并空间位置(x, y)之后上一层第i个通道的空间峰值序列

综合数据集生成:

本文没有利用真实DVS相机拍摄的图片进行实验,而是利用事件相机模拟器ESIM(依然是UZH-RPG的成果),生成数据集并将相应参数匹配DAVIS240C,对比度阈值为正态分布。

原始图片选择的是SUN360数据集(10^4全景图片)中的一部分(train set: 9000, test set: 500),模拟500ms时间窗的序列,构建了总时长约为1.4h的数据集。并将图像随机在RPY坐标系内绕三轴旋转。

H. Rebecq, D. Gehrig, and D. Scaramuzza, “ESIM: an open event camera simulator,” in Conf. on Robotics Learning (CoRL), 2018

损失函数定义为预测角速度和真实角速度欧式距离的时间积分:

7dc9e88f9a5982d706fe1f301c557c85.png

fcaffed8bca9eb83656fe446d534471e.png

需要注意的是,这种loss func的定义与van Rossum distance相关。有一个特点就是经过需要预置一段时间(T0~T1) 之后才能计算loss function,这将会导致时间相关事件数据集的最开始一部分偏差较大,这一点在之后的图中也有呈现。

训练步骤:

随机水平和垂直翻转 & 时间倒转 -> 避免过拟合

损失函数梯度通过Pytorch中 SLAYER实现

步长1ms,50ms之后评估loss function

分辨率:240×180

迭代次数:240000

批大小:16

优化方法:ADAM

学习率:0.0001

时间参数:ts 和 tr可能不理想 -> 可以被学习优化

实验结果:

50356c7cbb1eef32bead56e6ca619a60.png
误差与其他网络相比

RPY(RTP)偏航轴坐标系中,三轴的角速度真实值和预测值如下图所示。

5d7ce5024a2386fc85d2cdc7b4eac06d.png
角速度回归结果曲线,可以看到由于loss function需要一定预置时间,40ms之前的数据偏差较大

总体而言,除了初始的预置时间引起的误差较大以外,还存在长时间后依然难以缩小误差的情况。三周误差大小呈现Roll > Pan(yaw) > tilt(pitch) 的顺序。其中由于Roll的回归预测会面临图像边缘像素会频繁触发事件的影响,比剩下两轴的误差大约高了20%。


这篇文献笔记其实也是这段时间research的一个缩影,不仅仅是UZH-RPG组,事件相机以及光流估计的工作也非常多,当下很重要的一个任务还是找到未来工作的方向吧。现在回到学校里以后尤其想做一些hard-core的研究,再加上组里对于SNN研究有很深厚的经验,觉得用SNN做事件相机相关的视觉的工作还是比较好的方向。最近正好大组里新买了一台DVS相机,可以很快着手实验。

希望有从事相关领域的dalao可以多多交流啊,之后我也会定期把自己读文章的一些思考放上来,当然不会涉及任何未发表的&正在做的工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值