APP下载

基于深度学习的图像动态特征点剔除方法

2022-10-31苏鹏罗素云

农业装备与车辆工程 2022年8期
关键词:物体聚类动态

苏鹏,罗素云

(201600 上海市 上海工程技术大学)

0 引言

图像动态特征点,是指在动态环境下,相机获取的图像中含有动态物体,而在获取图像中的特征点时,部分特征点会落在此动态物体上,这部分特征点被称为图像动态特征点[1]。动态特征点的存在会影响特征点匹配、位姿估计等的准确性[2]。在无人驾驶领域,进行位姿估计时假定周围环境都是静态物体,但避免不了行人、汽车等动态物体干扰。当动态物体在图像中占比较小时,一般可通过RANSAC(随机抽样一致)算法将其剔除,但当动态物体在图像中占比较大时,RANSAC 算法则不能有效剔除这些动态特征点[3],因此研究动态环境下动态特征点的剔除,对无人汽车的定位很有意义。

为了解决动态特征点影响特征点匹配问题,WANG[4]等通过光流法完成动态物体的过滤。但是光流法的运算量较大,且对光照变化敏感,鲁棒性较差。随着人工智能技术的发展,深度学习被越来越多的研究者应用到动态特征点剔除上。YU[5]等利用SegNet 网络进行动态物体分割,利用语义信息来完成动态特征点的剔除;BESCOS[6]等利用Mask-RCNN 网络和多视角几何方法来识别动态信息;ZHONG[7]等通过深度图像的深度值来判定动态物体来实现动态特征点的剔除;席志红[8]等对SegNet 网络进行改进,提出PSPNet 网络,使识别出的动态语义信息更加准确;CHEN[9]等利用YOLO 模型并结合贝叶斯滤波识别动态特征。但是大部分方法会导致图像特征点剔除过多,而保留的静态特征点较少,导致特征点匹配效果不佳。

本文提出了一种在动态场景下结合深度学习的图像动态特征点提出方法,创新点和主要工作包括:(1)将SSD(Single Shot MultiBox Detector)网络模型融合到特征点检测阶段,获取图像的动态特征点存在区域;(2)通过高斯混合模型的聚类算法,对特征点进行分类、剔除;(3)对实验结果进行评价,估算方法的有效性。

1 方法描述

本方法的系统框架如图1 所示,主要包括动态区域检测和动态特征点提取2 部分。首先对输入的RGB 图像进行ORB(Oriented FAST and Rotated BRIEF)特征点提取,再利用SSD 目标检测模型对RGB 图像进行动态区域检测;同时,通过深度图像赋予特征点深度值,再以特征点的深度值为对象,对动态区域内的特征点进行GMM(高斯混合模型)聚类处理。由于动态区域的中心点应为运动目标上的一点,以此点的深度值,判断聚类后的特征点类别是否为动态特征点类别。最后实现动态特征点的识别与剔除。

图1 整体框架流程图Fig.1 Overall framework flow chart

2 目标检测模型

随着感知技术的发展,许多应用在目标检测方面的卷积神经网络模型被提出,最有代表性的有R-CNN、Fast R-CNN、Faster R-CNN、SSD 和YOLO 等。前3 种方法为two-stage 的方法,主要思想就是先找出可能包含待检测目标的候选框,然后再通过分类和边框回归确定候选框中包含待检测物体的概率。但因其包含的步骤较多,所以检测速度不能达到很快。SSD 和YOLO 是one-stage 的方法,它把检测直接简化为一个回归问题。通过设计大量的anchor 用于目标定位,因此省略了找出包含待检测目标的候选框这一步骤,所以其检测速度大大提升,实时性较强。

为了同时兼顾目标检测的准确性和实时性,本文选择SSD 算法作为目标检测模型。SSD 是Liu Wei 等在2016 的ECCV 上提出的一种目标检测算法[10],相比two-stage 方法有更快的检测速度,相比YOLO 又有更高的检测精度。SSD 的网络结构如图2 所示。在特征提取部分,以VGG16 作为其基础网络的同时,将VGG16 的最后2 个全连接层(FC6,FC7)修改为2 个卷积层(conv6,conv7)。同时,又在之后添加了6 个卷积 层(conv8-1,conv8-2,conv9-1,conv9-2,conv10-1,conv10-2),最后通过全局平均池化输出一个1×1×256 的feature map。同时加入了特征金字塔的检测方式,不像YOLO 那样只利用最高层的feature map,而是在检测时同时利用多尺度的feature map(conv4-3,conv-7(FC7),conv6-2,conv7-2,conv8_2,conv9_2)。

图2 SSD 卷积神经网络Fig.2 SSD convolutional neural network

SSD 以Faster RCNN 中的anchor 作为基础,提出了prior box 的概念。prior box 代表一些目标的预选框,它的生成规则如下:

(1)以输出的每个feature map 上的cell 的中点作为中心来生成一列同心的prior box。

(2)prior box 的最小边长为min_size,最大边长为

(3)同时设置一个纵横比r,即2 个长方形,

(4)min_size与max_size由式(1)决定

式中:m——feature map 的数量。

得到prior box 之后,SSD 通过分类和回归获得目标类别和回归框的位置,以conv4-3 为例,如图3 所示。

图3 特征的分类与回归流程图Fig.3 Classification and regression flow chart of features

conv4_3 中的feature map 经过batch norm 和卷积,得到[1,21*Num_priorbox,W,H]大小的feature用于softmax 分类,得到[1,4*Num_priorbox,W,H]大小的feature 用于bounding box 回归,由此可以判断物体是否为动态类别,同时也得到了回归框坐标。

本文采用基于pytorch 的SSD 目标检测模型对图像进行检测,得到动态目标区域范围如图4 所示。

图4 动态区域检测结果Fig.4 Dynamic region detection results

3 特征GMM 聚类

3.1 特征提取

常见的特征点提取算法有sift、SURF、fast 等,ORB 特征是把fast 特征与brief 描述子结合,并改进和优化。相比其他特征提取算法,ORB 特征提取的速度较快,且具有旋转不变性,可以满足摄像头在连续采集视频帧时实时性的要求。

ORB 特征点采用FAST(Features from accelerated segment test)算法检测特征点。FAST 的思路是用一个点与它周围的点比较,如果它和周围大部分的点都不一样,则认为它是一个特征点。获取步骤如下:

(1)从图片中选取一个像素点P,为了判断它是否是一个特征点,首先把它的灰度值设为IP;

(2)设定一个合适阈值t,当2 个像素点灰度值之差的绝对值大于t时,则认为这2 个点不同;

(3)考虑该像素点周围的16 个像素,如果这16 个点中有连续的n个点都和该像素点不同,那么就认为它是一个角点。

当然也可以提出一个高效测试快速排除一大部分非特征点。该测试仅仅检查上、下、左、右4个位置的像素。如果是一个角点,那么上述4 个像素点中至少有3 个应该和该点相同。如果都不满足,那么该点则不是一个角点。

得到特征点后,需要以某种方式描述这些特征点的属性。这些属性称为该特征点的描述子。ORB采用BRIEF算法来计算一个特征点的描述子。BRIEF 算法的思路是在关键点P的周围以一定模式选取N个点对,然后把这N个点对的比较结果组合起来作为描述子。获取步骤如下:

(1)以关键点P为圆心,以d为半径做圆O。

(2)在圆O内某一模式选取N个点对。为方便说明,取N=4,实际应用中可以取N=512。

(3)选取的4 个点对分别标记为:P1(A,B),P2(A,B),P3(A,B),P4(A,B)。

(4)定义函数T

式中:IA——点A的灰度。

(5)分别对步骤(3)选取的点对进行T操作,将得到的结果进行组合,即得到该点的描述子。

3.2 GMM 聚类

GMM(高斯混合模型)聚类是k-means 模型的一种优化。k-means 模型聚类的原理是分别计算样本中每个点与每个簇中心点的欧氏距离,样本点离哪个簇中心点近,则被归类于哪一个簇。但k-means 聚类出来的簇必须为圆形,因此聚类后的结果可能和实际的分布情况有很大差别。而GMM则是把所有的簇先假定看作多个高斯分布,然后通过样本点找出K个高斯分布的期望和方差,聚类出来的簇的形状更加灵活多变,且GMM 聚类进行簇的划分时,是根据每个样本点属于某个簇的概率划分的,聚类结果更加精确。

对于GMM 聚类,首先给定聚类后簇的个数K。对给定的样本数据集,其高斯混合模型的概率密度函数由K个多元高斯分布组合成的混合分布表示:

式中:p(x|μ,Σ)——以μ为均值的向量;Σ——协方差矩阵的多元高斯分布概率密度函数;ωi——第i个多元高斯分布在混合模型中的权重,且

然后对于给定的聚类簇数k与样本集,GMM以参数估计的方法推导出混合成分的参数。GMM训练时采用极大似然估法:

但是通过式(4)无法直接求解,这里用到EM(Expectation-Maximization)方法求解,具体的步骤如下:

(1)根据给定的k值,初始化k个多元高斯分布以及权重;

(2)E 步:根据当前模型参数,计算第i个样本在第k个分布中的概率;

(3)M 步:计算新一轮迭代的模型参数

式中:μk——第k个分布的期望值;Σk——第k个分布的方差。

(4)重复步骤(2)、步骤(3),直到似然估计值不再变化或达到最大迭代次数。

3.3 动态删除

本文首先结合深度图像对3.1 中提取出的ORB特征点赋予深度信息,然后通过2 中检测出的动态区域,对目标范围内的特征点基于深度信息进行GMM 聚类,考虑到动态区域内存在深度值大于动态目标深度值的物体与深度值小于动态目标深度值的物体,故将聚类簇的数量k设置为3,将动态区域内的物体深度值分为3 簇。由于SSD 模型检测到的动态范围中心点一定为动态目标,故将动态范围中心点的深度值IO提取出来,计算聚类结果中3个簇的质心与中心点深度值的欧氏距离:

式中:k分别取1、2、3;Ik——聚类簇质心的值。

取S值最小时的聚类簇为动态目标的特征点聚类簇,其他2 个聚类簇则认为是静态特征点,最后对此部分动态目标的特征点进行剔除。具体的算法框架如图5 所示。

图5 动态特征点剔除流程图Fig.5 Dynamic feature point culling flow chart

4 实验结果分析

选择网上公开的数据集——TUM 深度图像数据集进行实验,验证本文所提出的算法的有效性。图6 是本文所采用的TUM 深度图像数据集中的RGB 图像。

图6 原始RGB 图像Fig.6 Original RGB image

图7(a)是在选用的RGB 图像上提取出的ORB 特征点,图7(b)是通过SSD 算法和深度信息聚类来实现动态特征点剔除后的图像。由图7的实验结果可以看出,动态目标上的特征点绝大部分都被剔除,且保留了动态区域内的静态特征点。通过计算动态特征点数量与动态特征点的剔除数量,得出动态特征点的剔除率在94%以上,从而验证本文算法可以有效剔除不同场景下动态目标上的特征点,以此提高特征点匹配、位姿估计的精度。

图7 动态特征点剔除示例Fig.7 Dynamic feature point elimination examples

5 结语

本文采用了ORB 特征提取的方法,融合了一种基于深度学习的SSD 目标检测模型与GMM 高斯聚类算法,并以公开数据集TUM 动态场景深度图像数据集作为测试,实现动态目标上特征点的剔除。该方法在实时性、剔除率上取得了良好效果,但是在实际应用中由于相机受光照强度影响,导致动态目标上一些边缘特征的深度值采集效果不好,部分边缘动态特征点剔除失败,因此要进一步改进算法提高动态特征点的剔除率。

猜你喜欢

物体聚类动态
国内动态
国内动态
国内动态
深刻理解物体的平衡
动态
我们是怎样看到物体的
基于DBSACN聚类算法的XML文档聚类
基于改进的遗传算法的模糊聚类算法
为什么同一物体在世界各地重量不一样?
一种层次初始的聚类个数自适应的聚类方法研究