资讯详情

特征提取:传统算法 vs 深度学习

来源丨深蓝AI

特征提取是计算机视觉的一个重要主题。无论是否SLAM、SFM、三维重建等重要应用的底层是基于特征点跨图像的可靠提取和匹配。特征提取是计算机视觉领域持久的研究热点。一般来说,快速、准确、鲁棒的特征提取是实现上级任务的基本要求。

特征点是图像中梯度变化剧烈的像素,如角点、边缘等。FAST(Features from Accelerated Segment Test)它是一种高速角检测算法;尺度不变特征变化SIFT(Scale-invariant feature transform)它仍然可能是最著名的传统地方特征。它也是迄今为止使用最广泛的特征。特征提取一般包含特征点检测和描述子计算两个过程。描述子是一种测量特征相似性的手段,用于确定不同图像中相应空间的相同物体,如:BRIEF(Binary Robust IndependentElementary Features)描述子。可靠的特征提取应包括以下特征:

(1)图像的旋转和尺度变化不变;

(2)对三维视角变化和光照变化适应性强;

(3)当遮挡和场景混乱时,局部特征保持不变;

(4)区分特征的能力强,有利于匹配;

(5)数量多,一般500×大约2000个特征点可以提取500个图像。

近年来,深度学习的兴起使许多学者试图利用深度网络提取图像特征点,并取得了阶段性的结果。图1显示了不同特征提取方法的特征。本文中的传统算法是ORB以特征为例,以深度学习为例SuperPoint例如,阐述他们的原理并比较性能。

9fbad006904babbd50500f94126e8627.png

比较不同的特征提取方法

尽管SIFT它是特征提取中最著名的方法,但由于计算量大,不能在某些实时应用中使用。研究一种快速兼顾准确性的特征提取算法,Ethan Rublee等人在2011年提出了ORB特征:“ORB:An Efficient Alternative to SIFT or SURF”。ORB算法分为特征点提取和特征点描述两部分。ORB特征是将FAST特征点的检测方法及BRIEF结合特征描述子,并在原有的基础上进行改进和优化。其速度是SIFT的100倍,是SURF的10倍。

从图像中选择一点P,如图2。根据以下步骤判断这一点是否是特征点:以P为中心画一个半径为3 pixel圆;比较圆周像素点的灰度值,发现灰度值超过 l(P) h 和低于 l(P)-h 像素,其中l(P)是P点的灰度, h是给定阈值;如果连续n个像素满足条件,则将P视为特征点。一般n设置为9。为了加快特征点的提取,首先检测1、9、5、13位置的灰度值。如果P是特征点,则有3个或3个以上的像素满足这四个位置的条件。如果不满意,直接排除这一点。

FAST判断特征点的示意图

检测到上述步骤FAST角度数量大且不确定,因此ORB对其进行改进。目标数量K是关键点,原始FAST分别计算角点Harris响应值,然后根据响应值对特征点进行排序,选择前K的最大响应角作为最终角集合。除此之外,FAST没有尺度不变性和旋转不变性。ORB算法构建了图像金字塔,对图像进行不同层次的采样,获得不同分辨率的图像,并在金字塔的每一层上检测角度,从而获得多尺度特征。最后,采用灰度质心法计算特征点的主要方向。作者利用矩来计算特征点半径内的纹理,从特征点坐标到纹理形成向量作为特征点的方向。矩定义如下:

计算图像0和1阶矩:

特征点的邻域质心为:

进一步获得特征点的主要方向:

BRIEF算法计算出具有高速低存储特性的二进制串特征描述符。具体步骤是在特征点的邻域中选择n对像素点pi、qi(i=1,2,…,n)。然后比较每个点对的灰度值。如果I(pi)> I(qi),二进制串中生成1,否则为0。比较所有点,生成长度为n的二进制串。一般n取128、256或512。此外,为了提高特征描述符的抗噪性,算法首先需要对图像进行高斯平滑处理。在选择正确的点时,作者测试了五种模式来找到匹配特征点的最佳模式(pattern)。

测试分布方法

最终结论是第二种模式(b)匹配效果更好。

深度学习解决特征点提取的思路是利用深度神经网络提取特征点而不是手工设计特征,其特征检测性能与训练样本和网络结构密切相关。一般分为特征检测模块和描述子计算模块。它被广泛应用于这里SuperPoint以这种方法的主要思路为例。

该方法采用自监督的全卷积网络框架,培训具有特点(keypoint)和描述子(descriptors)。自我监督是指网络训练中使用的数据集也是通过深度学习构建的。该网络可分为三个部分(见图1),(a)是BaseDetector(特征点检测网络),(b)自校准模块的真值。(c)是SuperPoint网络,输出特征点和描述子。虽然是基于深度学习的框架,但这种方法是上可以输出70HZ检测结果完全符合实时要求。

SuperPoint 网络结构示意图

以下是三个部分:

首先,创建一个大规模的合成数据集:由渲染的三角形、四边形、线、立方体、棋盘和星星组成的合成数据。渲染合成图像后,将单应变换应用于每个图像,以增加训练数据集。变换后角的真实位置对应于单应变换。为了增强其泛化能力,作者还在图片中人工添加了一些噪音和无特征的形状,如椭圆。该数据集用于训练 MagicPoint 卷积神经网络,即。注意这里检测到的特征点不是SuperPoint,还需要经过Homographic Adaptation操作。

预训练示意图

特征检测性能如下表所示:

MagicPoint 模型优于经典检测器

Homographic Adaptation 旨在实现兴趣点探测器的自我监督培训。它多次转换输入图像,以帮助兴趣点探测器从许多不同的角度和尺度看到场景。为了提高探测器的性能,并产生虚假和真实的特征点。

 Homographic Adaptation操作

Homographic Adaptation可以提高卷积神经网络训练的特征点检测器的几何一致性。该过程可以反复重复,以不断自我监督和改进特征点检测器。在我们所有的实验中,我们将Homographic Adaptation 与 MagicPoint 检测器结合使用后的模型称为 SuperPoint。

 

Iterative Homographic Adaptation

SuperPoint 是全卷积神经网络架构,它在全尺寸图像上运行,并在单次前向传递中产生带有固定长度描述符的特征点检测(见图 9)。该模型有一个共享的编码器来处理和减少输入图像的维数。在编码器之后,该架构分为两个解码器“头”,它们学习特定任务的权重——一个用于特征检测,另一个用于描述子计算。大多数网络参数在两个任务之间共享,这与传统系统不同,传统系统首先检测兴趣点,然后计算描述符,并且缺乏在两个任务之间共享计算和表示的能力。

 

  SuperPoint Decoders

SuperPoint 架构使用类似VGG编码器来降低图像的维度。编码器由卷积层、通过池化的空间下采样和非线性激活函数组成。解码器对图片的每个像素都计算一个概率,这个概率表示的就是其为特征点的可能性大小。

描述子输出网络也是一个解码器。先学习半稠密的描述子(不使用稠密的方式是为了减少计算量和内存),然后进行双三次插值算法(bicubic interpolation)得到完整描述子,最后再使用L2标准化(L2-normalizes)得到单位长度的描述。

最终损失是两个中间损失的总和:一个用于兴趣点检测器 Lp,另一个用于描述符 Ld。我们使用成对的合成图像,它们具有真实特征点位置和来自与两幅图像相关的随机生成的单应性 H 的地面实况对应关系。同时优化两个损失,如图 4c 所示。使用λ来平衡最终的损失:

 

 不同的特征检测方法定性比较

 检测器和描述符性能的相关指标

在特征检测上,传统方法通过大量经验设计出了特征检测方法和描述子。尽管这些特征在光照变化剧烈,旋转幅度大等情况下还存在鲁棒性问题,但仍然是目前应用最多、最成熟的方法,比如ORB-SLAM使用的ORB特征、VINS-Mono使用的FAST特征等都是传统的特征点。深度学习的方法在特征检测上表现了优异的性能,但是:

(1)存在模型不可解释性的问题;

(2)在检测和匹配精度上仍然没有超过最经典的SIFT算法。

(3)大部分深度学习的方案在CPU上运实时性差,需要GPU的加速。

(4)训练需要大量不同场景的图像数据,训练困难。

本文最后的Homograpyhy Estimation指标,SuperPiont超过了传统算法,但是评估的是单应变换精度。单应变换在并不能涵盖所有的图像变换。比如具有一般性质的基础矩阵或者本质矩阵的变换,SurperPoint表现可能不如传统方法。

[1] https://blog.csdn.net/qq_20791919/article/details/80176643

[2] https://its304.com/article/monk1992/93469078

[3] ORB: an efficient alternative to SIFT or SURF. In Proceedings of IEEE International Conference on Computer Vision, 06-13,

[4] Detone, D., Malisiewicz, T., & Rabinovich, A. (2017). SuperPoint: Self-Supervised Interest Point Detection and Description.

本文仅做学术分享,如有侵权,请联系删文。

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进4.国内首个面向工业级实战的点云处理课程5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

16.基于Open3D的点云处理入门与实战教程

扫码添加小助手微信,可

也可申请加入我们的细分方向交流群,目前主要有等微信群。

一定要备注:,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。也请联系。

▲长按加微信群或投稿

▲长按关注公众号

:针对3D视觉领域的五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

标签: ld11传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台