一种基于EdgeBoxes和FastR-CNN的非机动车辆目标检测方法技术

技术编号:18399526 阅读:46 留言:0更新日期:2018-07-08 19:49
本发明专利技术提出了一种可以解决非机动车辆目标检测问题的方法,通过将EdgeBoxes算法融合Fast R‑CNN中的小型网络结构Caffnet得到新的网络结构,结合VOC格式的非机动车辆数据样本,对新的网络结构进行迭代训练得到非机动车辆目标检测模型,把道路交通场景中的目标检测问题实化为自行车bicycle和电动车evbike的分类问题。该方法从目标建议出发,利用深度学习思想有效克服非机动车辆外观多变带来的困难,并且可在训练数据驱动下自适应地构建特征描述,能够高效准确的检测到道路交通场景中的非机动车辆目标,使得非机动车辆目标检测更加快捷便利。

【技术实现步骤摘要】
一种基于EdgeBoxes和FastR-CNN的非机动车辆目标检测方法
本专利技术涉及一种目标检测方法,具体是一种基于EdgeBoxes和FastR-CNN的非机动车辆目标检测方法。
技术介绍
道路交通图像的目标检测与识别对于完善交法交规、保障出行安全等有着重要意义。尤其是近年来,共享单车、外卖行业的迅猛发展,道路上自行车等非机动车辆激增,道路交通安全问题也越来越严峻,由于这类非机动车辆目标小、移动灵活,加之当前对该类非机动车辆目标检测的研究相对较少,交通监管面临巨大挑战。因此,基于非机动车辆目标特征信息,在实际交通图像中检测并定位非机动车辆目标,对交通事故定责、交通视频完善等有重要辅助作用。道路交通图像中的非机动车辆目标会因光照、视角以及驾驶者遮挡等变化而产生变化,如何在种种变化存在的前提下保证良好的检测效果,传统的目标检测方法做了基础性尝试,但仍然存在检测效率低和可靠性差等问题。如HOG、SIFT等传统的机器学习方法通过提取目标特征,并将提取到的特征输入支持向量机SVM、迭代器AdaBoost等分类器进行分类识别:但是整个特征提取过程十分复杂,且本质上这些特征是手工设计的特征,需要针对不同的图像场景选择合适的特征,不利于实际工程应用,泛化能力较差。随着深度学习的兴起,一些深度学习的方法很快被应用于目标检测领域,其中以深度卷积神经网络CNN最为突出。2013年R-CNN作为深度学习目标检测应用领域的先驱,将传统机器学习和深度学习进行了创新性的结合,继而出现了像SPP-NET等目标检测网络的优化,2015年FastR-CNN整合了R-CNN和SPP-Net的优点,使得在多变的道路交通图像下,快速且准确地检测到非机动车辆目标成为可能。但是,FastR-CNN的检测效果,很大程度上依赖于样本图像目标建议ObjectProposals的提取数量,大量OP的提取耗时耗力,而且加重模型训练的负担,对网络和硬件要求较高。
技术实现思路
为了解决上述问题,本专利技术提出了一种基于EdgeBoxes和FastR-CNN融合的目标检测方法,并应用于非机动车辆的目标检测中。就目标建议提取阶段而言,EdgeBoxes算法可以保证在提取较少数量时,有相对较高的平均召回率,通过控制OP的提取数量,降低检测过程的计算复杂度。深度学习算法FastR-CNN中的核心CNN对几何变换、形变、光照等具有一定程度不变性,有效克服非机动车辆外观多变带来的困难,并且可在训练数据驱动下自适应地构建特征描述。将EdgeBoxes算法融合FastR-CNN中的小型网络结构Caffnet,结合VOC格式的非机动车辆数据样本,把道路交通场景中的目标检测问题实化为自行车和电动车的分类问题。利用EdgeBoxes算法提取样本的目标建议构建适量的感兴趣区域,和样本一起输入网络进行迭代训练,得到非机动车辆目标检测模型,对模型进行新样本测试并分析测试效果,以备后续的模型泛化过程使用。EdgeBoxes和FastR-CNN的融合使得非机动车辆的目标检测具有更高的灵活性和泛化能力。具体包括以下步骤:步骤1、定义网络结构,选定FastR-CNN算法中的小型网络结构Caffenet网络:步骤1-1、设置Caffenet网络核心层数为11层,具体包括1个11×11卷积层,1个5×5卷积层,3个3×3卷积层,1个感兴趣区域池化层,2个全连接层,3个池化层;步骤1-2、Caffenet网络输出层为多任务损失函数,具体有两个输出层,第一个输出层通过softmax算法回归计算得到每个RoI在2类中的概率P,即目标分类结果,第二个输出层负责计算2类目标检测框的坐标值,即检测框坐标结果;步骤2、定义目标任务,采集目标样本图及数据集制作:步骤2-1、定义目标任务为非机动车辆,即自行车和电动车;步骤2-2、数据集制作,准备适量目标任务的样本图像,为保证特征充分性,样本图像数量级设置为103-104,该范围内的任何数值M都可作为样本数量,自行车b和电动车e分配比例为b:e,且b≈e,M=b+e;步骤2-3、将步骤2-2得到的样本图像进行VOC格式化,得到VOC数据集;步骤2-4、将步骤2-3得到的VOC数据集中的样本图进行目标标注,然后使用EdgeBoxes算法对标注后的样本图像进行目标建议OP提取,利用滑动窗口的提取策略,由以下参数来控制:α控制搜索步长,β控制IoU阈值,δ控制搜索准确度,minScore控制最低得分和maxBoxes控制提取OP的最大数量级,以此得到样本OP信息,进行一定计算后得到样本的感兴趣区域RoIs;步骤2-5、将步骤2-3得到的VOC数据集,按照训练>测试>验证的比例,且各个比例项之和小于等于10的划分原则进行划分,得到训练集、测试集和验证集;步骤3、模型训练,设定预训练参数:步骤3-1、对步骤1中定义的Caffnet网络结构进行初始化参数设置,利用Caffenet在ImageNet下的训练参数初始化预训练网络RoI池化层之前的层参数,设置学习率为0.001,训练的batchsize为2,迭代次数为I,其数量级为10^4,进行网络训练;步骤3-2、目标任务是自行车和电动车,即K=2,再加一个背景类,则输入数据层类别数num_class=2+1=3,同样RoI池化层数据类别数num_class=3,输出层中分类得分部分数据类别数num_class=3,边界框回归部分数据类别数num_class=3×4=12;步骤4、模型训练,预训练网络:步骤4-1、将步骤1中定义的Caffnet网络结构在步骤2-5准备的训练数据集上训练,样本包括动自行车和电动车,训练参数按步骤3-1设置;步骤4-2、训练的输出过程用一种多任务损失函数对每个标记的RoI的类型和检测框坐标进行回归计算,计算方法为:L(p,u,tu,v)=Lcls(p,u)+λ[u≥1]Lloc(tu,v)(1)Lcls(p,u)=logPu(2)步骤4-3、对步骤4-2设置公式(1)中超参数λ=1,并标记自行车类u=1、电动车类u=2,Lcls是类型概率Pu的对数损失,其中Pu是用softmax来计算的,令该层的输出向量为ai=(a1,a2,......,an),根据softmax计算方法则Pu=maxPi(4)步骤4-4、输出的另一个任务损失Lloc,是检测框损失,通过真实的u类检测框坐标值v=(vx,vy,vw,vh),以及u类的预测坐标值得到,由于背景类没有原标记框,可以忽略背景类的Lloc,对于检测框回归损失,使用损失函数其中,当回归目标无边界时,传统的损失函数在训练时敏感度很高,需要非常仔细地调整学习率以防止爆炸梯度,而消除了这种敏感性:步骤5、迭代训练得到目标检测模型:步骤5-1、迭代训练过程通过RoI池化层进行反向传播,xi(xi∈R)是第i个激活,输入到RoI池化层,令yrj是输出,即第r个RoI的第j层输出,RoI池化层计算yrj=xi*(r,j),其中i*(r,j)=argmaxi'∈R(i,j)xi',即使得xi'最大的i,R(i,j)是输出单元yrj最大池化所在子窗口中输入的索引集,单个xi可以被分配给几个不同的输出yrj,RoI池化层通过计算相对于每个输入变本文档来自技高网
...

【技术保护点】
1.一种基于EdgeBoxes和Fast R‑CNN的非机动车辆目标检测方法,其特征在于:包括以下步骤:步骤1、定义网络结构,选定Fast R‑CNN算法中的小型网络结构Caffenet网络:步骤1‑1、设置Caffenet网络核心层数为11层,具体包括1个11×11卷积层,1个5×5卷积层,3个3×3卷积层,1个感兴趣区域池化层,2个全连接层,3个池化层;步骤1‑2、Caffenet网络输出层为多任务损失函数,具体有两个输出层,第一个输出层通过softmax算法回归计算得到每个RoI在2类中的概率P,即目标分类结果,第二个输出层负责计算2类目标检测框的坐标值,即检测框坐标结果;步骤2、定义目标任务,采集目标样本图及数据集制作:步骤2‑1、定义目标任务为非机动车辆,即自行车和电动车;步骤2‑2、数据集制作,准备适量目标任务的样本图像,为保证特征充分性,样本图像数量级设置为103‑104,该范围内的任何数值M都可作为样本数量,自行车b和电动车e分配比例为b:e,且b≈e,M=b+e;步骤2‑3、将步骤2‑2得到的样本图像进行VOC格式化,得到VOC数据集;步骤2‑4、将步骤2‑3得到的VOC数据集中的样本图进行目标标注,然后使用EdgeBoxes算法对标注后的样本图像进行目标建议OP提取,利用滑动窗口的提取策略,由以下参数来控制:α控制搜索步长,β控制IoU阈值,δ控制搜索准确度,minScore控制最低得分和maxBoxes控制提取OP的最大数量级,以此得到样本OP信息,进行一定计算后得到样本的感兴趣区域RoIs;步骤2‑5、将步骤2‑3得到的VOC数据集,按照训练>测试>验证的比例,且各个比例项之和小于等于10的划分原则进行划分,得到训练集、测试集和验证集;步骤3、模型训练,设定预训练参数:步骤3‑1、对步骤1中定义的Caffnet网络结构进行初始化参数设置,利用Caffenet在ImageNet下的训练参数初始化预训练网络RoI池化层之前的层参数,设置学习率为0.001,训练的batchsize为2,迭代次数为I,其数量级为10^4,进行网络训练;步骤3‑2、目标任务是自行车和电动车,即K=2,再加一个背景类,则输入数据层类别数num_class=2+1=3,同样RoI池化层数据类别数num_class=3,输出层中分类得分部分数据类别数num_class=3,边界框回归部分数据类别数num_class=3×4=12;步骤4、模型训练,预训练网络:步骤4‑1、将步骤1中定义的Caffnet网络结构在步骤2‑5准备的训练数据集上训练,样本包括动自行车和电动车,训练参数按步骤3‑1设置;步骤4‑2、训练的输出过程用一种多任务损失函数对每个标记的RoI的类型和检测框坐标进行回归计算,计算方法为:L(p,u,tu,v)=Lcls(p,u)+λ[u≥1]Lloc(tu,v)  (1)Lcls(p,u)=logPu  (2)步骤4‑3、对步骤4‑2设置公式(1)中超参数λ=1,并标记自行车类u=1、电动车类u=2,Lcls是类型概率Pu的对数损失,其中Pu是用softmax来计算的,令该层的输出向量为ai=(a1,a2,......,an),根据softmax计算方法...

【技术特征摘要】
1.一种基于EdgeBoxes和FastR-CNN的非机动车辆目标检测方法,其特征在于:包括以下步骤:步骤1、定义网络结构,选定FastR-CNN算法中的小型网络结构Caffenet网络:步骤1-1、设置Caffenet网络核心层数为11层,具体包括1个11×11卷积层,1个5×5卷积层,3个3×3卷积层,1个感兴趣区域池化层,2个全连接层,3个池化层;步骤1-2、Caffenet网络输出层为多任务损失函数,具体有两个输出层,第一个输出层通过softmax算法回归计算得到每个RoI在2类中的概率P,即目标分类结果,第二个输出层负责计算2类目标检测框的坐标值,即检测框坐标结果;步骤2、定义目标任务,采集目标样本图及数据集制作:步骤2-1、定义目标任务为非机动车辆,即自行车和电动车;步骤2-2、数据集制作,准备适量目标任务的样本图像,为保证特征充分性,样本图像数量级设置为103-104,该范围内的任何数值M都可作为样本数量,自行车b和电动车e分配比例为b:e,且b≈e,M=b+e;步骤2-3、将步骤2-2得到的样本图像进行VOC格式化,得到VOC数据集;步骤2-4、将步骤2-3得到的VOC数据集中的样本图进行目标标注,然后使用EdgeBoxes算法对标注后的样本图像进行目标建议OP提取,利用滑动窗口的提取策略,由以下参数来控制:α控制搜索步长,β控制IoU阈值,δ控制搜索准确度,minScore控制最低得分和maxBoxes控制提取OP的最大数量级,以此得到样本OP信息,进行一定计算后得到样本的感兴趣区域RoIs;步骤2-5、将步骤2-3得到的VOC数据集,按照训练>测试>验证的比例,且各个比例项之和小于等于10的划分原则进行划分,得到训练集、测试集和验证集;步骤3、模型训练,设定预训练参数:步骤3-1、对步骤1中定义的Caffnet网络结构进行初始化参数设置,利用Caffenet在ImageNet下的训练参数初始化预训练网络RoI池化层之前的层参数,设置学习率为0.001,训练的batchsize为2,迭代次数为I,其数量级为10^4,进行网络训练;步骤3-2、目标任务是自行车和电动车,即K=2,再加一个背景类,则输入数据层类别数num_class=2+1=3,同样RoI池化层数据类别数num_class=3,输出层中分类得分部分数据类别数num_class=3,边界框回归部分数据类别数num_class=3×4=12;步骤4、模型训练,预训练网络:步骤4-1、将步骤1中定义的Caffnet网络结构在步骤2-5准备的训练数据集上训练,样本包括动自行车和电动车,训练参数按步骤3-1设置;步骤4-2、训练的输出过程用一种多任务损失函数对每个标记的RoI的类型和检测框坐标进行回归计算,计算方法为:L(p,u,tu...

【专利技术属性】
技术研发人员:路雪刘坤
申请(专利权)人:上海海事大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1