王 梅
(遂宁市中心医院教学培训部,四川 遂宁 629000)
随着新一代人工智能的发展,类脑研究和神经形态计算逐渐引起研究者们的广泛关注。神经形态研究人员模拟生物视网膜的工作原理,开发出硅视网膜器件[1],即事件相机(Event Cameras),例如动态视觉传感器(Dynamic Vision Sensor, DVS)[2]、异步时间图像传感器(Asynchronous Time-based Image Sensor, ATIS)[3]、动态活跃像素视觉传感器(Dynamic and Active-pixel Vision Sensor, DAVIS)[4]等。对于以固定帧率采集帧图像信息的传统视觉传感器,当其在捕捉高速运动的物体时,会丢失大量重要信息,同时无法避免地记录到一些无用背景信息,造成图像欠采样和信息冗余等问题。不同于传统的视觉传感器,事件相机不输出帧图像信息,而是将外界视觉信息编码为时空脉冲事件流,具有低功耗、低信息冗余以及高动态范围等优点。由于事件相机与传统视觉传感器存在本质的区别,传统计算机视觉算法无法直接处理事件相机输出的数据,因此迫切需要研究和开发新的神经形态视觉算法。
光流估计是计算机视觉中的基本任务,它广泛应用于目标追踪和运动轨迹估计等场景。本文主要研究基于局部平面拟合的神经形态视觉光流估计算法,充分发挥事件相机在高速、高动态环境下的视觉感知优势来进行光流估计,为探索计算机视觉和机器人等应用领域提供一条可行之路。
目前,国际上已经有一些针对神经形态传感器输出的事件流数据进行光流估计的算法研究。早在2008年,Delbruck[5]提出了一种时空重合检测定向边缘的光流估计算法。2012年,Benosman等人[6]将基于帧的Lucas-Kanade光流算法应用到事件相机中。2013年,Orchard等人[7]使用脉冲神经网络进行光流估计。2014年,Benosman等人[8]又提出了一种运用最小二乘法进行局部平面拟合进行光流估计的方法。同年,Barranco等人[9]通过计算事件流的轮廓宽度与时间间隔的商得到光流。随后,他们又提出了一种基于相位的高频纹理区域识别方法估计光流[10]。2015年,Mueggler等人[11]采用基于事件的平面拟合光流算法估计事件的生命周期。2016年,Rueckauer等人[12]比较了几种光流估计算法及其变体,提供了一个基于事件的光流数据集。同年,Bardow等人[13]提出了一种基于帧的变分光流估计算法,可同时估计光流、梯度和光强。2018年,Zhu等人[14]提出了一个基于卷积神经网络的自监督光流估计算法,通过最小化同步帧的光强损失训练模型。随后,Zhu等人[15]又提出了一种无监督方法学习运动信息,该方法训练了2个神经网络,一个预测光流,另一个预测自运动和深度。同年,Aung等人[16]将基于局部平面拟合的光流估计算法在FPGA上实现。Liu等人[17]提出了一种事件驱动的自适应块匹配光流估计算法。2019年,Nagata等人[18]利用延伸的焦点技术对光流估计进行规范化。Paredes-Valles等人[19]采用无监督的脉冲神经网络架构进行光流估计,该模型能够用于特征提取和运动感知。此外,Almatrafi等人[20]专门为DAVIS相机设计了一种光流估计方法,该方法同时考虑了图像帧的高空间保真度和DVS事件的高时间分辨率。2020年,Pan等人[21]考虑了视觉环境中的图像模糊等特殊情况,提出了一种基于神经形态视觉传感器的光流估计方法。
目前,对神经形态视觉传感器所输出的事件流进行光流估计的算法仍然比较少,并且缺乏公开的数据集进行定量分析。对于使用深度学习进行光流估计的方法,需要大量数据集进行模型的训练与测试,此时估计的光流为稠密光流,而本文利用局部光流一致的特性,运用平面拟合算法对事件流进行光流估计,这种方法属于一种稀疏光流的估计方法,更适用于实时的光流估计预测。
事件相机将外界视觉信息动态地编码为时空脉冲事件流,每个事件采用地址事件表示(Address Event Representation, AER)进行表达,即一个四元组e=(x,y,t,p),其中,(x,y)表示事件的像素地址,t表示事件的时间戳,p表示事件的极性,即光强增加(p=1)或减小(p=0)。图1为事件相机产生事件的原理示意图。从图中可以看出,当像素点的对数光强变化量超过预定设置的阈值时将会触发一个事件。
图1 事件相机产生事件的原理示意图
事件相机输出的事件流在三维时空域内可视化为一个曲面,即活跃事件曲面。该曲面由二维像素坐标(x,y)与一维时间戳t构成。对于每个传入事件,动态生成或者更新曲面上的一个点,使曲面上每个像素位置对应的时间值等于该位置上最近事件的时间戳。图2展示了某个事件邻域内的局部活跃事件曲面。该曲面可以形式化地用一个映射来表达,即Σe:R2→R,Σe(x,y)=t。对函数Σe(x,y)计算一阶偏导数有:
(1)
图2 局部活跃事件曲面的可视化图示[6]
由于事件相机所产生的事件流时间是不断递增的,因此Σe是一个单调递增的函数,它在任意点处的梯度不存在值为0的情况。根据反函数理论,存在:
(2)
(3)
显然,Σe(x,y)的偏导数描述了时间相对于空间的变化率和方向,而偏导数的倒数描述了空间相对于时间的变化率和方向。vx、vy分别表示像素点沿着x和y方向的移动速度,即光流。
上述推导的前提是假设事件邻域内所有事件的光流基本一致,该邻域以当前传入事件为中心且时空窗口大小为l×l×Δt的邻域,l表示以当前事件像素坐标为中心的邻域边长,Δt表示当前事件邻域的时间窗。利用该假设对传入事件及其邻域内事件拟合一个局部平面,通过求解平面的梯度即可求出光流。
2.2.1 最小二乘法
利用传统最小二乘法进行平面拟合时,通常将误差归因到一个方向上。本文假设误差存在于t轴上,可以将需要拟合的平面通过ax+by+c=t表示,其矩阵形式可以表示为Ax=b。其中,
(4)
其中,n表示邻域内所有事件的总数。为了选取最优拟合参数a、b、c,使传入事件及其邻域内的所有事件都尽量满足该方程,只需要求解使得‖Ax-b‖最小的参数。可以根据最小二乘准测求得拟合参数,可以采用向量表示如下:
x=(ATA)-1ATb
(5)
最后,计算得到的光流速度大小为:
(6)
2.2.2 特征值法
由于最小二乘法仅将误差归因在一个方向上,实际中每个方向上的误差都存在,因此采用特征值法进行平面拟合可以有效解决该问题。假设该拟合平面通过方程ax+by+ct=d表示,(a,b,c)表示拟合平面的单位法向量,且满足a2+b2+c2=1,参数d表示该拟合平面到坐标原点的距离。邻域内任意事件到该拟合平面的距离为di=|axi+byi+cti-d|。为了得到最优拟合平面,求解:
(7)
在约束条件a2+b2+c2=1下的极小值,可以采用拉格朗日乘数法来估计该拟合平面的参数估计值。首先,构造所需的拉格朗日函数:
(8)
然后,分别对参数a、b、c、d求偏导数并使其为0。经过整理后,参数可通过|A-λminI|=0求解,其中矩阵A是一个3×3的实对称矩阵:
(9)
(10)
其中,n表示邻域内包含所有事件的总数。矩阵A有3个实数特征值,其中最小的一个特征值λmin所对应的特征向量即为所求的拟合参数a、b、c。另外,参数d不包含任何有关梯度的信息,对光流估计没有影响,因此忽略该参数。最后,计算得到的光流速度大小为:
(11)
上述方法假设同一像素点上的事件流的时间是严格递增的,因而局部平面的偏导数不可能为0。然而,实际上这些偏导数很小,有时候甚至为0。所以,当事件的像素点沿着x轴方向移动时,y轴方向的梯度消失;同理,当事件的像素点沿着y轴方向移动时,x轴方向的梯度消失。当像素点沿着近似x轴或y轴方向移动时,梯度变得很小,若取该梯度的倒数,得到的光流就会变得非常大。因此,只有当像素点同时沿着远离x轴和y轴方向移动时,计算得出的光流向量才较为正确。
为了解决事件像素点沿某个方向移动后梯度消失的问题,可以利用梯度归一化方法使得该算法更加稳健。光流由平面的梯度g=(-a/c,-b/c)确定,该梯度描述的是时间相对于空间的变化,大小与单位不匹配。因此可以对梯度进行归一化操作。最后,光流向量表示为:
(12)
传统最小二乘法与特征值法考虑的是整体误差的最小化,如果数据样本包含较多的噪声,则算法容易失效,需要配合去噪滤波预处理才能提高算法的有效性。随机抽样一致算法(Random Sample Consensus, RANSAC)采用迭代的方式从一组包含噪声的数据中估计模型参数[22]。RANSAC算法的基本假设是数据样本中包含可被模型描述的正确数据,同时包含无法适应模型的异常数据,即噪声。异常数据可能由于错误测量、错误假设或错误计算等产生。该算法通过不断迭代,从数据样本中随机选取一定数量的样本进行估计,最终找到拟合正确数据最多并且误差最小的模型。该算法每次迭代时都适当丢弃一些异常数据,因此对噪声更具鲁棒性。
基于特征值法和RANSAC的局部平面拟合光流估计算法步骤如下:1)从传入事件的邻域中随机选取4个事件作为初始内点集合,并采用特征值法计算邻域内局部平面拟合的参数,从而得到初始的模型;2)将邻域中剩余的其他事件代入到初始模型中计算拟合的误差,若误差小于预先设定的阈值,则将事件添加到内点的集合中,并记下小于阈值的内点数量;3)重复迭代以上2个步骤,更新内点数量,内点数量最多的那次估计模型即为平面拟合的最优模型。
为了能够有效评价光流估计算法的性能和准确度,通常采用平均端点误差(Average Endpoint Error, AEE)和平均角度误差(Average Angular Error, AAE)作为光流估计结果的评价指标[23]。平均端点误差计算的是估计的光流向量与真实的光流向量之间末端点位置偏差的平均值,它可以分为绝对平均端点误差(Absolute Average Endpoint Error, AAEE)和相对平均端点误差(Relative Average Endpoint Error, RAEE)。其中,绝对平均端点误差的计算公式如下所示:
(13)
相对平均端点误差的计算公式如下所示:
(14)
类似地,平均角度误差计算的是估计的光流向量与真实的光流向量之间夹角的平均值,计算公式如下所示:
(15)
在上述的公式中,vi=(vi,x,vi,y)表示第i个估计光流向量,ui=(ui,x,ui,y)表示第i个对应真实光流向量。光流向量距离dist采用欧氏距离进行计算,也可以选取其他距离计算公式。为了避免出现除0的计算错误,上述所有误差计算公式均应用于速度不为0的光流向量。
本文实验数据来自文献[7]。该数据采用ATIS传感器进行录制,记录一个黑色吸管在白色背景前旋转。该吸管的旋转轴位于平面中心并垂直于成像平面。
为了更好地评价本文所提出的应用特征值法进行局部平面拟合算法估计光流的有效性,本次实验分别采用最小二乘法和特征值法进行局部平面拟合来估计光流,并对比这2种不同方法的光流估计效果。实验中,传入事件的空间邻域参数l为3,时间窗口大小Δt为1 ms。表1展示了基于不同局部平面拟合算法的光流估计评价结果,该结果为多次实验的平均误差。从实验结果可以看出,基于特征值法的局部平面拟合算法进行光流估计相比最小二乘法的光流估计效果更好。
表1 基于不同平面拟合算法的光流估计评价结果
本文还引入随机抽样一致(RANSAC)算法来进一步提高局部平面拟合估计光流算法的稳健性,为了有效评估引入RANSAC算法后光流估计效果的稳健性,本次实验将在没有任何降噪预处理的情况下进行,实验结果如表2所示。从实验结果可以看出,引入RANSAC算法后基于2种不同平面拟合算法的光流估计误差明显减少,说明随机抽样一致算法能够通过迭代的方式有效提升光流估计算法的稳健性,因而对噪声具有一定的鲁棒性。
表2 引入随机抽样一致算法后的光流估计评价结果
图3 估计光流和真实光流间的对比效果图
为了更直观地观察光流估计的效果,图3展示了不同局部平面拟合算法以及引入随机抽样一致算法的特征值法进行局部平面拟合,在上述测试数据下估计光流和真实光流之间的对比效果图。该图为某一时间段内对事件进行整合构成的帧图像,不同颜色代表不同的光流方向,颜色深浅代表光流的速度大小。从图3可以看出,估计光流与真实光流之间的差别非常小。
通过实验还发现,基于局部平面拟合的光流估计算法对参数比较敏感。如果事件的邻域比较大,则该邻域所构成的局部平面无法很好地近似结构并计算出准确的光流向量,而如果事件的邻域比较小,则很有可能包含的有效事件不足以构成局部平面进行光流估计。此外,局部平面拟合算法的不断迭代与优化有助于精度的提升,但是,如果初始拟合的局部平面恰巧错误地表示了局部运动,则一个有效的事件很可能就会被视为异常值,并被错误地删除,那么在错误的基础上继续迭代只会降低算法的精度。
本文主要关注神经形态视觉的光流估计算法,探索事件相机异步产生事件序列的工作机制,研究基于事件的局部平面拟合光流估计算法原理,提出了一种运用特征值法进行神经形态视觉光流估计的算法,并引入随机抽样一致算法进一步提高算法的稳健性,使其能够对噪声具有一定的鲁棒性。实验结果表明,运用特征值法能够有效进行光流估计,采用特征值法进行局部平面拟合相比最小二乘法具有更好的光流估计效果,并且引入随机抽样一致算法后效果更佳。
相比基于传统帧图像的光流估计算法,基于神经形态视觉的研究缺乏具有代表性的数据集以及测量方法,因此,创建神经形态视觉数据集并制定光流估计评估标准,研究深层脉冲神经网络以充分发挥异步序列时空特性将是下一步的研究重点。