一种基于卷积神经网络的自适应场景双目立体匹配方法与流程

文档序号:19741560发布日期:2020-01-18 05:18阅读:246来源:国知局
一种基于卷积神经网络的自适应场景双目立体匹配方法与流程
本发明属于车联网领域,具体涉及一种基于卷积神经网络的自适应场景双目立体匹配方法。
背景技术
:伴随着汽车制造行业、集成电路行业的快速发展,汽车电子技术的不断提高,高级辅助驾驶系统应运而生。该项技术通过人工智能、图像识别等技术来完成障碍物的检测、测距,能够帮助司机准确判断汽车前方道路的状态,避免很多安全问题的发生。当前检测车辆前方障碍物的做法分成两大类:一是利用激光雷达、毫米波雷达等这类主动传感器,主要通过传感器获取前方障碍物的距离信息;二是利用摄像头这种被动传感器,通过对图像的分析和理解,从而获取障碍物的距离。基于摄像头的障碍物检测和测距的方法又分为单目视觉方法和双目视觉方法,双目视觉由人类的双眼原理衍生而得,有着天然的优势。双目视觉方法最关键的一步是立体匹配,严格来说,提高立体匹配准确度和实时性也就是提高双目视觉方法的准确度和实时性。当前得益于计算资源的发展,早期因立体匹配的计算量大而无法实时的问题现在得以解决。而目前亟需解决的问题是提高立体匹配算法在不同场景下的准确度和鲁棒性。基于视觉的环境感知技术中,处理对象的唯一输入源是一幅幅二维图像,根据成像原理可知,图像受光线强度值的影响非常大,而光线的强度值会受到天气、周围环境等影响,这种影响不仅会影响人眼的误判,更成为视觉感知技术中最严重的问题。现有的基于双目视觉做障碍物检测和测距技术最大的缺点是对真实环境的鲁棒性较差,这些双目视觉系统往往在某一场景或者某一数据集中有良好的性能,而真实环境一旦变化,系统性能往往也有较大波动。比如,有的双目视觉系统在室内环境性能良好,但到室外环境性能可能明显变差;甚至有的双目视觉系统在室外的不同场景下,性能都有很大的差别。这是双目视觉系统普及程度不够高的一大问题。基于多特征融合的多尺度立体匹配算法虽然能提高立体匹配在不同场景的鲁棒性,但是该算法最大的缺点是需要根据场景的亮度和纹理特征来手动调整特征融合的参数,而在真实应用环境中,双目立体匹配过程需要能自动适应环境,并调整特征融合的参数。技术实现要素:本发明的目的是通过以下技术方案实现的。针对上述问题,本发明主要解决现有双目视觉立体匹配方法不能自动适应场景的问题。本发明可以为双目视觉应用提供更准确和更鲁棒的匹配算法,以使得双目视觉能在汽车辅助驾驶/无人驾驶、无人机、三维重建、虚拟/增强现实等领域得到更普遍的应用。根据本发明的一个方面,提出了一种基于卷积神经网络的自适应场景双目立体匹配方法,包括:判断是否有已训练好的深度神经网络模型,如果已有训练好的深度神经网络模型,则直接加载网络模型参数,同时将检测出的目标车辆图像坐标作为所述深度神经网络模型的输入,然后通过前向传播算法预测距离数据;如果没有训练好的深度神经网络模型,则加载包含目标车辆图像坐标的训练样本,然后通过深度神经网络模型对样本进行训练,以计算网络模型参数并存储。优选的,所述深度神经网络模型的输入数据是由双目摄像头输出并经校正后的左、右两幅图像。优选的,所述训练的过程为:所述左、右图像经过自适应场景检测算法获取图像的亮度特征和纹理特征的权重值;匹配代价聚合,并计算和优化视差图;利用摄像头的内、外参数将二维图像重投影到三维空间,根据三维空间的高度和深度信息检测出潜在障碍物。优选的,所述深度神经网络模型由两个子网络组成,每个子网络为卷积神经网络联结通用回归网络的结构,卷积神经网络占整个网络模型的2/3,余下1/3为通用回归网络。优选的,所述训练样本经过增强处理,包括:随机选取1/5的训练样本添加高斯噪声;随机选取1/5的训练样本,在每幅图像中随机丢弃一个随机大小的矩形区域;随机选取1/5的训练样本做像素平滑化;随机选取1/5的训练样本,将rgb像素空间转换到hsv空间,并向hsv空间中的每个像素添加或减少一个随机v值,然后将处理后的hsv空间转换到rgb空间。优选的,所述训练的损失优化采用adam算法和随机梯度下降算法相结合的方式。优选的,所述训练使用动量学习率策略和学习率衰减策略。优选的,所述训练的批尺寸是64。优选的,基于l1、l2正则化方式以及随机丢弃方法来处理所述深度神经网络模型的过拟合状态。本发明的优点在于:利用神经网络对图像分类的准确性,在不同场景下,自动适应当前环境,以学习得到更精确的亮度属性和纹理属性。通过学习得到的属性值作为特征融合的权重值,既可达到自动适应不同场景的目的,又能保证利用这些学习的到的属性值获取更准确的深度图。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:附图1示出了根据本发明实施方式的立体匹配方法的数据流图;附图2示出了根据本发明实施方式的深度神经网络模型示意图;附图3示出了adam算法与随机梯度下降算法在小样本集上的训练误差曲线示意图;附图4示出了本发明的损失优化流程图;附图5示出了小样本集上的不同学习率对误差的影响示意图;附图6示出了本发明动量梯度下降对比图(左侧无动量);附图7示出了不同的拟合状态示意图;附图8示出了dropout算法示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。深度神经网络是机器学习诸多算法中的一类。它的核心思想是将特征的提取过程加入训练的过程中,能够按照层级结构提取低阶到高阶的特征,将特征进行更好的表示,利用在分层架构中的不同的信息处理阶段建立多层次结构。深度学习的崛起,背后的支撑是硬件性能的大幅度提示以及大数据时代的样本量急剧增长。深度神经网络采用的训练过程为:(1)前向传播的特征提取与预测计算。利用多层结构进行特征提取,这些方式中的参数的数量非常多,保证特征提取的泛化性。(2)后向传播的参数调整计算。在进行正向传播后,会将得到的结果与实际结果进行误差计算,将得到的误差反向传播,对损失函数进行损失函数优化,调整特征提取的多层结构中的参数,保证误差能够进一步下降。本发明使用的深度神经网络技术是基于学习的算法,故算法在流程上分为训练与预测两部分,需要先进行训练,得出模型后进行预测。流程图一开始首先判断是否有已训练好的模型参数,如果已有训练好的网络模型,则直接加载网络模型参数,同时将检测出的目标车辆图像坐标作为预测网络的输入,然后通过前向传播算法预测距离数据。反之,如果尚未找到训练好的网络模型,则加载包含目标车辆图像坐标的训练样本,然后通过深度神经网络模型对样本进行训练,以计算网络模型参数并存储。训练部分整体的流程图如图1所示,输入数据是由双目摄像头输出并经校正后的左、右两幅图像,左、右图像首先经过自适应场景检测算法获取图像的亮度特征和纹理特征的权重值。自适应场景检测的结果是根据原始图像的亮度、纹理属性做分类,使得在匹配代价计算时,能够自动根据图像所呈现出不同程度的亮度和纹理属性做加权匹配代价计算。接下来进行匹配代价的聚合,并计算和优化视差图,最后利用摄像头的内、外参数将二维图像重投影到三维空间,根据三维空间的高度和深度信息检测出潜在障碍物。通过样本学习,卷积层能够自动提取图像中的所隐含的具有强鲁棒性的互补特征。具体的,本发明的训练细节如下:1、自适应场景网络模型设计对于绝大多数情况下,非纹理区域的像素亮度是平滑的,同时存在均匀的差异。为了提高匹配性能,首先需要定位非纹理区域,然后对非纹理区域应用自适应平滑约束。然而,包括基于卷积神经网络在内的非纹理区域的匹配代价计算是不可靠的,这些区域的视差估计是密集立体匹配的主要难点。因此,为了提高匹配性能,通过找到非纹理区域,并在这些区域中应用自适应平滑约束。此外,在非纹理区域,通过计算颜色强度的差异,并结合基于卷积神经网络的匹配成本。为了找到非纹理区域,首先从输入图像i中提取梯度幅值分别为ig_x和ig_y,ig_x和ig_y分别表示在x和y方向上的梯度幅值,然后通过减去平均强度再除以标准差进行归一化。然后,通过使用一个阈值τ=0.1找到一个窗口,并声明窗口中的所有像素都属于非纹理区域。也就是说,将非纹理区域定义为包含像素p的31×31窗口,为了减少检测误差,将10个像素距离内的像素排除在非纹理区域之外。于是,如图2所示,本发明的深度神经网络模型由两个子网络组成,每个网络设计为卷积神经网络联结通用回归网络的结构。整个网络中,卷积神经网络占整个网络模型的2/3,余下1/3设计为通用回归网络。前2/3网络结构由卷积层和池化层构成。网络结构的设计中,前2/3的卷积层和后1/3的全连接层不是固定值,只要保证卷积层在全连接层的前面,同时卷积层的数量大于全连接层即可。2、样本的处理本发明的训练样本使用kitti数据集和middlebury数据集。kitti数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。middlebury数据集是明德学院(middleburycollege)提供的用于立体匹配的测试数据。虽然这两大数据集使用非常广泛且样本数量足够大,但为了增加场景的多样性、避免训练出现过拟合的现象,本发明需要对这两大数据集进行样本增强处理。增强处理步骤如下:s1.随机选取1/5的训练样本添加高斯噪声;s2.随机选取1/5的训练样本,在每幅图像中随机丢弃一个随机大小的矩形区域(说明:这个随机大小的矩形区域需要限制在3x3~9x9范围内);s3.随机选取1/5的训练样本做像素平滑化;s4.随机选取1/5的训练样本,将rgb像素空间转换到hsv空间,并向hsv空间中的每个像素添加或减少一个随机v值,然后将处理后的hsv空间转换到rgb空间。样本处理中,增强的样本数不限于1/5,1/10~1/2中的任意比例作为训练样本均可。3、模型训练3.1.损失函数优化算法本发明首先进行了不同优化算法的比较与选择,实验结果表明,自适应优化算法具有在迭代初期的快速下降特性,但其收敛效果不如经过手工调整参数的随机梯度下降,为了结合两者的优点,本发明设计了相关策略。之后对随机梯度算法进行了优化,加入了动量因子与衰减率,保证在收敛阶段能够取得更高的性能,批尺寸(batchsize)的选择过程受限于显卡显存大小,最终选择的批尺寸保证了在当前硬件条件下的速度与负载的平衡。最后对模型可能会出现的过拟合状态进行了限制,通过添加正则项以及在全连接层使用随机丢弃(dropout)方式来提高模型的泛化性能。在模型训练即参数的调节与效果评价部分,由于每进行一次完整的训练将耗时接近5天,所以将每组参数与优化器进行全部尝试一遍的方式并不可行,故将样本随机分为了数量相等的五份,在五个样本集上使用相同的参数,取最终结果的均值代表其最终效果,这也将一次的完整训练时间缩减到了2天内。在完成了参数调节后,将最终参数带入模型中进行全数据的训练,得到完整的模型。由于深度卷积神经网络结构的特殊性,模型训练过程意味着选择损失函数优化器并调节许多超参数的过程,这些超参数的调节并没有太多的理论指导,通常根据实验效果所确定,超参数涉及到算法实际运行的方方面面,有的会影响运行的存储成本及时间,还有一些会影响到最终的模型准确率等性能。在一个模型取得较好效果的训练过程中,对模型的内部参数的调整会起到极为重要的作用。研究人员之所以使用各种优化策略和算法来进行训练过程的优化,其目的都是为了使模型逼近或达到最优值,达到在当前数据下的性能极限。模型的训练过程可以总结为让损失函数逐渐下降的过程,这个下降过程中所用到的算法就被称为优化算法。本发明中,考虑如果使用全程的随机梯度下降法所需的训练过程时间较长,大部分时间集中在显著下降阶段,而收敛阶段的训练时间相对较短。按照对人工调节的依赖性来划分,优化算法可分为人工调节的优化算法与自适应的优化算法,常见的人工调节的优化算法如梯度下降、随机梯度下降、带有动量的随机梯度下降,都需要进行学习率的设定,而自适应的优化算法如adam算法,并不需要进行学习率的设定。图3为adam算法与随机梯度下降算法在小样本集上的训练误差曲线示意图。如图3所示,在损失优化过程的初期,随机梯度下降算法相较于自适应算法adam来说损失函数下降更为缓慢,但在收敛阶段,随机梯度下降算法能够取得更好的效果,为了结合两者的优点,本发明采用adam作为前三分之一轮数的初始化优化算法,目的是为了尽快的下降到一个较为平稳的位置,在后三分之二轮数的损失函数优化过程中使用了随机梯度下降算法,目的是取得更好的收敛性。本发明采用损失优化算法流程图如图4所示。3.2.学习率学习率可能是最重要的超参数,相对于其他的超参数,它控制模型的有效容量的方式更为复杂:当学习率适合优化问题时,模型的有效容量最高,此时学习率是恰当的、合适的,既不会特别大也不会特别小。学习率和训练误差之间存在u型曲线。直观来说,一方面,当学习率过大时,梯度下降可能会不经意地增加而非减少训练误差,另一方面,当学习率太小,训练不仅慢,还有可能永久停留在一个很高的训练误差上。学习率在模型的训练中有巨大的影响,如图5所示,利用小数据集的训练曲线直观的表示了不同的学习率对模型的收敛情况的影响。本发明中,为了保证模型的训练能够收敛到一个较好的结果,使用的技术方案如下:(1)使用动量学习率策略,防止陷入局部最优。(2)使用学习率衰减策略,避免学习率过大导致收敛误差过大。动量学习率δwt:γ为动量因子,α为学习率,为梯度t,代表当前轮数。动量学习率的设计原理为物理上的物体具有惯性的性质,相对于不采用动量学习率,其学习效果得到了提高,跳出局部最小的可能性变大及所需时间大大减少,而若是动量因子过大,就有可能跳出最佳区域或发生梯度爆炸,导致不能收敛到一个好的位置或无法收敛。学习率衰减:dr为衰减率;ds为衰减周期。在这部分的参数选择中,本发明对初始学习率、动量因子、衰减率、衰减周期进行了启发式搜索,由于每进行一次完整的训练将耗时接近5天,所以将每组参数与优化器进行全部尝试一遍的方式并不可行,故参照机器学习中交叉验证的思想,将样本随机分为了数量相等的五份,在五个样本集上使用相同参数,取最终结果的均值代表其最终效果,评价标准为识别准确率(检测到目标并分类正确认为是识别正确),具体参考75%识别准确率(0.75acctime)与最终模型的识别准确率(finaltesterror),部分关于学习率的测试数据如表4.1所示:表4.1学习率参数测试数据参数启发式搜索的过程如下:1.设置初始学习率为0.2,其它参数为0,会出现学习率太大,模型发散的问题;2.进一步减小学习率至0.02,模型收敛程度不好,怀疑学习率可能仍然过大;3.进一步加入衰减策略后,发现收敛增强,验证了学习率太大的猜想;4.加入动量因子,模型效果略有提升;5.继续增大动量因子,模型出现大幅度效果提升;6.增大动量因子,效果下降,调整初始学习率,过小,收敛时间大幅度提升。针对在学习率相关参数的选择过程出现的现象,可以总结为:在训练过程中,好的学习率并不是一成不变的,在一开始高的学习率能够带来较快的目标函数下降,但在问题不是凸优化问题时,收敛就要额外的小心,一方面是由于其解的个数是未知的,另一方面有可能其最优解的小区间的宽度极窄,梯度极大,如果一直保持高的学习率,将会在其附近发生震荡,收敛性大大下降,这就需要进行一个学习率的调整。为了应对这种问题,本发明使用了学习率衰减策略,学习率衰减是指在训练过程中,学习率会随着轮数的增大而阶梯形的变小,能够带来更好的收敛性。3.3.batchsizebatchsize(批尺寸)涉及诸多在训练效果与硬件成本、时间成本上的矛盾。在机器学习中,它是的一个重要参数,它代表的意义是每次进行损失优化时输入的样本个数。如果数据集比较小,完全可以采用在损失优化时使用全部数据,这样做的优点是:更多的样本更能够对样本空间进行更精确的描述,使得随机偏差随着样本数目增加带来的确定性增加而降低,从而更准确的找到损失优化的方向,更好的进行损失优化。而对于较大的数据集,受限于硬件条件,这就成为了不可能完成的任务。相反,如果在每一轮的迭代过程中输入1条样本进行计算,令批尺寸等于1,这样又会带来新的问题,就是每次迭代都是以单个样本进行,难以达到收敛。当两个极端都不适用时,自然要考虑一个合适的批尺寸作为适中的方案,那就是批梯度下降。通过设置适当的批尺寸,达到训练效果和硬件条件上的平衡。这样就能带来三条优点:1、内存利用率提高;2、跑完1个epoch(全样本数量)所需的迭代次数减少,处理相同数据量,所需的时间进一步减少,速度进一步加快;3、提升调参效率;一味的增大批尺寸,就会导致调参效率降低,当批尺寸大于样本中的某个比例时,其梯度方向几乎不会改变。在本发明的批尺寸参数搜索中,仍然使用了与学习率搜索过程中的方法,将样本随机分为了数量相等的五份,在五个样本集上使用相同的参数,取最终结果的均值代表其最终效果,参考的评价标准为识别准确率(检测到目标并分类正确认为是正确识别),具体参考75%识别准确率(0.75acctime)与最终模型的识别准确率(finaltesterror)。表4.2batchsize测试数据batch_size128806432160.75acctime(hours)-70.145.655.3-final_test_error-0.190.180.240.4由于gpu在处理2的整数次幂数字的批尺寸时速度优于其他数值,又受限于硬件条件,在批尺寸上,并没有进行大量的搜索,针对128、80、64、32、16这五个数值进行了搜索,在搜索过程中,批尺寸为128时出现了内存溢出、批尺寸为16时模型无法收敛的情况。在80、64、32的选择上,64在收敛时间、最终模型识别准确率方面均占有优势。4、过拟合的处理绝大多数的机器学习与深度学习模型在训练过程中都会存在两种状态:欠拟合与过拟合。欠拟合是指由于模型的参数较少、假设十分简单或训练不够充分而导致效果不好,训练误差与验证都无法进一步下降,此时模型的方差(variance)较低,而偏差(bias)较大。一般来说对于如lr等线性模型来说,欠拟合是有可能出现的,但对于参数较为冗余,模型复杂的卷积神经网络来说,更多的情况是出现了过拟合,即在训练集上误差很低,但在验证集上的效果与训练集差距极大,此时模型的方差较高,而偏差较低。如图7所示,为不同的拟合状态示意图。奥卡姆的剃刀准则告诉大家,如果两个具有相同效果的模型,一个复杂,另一个简单,那么要选择那个较为简单的。于是本发明使用基于修改网络的目标函数以取得更小的泛化误差思路的l1,l2正则化方式以及基于“三个臭皮匠赛过诸葛亮”思想的通过随机修改网络本身结构减少神经元之间的依赖性的随机丢弃(dropout)方法来处理模型的过拟合状态。4.1.l1与l2正则化l1、l2正则化也被称为l1、l2范数。在机器学习模型中,l1正则化定义为对模型的权值系数求绝对值之和:l1-nor(w)=∑i|wi|…(4.9)与之相似的l2正则化定义为模型的权值系数求平方和:l1正则化的结果一般是一个较为稀疏的权值,即权值中一些数值为0,在一定程度上,这简化了模型,相当于将网络中的一些节点之间的连接断开,减少网络的参数个数。相对于l1正则化来说,l2正则化更为平缓,它着重于通过惩罚项限制那些具有较大权值的连接的影响力,即当数据在较大权值所对应的数据项发生微小变化时,模型的结果不会出现大幅度波动,能够提升模型的稳定性。不同的正则化系数所带来的效果也是不同的,在不同的正则化系数之下,模型的收敛性也会发生改变,随着正则化系数的增大,模型由欠拟合到过拟合的过渡区间会变大,这也是正则化的一个目的所在,由于最佳性能的训练轮数具有随机性,如果轮数不够接近,那么很可能导致性能差别极大,而调节正则化系数能够一定程度上缓解这一随机性带来的性能差距。在具体的使用中,本发明在卷积层上使用了l2正则化,在下层的全连接层使用了l1正则化,这样能带来的优点是减少了全连接层的计算量,在一定程度上能够提升模型的实时性。在正则化的使用中,主要在于正则化系数的调节,如果正则化系数过高容易导致模型欠拟合,模型参数容量下降;相反,过低的正则化系数并不能给模型带来增强泛化性的效果,基于以上先验知识,本发明进行了正则化系数与训练集识别正确率、验证集识别正确率的测试,全连接层的正则化系数测试数据如下:表4.3正则化系数测试数据正则化系数1010.50.30.1训练集识别正确率66.1%87.6%94.4%96.7%97.9%验证集识别正确率65.3%84.2%89.6%85.0%76.5%可以明显的看出,在正则化系数较低的情况下,训练集的识别正确率很高,但是泛化性太差,正则化系数等于0.1时,模型在训练集与验证集上的性能差距达到了20%以上;正则化系数为10时,训练集与验证集的性能都很低,受到正则化系数带来的模型容量减少有很大关系。4.2.dropout传统神经网络中,由于神经元间的互联,对于某单个神经元来说,其反向传导来的梯度信息同时也受到其他神经元的影响,可谓“牵一发而动全身”。这就是所谓的“复杂协同适应”效应。随机失活的提出正是一定程度上缓解了神经元之间复杂的协同适应,降低了神经元间依赖,避免了网络过拟合的发生。dropout指在训练时随机的暂时丢弃一部分神经元以断开连接使其失去作用。这种丢弃正则化的方式可以通过其随机性来防止过拟合,同时能够高效地连接不同网络架构,使其失去依赖效应。在实际使用中,dropout能够在降低过拟合的同时通过减少在训练数据上的训练节点数目提高了算法的学习速度。dropout被广泛的认为是集成了大量深层神经网络的bagging方法,(bagging是通过结合多个互相依赖性极低的模型来降低泛化误差的技术,主要的做法是分别训练几个不同的模型,然后让所有模型进行加权投票来测试样例的输出。)它提供了一种廉价的集成近似方法,能够训练和评估值数据数量的神经网络。如图8所示。dropout的重要参数为丢弃概率dropoutrate,当模型结构确定后,需要调节p来平衡模型的集成个数与单个模型容量,一般来说,丢弃概率越大,单个模型容量越大而集成个数越小,反之单个模型容量越小、模型个数越多。本发明在当前模型的全连接层使用dropout策略,部分对丢弃概率进行网格搜索的数据如下表4.4:表4.4dropoutrate测试数据dropout_rate00.30.50.70.90.75acctime20hours19hours14hours22hours-finaltesterror0.150.130.110.140.4搜索过程中首先以不使用dropout策略训练的模型为基准,发现误差并不随着丢弃概率进行均匀变化,相对于0.5-0.7过程中0.03的错误率变化,0.7-0.9部分出现了由0.14到0.4的大幅度跳变。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1