首页> 中国专利> 基于逐块随机梯度下降法在线训练CNN的方法与系统

基于逐块随机梯度下降法在线训练CNN的方法与系统

摘要

本发明公开了一种基于逐块随机梯度下降法在线训练CNN的方法,将ResNet‑50之中的卷积层分为5个块,构成ResNet‑50的50层结构的CNN网络模型,生成并筛选训练数据,利用所述训练数据,对所述分为5个块后的ResNet‑50的CNN网络模型逐块进行在线学习和更新,直到满足预设停止条件,得到训练后的CNN网络模型;计算一批图片的训练损失函数,判断是否启动下一次在线学习和更新进程训练新的CNN网络模型。本发明使CNN在有限的训练数据条件下可以取得更好的深度预测结果,并且减少了算法的空间复杂度,增强了CNN的泛化能力;并且选择性的训练和更新,使得算法的时间复杂度大大降低,并且提高了系统的精确度和鲁放性。本发明还提供了相应的基于逐块随机梯度下降法在线训练CNN的系统。

著录项

  • 公开/公告号CN107909150A

    专利类型发明专利

  • 公开/公告日2018-04-13

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN201711225394.0

  • 发明设计人 杨欣;罗鸿城;高杨;

    申请日2017-11-29

  • 分类号G06N3/08(20060101);G06N3/04(20060101);

  • 代理机构44372 深圳市六加知识产权代理有限公司;

  • 代理人严泉玉

  • 地址 430070 湖北省武汉市洪山区珞瑜路1037号

  • 入库时间 2023-06-19 05:02:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-18

    授权

    授权

  • 2018-05-08

    实质审查的生效 IPC(主分类):G06N3/08 申请日:20171129

    实质审查的生效

  • 2018-04-13

    公开

    公开

说明书

技术领域

本发明属于计算机视觉三维重建和深度学习技术领域,更具体地,涉及一种基于逐块随机梯度下降法在线训练CNN的方法。

背景技术

即时定位与地图重建技术(Simultaneous Localization And Mapping,SLAM)可以实时的预测传感器的位姿并且重建出周围环境的3D地图,在计算机视觉的多个领域有着十分重要的应用。其中,仅仅依靠单个摄像头作为输入的单目SLAM系统已经比较成熟,并且被广泛的应用。但是,单目SLAM系统也存在一个比较明显的缺点,就是不能构建出稠密的3D地图,只能构建出稀疏或者是半稠密的地图。而最近几年,用于单目图片深度估计的深度卷积神经网络(Convolutional Neural Network,CNN)已经取得了巨大的进步,因此将CNN与单目SLAM结合可以提高建图的稠密度,弥补单目SLAM的缺陷与不足。

目前将CNN与SLAM融合是一个比较热门的研究领域,不少人对其进行了探索。传统用于深度估计CNN的原理是在大量的训练数据之中学习物体的深度和形状、纹理、场景语义以及场景上下文等之间的内在联系,从而准确预测输入到网络之中图片的深度信息。

在训练CNN参数的过程中,涉及到全局优化算法,目前主流的算法是随机梯度下降法(Stochastic Gradient Descent,SGD),其主要思路是对于训练数据集,首先将其分成n个batch,每个batch包含m个样本。每次更新网络的参数都只利用一个batch的数据,而非整个训练集。其优点主要表现为:当训练数据很多时,使用batch可以减少机器的压力,并且可以更快地收敛;(2)当训练集有很多冗余时(类似的样本出现多次),batch方法收敛更快。

但是,这种方法又有着十分明显的不足:(1)容易造成整个网络对于训练数据的过拟合现象,使整个网络的泛化能力变差;(2)容易收敛到局部最优,并不是全局最优;(3)整个优化的过程耗时严重,时间复杂度过高。

发明内容

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于逐块随机梯度下降法在线训练CNN网络,能够明显提高CNN网络对于未知场景深度预测的准确性和鲁放性,从而能使训练出的CNN网络更好地预测单目图像的深度信息。

为实现上述目的,按照本发明一个方面,提供了一种基于逐块随机梯度下降法在线训练CNN的方法,包括如下步骤:

S1、将ResNet-50之中的卷积层分为5个块,每一个块表示为conv1,conv2_x,conv3_x,conv4_x,conv5_x,其中conv1由一个单一的7X7的全卷积层组成,conv2_x由一个3X3的卷积层和3个瓶颈构建块共10层组成;conv3_x由4个瓶颈构建块共12层组成;conv4_x由6个瓶颈构建块共18层组成:conv5_x由3个瓶颈构建块共9层组成,五个部分加起来构成了ResNet-50的50层结构的CNN网络模型;

S2、生成并筛选训练数据,利用所述训练数据,对所述分为5个块后的ResNet-50的CNN网络模型逐块进行在线学习和更新,直到满足预设停止条件,得到训练后的CNN网络模型;

S3、计算一批输入到所述训练后的CNN网络模型之中图片的训练损失函数,判断所有图片的损失函数是否都大于预先设定的阈值Lhigh,如果是则转步骤S2启动下一次在线学习和更新进程训练新的CNN网络模型,如果否则保持当前CNN网络模型不变。

本发明的一个实施例中,对所述分为5个块后的ResNet-50的CNN网络模型逐块进行在线学习和更新,具体为:

在每一次在线学习和更新的过程之中,每一次迭代k,只更新一个部分的参数Wi(i=1,2,3,4,5),保持剩余4个部分网络层参数不变。而在下一次迭代中,更新第i块(i=(k+1)%5)参数,其他层参数保持不变。

本发明的一个实施例中,所述预设停止条件具体为:达到预设的迭代次数,或者是训练的损失函数达到预先设定的阈值。

本发明的一个实施例中,所述conv2_x的3个瓶颈构建块具体为:每个瓶颈构建块均为1X1 64,3X3 64,1X1 256。

本发明的一个实施例中,所述conv3_x的4个瓶颈构建块具体为:每个瓶颈构建块均为1X1 128,3X3 128,1X1 512。

本发明的一个实施例中,所述conv4_x的个瓶颈构建块具体为:每个瓶颈构建块均为1X1 256,3X3 256,1X1 1024。

本发明的一个实施例中,所述conv5_x的3个瓶颈构建块具体为:每个瓶颈构建块均为1X1 512,3X3 512,1X1 2048。

本发明的一个实施例中,所述生成并筛选训练数据具体为:

将环境中单目图像信息,经过算法处理得到双目图像信息,并且经过筛选得到训练数据。

按照本发明的另一方面,还提供了一种基于逐块随机梯度下降法在线训练CNN的系统,包括CNN网络模型构建模块、逐块在线更新模块以及更新启动判断模块,其中:

所述CNN网络模型构建模块,用于将ResNet-50之中的卷积层分为5个块,每一个块表示为conv1,conv2_x,conv3_x,conv4_x,conv5_x,其中conv1由一个单一的7X7的全卷积层组成,conv2_x由一个3X3的卷积层和3个瓶颈构建块共10层组成;conv3_x由4个瓶颈构建块共12层组成;conv4_x由6个瓶颈构建块共18层组成:conv5_x由3个瓶颈构建块共9层组成,五个部分加起来构成了ResNet-50的50层结构的CNN网络模型;

所述逐块在线更新模块,用于生成并筛选训练数据,利用所述训练数据,对所述分为5个块后的ResNet-50的CNN网络模型逐块进行在线学习和更新,直到满足预设停止条件,得到训练后的CNN网络模型;

所述更新启动判断模块,用于计算一批输入到所述训练后的CNN网络模型之中图片的训练损失函数,判断所有图片的损失函数是否都大于预先设定的阈值Lhigh,如果是则转所述逐块在线更新模块启动下一次在线学习和更新进程训练新的CNN网络模型,如果否则保持当前CNN网络模型不变。

本发明的一个实施例中,所述逐块在线更新模块对所述分为5个块后的ResNet-50的CNN网络模型逐块进行在线学习和更新,具体为:

在每一次在线学习和更新的过程之中,每一次迭代k,只更新一个部分的参数Wi(i=1,2,3,4,5),保持剩余4个部分网络层参数不变。而在下一次迭代中,更新第i块(i=(k+1)%5)参数,其他层参数保持不变。

与现有技术相比,本发明具有如下有益效果:

(1)本发明采取“逐块随机梯度下降”(block-wise SGD)的训练方法使CNN在有限的训练数据条件下可以取得更好的深度预测结果,并且减少了算法的空间复杂度,增强了CNN的泛化能力;

(2)本发明提出了选择性更新的策略,选择性的训练和更新,使得算法的时间复杂度大大降低,并且提高了系统的精确度和鲁放性。

附图说明

图1是本发明实施例中基于逐块随机梯度下降法在线训练CNN的方法的流程示意图;

图2是本发明实施例中对于CNN网络模型结构的分块处理示意图;

图3是在CNN训练过程中,两种方法损失函数的变化情况及对比示意图;

图4是在CNN测试过程中,采用三种方式相对误差的变化情况及对比示意图;

图5是本发明实施例中基于逐块随机梯度下降法在线训练CNN的系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明主要提出了一种基于逐块随机梯度下降法在线训练CNN的方法,并且实现了整个系统,目的在于克服传统CNN训练方式的诸多限制,通过充分利用周围环境的信息实现对CNN的高效训练,明显提高CNN对于未知场景深度预测的准确性和鲁放性,从而能够进一步解决传统单目SLAM不能实现稠密建图的技术问题。

本方法适用于在线训练CNN用于深度估计的工作场景之中,在工程实践之中,采用了基于ResNet-50的深度预测网络结构,并在此基础上采用了我们提出的一种基于逐块随机梯度下降法在线训练CNN方法进行了在线训练和测试。其中,整个方法包括了三个模块的内容,如图1所示。主要创新点有如下两点:

(1)提出了一种“逐块随机梯度下降”(block-wise SGD)的方法使CNN在有限的训练数据条件下可以取得更好的深度预测结果,并且减少了算法的空间复杂度,增强了CNN的泛化能力;

(2)提出了选择性更新的策略,选择性的训练和更新,使得算法的时间复杂度大大降低,并且提高了系统的精确度和鲁放性。

本发明方法主要由三个部分组成:产生训练数据,逐块SGD方法,选择性更新,如图1所示,首先通过传感器获得周围环境的图像信息,经过处理得到训练数据;在原有网络模型的基础上采用逐块SGD方法对整个网络进行在线训练;随后根据损失函数的值决定是否进行网络参数的更新。具体的实现过程如下所示:

1)产生训练数据:本专利是应用于在线训练CNN的一种方法。在本系统中,在线训练CNN需要根据周围环境的信息不断地产生新的训练数据,在实际应用时,不同的CNN网络结构可能有不同产生训练数据的方法。基于本专利采用的ResNet-50网络架构,我们采用了将环境中单目图像信息,经过算法处理得到双目图像信息,并且经过筛选得到训练数据的方法;

本方法以单目视觉传感器为基础,在采集图片时,要求单目相机有旋转和平移的运动,而且平移的幅度适当加大一些。这样做的原因主要有两个:一是如果只存在静止和纯旋转的情况,则有可能造成本部分初始化失败或者图片追踪失败,进而造成整个系统的不正常工作;二是适当的增加平移的幅度,有助于系统挑选合适的训练图片,从而保证在线训练和更新CNN过程的正常进行。

在采集的图片中筛选关键帧,其中关键帧的定义是:将单目SLAM部分定义整个序列或者相机实时得到的第一张图片为keyframe(关键帧),除了第一帧,后边的一部分图片帧也会被定义为关键帧,其中定义关键帧的原则是监测当前帧与之前一个最近的关键帧之间的平移和旋转是否达到了预先设定的阈值。以关键帧作为训练数据。

需要成对立体相机拍摄的图片作为训练图片,这些立体图片具有固定的基线Bpre-train。为了实时训练和更新CNN网络模型,本发明在单目相机运动的同时根据双目相机的规则收集成对的单目图片来模拟立体图片。本发明采用了高标准的要求来收集可信赖的训练图片以减小噪声产生的CNN网络模型对错误样本的过拟合现象。本发明设计了四个主要的筛选条件:第一,相机运动约束。两帧图片之间水平方向上的位移满足|tx|>0.9*T,其中T代表两帧图片之间的基线距离第二,视差约束。对于每一对图片,都会采用光流法计算图片间的垂直方向的平均视差Disavg,只有当Disavg小于阈值δ(实验时取为5)时才会将该对图片保存为候选训练图片;第三,多样性约束。每一对训练图片的筛选都是和关键帧图片唯一对应的,也就是说同一个关键帧最多只能产生一对训练图片;第四,训练池容量约束。每当训练图片对的数量到达阈值V(实验时取4)时,就将训练池中的图片送入到网络,对网络进行在线训练,保存训练得到的网络模型,同时清空训练池继续进行训练数据的筛选;

2)逐块SGD方法:本发明将ResNet-50用于在图片中提取不同级别的特征信息,这些特征信息随后会通过一系列下采样操作被编码到视差图之中。为了减少由于训练图片局限性造成CNN过拟合的风险,本发明提出了一种“逐块随机梯度下降”(block-wise SGD)的新方法,将ResNet-50之中的卷积层分为了5个块,如图2所示,其中每一个块具体表示为conv1,conv2_x,conv3_x,conv4_x,conv5_x。conv1由一个单一的7X7的全卷积层组成;conv2_x由一个3X3的卷积层和3个瓶颈构建块(每个瓶颈构建块为1X164,3X364,1X1256)共10层组成;conv3_x由4个瓶颈构建块(每个瓶颈构建块为1X1128,3X3128,1X1512)共12层组成;conv4_x由6个瓶颈构建块(每个瓶颈构建块为1X1256,3X3256,1X11024)共18层组成:conv5_x由3个瓶颈构建块(每个瓶颈构建块为1X1512,3X3512,1X12048)共9层组成,五个部分加起来构成了ResNet-50的50层结构。在每一次在线学习和更新的过程之中,每一次迭代k,只更新一个部分的参数Wi(i=1,2,3,4,5),保持剩余4个部分网络层参数不变。而在下一次迭代中,更新第i块(i=(k+1)%5)参数,其他层参数保持不变,由此减少了每一次更新网络的复杂度。整个在线学习和更新的迭代一直在进行,直到停止条件被满足(比如迭代的次数的限制,或者是训练的损失函数达到预先设定的阈值);

3)选择性更新:每当有合适的训练数据产生时就进行在线学习和CNN网络模型的更新,这种做法容易造成不必要的计算开销。只要当前CNN网络模型对于当前场景可以提供足够准确的深度预测结果,就一直使用当前的CNN网络模型,直到迫不得已进行网络模型的调整。基于这个思路,本发明设计了一种“系统选择性更新”的工作模式,通过计算每一批输入到CNN网络模型之中图片的训练损失函数,一旦一批图片的所有图片的损失函数都大于预先设定的阈值Lhigh,将启动在线学习和更新的进程。在线学习和更新的进程将会一直进行,直到训练图片的损失函数降到Llow之下,或者是迭代的次数达到了预先设定的阈值。这个策略不但在很大程度上减少了计算量,而且可以满足对于网络深度预测结果精度的要求。

在实验验证的环节,我们在多个数据集上进行了测试,其中训练过程结果如图3所示,可以发现,相对于随机梯度下降,我们提出的方法可以得到更低的损失函数,并且损失函数下降的更为迅速;而在测试过程中,如图4所示,我们将不采用在线训练,使用随机梯度下降法在线训练和使用逐块随机梯度下降法在线训练的三种方法的结果进行了对比,发现我们提出的逐块随机梯度下降法在线训练得到的网络模型在进行测试时能够得到较小的误差,说明整个系统的鲁放性和精确度更强。

进一步地,如图5所示,本发明还提供了一种基于逐块随机梯度下降法在线训练CNN的系统,包括CNN网络模型构建模块1、逐块在线更新模块2以及更新启动判断模块3,其中:

所述CNN网络模型构建模块1,用于将ResNet-50之中的卷积层分为5个块,每一个块表示为conv1,conv2_x,conv3_x,conv4_x,conv5_x,其中conv1由一个单一的7X7的全卷积层组成,conv2_x由一个3X3的卷积层和3个瓶颈构建块共10层组成;conv3_x由4个瓶颈构建块共12层组成;conv4_x由6个瓶颈构建块共18层组成:conv5_x由3个瓶颈构建块共9层组成,五个部分加起来构成了ResNet-50的50层结构的CNN网络模型;

所述逐块在线更新模块2,用于生成并筛选训练数据,利用所述训练数据,对所述分为5个块后的ResNet-50的CNN网络模型逐块进行在线学习和更新,直到满足预设停止条件,得到训练后的CNN网络模型;

所述更新启动判断模块3,用于计算一批输入到所述训练后的CNN网络模型之中图片的训练损失函数,判断所有图片的损失函数是否都大于预先设定的阈值Lhigh,如果是则转所述逐块在线更新模块2启动下一次在线学习和更新进程训练新的CNN网络模型,如果否则保持当前CNN网络模型不变。

进一步地,所述逐块在线更新模块2对所述分为5个块后的ResNet-50的CNN网络模型逐块进行在线学习和更新,具体为:

在每一次在线学习和更新的过程之中,每一次迭代k,只更新一个部分的参数Wi(i=1,2,3,4,5),保持剩余4个部分网络层参数不变。而在下一次迭代中,更新第i块(i=(k+1)%5)参数,其他层参数保持不变。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号