APP下载

利用局部特征匹配的运动小目标光流估计

2024-02-26陈华杰许琮擎占俊杰

电光与控制 2024年2期
关键词:光流分块特征向量

陈华杰, 许琮擎, 周 枭, 占俊杰

(杭州电子科技大学自动化学院,杭州 310000)

0 引言

动态背景下运动小目标的检测是诸如可见光探测等成像探测系统的一个重要组成部分。在动态背景下采用简单静杂波滤除方式较难实现对动态目标的检测。同时,在很多情况下,目标检测所要面临的是极其复杂的图像序列,这给工作带来很大的挑战。目前有多种方法可用于动态背景下运动小目标检测,如运动补偿法、鲁棒主成分分析法、光流估计法等[1]。其中,运动补偿法的基本思路是通过将两帧图像配准来消除动态背景带来的干扰,再采用静杂波滤除方式就可以实现对运动小目标的检测。但是,在复杂背景下很难将两帧图像配准,这导致许多噪点和运动小目标混杂在一起,难以分辨[2]。鲁棒主成分分析法的基本思路是将若干帧视频图像组成一个观测矩阵,将这个观测矩阵分为具有低秩性的背景部分和具有稀疏性的前景部分[3-5]。其中前景部分包含了运动目标的信息,对其进行分析即可实现对运动目标的检测。但是,在具有一定复杂度的检测场景中,一些背景物体会呈现不同程度的运动变化[6],这往往会被分解到前景部分。光流估计法是为图像中每一个像素提供一个运动矢量,由这些运动矢量组成的矩阵即光流场。因为运动小目标的运动与背景极不相同,所以在光流场中会有光流异常区域,对光流异常区域进行检测即可得到运动目标位置信息[7]。与前两者相比,光流估计法对运动小目标和静态背景的分离能力更强,这使得光流估计法的结果更稳定。

深度学习的发展给光流估计领域带来了突破性的发展。2015年,FlowNet首次将CNN引入到光流估计领域[8];2018年CVPR上,PWCNet引入了经典算法中的相似度矩阵来记录两帧特征矩阵之间的相似度[9];2020年,RAFT网络利用循环网络模拟迭代优化的过程[10-11];2021年,SCV(Sparse Cost Volume)网络通过对RAFT(Recurrent All-pairs Field Transforms)网络的改进,减少了硬件资源的消耗。目前诸多基于神经网络的光流估计普遍对原图进行3次下采样。过多的下采样会导致运动小目标的信息在下采样后丢失进而导致目标检测失败。参考SCV网络的设计,下采样次数设为2较为合理。但是,下采样次数的减少会带来计算量的激增,这又导致计算时间过长,成为一个较为尖锐的矛盾。基于循环神经网络的光流估计的3个主要部分中,特征提取部分和迭代计算光流部分的结构比较成熟,很难在结构上更精进一步来提高光流估计的速度;而对于特征匹配部分,随着下采样的次数增加,其计算量增长的幅度大于前两个部分,并且目前的匹配策略较为单一,所以特征匹配阶段存在一定的优化空间。

本文采取一种局部特征匹配策略,对任一特征向量,只在其相关的局部区域进行特征匹配,在保证光流估计质量的前提下减少计算量,提高网络的计算速度。在得到光流估计后,检测光流异常区域即可得到运动小目标的位置信息。为了光流异常区域检测有较高的正确率和稳定性[12],可以利用神经网络强大的语义表达能力,实现对光流异常区域稳定的检测。

1 基于循环神经网络的光流估计

目前用于光流估计的神经网络大致由3个部分组成:特征提取、特征匹配和迭代计算光流。以SCV网络为例,结构如图1所示。

图1 网络结构Fig.1 Network structure

1) 特征提取。前后两帧图像共享一个多层卷积网络,以提取出两帧图像的深层特征;对前一帧图像使用具有相同结构的卷积网络以提取上下文信息。其中,为了加快网络推理速度和减少硬件资源索取,在特征提取过程中进行了多次下采样,这样可能会丢失部分细节。设整个卷积过程的变换为gθ,则特征提取的过程为

(1)

2) 特征匹配,即计算前后两帧图像特征的相似度。无论是RAFT网络还是SCV网络,都是采用全局匹配的策略,即第1帧上的任一特征向量和第2帧上的所有特征向量进行相似度计算。令匹配过程的计算为C,那么特征匹配的过程为

(2)

式中:F1和F2为前后两帧特征矩阵;c为相似度矩阵;匹配计算C一般采用两个特征向量间的欧氏距离或者两个特征向量的向量内积。计算完成之后输出每个特征向量在第2帧特征上相似度最高的k个特征向量及其位置信息。最后,利用得到的c对后两个维度的内容进行线性插值得到多级分辨率的相似度矩阵{c1,c2,c3,c4},其中,ck∈R(H/2n)×(W/2n)×(H/2n+k-1)×(W/2n+k-1),k=1,2,3,4。

3) 迭代计算光流,采用GRU(Gate Recurrent Unit)网络。每次迭代得到残差光流,与之前的累计光流相加即可得到当前光流估计。

匹配信息M(H/2n)×(W/2n)×4×L与累计光流估计、上下文信息经过若干次卷积和拼接后生成GRU网络的输入xt,GRU网络每次迭代计算的核心过程为

(3)

2 基于局部特征匹配的运动小目标光流估计

2.1 全局特征匹配高分辨率下的计算量分析

对小目标进行光流估计时,过多的下采样会使得小目标的信息丢失从而导致光流估计的结果不理想,因此减少下采样的次数可以有效保留小目标的信息。

依据上文分析,当下采样的次数从3变成2时,网络整体的计算量在特征匹配和迭代估计阶段大幅增加。根据实测数据,特征计算阶段计算量增加了48.5%,特征匹配阶段计算量增加了9.7倍,迭代计算阶段计算量增加了3.2倍,网络的整体耗时增加了3倍。在某些有一定实时性要求的场景中,这种计算量的增加显然难以接受。

2.2 局部特征匹配策略

2.2.1 局部特征匹配的基本思路

目前诸如RAFT,SCV网络都是采用全局特征匹配策略。全局特征匹配是第T帧上的每个特征向量都和第T+t帧上的所有特征向量进行匹配,如图2(a)所示,匹配过程如式(2)描述。在2.1节中已经阐述了全局特征匹配随着特征矩阵变大计算量激增的问题。这种全局特征匹配其实是十分冗余的。在运动目标速度不是特别快的一般场合下,运动目标在两帧图像之间的相对运动比较小,那么在目标小位移场景下特征向量的搜索范围其实可以限定在一个较小的区域内,完全没必要进行全图匹配。因此,本文提出一种局部特征匹配策略,减少网络的计算量以提高网络计算的速度。

图2 特征匹配策略Fig.2 Feature matching strategies

因为目标的运动具有连续性,目标在第T+t帧图像上的位置应是其在第T帧图像所在位置的邻域内,因此在特征匹配时,采用局部特征匹配即利用了这一先验知识。所谓的局部特征匹配,是将第T帧特征矩阵上的任一特征向量,设其坐标点为p,在第T+t帧特征矩阵的p的邻域内进行逐一匹配,计算出与之相似度最高的k个特征向量和这k个特征向量的坐标,如图2(b)所示。可以直观看出,匹配的范围越大,构建相似度矩阵的时间越长,算法实时性越低。

2.2.2 局部特征匹配的计算过程

依据式(2)全局特征匹配的计算过程,结合2.2.1节得出局部特征匹配策略的计算过程如下

(4)

(5)

对于hblock和wblock的大小,本文给出如下的估计方法:假设在原始图像上目标的尺寸为wtarget,目标在相邻两帧上的位移为xtarget,两帧相隔的帧数为t,下采样的次数为n。那么,对于第T帧特征矩阵F1上的任一特征向量,为了可以搜索到完备的信息,其在第T+t帧特征矩阵F2上理想的匹配范围r的大小应该为

(6)

因为在实际情况中xtarget和wtarget往往不可知,但是考虑到应用场景可以大致估计出一个合理的值。对于小目标,其尺寸一般为32×32(单位为像素,下同),故wtarget取30。xtarget×t实际上表示了目标在两帧图像中的位移,若小目标运动速度较快,t取值偏小;小目标运动速度较慢,t取值偏大。为了算法的实时性,xtarget×t一般取10。本文中n为2,可以得到r的值为10。那么,对于任一特征向量,其匹配的范围,即hblock和wblock取值20。

2.2.3 分块局部特征匹配

在算法实现中,时间损耗由两部分组成,即

tall=tcal+tadjust

(7)

式中:tall为匹配的总时间;tcal为相似度计算的时间;tadjust为数据调整的时间。因为在算法实现中是利用faiss库来实现相似度的快速计算,这就要求输入的矩阵要调整为一维向量,且在内存中是连续分布,tadjust主要来自这里。对于局部特征匹配,F1中的任一特征向量在计算相似度时,F2中对应的区域都要经过数据调整,使得tadjust较大,从而导致特征匹配的耗时并没有减少。因此本文采用分块局部匹配策略,将第T帧特征矩阵划分为相接的若干块,对于任意一块b1,在第T+t帧特征矩阵中找到对应位置的块b2,并将其四边扩充成b3,将b1和b3进行匹配计算,如图2(c)所示。

对于分块局部特征匹配策略,当b1=(H/2n)×(W/2n)时就是全局匹配策略;当b1=1时就是局部特征匹配策略。当b1变大时,相似度计算时间tcal变大,而数据调整时间tadjust变小,那么匹配总时间tall与b1会呈现出类抛物线的关系,故tall存在最小点。对于分块中的特征向量,除了边缘部分,其余部分的特征向量的匹配范围实际上是扩大了,导致相似度矩阵含有的信息量增加,其光流估计精度可能提高。

2.2.4 分块局部特征匹配算法流程

令第T帧特征矩阵为F1,第T+t帧特征矩阵为F2。将F1划分为相接的q块,取F1划分后的区域b1,在F2中找到同样位置的区域b2,即图2(c)中被虚线包围的区域,将F2中的区域b2向外扩充成区域b3,其中,扩充的边长为wadd,针对F1中区域b1的任一特征向量在F2的区域b3中检索相似度最高的k个特征向量。在F2中扩充区域b2是为了保证F1中区域b1的边缘部分也有足够的搜索范围。其中,依据上文的分析,wadd取10。分块局部特征匹配的算法流程如下所示。

输入:两帧特征矩阵F1和F2、分块数量q、在分块中选取相似度最高的前k个特征向量的ktop。

将F1均匀分成q份

forqiinq:

qi左上角坐标为(xleft,ytop),qi的宽和高分别为wregion和hregion;

在F2上选取区域q′i,q′i的左上角坐标为(xleft-wadd,ytop-wadd),q′i的宽和高分别为wregion+2×wadd和hregion+2×wadd;

对于qi中任一特征向量,在q′i中计算出相似度最高的k个特征向量和这k个特征向量的坐标i;

计算出在F2中的坐标iall,即

x′left=xleft-wadd

y′top=ytop-wadd

w′region=wregion-2×wadd

iall=(y′top+i/w′region)×w+x′left+i%w′region

end

输出计算结果iall,即匹配信息。

2.2.5 关键参数的选择

整个算法中存在两个关键参数可以调整:分块的大小和在分块中选取相似度最高的k个特征向量,即ktop。

对于分块大小,由实验可以得出,随着分块数量增多,数据调整的时间增多,相似度计算的时间减少,所以匹配耗时存在最小点。从光流估计质量和匹配耗时综合考虑,在本文图像序列的尺寸下,将全图分为16块是相对合适的选择。

对于ktop,其与目标和环境的对比度有关。在相同情况下,目标与环境的对比度越高,ktop可以取越小的值。一般来讲,ktop越大,光流估计的结果越精确。但是ktop越大,对硬件资源的索取会越多。所以需要综合考虑,选择一个较好的平衡点。本文最终的目的是实现运动小目标的检测,所以不必一味追求光流估计的精确度,只要光流图中出现光流异常区域即达到本文的目的。在本文场景下,ktop取2是相对合适的选择。

3 基于异常光流的运动小目标检测

经过光流估计可以得到光流场。在一般情况下,背景的运动是一致的,故其运动矢量也是一致的,背景在光流场上表现为均匀区域;运动目标与背景的运动不一致,运动目标在光流场上的表征与背景区域有较大的区别,将这块与背景区域有较大差别的区域称为光流异常区域,对光流异常区域的检测即是对运动目标的检测。但是,为了加快网络计算速度,GRU网络的循环次数并不多,因此光流估计的结果往往并不十分理想,存在许多噪声,导致边缘检测算法存在许多虚警,故采用深度学习的方法实现对异常光流区域的检测。总体方案如图3所示。

图3 总体方案Fig.3 Overall scheme

在光流场上,虽然运动目标只保持其大致轮廓,纹理特征丢失,但是滤除了背景复杂的形态学特征,光流异常区域和背景区域的区分度相比于原始图像上运动目标和背景的区分度得到了较大的提升,目标检测的难度大大降低,如图4所示。

图4 光流场的两通道图像和原图Fig.4 Two-channel image and original image of optical flow field

采用CenterNet[13-14]可以实现对光流异常区域的快速检测,因为光流异常区域区分度高、类型单一,CenterNet的头部网络可以采用较为轻量化的ResNet18,以降低CenterNet的网络规模,提升网络推理的速度。

3.1 时间间隔t的选择

输入光流估计网络的两帧图像间隔t帧,若t取值太小,目标运动趋势不明显,光流估计的结果不会太理想;若t取值太大,运动目标在两帧之间位移较大,在GRU网络迭代次数较少情况下无法估计出运动目标的光流。依据实拍数据集的运动目标实际情况,t取10。

3.2 光流场处理

由光流估计得到的光流场,其两个矩阵中的数值的大小不存在明确的上下界,为了便于后续的神经网络对运动目标的检测,需要将光流场进行归一化处理。本文采用单帧光流场的每个通道的最大值和最小值对相应通道的矩阵进行归一化处理,即

(8)

式中:fflo为光流场的某一通道;fflo_max和fflo_min分别为这一通道下的最大和最小值;fflo_n为归一化后的结果。这样,既没有改变数值间相对的大小关系,又实现了光流场的归一化。为了与后续的CenterNet在形式上统一,扩充光流场的维数,将光流场的第1维的内容复制到第3维,得到三维光流图。因为第1、第2维光流场中已经包含光流估计的全部信息,那么利用第1、第2维构造出的第3维,光流场的信息量并没有增加,因此光流场的扩维仅是在形式上与后续的神经网络相连接。

3.3 训练CenterNet

用于训练的光流图标注光流异常区域的位置信息,用光流图和位置信息训练CenterNet。当图像序列中不存在运动目标时,光流图中没有光流异常区域,光流图的方差较小,用最大、最小值归一化光流图时,会放大光流图中的差异,这时光流图会出现如图5所示的情况,这样会导致检测中存在较多虚警。故为了防止在没有运动目标的情况下出现误测,在训练集中加入类似图5情况的光流图,提高检测网络的检测稳定性。训练集中有目标的光流图和无目标的光流图比值约为8∶2。最后,训练好的CenterNet与光流估计网络串联,实现运动目标检测。

图5 噪声被放大的三维光流图Fig.5 3D optical flow diagram with amplified noise

4 实验验证

本文实验所用设备的CPU为i5-8600K,GPU为GTX 1080Ti,显存为11 GiB。

4.1 数据集

光流估计参数选择实验的数据集来自开源数据集FlyingChairs。

运动小目标检测对照实验的数据集来自使用光学镜头实拍的一组数据集和仿真生成的一组红外图像飞行器尾焰数据集。在使用光学镜头实拍的数据集中图像的大小为700×980,运动目标尺寸在25×25左右。经过抽帧后共有416帧图像,训练集有288帧图像,将这些图像按照时间顺序两两光流估计后的结果用于训练CenterNet;测试集有128帧图像,其中含有234个目标,这些图像具有动态复杂背景。在仿真数据集中,飞行器尾焰在图像序列上的表征是由小及大。抽取338帧图像作为运动小目标检测数据集,其中在100帧图像中飞行器尾焰表征为小目标,尺寸在13×13至25×25;在238帧图像中不存在运动目标。在两组数据集上对比了同时串联CenterNet的情况下,基于局部特征匹配的SCV和基于全局特征匹配的SCV对于运动小目标的检测精度和检测速度。结果证明了局部特征匹配的SCV既提高了计算速度,又保证了光流估计的质量。

4.2 评估指标

根据下列指标对实验结果进行分析。

1)E。E表示估计光流和真实光流的欧氏距离

(9)

2) 准确率。准确率为检测到的正确目标数与检测到的目标总数的比值,用P表示。

3) 召回率。召回率为检测到的正确目标数与实际的目标总数的比值,用R表示。

4) F-Measure。F-Measure是准确率(P)和召回率(R)的加权调和平均,表示为

(10)

当α取1时,即FM_1,FM_1综合了P和R的结果,可用于综合评价实验结果的质量。

4.3 实验结果

4.3.1 光流估计参数选择实验

在GRU网络循环2次、ktop设为2的条件下,在开源数据集FlyingChairs下不同分块大小的耗时情况如图6所示。

图6 不同分块大小的匹配耗时Fig.6 Matching time consumption for different block sizes

由图6可以看出,当分块大小减小时,匹配耗时会逐渐下降,但是当分块大小降至全图的1/49时,匹配耗时反而增加。因此,从时间上来看,分块大小应当设置在全图的1/16~1/36之间,为了有较为丰富的匹配信息,分块大小选全图的1/16为最优。

对GRU网络的迭代次数、ktop的取值和分块大小这3个关键参数进行多组光流估计精度对照实验,实验数据集采用开源数据集FlyingChairs,结果如表1所示。

表1 不同参数下光流估计精度实验结果Table 1 Experimental results of optical flow estimation accuracy under different parameters

如表1所示,在不同GRU网络的迭代次数和ktop下,光流估计的精度其实相差不大。所以为了减少硬件资源的支出和计算耗时,在本文的场景中,GRU网络的迭代次数取2,ktop取2较为合理。

从以上实验数据不难看出,在不改变网络结构和网络权重、仅改变特征匹配方式的情况下,区域特征匹配的耗时相较于全局特征匹配的耗时大大减少。且在局部特征匹配的情况下,光流估计精度并没有明显下降,反而在一些情况下还有提升。其中,当ktop=2时,分块大小为全图的1/16的光流估计的精度明显好于全局匹配的光流估计精度。这在一定程度上提升了算法的实时性,并且还能保证目标检测的准确率和虚警率。因此,在最优参数下,即在GRU网络循环2次、ktop设置为2、分块大小为全图的1/16时,其匹配耗时仅为全局匹配的16.1%,且其光流估计精度还要略高于全局匹配。

4.3.2 运动小目标检测对照实验结果

在实拍数据集上,选择最优参数,在光流估计网络后面串联同一权重的CenterNet,不同匹配策略下的SCV和采用全局匹配但低分辨率的SCV的目标检测精度和耗时如表2所示。其中,本文实验在评估计算结果时交并比(IoU)取0.25。

表2 实拍数据集运动小目标检测精度和耗时Table 2 Accuracy and time consumption for small moving target detection in real photography dataset

由表2可以看出,提高特征矩阵的分辨率有利于小目标的检测。同时可以看出,基于局部匹配的SCV相比基于全局匹配的SCV对小目标的检测精度并没有明显下降,这也侧面说明在小目标的场景下,基于局部匹配的SCV相比基于全局匹配的SCV光流估计精度并没有下降。从表2可以看出,基于局部匹配的SCV耗时相比基于全局匹配的SCV耗时减少约25%。

同样,在仿真数据集上,检测精度和耗时如表3所示,可以得出相似的结论。其中,交并比(IoU)取0.25,下采样次数(n)都取2。值得注意的是,因为飞行器尾焰在图像序列上表征为由小及大的过程,当飞行器尾焰表征为较大目标,特别是尺寸在50×50以上时,尽管在光流估计中存在光流异常区域,但是CenterNet无法实现检测(这部分图像序列不在实验的数据集中)。因为在CenterNet的训练集中都是小尺寸的光流异常区域,而较大目标的光流异常区域,其结构特征与小目标的光流异常区域相比存在较大差异。

表3 仿真数据集飞行器尾焰检测精度和耗时Table 3 Aircraft tail flame detection accuracy and time consumption in simulation dataset

5 结论

针对动态背景下的运动小目标检测,本文提出了基于局部特征匹配的运动小目标光流估计算法。该算法引入目标运动信息和批处理机制,缩小特征匹配的空间范围,在保证光流估计准确性的前提下实现算法加速。在此基础上利用运动目标在光流场上的特性,实现对光流异常区域的检测,从而实现运动小目标的检测。相比现有算法,在保证运动目标检测性能的前提下缩短了计算时间。

猜你喜欢

光流分块特征向量
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
利用掩膜和单应矩阵提高LK光流追踪效果
克罗内克积的特征向量
分块矩阵在线性代数中的应用
基于物理学的改善粒子图像测速稳健光流方法研究
一类特殊矩阵特征向量的求法
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用
反三角分块矩阵Drazin逆新的表示
基于自适应中值滤波的分块压缩感知人脸识别
基于多分辨率半边的分块LOD模型无缝表达