技术领域
本发明涉及智能机器人的SLAM技术领域,特别是指一种基于目标检测网络的闭环检测方法。
背景技术
同步定位与地图构建(Simultaneous localization and mapping,简称SLAM)是移动机器人研究技术中的核心问题之一,相较于激光传感器,图像传感器采集的信息具有更加丰富的纹理信息和场景辨识能力。如今随着计算机计算性能的提升和计算机视觉技术的发展,视觉SLAM方案也愈发成熟,在视觉SLAM系统中,前端估计产生的误差会不断积累,因此机器人在长时间运动后会产生较大的累计误差,最终导致构图和定位的失败。闭环检测通过场景识别的方式,可以解决位置估计随时间漂移的问题,从而消除累计误差的影响。
闭环检测实质上是一种计算图像数据相似度的算法。假设机器人经过一段时间的运动后回到原点,但是由于误差漂移的原因,前端估计模块计算的位置坐标并不是原点,此时就可以使用闭环检测方法把原点“识别”出来,然后对位置坐标和全局地图进行修正。目前主流的闭环检测是基于视觉词袋模型(DBoW)实现的,即使用SIFT(Scale-invariantfeature transform,尺度不变特征变换)、SURF(Speeded-Up Robust Features,加速稳健特征)、ORB(Oriented Fast and Rotated BRIEF,定向快速和旋转独立特征)等人工设计的图像特征生成视觉词袋,然后使用视觉词袋描述图像,通过描述向量的相似性判断是否产生闭环。但是使用人工设计的图像特征面临如下两个问题:一是难以设计通用的图像特征最优的表示不同场景下的图像信息,二是面对光照变化、动态目标、纹理单一的环境时难以保持较好的鲁棒性。
发明内容
本发明实施例提供了基于目标检测网络的闭环检测方法,能够解决现有技术存在的使用人工设计的图像特征进行闭环检测,存在特征设计困难,鲁棒性差的问题。所述技术方案如下:
本发明实施例提供了一种基于目标检测网络的闭环检测方法,该方法包括:
采集环境的图像,制作数据集;
构建目标检测网络,利用所述数据集对构建的目标检测网络进行训练;其中,训练好的目标检测网络能够输出图像的特征向量并定位出图像中的移动物体;
利用训练好的目标检测网络处理机器人实时采集的图像,当检测到移动物体时,对移动物体区域进行背景修复处理后,重新输入目标检测网络生成新的特征向量,对新生成的特征向量进行主成分分析后,得到图像的描述向量,将该描述向量与特征库中的描述向量进行相似度计算,如果相似度大于预设的阈值,则检测到闭环;否则,则没有发生闭环。
进一步地,所述数据集包括:训练集和测试集;
所述采集环境的图像,制作数据集包括:
在一天的不同时刻,使用机器人携带的图像传感器采集环境的图像,利用标注工具标注出图像中的移动物体,并将其记录在标注文件中,随机选取一部分图像和对应的标注文件作为训练集,剩余的图像和对应的标注文件作为测试集。
进一步地,所述构建目标检测网络,利用所述数据集对构建的目标检测网络进行训练包括:
选择教师网络,构建目标检测网络,其中,所述目标检测网络包括:特征网络和检测网络,所述特征网络的结构以选择的教师网络为基准;
输入所述数据集,利用知识蒸馏技术训练特征网络,在训练后的特征网络的基础上训练检测网络,联合特征网络和检测网络的损失函数,利用所述数据集对整个目标检测网络进行微调训练。
进一步地,所述输入所述数据集,利用知识蒸馏技术训练特征网络包括:
将训练集图像同时输入特征网络和教师网络,其中,经过教师网络的前向推论和Softmax(T)操作后,得到训练集图像的类别概率分布T-Prob,经过特征网络的前向推论和Softmax(T)操作后,得到训练图像的类别概率分布G-Prob,其中,T表示温度系数;
利用KL散度公式衡量T-Prob和G-Prob的近似程度,作为特征网络的损失函数;
计算特征网络的损失函数值后进行反向传播,其中,每训练一轮后都在测试集上进行测试,如果在测试集上的特征网络的损失函数值增大,则提前结束训练,否则继续训练,直至当前迭代次数大于等于预设的训练次数。
进一步地,特征网络的损失函数表示为:
其中,loss1表示特征网络的损失函数值,KL()表示散度公式,x表示神经网络的权重参数。
进一步地,所述在训练后的特征网络的基础上训练检测网络包括:
固定特征网络的权重参数,利用特征网络提取的图像的特征向量训练检测网络;
其中,在检测网络的训练过程中,以训练集中的标注文件作为检测网络的标签,计算检测网络的损失函数值loss2。
进一步地,所述联合特征网络和检测网络的损失函数,利用所述数据集对整个目标检测网络进行微调训练包括:
特征网络、检测网络和教师网络载入对应的权重文件;
联合loss1和loss2,得到整个目标检测网络的损失函数total_loss;
根据得到的目标检测网络的损失函数total_loss,利用所述数据集对整个目标检测网络进行微调训练。
进一步地,目标检测网络的损失函数total_loss表示为:
total_loss=loss1*(1-α)+loss2*α
其中,α表示权重系数。
进一步地,所述方法还包括:
当没有检测到移动物体时,对目标检测网络输出的特征向量进行主成分分析得到图像的描述向量,将该描述向量与特征库中的描述向量进行相似度计算,如果相似度大于预设的阈值,则检测到闭环,如果小于预设的阈值,则没有发生闭环,并将当前的位置信息和该描述向量加入到特征库中。
本发明实施例提供的技术方案带来的有益效果至少包括:
本发明实施例中,通过目标检测网络对环境的图像进行特征提取和移动物体检测,并对检测的移动物体区域进行背景修复处理以降低移动物体的干扰,再使用主成分分析得到图像的描述向量进行闭环检测,实现识别相同场景的功能。相比于现有技术,本发明获取的图像描述向量更具有普适性,而且对于动态场景也具有更好的鲁棒性,从而解决现有技术存在的使用人工设计的图像特征进行闭环检测,存在特征设计困难,鲁棒性差的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于目标检测网络的闭环检测方法的流程示意图;
图2为本发明实施例提供的基于目标检测网络的闭环检测方法的详细流程示意图;
图3为本发明实施例提供的使用知识蒸馏技术训练特征网络的流程示意图;
图4为本发明实施例提供的检测网络的结构示意图;
图5为本发明实施例提供的在New College数据集上采用不同方法进行闭环检测的性能曲线对比示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
如图1所示,本发明实施例提供了一种基于目标检测网络的闭环检测方法,该方法包括:
S101,采集环境的图像,制作数据集;
S102,构建目标检测网络,利用所述数据集对构建的目标检测网络进行训练;其中,训练好的目标检测网络能够输出图像的特征向量并定位出图像中的移动物体;
S103,利用训练好的目标检测网络处理机器人实时采集的图像,当检测到移动物体时,对移动物体区域进行背景修复处理后,重新输入目标检测网络生成新的特征向量,对新生成的特征向量进行主成分分析(PCA)后,得到图像的描述向量,将该描述向量与特征库中的描述向量进行相似度计算,如果相似度大于预设的阈值,则检测到闭环;否则,则没有发生闭环。
本发明实施例所述的基于目标检测网络的闭环检测方法,通过目标检测网络对环境的图像进行特征提取和移动物体检测,并对检测的移动物体区域进行背景修复处理以降低移动物体的干扰,再使用主成分分析得到图像的描述向量进行闭环检测,实现识别相同场景的功能。相比于现有技术,本发明获取的图像描述向量更具有普适性,而且对于动态场景也具有更好的鲁棒性,从而解决现有技术存在的使用人工设计的图像特征进行闭环检测,存在特征设计困难,鲁棒性差的问题。
本实施例中,所述目标检测网络为one-stage(单阶段)目标检测网络。
在前述基于目标检测网络的闭环检测方法的具体实施方式中,进一步地,所述数据集包括:训练集和测试集;
所述采集环境的图像,制作数据集包括:
在一天的不同时刻,使用机器人携带的图像传感器采集环境的图像,利用标注工具标注出图像中的移动物体,并将其记录在标注文件中,随机选取一部分图像和对应的标注文件作为训练集,剩余的图像和对应的标注文件作为测试集。
本实施例中,例如,可以将摄像头固定到机器人TurtleBot2上,然后移动机器人采集环境中的图像,并使用标注工具labelimg标注出图像中的移动物体,标注数据保存成XML文件(即:标签),随机选取90%的图像和对应的标注文件作为训练集,剩余的图像和对应的标注文件作为测试集。
在前述基于目标检测网络的闭环检测方法的具体实施方式中,进一步地,如图2、图3和图4所示,所述构建目标检测网络,利用所述数据集对构建的目标检测网络进行训练包括:
选择教师网络,构建目标检测网络,其中,所述目标检测网络包括:特征网络和检测网络,所述特征网络的结构以选择的教师网络为基准;
输入所述数据集,利用知识蒸馏技术训练特征网络,在训练后的特征网络的基础上训练检测网络,联合特征网络和检测网络的损失函数,利用所述数据集对整个目标检测网络进行微调训练。
本实施例中,首先构建特征网络,特征网络的输入是原始图像,输出是图像的特征向量;然后在特征网络的基础上构建检测网络,检测网络的输入是特征网络池化层前后的两个特征向量,输出是目标检测结果,即:定位出的图像中的移动物体。
本实施例中,选择的教师网络是在ImageNet数据集上训练好的ResNet50。
本实施例中,为了更好地理解ResNet50,先对ResNet进行说明,ResNet是一种残差神经网络,指的是在传统卷积神经网络中加入残差学习的思想,解决深层网络中梯度弥散和精度下降的问题,使网络能够越来越深,既保证了精度,又控制了速度。
本实施例中,所述ResNet50指的是深度为50的残差神经网络,其中深度是指“需要通过训练更新参数”的层数,如卷积层,全连接层等。首先,网络的第一层,即图3教师网络中的Layer-1为7*7*64的卷积层;然后从Layer-2开始,经过16个残差学习模块,每个残差学习模块包含3个卷积层,有16*3=48层;最后经过一个用于分类的全连接层,即Layer-n。所以一共有1+48+1=50层。
本实施例中,特征网络的结构设计以教师网络为基准,通过减少网络的深度和网络中间层的通道数两方面进行重构。本实施例使用的特征网络为Net3网络,数字3表示该网络的残差学习模块的个数。在特征网络中,输入416*416*3的图片(或图像),经过特征网络的第一层,即图3特征网络的Layer-1为1*1*32的卷积层,输出416*416*32的特征图;从Layer-2开始,经过了3个残差学习模块和一个卷积层,输出26*26*1024的特征图;对特征图进行池化操作,输出维度为13*13*1024的特征图(即:特征网络输出的图像的特征向量),最后经过全连接层,即图3中特征网络的Layer-m层后,其输出尺寸是1*1*1024。
本实施例中,检测网络的网络结构如图4所示,由6个卷积层(conv)、1个上采样层(upsample)、1个拼接层(shortcut)组成。基于one-stage算法思想,直接在特征图上对目标的类别、置信度和位置进行回归预测。
本实施例中,检测网络的输入是两个特征图,尺寸分别为13*13*1024和26*26*1024,其中,第一个输入特征图(尺寸为13*13*1024的特征图)是特征网络进行池化操作后的输出特征图,第二个输入特征图(尺寸为26*26*1024的特征图)是特征网络输出的未进行池化操作的特征图。第一个输入特征图经过第一个卷积层conv1,其卷积核个数为256,其输出的特征图尺寸为13*13*256;第二个卷积层conv2的卷积核个数为512,其输出的特征图尺寸为13*13*512;第三个conv3卷积层的卷积核个数为25,其输出的特征图尺寸为13*13*75;第四个卷积层conv4的卷积核个数为128,其输出的特征图尺寸为13*13*128;之后经过一个上采样层upsample5,将特征图尺寸扩大为26*26*128;接下来的拼接层shortcut6将上采样层输出的特征图和检测网络的第二个输入特征图进行拼接,得到尺寸为26*26*1152的特征图;之后特征图经过第五个卷积层conv7,其卷积核个数为256,其输出特征图尺寸为26*26*256;最后,第六个卷积层,其卷积核个数为75,其输出特征图尺寸为26*26*75。
本实施例中,检测网络的输出是两个矩阵,包括:13*13*75的矩阵A和26*26*75的矩阵B,在特征图的每个像素点上会有3个边框检测器,每个边框检测器预测25个值,分别是边框中心点坐标信息、边框长度和宽度信息、边框内有物体的置信度,以及20种类别概率,多尺度输出保证了检测网络可以检测图像中不同尺寸的物体。在矩阵A表示的输出中,图像尺寸被压缩了32倍,故一个检测器的感受野是32*32,负责检测大物体;在矩阵B表示的输出中,图像尺寸被压缩了16倍,故一个检测器的感受野是16*16,负责检测小物体。将矩阵像素中的检测器映射到416*416的原图中,即可预测所有检测框的位置和大小,以及框内有物体的概率和物体的类别概率。
为了更好地理解大物体和小物体,对其作简要说明:
对原图中的同一个物体被压缩了32倍和压缩了16倍这两种情况而言,是压缩了32倍的图像的单个像素表示的物体大小更大一些。因此同样都是检测同一个像素中的物体,A矩阵的检测器检测的物体比B更大,因此,矩阵A负责检测大物体,矩阵B负责检测小物体。
本实施例中,采用分步训练的方式训练目标检测网络,首先使用知识蒸馏技术训练特征网络;然后,在训练后的特征网络的基础上训练检测网络;最后,联合特征网络和检测网络的损失函数作为整个目标检测网络的损失函数,利用所述数据集对整个目标检测网络进行微调训练。
在前述基于目标检测网络的闭环检测方法的具体实施方式中,进一步地,所述输入所述数据集,利用知识蒸馏技术训练特征网络包括:
A1,将训练集图像同时输入特征网络和教师网络,其中,经过教师网络的前向推论和Softmax(T)操作后,得到训练集图像的类别概率分布T-Prob,经过特征网络的前向推论和Softmax(T)操作后,得到训练图像的类别概率分布G-Prob;
本实施例中,Softmax(T)操作可以表示为:
其中,T表示温度系数,可以调节相似类别的相似程度;z表示全连接层的输出,z
A2,利用KL(Kullback and Leibler,公式发明者名称)散度公式衡量T-Prob和G-Prob的近似程度,作为特征网络的损失函数:
其中,loss1表示特征网络的损失函数值,KL()表示散度公式,x表示神经网络的权重参数。
本实施例中,将教师网络的输出作为特征网络的标签,计算特征网络的损失函数值loss1;且T-Prob和G-Prob越接近,loss1的值越小。
A3,计算特征网络的损失函数值后进行反向传播,其中,每训练一轮后都在测试集上进行测试,如果在测试集上的特征网络的损失函数值增大,则提前结束训练,否则继续训练,直至当前迭代次数大于等于预设的训练次数。
本实施例中,特征网络的输入图像的尺寸是416*416*3,输出的特征向量维度是1000。在训练特征网络之前,需要对输入图像进行填充和规范化处理,然后设置批处理(batch)等于64,温度系数T等于2,优化函数选择Adam,训练次数为560次。
在前述基于目标检测网络的闭环检测方法的具体实施方式中,进一步地,所述在训练后的特征网络的基础上训练检测网络包括:
固定特征网络的权重参数,利用特征网络提取的图像的特征向量训练检测网络;
其中,在检测网络的训练过程中,以训练集中的标注文件作为检测网络的标签,计算检测网络的损失函数值loss2。
本实施例中,特征网络载入其权重文件,检测网络权重随机初始化,多次训练得到性能较好的检测网络,保存其权重文件。
在前述基于目标检测网络的闭环检测方法的具体实施方式中,进一步地,所述联合特征网络和检测网络的损失函数,利用所述数据集对整个目标检测网络进行微调训练包括:
B1,特征网络、检测网络和教师网络载入对应的权重文件;
B2,联合loss1和loss2,得到整个目标检测网络的损失函数total_loss:
total_loss=loss1*(1-α)+loss2*α
其中,α作为权重系数,用于调节loss1和loss2对total_loss的贡献大小,进而调节整个目标检测网络的精度。
B3,根据得到的目标检测网络的损失函数total_loss,利用所述数据集对整个目标检测网络进行微调训练。
本实施例中,根据得到的目标检测网络的损失函数total_loss,利用所述数据集对整个目标检测网络进行100次微调训练,即得到用于闭环检测的目标检测网络。
在前述基于目标检测网络的闭环检测方法的具体实施方式中,进一步地,所述方法还包括:
当没有检测到移动物体时,对目标检测网络输出的特征向量进行主成分分析得到图像的描述向量,将该描述向量与特征库中的描述向量进行相似度计算,如果相似度大于预设的阈值,则检测到闭环,如果小于预设的阈值,则没有发生闭环,并将当前的位置信息和该描述向量加入到特征库中。
本实施例中,假设TurtleBot2机器人在陌生的环境中进行移动,摄像头每隔100帧采集一张图像送入目标检测网络中,利用目标检测网络进行闭环检测,具体实施过程如下:
C1,利用训练好的目标检测网络处理TurtleBot2机器人实时采集的图像,其中,目标检测网络的输出包括:图像特征向量和移动物体检测结果;
C3,当没有检测到移动物体,则对目标检测网络中特征网络输出的特征向量进行主成分分析后得到图像的描述向量,然后将该描述向量和特征库中的描述向量进行相似度计算,如果相似度大于预设的阈值,则检测到闭环;如果小于预设的阈值,则没有发生闭环,并将当前的位置信息和该描述向量加入到特征库中。
C4,如果检测到移动物体时,则对移动物体区域进行背景修复处理后,重新送入目标检测网络中特征网络中的特征网络生成新的维度为1000的特征向量(只需要执行特征网络部分),对新生成的特征向量进行主成分分析后得到维度为512的图像的描述向量,将该描述向量与特征库中的描述向量进行相似度计算,如果相似度大于预设的阈值,则检测到闭环;否则,则没有发生闭环,且考虑到存在移动物体的干扰,不需要将该描述向量加入到特征库中。
为了验证本发明实施例所述的基于目标检测网络的闭环检测方法的有效性,使用本发明所述的方法(简称:CNN)及现有的方法(DBoW)在公开数据集New College上进行性能测试,从图5中可以看到,在保证精确率(precision)的情况下,和传统方法相比,本发明可以提高8%的召回率。
综上所述,本发明实施例所述的基于目标检测网络的闭环检测方法具有以下优点:
1)训练好的目标检测网络利用深度学习算法提取图像的特征,相比于传统方法,端到端的实现方式更具有通用性,基于大量图像训练提取的特征向量也可以更优的表示图像。
2)训练好的目标检测网络可以对动态场景下的移动物体进行检测,显著提高了闭环检测应对动态场景的鲁棒性;
3)对检测到的移动物体区域进行背景修复处理,这样,利用移动物体周围的环境信息,对移动物体区域进行背景填充,从而削弱移动物体对闭环检测的影响。
4)对目标检测网络输出的特征向量进行主成分分析,生成图像的描述向量;这样,一方面可以降低描述向量的维度,提高向量相似度计算的效率,另一方面可以减少向量内部数据的相关性,得到性能更好的描述向量。
5)实现闭环检测,这样,考虑到相邻图像之间普遍具有相似性,因此根据机器人移动速度选择合适的帧间隔进行闭环检测,若两个描述向量相似度大于预设的阈值,则认为发生闭环。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 利用基于振动传感器的主动阈值的目标检测系统,该方法能够通过逐步通知目标状态的风险来降低假警报的发生率,并提供了一种目标检测方法
机译: 基于径向基函数网络的基于主成分分析的运动目标检测方法及装置
机译: 一种基于纳米蛋白和融合蛋白结合剂的生物目标检测方法