一种基于SSD和车辆姿态分类的车辆检测方法和系统转让专利

申请号 : CN201810311110.8

文献号 : CN108596053B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 桑农苏伟常勤伟高常鑫

申请人 : 华中科技大学

摘要 :

本发明公开了一种基于SSD和车辆姿态分类的车辆检测方法和系统,所述方法包括:根据车头与水平轴的角度对车辆姿态进行划分,在原始SSD网络模型上加入车辆姿态分类任务,将车辆检测损失和车辆姿态分类任务的损失结合起来形成多任务损失,将原始SSD模型的softmax损失替换为focal loss损失,将车辆姿态分类任务和车辆检测任务联合优化,训练得到检测模型,利用检测模型对待检测图片进行车辆检测,实现多尺度、多角度的车辆检测。本发明将深度学习目标检测SSD用于车辆检测,利用车辆姿态分类作为辅助任务与车辆检测任务联合训练,并加入了focal loss解决车辆样本不平衡问题,从而提高系统的准确性和稳定性。

权利要求 :

1.一种基于SSD和车辆姿态分类的车辆检测方法,其特征在于,包括:

(1)根据车头与水平轴的角度对车辆姿态进行分类,并在原始SSD网络模型上加入车辆姿态分类任务,其中,所述车辆姿态分类任务与车辆检测任务并列;

(2)定义所述车辆姿态分类任务的损失和所述车辆检测任务的损失,将所述车辆姿态分类任务的损失乘以预设权重系数后,与所述车辆检测任务的损失相加形成多任务损失;

(3)采用focal loss损失作为加入的所述车辆姿态分类任务的损失,并将focal loss损失作为所述车辆检测任务的损失中的车辆目标的分类损失;

(4)搭建加入所述车辆姿态分类任务的基于SSD的车辆检测网络;根据所述车辆检测网络,在不同层的特征图上生成固定大小的候选目标框,以及每一个候选目标框中包含车辆的可能性;根据每个候选目标框包含车辆的置信度对所有的候选目标框排序,并去除置信度低的负样本,以使正负样本的比例保持在预设比例;根据保留的正负样本计算所述多任务损失,然后反向传播,迭代训练,直至达到最大迭代次数得到目标检测模型,以由所述目标检测模型对待检测图片进行车辆检测。

2.根据权利要求1所述的方法,其特征在于,所述多任务损失为:

其中,Lconf(x,c)表示

预测的目标框属于车辆或者属于背景的损失,Lloc(x,l,g)表示预测的目标框的坐标回归的损失,α为Lloc(x,l,g)占总损失的权重系数,Lpose(x,cp)表示车辆姿态分类任务的损失,β为Lpose(x,cp)占总损失的权重系数,x表示预测的目标框是否能与标记的真值框匹配,如果匹配成功则为1,匹配失败则为0,c表示目标框属于车辆的概率,l表示预测的车辆目标框,g表示真值框,N表示匹配的缺省框的数目,cp表示目标框属于某一个车辆姿态类别的概率。

3.根据权利要求1或2所述的方法,其特征在于,步骤(4)包括:

(4.1)搭建加入车辆姿态分类任务的基于SSD的车辆检测网络,其中,所述车辆检测网络采用VGGNet,在ImageNet数据集上预训练完后,用两个新的卷积层代替后面的两层全连接层,并增加4个额外的卷积层;

(4.2)将若干张训练图片作为输入,基于所述车辆检测网络,在不同层的特征图上生成若干个固定大小的候选目标框,以及每一个候选目标框中包含车辆的可能性;

(4.3)根据每个候选目标框包含车辆置信度对所有的候选目标框排序,并去除置信度低的负样本,以使正负样本的比例保持在1:3;

(4.4)计算保留的正负样本的车辆目标的分类损失、车辆目标框坐标的回归损失以及车辆姿态分类任务的损失,并将所述车辆目标的分类损失、车辆目标框坐标的回归损失以及车辆姿态分类任务的损失乘以各自的预设权重后求和得到多任务损失;

(4.5)对所述多任务损失反向传播,更新网络参数,并重复执行步骤(4.2)~步骤(4.4),直到网络迭代次数达到预设迭代次数,得到目标车辆检测模型。

4.根据权利要求3所述的方法,其特征在于,所述由所述目标检测模型对待检测图片进行车辆检测包括:由所述目标检测模型对待检测图片进行处理,以产生若干个固定大小的候选目标框,以及每一个候选目标框中包含车辆的置信度;

对候选目标框进行非极大值抑制操作,去掉重复的候选目标框,从而得到最终的检测结果。

5.一种基于SSD和车辆姿态分类的车辆检测系统,其特征在于,包括:

车辆姿态分类模块,用于根据车头与水平轴的角度对车辆姿态进行分类,并在原始SSD网络模型上加入车辆姿态分类任务,其中,所述车辆姿态分类任务与车辆检测任务并列;

多任务损失构建模块,用于定义所述车辆姿态分类任务的损失和所述车辆检测任务的损失,将加入的所述车辆姿态分类任务的损失乘以预设权重系数后,与所述车辆检测任务的损失相加形成多任务损失;

损失函数确定模块,用于采用focal loss损失作为加入的所述车辆姿态分类任务的损失,并将focal loss损失作为所述车辆检测任务的损失中的车辆目标的分类损失;

联合训练模块,用于搭建加入所述车辆姿态分类任务的基于SSD的车辆检测网络;根据所述车辆检测网络,在不同层的特征图上生成固定大小的候选目标框,以及每一个候选目标框中包含车辆的可能性;根据每个候选目标框包含车辆的置信度对所有的候选目标框排序,并去除置信度低的负样本,以使正负样本的比例保持在预设比例;根据保留的正负样本计算所述多任务损失,然后反向传播,迭代训练,直至达到最大迭代次数得到目标检测模型,以由所述目标检测模型对待检测图片进行车辆检测。

说明书 :

一种基于SSD和车辆姿态分类的车辆检测方法和系统

技术领域

[0001] 本发明属于图像处理与模式分类领域,更具体地,涉及一种基于SSD和车辆姿态分类的车辆检测方法和系统。

背景技术

[0002] 随着人工智能和计算机视觉的飞速发展,智能交通系统成为了现代交通系统的发展方向,其中车辆检测是智能交通系统的重要组成部分。车辆检测主要分为两大部分。第一部分是基于视频的车辆实时检测,基于视频的运动目标检测是计算机视觉研究的一个重要研究方向,把运动车辆目标从图像中快速、准确的分离出来是进一步研究的基础,进一步的是对运动车辆的跟踪,可以获取很多交通信息,在交通监控、交通事件检测等系统中有着广泛的应用;第二部分是基于单张图片的车辆检测,由于没有视频序列,所以无法获取车辆的运动信息,只能从静态图片的视觉信息中检测出车辆。
[0003] 基于视频的车辆检测,通常的思路是突出车辆目标或者是消除背景,常用的运动车辆检测方法主要有:帧间差分法、背景差分法、光流场法等。基于单张图像的车辆检测,传统的方法主要是基于车辆边缘检测,当不能提取理想的车辆边缘时,如车辆颜色和道路颜色是相似的或者当发生车辆堵塞时。近年来,随着深度卷积神经网络的流行,许多基于深度卷积网络的目标检测方法都取得了惊人的检测精度。目前最先进的物体检测方法主要分为两类,一类是基于区域提取,如R-CNN,Fast R-CNN和Faster R-CNN等。这些方法是分两个阶段的,所以时间性能较差,难以实时运行。

发明内容

[0004] 针对现有技术的以上缺陷或改进需求,本发明提供了一种基于SSD和车辆姿态分类的车辆检测方法和系统,由此解决现有方法中存在的准确率低、鲁棒性差等技术问题。
[0005] 为实现上述目的,按照本发明的一个方面,提供了一种基于SSD和车辆姿态分类的车辆检测方法,包括:
[0006] (1)根据车头与水平轴的角度对车辆姿态进行分类,并在原始SSD网络模型上加入车辆姿态分类任务,其中,所述车辆姿态分类任务与车辆检测任务并列;
[0007] (2)将加入的所述车辆姿态分类任务的损失乘以预设权重系数后,与所述车辆检测任务的损失相加形成多任务损失;
[0008] (3)采用focal loss损失作为加入的所述车辆姿态分类任务的损失,并将focal loss损失作为所述车辆检测任务的损失中的车辆目标的分类损失;
[0009] (4)搭建加入所述车辆姿态分类任务的基于SSD的车辆检测网络,根据所述车辆检测网络在不同层的特征图上生成固定大小的候选目标框,以及每一个候选目标框中包含车辆的可能性,根据每个候选目标框包含车辆的置信度对所有的候选目标框排序,并去除置信度低的负样本,以使正负样本的比例保持在预设比例,根据保留的正负样本计算所述多任务损失,然后反向传播,迭代训练,直至达到最大迭代次数得到目标检测模型,以由所述目标检测模型对待检测图片进行车辆检测。
[0010] 在本发明中,采用车头与水平轴的角度将车辆姿态划分正面、背面和侧面三类,使得车辆姿态可以量化,进而进行分类。
[0011] 在本发明中,加入了车辆姿态分类任务作为车辆检测任务的辅助任务,通过相关任务之间可以相互促进的原理,有效提高了车辆检测精度。
[0012] 在本发明中,将加入的车辆姿态分类任务的损失乘以一个权重系数然后与车辆检测任务的损失相加,这里的权重系数通过交叉验证实验,选择了一个合适的值,从而有效提高了系统精度。
[0013] 在本发明中,将原始的车辆目标的分类损失和新加入的姿态分类任务的损失都由通常的softmax损失替换为focal loss损失,解决了类别不平衡问题,从而有效提高了系统的精度。
[0014] 优选地,所述多任务损失为:其中,Lconf(x,c)表示预测的目标框属于车辆或者属于背景的损失,Lloc(x,l,g)表示预测的目标框的坐标回归的损失,α为其占总损失的权重系数,Lpose(x,cp)表示车辆姿态分类任务的损失,β为其占总损失的权重系数,x表示预测的目标框是否能与标记的真值框匹配,如果匹配成功则为1,匹配失败则为0,c表示目标框属于车辆的概率,l表示预测的车辆目标框,g表示真值框,N表示匹配的缺省框的数目,cp表示目标框属于某一个车辆姿态类别的概率。
[0015] 优选地,步骤(4)包括:
[0016] (4.1)搭建加入车辆姿态分类任务的基于SSD的车辆检测网络,其中,所述车辆检测网络采用VGGNet,在ImageNet数据集上预训练完后,用两个新的卷积层代替后面的两层全连接层,并增加4个额外的卷积层;
[0017] (4.2)将若干张训练图片作为输入,基于所述车辆检测网络,在不同层的特征图上生成若干个固定大小的候选目标框,以及每一个候选目标框中包含车辆的可能性;
[0018] (4.3)根据每个候选目标框包含车辆置信度对所有的候选目标框排序,并去除置信度低的负样本,以使正负样本的比例保持在预设比例;
[0019] (4.4)计算保留的正负样本的车辆目标的分类损失、车辆目标框坐标的回归损失以及车辆姿态分类任务的损失,并将所述车辆目标的分类损失、车辆目标框坐标的回归损失以及车辆姿态分类任务的损失乘以各自的预设权重后求和得到多任务损失;
[0020] (4.5)对所述多任务损失反向传播,更新网络参数,并重复执行步骤(4.2)~步骤(4.4),直到网络迭代次数达到预设迭代次数,得到目标车辆检测模型。
[0021] 优选地,所述由所述目标检测模型对待检测图片进行车辆检测包括:
[0022] 由所述目标检测模型对待检测图片进行处理,以产生若干个固定大小的候选目标框,以及每一个候选目标框中包含车辆的置信度;
[0023] 对候选目标框进行非极大值抑制操作,去掉重复的候选目标框,从而得到最终的检测结果。
[0024] 按照本发明的另一方面,提供了一种基于SSD和车辆姿态分类的车辆检测系统,包括:
[0025] 车辆姿态分类模块,用于根据车头与水平轴的角度对车辆姿态进行分类,并在原始SSD网络模型上加入车辆姿态分类任务,其中,所述车辆姿态分类任务与车辆检测任务并列;
[0026] 多任务损失构建模块,用于将加入的所述车辆姿态分类任务的损失乘以预设权重系数后,与所述车辆检测任务的损失相加形成多任务损失;
[0027] 损失函数确定模块,用于采用focal loss损失作为加入的所述车辆姿态分类任务的损失,并将focal loss损失作为所述车辆检测任务的损失中的车辆目标的分类损失;
[0028] 联合训练模块,用于搭建加入所述车辆姿态分类任务的基于SSD的车辆检测网络,根据所述车辆检测网络在不同层的特征图上生成固定大小的候选目标框,以及每一个候选目标框中包含车辆的可能性,根据每个候选目标框包含车辆的置信度对所有的候选目标框排序,并去除置信度低的负样本,以使正负样本的比例保持在预设比例,根据保留的正负样本计算所述多任务损失,然后反向传播,迭代训练,直至达到最大迭代次数得到目标检测模型,以由所述目标检测模型对待检测图片进行车辆检测。
[0029] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0030] (1)由于采用了SSD算法,使得算法在精度很高的同时,还可以实时运行;
[0031] (2)由于利用车辆姿态分类任务来辅助车辆检测,有效提高了检测精度;
[0032] (3)由于加入了focal loss,有效解决了不同姿态样本之间数量不平衡的问题以及难易样本数量不平衡的问题,使检测精度得到进一步提高。

附图说明

[0033] 图1是本发明实施例提供的一种基于SSD和车辆姿态分类的车辆检测方法的流程示意图;
[0034] 图2是本发明实施例提供的一种基于SSD和车辆姿态分类的车辆检测系统的网络结构示意图;
[0035] 图3是本发明实施例提供的一种车辆姿态划分示意图。

具体实施方式

[0036] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0037] 本发明公开了一种基于SSD和车辆姿态分类的车辆检测方法和系统,适用于图片中存在多尺度、多角度的车辆时,能够准确检测出车辆位置。具体涉及基于深度学习目标检测算法SSD和车辆姿态分类的车辆检测,主要使用基于SSD的目标检测方法、车辆检测与车辆姿态分类结合的多任务训练方法和利用focal loss解决类别不平衡的方法,用于图片中的车辆检测,尤其是针对同一张图片中有多辆角度、尺度各不相同且存在不同程度遮挡的车辆时的情况。
[0038] 以下首先对本发明用到的术语进行解释和说明。
[0039] SSD:SSD是Single Shot MultiBox Detector的缩写。SSD算法是一种直接预测目标框的坐标和类别的目标检测算法,没有生成候选框的过程。算法的主网络结构是VGG16,将两个全连接层改成卷积层再增加4个卷积层构造网络结构。
[0040] Bounding box回归:Bounding box回归是对检测到的目标窗口进行更精细的调整使得它能够更加接近目标的实际位置。对于窗口一般使用四维向量(窗口的中心点坐标和宽高)来表示,Bounding box回归会先对窗口的中心点坐标进行平移变换,再对窗口的宽高进行尺度缩放,使得窗口更接近待检测目标。
[0041] Softmax:Softmax用来给不同的对象分配概率值。其输入是一个向量,输出也是一个向量,它把输入向量的每个值当成幂指数求值,再正则化这些结果值,即可得输出向量。
[0042] 如图1所示,为本发明基于SSD和车辆姿态分类的车辆检测方法的流程示意图,本发明的方法具体包括以下步骤:
[0043] (1)准备数据集,数据集包括含有车辆的图像以及对应的标注文件,其中标注文件标注的信息除了通常检测所需要的目标类别和目标框信息以外,还需要车辆目标的车头与水平轴的夹角。
[0044] (2)划分车辆姿态,根据车头与水平轴的角度将车辆姿态划分为正面、背面和侧面三类。
[0045] (3)定义网络模型,在原始SSD网络模型上加入车辆姿态分类任务。车辆姿态是车辆的重要属性,加入的车辆姿态分类任务与车辆检测任务并列,其中,车辆检测任务包括车辆目标的分类任务和车辆目标框的回归任务,它们共享原始SSD网络模型中前面的卷积层。
[0046] (4)定义多任务损失,将原始的车辆检测任务的损失和加入的车辆姿态分类任务的损失结合起来形成多任务损失,其中车辆姿态分类的损失也为一个多类的softmax损失。具体结合方式为:原始车辆检测任务的损失包括车辆目标的分类损失以及车辆目标框的回归损失,将加入的车辆姿态分类任务的损失乘以一个权重系数然后与前面两项损失相加。
原始车辆检测的损失如下所示:
[0047]
[0048] 加入车辆姿态分类后的损失如下所示:
[0049]
[0050] 其中,Lconf(x,c)表示预测的目标框属于车辆或者属于背景的损失;Lloc(x,l,g)表示预测的目标框的坐标回归的损失,α为其占总损失的权重系数;Lpose(x,cp)表示车辆姿态分类任务的损失,β为其占总损失的权重系数。x表示预测的目标框是否能与标记的真值框匹配,如果匹配成功则为1,匹配失败则为0,c表示目标框属于车辆的概率,l表示预测的车辆目标框,g表示真值框,N表示匹配的缺省框的数目,cp表示目标框属于某一个车辆姿态类别的概率。
[0051] 其中参数α和β可以通过交叉验证实验确定。
[0052] (5)替换分类损失函数。由于数据集中不同姿态的车辆数目存在不平衡的问题,所以新加入的车辆姿态分类任务的损失,我们采用focal loss,focal loss可以用来解决类别不平衡问题。同时,原车辆检测任务的损失中的车辆目标的分类损失为softmax损失,而车辆目标存在难分样本和易分样本不平衡的问题,我们将原来的softmax损失也替换为focal loss损失,从而解决难易样本不平衡的问题。
[0053] (6)联合训练,将车辆姿态分类任务和车辆检测任务联合优化。根据搭建好的车辆检测网络在不同层的特征图上生成一系列固定大小的候选目标框,以及每一个候选目标框中包含车辆的可能性。然后根据每个候选目标框包含车辆的置信度对所有的候选目标框排序,并去除置信度低的负样本,最终使正负样本的比例保持在预设比例。计算损失时,将新加入的车辆姿态分类任务的损失乘以一个权重系数再与原车辆检测任务的车辆目标的分类损失以及车辆目标框的回归损失求和,然后反向传播,迭代训练,直至达到最大迭代次数。具体包括以下子步骤:
[0054] (6-1)搭建加入车辆姿态分类任务的基于SSD的车辆检测网络:网络采用VGGNet,在ImageNet数据集上预训练完后,用两个新的卷积层代替后面的两层全连接层,并增加4个额外的卷积层。
[0055] (6-2)输入一定量的训练图片,基于步骤(6-1)中的车辆检测网络,在不同层的特征图上生成一系列固定大小的候选目标框,以及每一个候选目标框中包含车辆的可能性。
[0056] (6-3)由于步骤(6-2)中提取出的绝大部分候选目标框都是负样本,导致了正负样本不平衡。根据每个候选目标框包含车辆的置信度对所有的候选目标框排序,并去除置信度低的负样本,最终使正负样本的比例保持在预设比例。
[0057] 在本发明实施例中,可以采用Hard Negative Mining策略,根据每个候选目标框包含车辆的置信度对所有的候选目标框排序,并去除置信度低的负样本,最终使正负样本的比例保持在预设比例。
[0058] 其中,预设比例可以根据实际需要进行确定,在本发明实施例中,预设比例优选为1:3。
[0059] (6-4)计算步骤(6-3)中保留的正负样本的车辆目标的分类损失、车辆目标框坐标回归损失以及车辆姿态分类任务的损失。车辆目标的分类损失表示候选目标框是车辆或者不是车辆的损失;车辆目标框坐标回归损失是对候选目标框的坐标进行精细回归的损失;车辆姿态分类任务的损失是对目标框进行车辆姿态分类的损失。其中车辆目标的分类损失和车辆姿态分类任务的损失采用focal loss形式,解决样本不平衡问题。然后将三项损失乘以各自的权重后求和。
[0060] (6-5)对步骤(6-4)中计算得到的损失反向传播,更新网络参数。
[0061] (6-6)重复步骤(6-2)到(6-4),直到网络迭代次数达到预设迭代次数,即得到目标车辆检测模型。
[0062] 其中,预设迭代次数可以根据实际情况进行确定。
[0063] (7)利用步骤(6)中训练得到的目标车辆检测模型对待检测图片进行车辆检测,从而实现多尺度、多角度的车辆检测。具体包括以下子步骤:
[0064] (7-1)载入步骤(6)中训练得到的目标车辆检测模型。
[0065] (7-2)输入待检测图片。
[0066] (7-3)基于步骤(7-1)中的目标车辆检测模型产生若干个固定大小的候选目标框,以及每一个目标框中包含物体实例的置信度。
[0067] (7-4)对步骤(7-3)中的候选目标框进行非极大值抑制操作,去掉重复的目标候选框,从而得到最终的检测结果。
[0068] 图2为本发明基于SSD和车辆姿态分类的车辆检测系统的网络结构图,在图2中包括输入图像模块、特征提取模块和分类和回归模块。其中输入图像模块将每一张待检测图像都缩放到300*300的固定大小;特征提取模块对输入的图像进行多层卷积处理,从而得到不同尺度和大小的多个特征图;分类和回归模块选取几个特定的特征图,然后使用固定大小的卷积核去预测车辆目标的类别和坐标偏移信息。
[0069] 图3为本发明基于SSD和车辆姿态分类的车辆检测系统的车辆姿态划分示意图。我们根据车头与水平轴的角度将车辆姿态划分为正面、背面和侧面三类,图3分别为正面、背面和侧面的车辆样本示意图。
[0070] 本发明提供了一种基于SSD和车辆姿态分类的车辆检测方法和系统,较好地解决了多尺度、多角度并且存在相互遮挡的车辆检测情况,利用车辆姿态分类作为辅助任务与车辆检测任务联合训练,并加入了focal loss解决车辆样本不平衡问题,从而提高了系统的准确性和稳定性。
[0071] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。