APP下载

基于ORB算法与神经网络的图像特征点提取方法

2020-04-08赵旭张建伟梁斌斌

现代计算机 2020年7期
关键词:置信度损失标签

赵旭,张建伟,梁斌斌

(1.四川大学计算机学院,成都 610065;2.四川川大智胜软件股份有限公司,成都 610045)

0 引言

在计算机视觉处理中,特征指的是能够解决某种特定任务的信息。图像局部特征在目标识别、目标跟踪、目标匹配、三维重建、图像检索等应用中发挥着重要的作用。它是近20年来在计算机视觉领域中研究的热点问题之一,特征点是图像局部特征重要的一部分。目前存在着大量的特征点及角点算法,如:SIFT[1]、SURF、ORB(Oriented FAST and Rotated BRIEF)[2]、FAST、Shi-Tomasi等,其中具有代表性的算法是SIFT算法,这个经典的图像特征点算法具有很多优秀的性质,例如旋转不变性、多尺度等,但是复杂度高,耗时长,且已经申请了专利保护,本文选取了ORB算法作为目标特征点,ORB算法速度相当快,效果也不错,是开源的算法。这些算法本文统称为传统算法,传统算法在提取特征点时,会受到图像质量的影响,因为传统算法都是在灰度图上进行,算法的效果与图像对比度以及清晰程度关联很大,现实场景中图像可能受到噪声的影响,噪声的因素是多方面的,通常在实际应用中,受环境光照强度的影响,图像可能出现过曝、欠曝,导致图像对比度不稳定,这会影响后续算法,例如图像匹配、图像拼接等,导致以图像特征点算法为基础的系统不能很好的运行。而且采集的图像一般是三通道的彩色图像,传统方法也没有充分利用图像通道上的信息。

本文提出以神经网络的方法进行图像特征点提取,旨在提高特征点提取方法的鲁棒性,以适应宽泛的图像质量情况。以Caltech 101[3]数据集作为网络训练、验证及测试的数据集,输入三通道的彩色图像,充分利用图像信息,以残差结构[4]设计网络,再以ORB算法作为目标验证算法,ORB是一种快速特征点提取的开源算法,由于其开源及快速的原因,在工程中应用相当广泛,同时存在上述所说的传统算法的缺点,所以本文以ORB算法提取到的特征点作为标签,将网络结果与ORB算法提取的结果进行对比。实验整体流程如图1所示:

图1整体实验流程

1 方法概述

网络以ORB特征点为目标,图像通过网络输出的每个像素是特征点的置信度和ORB特征点的属性:角度值和响应值,接着通过阈值筛选出置信度较大的像素点作为图像特征点。方法整体逻辑如图2所示:

图2算法流程

1.1 数据集制作

本文使用的Caltech 101数据集一共有101类,大多数类别有50张左右的图像,图像大小为(300,200),在读取时将图像resize到统一的(128,128)大小,这些类别大多是生活的物体,纹理丰富,能够用ORB算法提取到数量合适的特征点。数据集共有9144张图像,其中5000张作为训练集,2000张作为验证集,2144张作为测试集。标签制作,标签是ORB特征点的属性,以及特征点的位置,这里有两种保存方式,一种是保存每个像素点自己是否是特征点,如果是则为1,不是为0,属性保存角度值和响应值,所以和图像大小一样;另一种保存方式是只保存特征点的信息,包括横纵坐标值和两个属性值。实验对两种保存方式进行了对比之后,选择了第二种方式,第一种方式虽然在形式上和代码处理上较第二种方便,但是占用空间较大,数据集共有131M,加上第一种方式保存的标签之后,共有5.7G,而第二种方式一共仅占184M。每个标签和图像同名并放置在同一文件夹下,这样在检查标签是否对应图像时较为方便。由OpenCV实现的ORB算法生成特征点,将图像对应的特征点写入到文件,实验中采用NumPy库保存,因为由NumPy读取的数据可以较为方便的与各个神经网络框架封装的张量相互转换。特征点标识在原图上的结果如图3所示。

图3 ORB特征点

每张图像在输入时按照一定的几率,进行对比度降低、运动模糊和高斯模糊预处理,如图4所示,这样做的好处是,输入的图像进行了预处理,而标签是原图所得到的,这样建立了图像与标签之间多对一的关系,这样对输入的图像有更好的适应性,提高了方法的鲁棒性。同时为了加速训练,用了Min-Max scaling归一化方法对标签值进行处理,使得坐标值、角度值及响应值都压缩到了0到1之间。

图4图像预处理前后对比

1.2 网络结构设计

网络结构采用了当前流行的残差结构,这种结构能使网络结构更深,在训练时根据损失值,更灵活的调整网络结构的深浅,设计时参考了在超分辨率领域比较成功的网络SRGAN[4]。在实验开始阶段,采用较浅的残差模块,观察损失变化情况,当损失在某个值的领域范围内震荡时,适当加深残差结构,最后采用16层的残差结构。本文统一采用大小为(128,128,3)的图像进行输入,输入批量为16,卷积核大小统一为(3,3),激活函数统一为LeakyReLU[5],超参数的设定参考了YOLOv3[6]。为了使训练稳定,网络中间加入了Batch Normalization[7]。网络输出结构与图像大小一致,输出三通道用c1,c2,c3表示,c1为置信度,即本身这个点是否为特征点,c2表示特征点的角度值,c3表示特征点的响应值。网络总体结构如图5所示。

图5网络结构

为了加速训练神经网络,本文实验采用NVIDIA RTX 2080Ti显卡,当输入批量为16时,网络参数加载到显卡大约需要8G的显存。网络在一个批量上完成一次训练所花时间在0.4s左右。得到的网络输出后并不直接计算损失函数,一方面网络层数深,标签都是0到1之间的值,如果直接预测一个小余1的数,这样输出层会输出一个很小的值,会导致权重都很小,这样不利于网络训练,所以这里参考了YOLOv3的损失函数设计,将输出层都经过Sigmoid函数处理后,输出层的值都被压缩到了0到1之间,此时将压缩后的输出和标签值传入损失函数中计算损失。

1.3 损失函数设计

损失函数从三个方面考虑,即置信度、角度值、响应值。置信度看作是对特征点和非特征点进行分类,采用的是交叉熵损失。由于平均一幅图像有100个特征点左右,所以大部分都不是特征点,意味着负样本远大于正样本,为了使训练均衡,加入了非特征点的损失,并且非特征点的权重是特征点权重的60倍,这个超参数越大越抑制非特征点的区域。判断像素点是否是特征点,需要根据标签进行推断,由标签生成掩膜,即“特征点掩膜”和“非特征点掩膜”,两个掩膜对应坐标上的值应该是相反的关系。由于采用的第二种存储方式,需要先准备好两个和图像一样大小的二维数组,分别表示每个像素点的横纵坐标,这样做的目的是直接利用数组切片快速的取出数组值,避免了遍历图像,要知道遍历一次图像的时间复杂度是O(n2)的。输出变换如图6所示。

图6输出变换

置信度的相关损失函数如下:

而角度值和响应值是完成回归任务,采用的是均方误差损失。需要注意的是,只对是特征点的部分计算角度值和响应值算损失,对于不是特征点的部分不参与角度值和响应值损失计算当中。角度值损失函数和响应值损失函数分别为公式(4)、(5):

总的损失由两类损失合并起来,如公式(6)所示:

上述公式符号说明,f_m是有特征点的掩膜,nonf_m是没有特征点的掩膜,Output为网络输出,其中Outputconf为输出的置信度,Outputangle为输出的角度值,Outputresponse为输出的响应值,BCE和MSE是交叉熵函数和均方误差函数,Sfeature和Snonfeature是对有特征和无特征的损失系数,实验中分布取1和1000。目的是抑制错误的输出,提高预测的真实性。

2 方法结果分析

在训练过程中,损失在前20个epoch时,下降得较快,之后在1.3左右震荡,最后稳定在0.2到0.3之间。为了更好掌握网络的训练情况,实验中增加了有特征点区域置信度均值、无特征点区域置信度均两个指标,分别用f_conf和nonf_conf表示,两个指标都是介于0到1之间的小数,f_conf越大说明,预测得越准,与真实的ORB特征点越接近,nonf_conf越小说明,错误的预测越少。两个指标并不是同时朝着理想的方向发展,一开始是都减小,nonf_conf最终稳定在0.01左右。f_conf先减小后增加,最后达到了0.8左右。

网络输出转换为特征点有三步,首先需要根据阈值对置信度进行筛选,一般取阈值0.5,然后将数据做归一化逆变换,最后将逆变换后的数据包装为关键点类,预测出的关键点如图7所示:

图7预测特征点

调节置信度的阈值,可以在特征点数量和准确率之间折中,置信度越低,可以得到越多的预测点。和ORB算法得到的特征点相比较,点的分布大致相同,说明网络学到了如何寻找ORB特征点。同置信度阈值效果和ORB特征点比较如图8所示。

使用低对比度和模糊的图像验证网络的鲁棒性,对于进行了预处理后网络输出与不进行预处理的输出总体分布相近,数量有所减少。对比情况如图9所示。

图8不同置信度阈值

图9模糊和低对比度的输入

3 结语

本文通过构建神经网络的方式去完成图像特征点的提取,是一种新颖的特征点提取方法。利用神经网络学习的机制,用多对一的思想解决特征点提取依赖图像质量的问题,这也是在神经网络中常用的方法。最终实验表明,网络可以在图像质量不佳的情况下,依然有较稳定的特征点预测。但本文和算法亦存在改进的地方:

(1)训练时间可以加长,进一步提升准确率。

(2)增加来自于相机采集时的噪声,可以进一步提高方法鲁棒性。

猜你喜欢

置信度损失标签
基于数据置信度衰减的多传感器区间估计融合方法
洪涝造成孟加拉损失25.4万吨大米
一种基于定位置信度预测的二阶段目标检测方法
两败俱伤
不害怕撕掉标签的人,都活出了真正的漂亮
校核、验证与确认在红外辐射特性测量中的应用
让衣柜摆脱“杂乱无章”的标签
科学家的标签
科学家的标签
损失