掌桥专利:专业的专利平台
掌桥专利
首页

一种动态特征剔除方法及其角点检测算法

文献发布时间:2023-06-19 12:13:22


一种动态特征剔除方法及其角点检测算法

技术领域

本发明涉及图像处理领域,尤其涉及一种动态特征剔除方法及其角点检测算法。

背景技术

当前主流的特征提取算法包括Harris角点、SIFT、SURF、Fast等角点检测算法。这些算法都是在传统的方法框架下,即假设环境是静止的,且在一定的区域内(窗口)所有的点均有同样的运行趋势,窗口内的元素在x和y方向的梯度一样,因此这些点的应用范围也大多是静止场景。其出发点是针对一帧一帧图像,在单张图像中找到具有代表性的像素点。

传统的特征提取算法的流程均有细微的差别,以Harris角点提取算法为例进行说明:Harris算法核心是在一个局部区域中找到图像像素点x和y方向梯度变化最明显的点,Harris算法的流程为:

Step1、利用水平、竖直差分算子对图像的每个像素进行滤波以求得x和y方向梯度,构建矩阵M;Step2、对M的四个元素进行高斯平滑滤波,以消除一些不必要的孤立点和凸起,得到新的矩阵M;Step3、接下来利用M计算对应每个像素的角点响应函数R;Step4、局部极大值抑制,同时选取其极大值,在点的固定区域内进行非极大值抑制和膨胀得到矩阵R;Step5、在矩阵R中,同时满足R(i,j)大于一定阈值threshold和R(i,j)是某领域内的局部极大值,则被认为是角点。

通过以上步骤就提取到了图像中特征变化比较明显的点,前提假设是在静态环境,在求响应函数R时,假设在窗口内的点有同样的运动趋势,而没有考虑动态物体的干扰。如果系统有动态物体引入时,会让上面的响应函数R计算受影响,同时动态物体本身就是一种干扰,在它们上面提取到的特征也是运动特征,在某些应用场景需要去掉。

在视觉slam或者视觉的三维重建中,动态的物体带来的动态特征点对系统的稳定性造成了很大的挑战。为了对动态特征点进行剔除,探索静态特征点提取算法具有实际的应用意义。

发明内容

发明目的:本发明针对上述不足,结合传统特征提取算法仅仅依靠单帧的特点,提出一种动态特征剔除方法及其角点检测算法,基于多帧图像数据,并用AI分割算法辅助,得到非动态区域的掩码,用于动态环境特征提取。

技术方案:

一种动态特征剔除方法,包括步骤:

(1)通过Mask-RCNN算法将图像中的运动物体分割出来;

(2)通过图像RGB-D数据及多视几何算法得到与步骤(1)得到的运动物体相关联运动的动态物体;

(3)结合步骤(1)和(2)得到图像的动态特征,并将所有动态特征区域的像素点置为0,并在该区域边缘进行像素扩展。

所述步骤(2)具体为:

(21)选择选择若干帧图像数据作为关键帧进行动态特征的判断;

(22)在帧间找出各帧上对应特征点的对应关系,即各关键帧中特征点x在当前帧的位置x′;

(23)根据投影关系以及相机在各帧之间的位姿变化,得到特征点x′的空间中的深度Zproj,且计算移动过程中各特征点对应的夹角α,α大于30°时舍弃该特征点;

(24)由像素对应关系,从相机采集得到的深度数据中获取得到特征点x’的深度Z′;

(25)根据ΔZ=Z′-Zproj计算特征点的投影误差,并根据ΔZ是否在误差门限τz范围内,判断该特征点是否受到遮挡,即得到该特征点是否在动态物体上。

所述步骤(21)中,选择2~5帧图像数据作为关键帧。

所述步骤(25)中,误差门限τz取值为0.5m。

一种应用前述动态特征剔除方法的角点检测算法,其特征在于:包括步骤:

Step1、采用前述动态特征剔除方法将图像中的动态特征剔除;

Step2、通过角点检测算法对经Step1得到的图像进行角点检测。

所述角点检测算法采用Harris角点、SIFT、SURF或Fast。

有益效果:在变电站场景中经常会有人经过,人以及人手中的操作设备可能就是移动的物体,视觉slam在处理这样的场景时需要将运动的人和手里的书对应的特征点都剔除掉。本发明融合了多种方法,为视觉slam或者视觉的三维重建提供重要的支撑。本发明将AI的方法和传统的几何方法结合,解决动态物体对特征提取的影响。

附图说明

图1为本发明的算法流程图。

图2为Mask-RCNN网络结构图。

图3为采用现有技术进行角点检测的示例图像。

图4为采用本发明的角点检测算法进行角点检测的示例图像。

具体实施方式

下面结合附图和具体实施例,进一步阐明本发明。

图1为本发明的算法流程图。如图1所示,本发明的动态特征剔除方法,包括步骤:

(1)通过Mask-RCNN对图像进行语义分割,将图像中的运动物体分割出来;

其中,Mask-RCNN网络结构图如图2所示,Mask-RCNN是一个实例分割(Instancesegmentation)算法,Mask-RCNN是一个非常灵活的框架,可以增加不同的分支完成不同的任务,可以完成目标分类、目标检测、语义分割、实例分割、人体姿势识别等多种任务。

Mask-RCNN网络分解为如下的3个模块,Faster-rcnn、ROIAlign和FCN;

Faster-rcnn是目标检测领域的baseline算法,由4个核心模块组成:特征提取网络、生成ROI、ROI分类、ROI回归;其中各个模块的定义如下,特征提取网络:其作用是在图像中获取不同目标的重要特征,一般由卷积层、激活函数和池化层构成,常用一些预训练好的网络(VGG、Inception、Resnet等),获得的结果叫做特征图;生成ROI:在获得的特征图的每一个点上做多个候选ROI(这里是9),然后利用分类器将这些ROI区分为背景和前景,同时利用回归器对这些ROI的位置进行初步的调整;ROI分类:在RPN阶段,用来区分前景(于真实目标重叠并且其重叠区域大于0.5)和背景(不与任何目标重叠或者其重叠区域小于0.1);在Fast-rcnn阶段,用于区分不同种类的目标(猫、狗、人等);ROI回归:在RPN阶段,进行初步调整,在Fast-rcnn阶段进行精确调整;

ROIAlign操作为了得到固定大小(例如7X7)的feature map,ROIAlign技术并没有使用量化操作,那么我们如何处理这些浮点数呢,我们的解决思路是使用“双线性插值”算法。双线性插值是一种比较好的图像缩放算法,它充分的利用了原图中虚拟点(比如20.56这个浮点数,像素位置都是整数值,没有浮点值)四周的四个真实存在的像素值来共同决定目标图中的一个像素值,即可以将20.56这个虚拟的位置点对应的像素值估计出来。

FCN算法为经典的语义分割算法代表,能对图片中的目标进行快速准分割,包含了多个卷积池化层和全连接层,处理数据时先对图像进行卷积和池化,使其feature map的大小不断减小;然后进行反卷积操作,类似于恢复map的大小,不断增大的feature map用于最终的像素级分类,从而实现对输入图像的准确分割。

通过Mask-RCNN算法对图像中的运动物体进行分类,将人、猫、狗等运动物体在图像的区域给分割出来。

(2)结合几何模型判断动态物体部分;

结合几何模型辅助判断动态物体是动态特征剔除的重要步骤,因为图像中的动态特征不仅包含运动物体自身,与之关联的实物也可能跟随着动态物体一起运动,找到一种有效的动态特征剔除方法必须考虑动态物体是否持有别的实物,本发明通过RGB-D数据,借助多视几何算法进一步对动态物体进行剔除。在步骤(1)中已经利用Mask-RCNN网络分割出图像中可能的运动物体,由于实际的视觉slam使用场景,动态物体仅仅考虑行人(如果训练好了网络,别的动物也类似加入到运动物体集合)。深度理解分割出来的动态物体mask和像素级对应的深度信息,判断运动物体周围是否有静态物体跟随,具体如下:

选择若干帧图像数据作为关键帧进行动态特征的判断,根据经验,当图像帧数大于5以后,可能非动态物体也会因为移动产生的视差被认为是一个动态物体,因此本发明选择2~5帧图像数据作为关键帧;

假设相机在移动过程中,在图像上特征点x移动到了x′位置,二者通过三角化得到该特征点在空间中的坐标点X,并计算出在移动过程中图像上该特征点与空间中坐标点X连线对应运动的角度α,并认为当角度α大于30°时,该特征点不参与到动态特征判断队列中,因为相机的移动导致的视差,可能让非动态物体误判断成动态物体。

判断特征点x是否在动态物体上,根据对应特征点的深度误差判断特征点是否在动态物体上:

通过相机的运动姿态计算得到的特征点x′的深度是Zproj,通过深度相机逐像素找出特征点x′的深度是Z′。可以预见,如果没有动态物体的遮挡,这两个值的误差ΔZ=Z′-Zproj应该在误差门限τz范围内,τz取经验值0.5m。

根据上面的描述,具体的实现方法:

Step1、在帧间找出特征点对应关系,即各关键帧中特征点x在当前帧的位置x′;

Step2、根据投影关系以及相机在各帧之间的位姿变化,得到特征点x′的空间中的深度Zproj,且计算移动过程中特征点对应的夹角α,α大于30°时舍弃。

Step3、由像素对应关系,从相机采集得到的深度数据中获取得到特征点x′的深度Z′;

Step4、根据ΔZ=Z′-Zproj计算特征点的投影误差;

Step5、根据误差门限τz判断该特征是否受到遮挡。

通过几何模型判断动态物体,将更多的极可能是动态物体的部分分割出;

(3)结合静态mask的特征提取:

通过步骤(1)和(2),已经将图像中的动态物体比较准确的分割了出来,至此,就得到了准确度很高的静态物体的mask矩阵。分割出动态物体后的mask将和传统的特征提取算法结合,解决两个问题:一是特征提取时的假设(窗口内的点具有同样的运动趋势,x和y方向的梯度变化一致),如果窗口内的部分点是动态的,梯度变化关系就不成立;如果窗口内的点全是动态物体上的点,这时提取的特征虽然满足了假设条件,但特征点却是动态物体上的,这样的点也是需要剔除的。

综合后的算法流程如图1所示,更具体地:

Step1、对于输入的当前帧图像,根据剔除了运动物体和动态物体的mask矩阵,将图像所有动态特征区域的像素点置为0,保证特征点不会在这部分区域,并在边沿区域进行像素扩展,防止特征点落在mask矩阵周围;

其中,像素扩展的示例如下:比如像素是0,0,5,6。0,0是动态物体剔除后的结果,5,6是原始的像素值。那么扩展后的像素为0,6,5,6,在边缘处元素翻折。

让图像的动态物体区域元素为0后,这部分边缘是会出现特征点的,因为梯度发生了剧烈变化,因此需要在边沿区域进行元素扩展,防止在边缘发生梯度跳变,避免在边沿提取到特征点;

Step2、利用水平,竖直差分算子对图像的每个像素进行滤波以求得x和y方向梯度,构建矩阵M;

Step3、对M的四个元素进行高斯平滑滤波,以消除一些不必要的孤立点和凸起,得到新的矩阵M。

Step4、接下来利用M计算对应每个像素的角点响应函数R,Harris角点的响应函数R和Shi-Tomasi的角点响应函数R在表达式上不同。

Step5、局部极大值抑制,同时选取其极大值,在点的固定区域内进行非极大值抑制和膨胀得到矩阵R;

Step6、在矩阵R中,同时满足R(i,j)大于一定阈值threshold和R(i,j)是某领域内的局部极大值,则被认为是角点。

本发明不仅能在算法理论层面让动态物体对特征提取的影响降到最低,而且对于在动态物体上或跟随动态物体的“附属物”上的特征点也能有效的剔除。图3和图4展示了本发明的特征提取效果。

以上详细描述了本发明的优选实施方式,但是本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换(如数量、形状、位置等),这些等同变换均属于本发明的保护范围。

相关技术
  • 一种动态特征剔除方法及其角点检测算法
  • 一种基于轮廓的角点检测算法
技术分类

06120113210467