本发明涉及目标检测技术,特别是一种车载环境下的目标检测方法。
背景技术:
随着矿山开采工艺的不断进步以及开采强度的不断增加,设备大型化也在不断发展。大型卡车运输是目前大型矿山生产运输的最主要形式之一。
矿山运输用的大型卡车的特点主要表现为:道路空间复杂,由于开采范围一定,又需要不断向纵深发展,运输道路条件复杂,弯道和斜坡道较多,且视线不好,道路又经常变动,作业环境恶劣;
生产辅助车辆种类繁多,如指挥车,火药车,推土机,洒水车等;卡车司机工作强度大,连续开车几小时,难免枯燥;且大型卡车体积庞大,驾驶室只占左上方的一小部分,车体右侧绝大部分及前后部分区域存在盲区,在盲区范围内司机看不到卡车周围的人或物体;加上矿区道路昼夜工作,大小车辆混行等原因,车辆与车辆、车辆与人之间的碰撞事故时有发生,成为威胁矿山安全运输的重大隐患。据统计,近几年我国每年道路交通事故死亡约10万人,其中卡车事故占1/3,造成的直接经济损失达数十亿元,给人们的生命财产造成了重大损失,在精神上造成了严重伤害。从事故发生原因的角度分析,由驾驶员导致事故的比例约占70-80%,仅视野盲区所造成的交通事故比例就高达30%。切实提高大型矿用卡车安全驾驶的可靠性、有效减小视野盲区,成为减少交通事故的关键所在。大型矿用卡车的行车安全问题日益突出,成为影响矿山安全生产工作的关键问题,与行车安全有关的车辆电子系统成为社会各界关注的热点。
为克服由大型矿用卡车的较大体积和较高驾驶位带来的视野盲区问题,大型卡车全景辅助系统应运而生。大型卡车全景辅助系统采用多摄像机之间的信息融合技术,对布置在大型矿用卡车周围6个摄像机采集的视频进行畸变校正、视角变换和多图像融合处理,构建以卡车为中心的虚拟鸟瞰图,实时显示卡车周围的360°视野环境,消除地面视野盲区,有效地提高卡车行驶和泊车过程中的安全系数。驾驶员可以随时查看四周的行人、车辆及障碍物,以便及时做出反应。但是不可避免的会出现由于驾驶员疏于察看辅助系统和可视镜而造成事故的情况。
为此,如何对全景辅助系统的目标进行目标检测并预警成为当前需要解决的技术问题。
技术实现要素:
针对现有技术中的问题,本发明提供一种车载环境下的目标检测方法,能够对全景辅助系统的图像信息进行实时处理,识别目标并预警。
第一方面,本发明提供一种车载环境下的目标检测方法,包括:
s1、车载处理装置接收车辆上的图像采集装置采集的视频图像帧;
s2、对每一视频图像帧进行预处理,得到预处理后的每一视频图像帧;
s3、将预处理后的每一视频图像帧输入到预先训练的tiny模型,得到对应每一帧的至少8个不同尺度的特征图;
s4、采用多尺度特征融合方式从所有特征图中选取三个特征图,在选取的三个特征图中生成不同大小、形状的候选区域anchorbox;
s5、基于选取的三个特征图,对选取特征图中的候选区域进行无激活函数的卷积运算,得到用于目标定位预测的候选区域的四个偏移位置;以及
对选取特征图中的候选区域进行无激活函数的卷积运算,得到用于目标分类预测的三个类别置信度;并对三个类别置信度进行处理,得到各个候选区域预测类别的概率;
将生成的候选区域和候选区域的偏移位置融合得到目标的标注边框,对每个标注边框进行预测筛选,将筛选的标注边框标注在视频图像帧上,并标注预测的类别;
s6、将标注过的视频图像帧合成为视频,在显示屏显示和/或预警提示。
进一步地,所述步骤s2包括:
对所述每一视频图像帧进行归一化和灰度化,并将灰度化的视频图像帧缩放到300*300*1的规格,得到预处理后的每一视频图像帧;
和/或,tiny模型的有效检测距离大于45m。
进一步地,在步骤s3之前,所述方法包括:
利用迁移学习的策略,基于pascalvoc数据集和自采集数据集对tiny模型进行训练,获取训练后的tiny模型;
或者,
采用pascalvoc数据集对基于多孔卷积的轻量级ssd目标检测模块的tiny模型进行预训练;
接着,在自采集数据集上对预训练后的tiny模型参数进行调整,获得训练后的tiny模型;
其中,自采集数据集包括:矿区实地拍摄图像和矿区的视频监控图像;以及,预先对所述自采集数据集和pascalvoc数据集中的图像数据进行预处理,获取符合训练矿区卡车环境的灰度模式数据集。
进一步地,预先训练的tiny模型的结构包括:第一模块至第八模块;
第一模块包括:
两个卷积层,两个卷积层包括16个3*3的卷积核,用于对输入的图像进行卷积两次;
池化层,所述池化层包括:步长为2、大小为2*2的池化核,用于对第一模块卷积层卷积后的图像进行池化处理;
第二模块包括:
两个卷积层,两个卷积层包括32个3*3的卷积核,用于对第一模块输出的图像进行卷积两次;
池化层,所述池化层包括:步长为2、大小为2*2的池化核,用于对第二模块卷积层卷积后的图像进行池化处理;
第三模块包括:
三个卷积层,三个卷积层包括64个3*3的卷积核,用于对第二模块输出的图像进行卷积三次;
池化层,所述池化层包括:步长为2、大小为2*2的池化核,用于对第三模块卷积层卷积后的图像进行池化处理;
第四模块包括:
三个卷积层,三个卷积层包括128个3*3的卷积核,用于对第三模块输出的图像进行卷积三次;
池化层,所述池化层包括:步长为2、大小为2*2的池化核,用于对第四模块卷积层卷积后的图像进行池化处理;
第五模块包括:
三个卷积层,三个卷积层包括128个3*3的卷积核,用于对第四模块输出的图像进行卷积三次;
池化层,所述池化层包括:步长为1、大小为3*3的池化核,用于对第五模块卷积层卷积后的图像进行池化处理;
第六模块包括:
一个卷积层,该一个卷积层包括256个3×3,rate扩展率为6的卷积核,用于对第五模块的输出进行卷积一次;
第七模块包括:
一个卷积层,该一个卷积层包括256个1×1的卷积核,用于对第六模块的输出进行卷积一次;
第八模块包括:
第一层的一个卷积层,该一个卷积层包括64个1×1的卷积核,用于对第七模块的输出进行卷积一次;
第二层的一个卷积层,该一个卷积层包括128个3×3的卷积核,用于对第八模块第一层的输出进行卷积一次;
其中,所述tiny模型中各模块之间是通过各自的卷积层和池化层进行特征提取和信息传递的,且卷积层中每个神经元的输入与前一层的局部接受域相连。
进一步地,所述预先训练的tiny模型的损失函数包括:
位置偏移损失、目标得分损失和目标先验损失,总的损失函数是这三部分的加权总和;
总的损失函数的公式为:
其中,α、β为权值,n为匹配的anchorbox个数,如果n=0,则公式l为0;
位置偏移损失函数定义为:
其中,cx、cy为边框的中心点坐标,w、h为边框的宽和高,边框是泛指两种预测框和实际标注框;l为图像中目标标注的位置,g为编码后目标box的偏移;
目标得分损失函数为多类别softmax损失:
其中,x为目标的实际类别,c为目标的预测类别;
目标先验损失函数通过二元交叉熵计算:
其中,x为候选区域是否包含目标的标记值,x为1表示包含;p为预测的候选区域包含目标的预测概率。
进一步地,所述tiny模型采用多层特征融合方法,将第三模块、第四模块、第七模块和第八模块输出的特征图进行特征融合,其中第三模块经多孔卷积处理后与第四模块相连接,作为新模块,然后将第三模块和第四模块池化层之前的卷积层输出特征图和第七模块、第八模块输出特征图做多尺度特征融合;
具体包括:第三模块中第三个卷积层的输出特征图采用步长为1,大小为2×2的池化核进行最大池化;再采用128个大小为3×3、rate为3的卷积核进行卷积,再经过归一化层得到输出特征图;
将第四模块中第三个卷积层的输出特征图经过归一化层,然后与第三模块的输出特征图连在一起,此时,新模块的输出特征图格式与第三模块的输出特征图格式相同;
然后,将新模块、第七模块和第八模块输出的特征图进行特征融合。
进一步地,所述步骤s4包括:
在步骤s3中,针对得到8个不同尺度的特征图,在新模块特征图、第七模块特征图和第八模块特征图共三个模块的三个特征图上生成不同大小、形状的候选区域;
在特征图中,以各点像素确定候选区域的中心,中心为
候选区域的大小为:
其中,m为第二特征图数目;m为常数,这里smin为0.10;smax为0.5,每个候选区域的长宽比根据比例值计算:
其中,a为候选区域比例值;
对于比例为1的候选区域,额外添加一个默认框宽高为:
最终,选取的三个特征图中每个特征图的每个像素点的候选区域个数为6;
三个特征图的尺度不同,六个候选区域的大小形状不同,以覆盖各种形状和大小的目标。
进一步地,所述步骤s5包括:
对步骤s5的三个特征图的每个候选区域分别进行3×3×(k×4)无激活函数的卷积运算,得到候选区域的四个偏移位置,用于目标定位预测,
其中3×3为卷积核大小,k为每个特征图上各个像素点的默认框个数,‘4’为候选区域的四个偏移位置:起点横纵坐标和宽、高;
再将步骤s5选取的三个特征图的候选区域分别进行3×3×(k×3)无激活函数的卷积运算,得到3个类别置信度,用于目标分类预测,
其中3×3为卷积核大小,k为每个特征图上各个像素点的默认框个数,‘3’为每个候选区域可能属于的类数,即目标共有三类,行人、轿车和卡车;
将三个类别置信度输出经过softmax函数进行处理,得到各个候选区域预测类别的概率;
将生成的anchorbox与候选区域的四个偏移位置融合得到目标的准确定位,即新生成的标注边框;
融合计算公式为:
xc=loc[0]×wref×sacling[0]+xref
yc=loc[1]×href×sacling[1]+yref
w=wref×e(loc[2]×sacling[2])
h=href×e(loc[3]×sacling[3])
其中,xc、yc为标注边框的中心点坐标,w、h为标注边框的宽和高,loc为卷积得到的候选区域偏移的四个位置偏移量,xref、yref、wref、href为根据比例值计算得到的候选区域偏移的四个位置偏移量,scaling为默认参数,大小为[0.1,0.1,0.2,0.2];
对新生成的标注边框进行筛选,对于每个标注边框,若预测其属于某类的概率大于第一阈值,则保留该标注边框,并保存其所属的类和预测得分;
然后对各个标注边框的预测类别得分进行降序排列,取得分最高的n个默认框,采用非极大值抑制法对剩余的标注边框进行再次筛选,即对任意两个标注边框计算jaccard值,当两个标注边框为不同类预测或者jaccard值小于第二阈值时,保留两个标注边框,否则只保留预测分值高的标注边框;
根据标注边框的四个位置偏移将标注边框标注在视频图像帧上,并标注其所预测的类别;
最后在步骤s6中将标注过的视频图像帧合成为视频,送到显示屏进行显示。
另一方面,本发明还提供一种车载处理装置,包括全景辅助系统,和车载处理装置,所述车载处理装置与所述全景辅助系统连接,并执行上述任一所述的方法。
本发明具有的有益效果:
大型矿用卡车危险提醒方法可以检测出辅助系统中的目标及其位置并进行标注提醒,有效的提高了智能辅助系统的工作质量和工作效率。
本实施例的方法针对位于矿山区域中的卡车,卡车上的每一图像采集装置采集相应区域的图像信息;卡车上与所有图像采集装置连接的图像处理中心对图像信息进行实时处理,确定当前卡车的预设范围内是否存在待识别目标;若预设范围内存在待识别目标,则在显示屏中将目标以鲜亮颜色突出,以提醒驾驶人员。本发明的卡车危险提醒方法不采用网络通信,所有图像信息都实时处理,预警速度快。
本发明的卡车危险提醒方法采用基于多孔卷积的轻量级ssd目标检测模型剪枝压缩后生成的tiny模型对图像信息进行实时处理,该模型对矿区卡车需要特别识别的人、轿车和卡车目标识别速度快、识别效率高。
附图说明
图1为本发明一实施例提供的tiny模型的结构示意图;
图2为本发明一实施例提供的目标分类和定位的示意图;
图3为本发明一实施例提供的车载环境下的目标检测方法的流程示意图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
根据大型卡车工作环境中颜色冗余的特点,该发明采用灰度图像训练集代替彩色图像训练集训练模型;为解决目标检测模型占用存储空间较大,运行较慢等问题,该发明对基于多孔卷积的轻量级ssd目标检测模型进行剪枝压缩,提出了一种tiny模型。
以下提供一种车载环境下的目标检测方法,其为从训练模型开始的最具体的方法,本实施例不限定本发明的步骤,其为更好的说明给出的最详细的例子。
实施例一
如图3所示,本实施例提供一种车载环境下的目标检测方法,包括:
s1、车载处理装置接收车辆上的图像采集装置采集的视频图像帧;
s2、对每一视频图像帧进行预处理,得到预处理后的每一视频图像帧。
举例来说,对所述每一视频图像帧进行归一化和灰度化,并将灰度化的视频图像帧缩放到300*300*1的规格,得到预处理后的每一视频图像帧。
本实施例中的tiny模型的有效检测距离大于45m。
s3、将预处理后的每一视频图像帧输入到预先训练的tiny模型,得到对应每一帧的至少8个不同尺度的特征图;
s4、采用多尺度特征融合方式从所有特征图中选取三个特征图,在选取的三个特征图中生成不同大小、形状的候选区域anchorbox;
s5、基于选取的三个特征图,对选取特征图中的候选区域进行无激活函数的卷积运算,得到用于目标定位预测的候选区域的四个偏移位置;以及对选取特征图中的候选区域进行无激活函数的卷积运算,得到用于目标分类预测的三个类别置信度;并对三个类别置信度进行处理,得到各个候选区域预测类别的概率;
将生成的候选区域和候选区域的偏移位置融合得到目标的标注边框,对每个标注边框进行预测筛选,将筛选的标注边框标注在视频图像帧上,并标注预测的类别;
s6、将标注过的视频图像帧合成为视频,在显示屏显示和/或预警提示。
需要说明的是,在步骤s3之前,上述方法还可包括下述的图中未示出的步骤s0:
s0、利用迁移学习的策略,基于pascalvoc数据集和自采集数据集对tiny模型进行训练,获取训练后的tiny模型。
或者,在具体实现过程中,采用pascalvoc数据集对基于多孔卷积的轻量级ssd目标检测模块的tiny模型进行预训练;
接着,在自采集数据集上对预训练后的tiny模型参数进行调整,获得训练后的tiny模型;
其中,自采集数据集包括:矿区实地拍摄图像和矿区的视频监控图像;以及,预先对所述自采集数据集和pascalvoc数据集中的图像数据进行预处理,获取符合训练矿区卡车环境的灰度模式数据集。
另外,需要说明的是,本实施例中预先训练的tiny模型的结构包括:第一模块至第八模块;其第一至第八模块具体如下实施例二中的描述。
本实施例中的大型矿用卡车危险提醒方法可以检测出辅助系统中的目标及其位置并进行标注提醒,有效的提高了智能辅助系统的工作质量和工作效率。
例如,针对位于矿山区域中的卡车,卡车上的每一图像采集装置采集相应区域的图像信息;卡车上与所有图像采集装置连接的图像处理中心对图像信息进行实时处理,确定当前卡车的预设范围内是否存在待识别目标;若预设范围内存在待识别目标,则在显示屏中将目标以鲜亮颜色突出,以提醒驾驶人员。
特别地,本实施例中的卡车危险提醒方法不采用网络通信,所有图像信息都实时处理,预警速度快。
实施例二
第一、训练tiny模型的数据集
tiny模型的训练主要在pascalvoc数据集和自采集数据集上进行的,模型的训练采用迁移学习的策略。由于需要大型卡车车载环境下的图像进行目标检测,因此需要在相同类型的数据集上对目标检测模型进行训练。卡车车载环境下的图像与公开数据集pascalvoc数据集相似,但图像视角不同,而自采集数据集中图像数据的数量较少,不足以从头训练整个模型。迁移学习是指将模型在公开数据集上进行训练,这个过程又称为预训练。然后在自采集数据集上对模型参数进行微调。这种迁移学习可以使模型继承预训练模型的对象性,能在较少的数据上训练得到较好的效果。
自采集图像数据主要来自矿区的实地拍摄图像和学校内的视频监控图像,视频监控图像的采集高度约为3米,能够很好地模拟大型卡车车载环境下的图像。首先对图像进行模式转换,将rgb图像变换为灰度图像;然后对图像进行缩放,将图像缩放为640*360像素大小,便于训练目标检测模型;再对图像进行标注,生成包含目标位置信息和类别信息的xml文件;最后就是用全部数据信息生成tfrecord文件,也就是灰度模式数据集。
pascalvoc数据集是为视觉对象分类识别和检测等任务提供一整套的标准化的优秀数据集,其中包含待识别的目标共有20个类别。由于本文所做的卡车车载环境下的目标检测任务只需要识别行人、大型矿用卡车和普通汽车,因此需要对pascalvoc数据集进行筛选。由于原数据集中没有卡车类,而公共汽车与卡车近似,因此将pascalvoc数据集中除行人(person)、普通汽车(car)和公共汽车(bus)以外的类别删除。对图像数据进行灰度化处理,生成了灰度模式数据集。
第二、tiny模型的结构
如图1所示,每个输入图像都是平均裁剪为300×300×1的张量,即300*300像素的灰度图像,然后将一系列前馈卷积层应用于输入图像。考虑到灰度图像信息量是彩色图像信息量的1/3,因此tiny模型在基于多孔卷积的轻量级ssd目标检测模型基础上直接进行剪枝压缩,将模型压缩为原来的1/4大小。tiny模型实现目标检测检测算法主要由三个步骤实现:特征提取、候选区域生成和目标分类与定位。
整个模型包括八个模块,第一模块包括两个3×3卷积层和一个最大池化层;第二模块包括两个3×3卷积层和一个最大池化层;第三模块包括三个3×3卷积层和一个最大池化层;第四模块包括三个3×3卷积层和一个最大池化层;第五模块包括三个3×3卷积层和一个最大池化层;第六模块包括一个3×3的卷积层和一个最大池化层;第七模块包括一个1×1卷积层;第八模块包括一个1×1的卷积层和一个3×3的卷积层。模型的block(块)与block(块)之间是通过卷积层和池化层进行特征提取与信息传递的,卷积层和池化层组合起到特征提取器的作用。卷积层中每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征;池化层又称下采样层,用来减小特征层分辨率,实现不变性。以块1为例,300×300×1的输入图像经过两次16个3×3的卷积核处理,得到16个300×300的特征层,再经过最大池化层,特征层的大小变为原来的一半,得到16个150×150的特征层。
为了实现不同形状和大小的目标检测,在多个尺度的特征图上生成候选区域,选择的多个尺度特征图为block3+block4(38×38)、block7(19×19)和block8(10×10)模块的输出特征图。对于每个特征图,它包含特定数量的候选区域anchorbox(又称defaultbox,默认框),这些边界框具有一定的比例和纵横比,是目标候选区域。anchorbox的尺度计算公式为:
其中,m为特征图数目;smin为最底层特征图anchorbox的尺度,取值为0.10;smax为最顶层特征图anchorbox的尺度,取值为0.50。每个anchorbox的纵横比需要根据比例值计算,根据卡车车载环境下目标的特性,纵横比例值选为
对于比例为1的anchorbox,额外添加一个anchorbox,其大小为:
最终,每张特征图中的每个像素生成6个anchorbox。每个anchorbox中心设定为:
其中,|fk|为第k个特征图的尺寸。
目标分类与定位是对在候选区域内提取的特征进行分类和定位,得到目标类别信息和位置信息,即采用两种不同类型的滤波器:分类滤波器和定位滤波器对每个特征图的anchorbox进行操作,得到目标得分和边界框偏移,从而确定目标的类别和位置。目标分类和定位的具体实现如图2所示。
每个anchorbox通过4×a个3×3卷积运算得到目标的位置信息,通过(k+1)×a个3×3卷积运算结合softmax函数得到目标的类别信息,其中,a为anchorbox正样本的个数,k为目标的总类数。
第三、tiny模型训练中的损失函数
损失函数用在模型训练中的作用是衡量目标检测模型的实际结果与预期结果之间的误差。模型的损失函数由三部分组成,位置偏移损失、目标得分损失和目标先验损失,总的损失函数是这三部分的加权总和。损失函数的公式为:
其中,α、β为权值,n为匹配的anchorbox个数,如果n=0,则该项公式为0。
位置偏移损失函数定义为:
其中,l为图像中目标标注的位置,g为编码后目标box的偏移。
目标得分损失函数为多类别softmax损失:
其中,
目标先验损失函数通过二元交叉熵计算:
第四、tiny模型训练过程
在首次运行载有本发明的程序时,需要对tiny模型进行训练,训练tiny模型具体包括以下步骤:
首先对数据集图像进行増广处理,采用的方法有:按一定的比例随机左右翻转图像、按一定的比例随机扭曲图像的颜色、按0.1-1的比例在原图像中随机截取部分图像并进行缩放变换、对图像进行归一化处理。
其次搭建模型的网络架构:输入图像大小为300*300像素;第一模块:采用16个步长为1,大小为3×3的卷积核对原始图像进行卷积两次,填充方式为‘same’(补零使输入输出的图像大小相同),激活函数为线性整流函数(rectifiedlinearunit,relu);再采用步长为2大小为2×2的池化核进行最大池化,输出为16个150×150的特征图;第二模块:采用32个3×3的卷积核对第一模块输出进行卷积两次,即两个卷积层;再采用步长为2大小为2×2的池化核进行最大池化,输出为32个75×75的特征图;第三模块:采64个3×3的卷积核对第二模块输出进行卷积三次,即三个卷积层;再采用步长为2大小为2×2的池化核进行最大池化,输出为64个38×38的特征图;第四模块:采128个3×3的卷积核对第三模块输出进行卷积三次,即三个卷积层;再采用步长为2大小为2×2的池化核进行最大池化,输出为128个19×19的特征图;第五模块:采128个3×3的卷积核对第四模块输出进行卷积三次,即三个卷积层;再采用步长为1大小为3×3的池化核进行最大池化,输出为128个19×19的特征图;第六模块:采用256个3×3,rate(扩展率)为6的卷积核对第五模块输出进行卷积一次,即一个卷积层,输出为256个19×19的特征图,该特征图在训练网络时是随机失活层,失活率为0.5;第七模块:采用256个1×1的卷积核对第六模块输出进行卷积一次,即一个卷积层,输出为256个19×19的特征图,该特征图也是随机失活层,失活率为0.5;第八模块:采用64个1×1的卷积核对第七模块输出进行卷积一次,即一个卷积层;再用采128个步长为2,大小为3×3的卷积核对第七模块输出进行卷积一次,填充方式为‘valid’(不会在原有输入的基础上添加新的像素),输出为128个10×10的特征图。
本实施例的tiny模型采用多层特征融合方法,将第三模块、第四模块、第七模块和第八模块输出的特征图进行特征融合,其中,第三模块经多孔卷积处理后与第四模块相连接,作为新模块,然后将第三模块和第四模块池化层之前的卷积层输出特征图和第七模块、第八模块的输出特征图做多尺度特征融合,具体步骤为:首先,第三模块中第三个卷积层的输出特征图采用步长为1,大小为2×2的池化核进行最大池化;再采用128个大小为3×3、rate为3的卷积核进行卷积,再经过归一化层得到输出特征图;将第四模块中第三个卷积层的输出特征图经过归一化层,然后与第三模块的输出特征图连在一起,也就是说,新模块的输出特征图格式与第三模块的输出特征图格式相同;
然后,将新模块、第七模块和第八模块输出的特征图进行特征融合。本实施例中的多尺度特征融合是将三个个特征特图单独提出来,在每个特征图上生成候选区域,所以本质没变,还是特征图。其目的是为了生成不同大小和形状的候选区域,检测不同大小形状的目标。
对在每个特征图上生成的anchorbox与图像样本中标注的目标参考框(groundtruthbox)进行匹配。通过计算groundtruthbox和anchorbox的jaccard相似度来确定每个groundtruthbox所对应的anchorbox。jaccard相似度就是两个集合a、b的重叠程度,也就是计算a与b交并集之比:
jaccardsim=(a∩b)/(a∪b)
如果groundtruthbox和anchorbox的jaccard相似度大于设定阈值,那么这个anchorbox与groundtruthbox就是相对应的,本实施例中,设定阈值为0.45。这种情况下,要将groundtruthbox的类别信息对应到anchorbox上,并将两者jaccard值作为anchorbox类别的得分,同时groundtruthbox和anchorbox之间的位置偏移也被记录下来。有时会存在多个groundtruthbox对应同一个anchorbox的情况,针对这个问题,需要采用非极大值抑制法(non-maximumsuppression,nms)只保留一个与该anchorbox的jaccard值最大的groundtruthbox。对groundtruthbox和其对应的anchorbox进行编码确定目标的具体位置,编码计算公式为:
ex=(cxg-cxd)/wd
cy=(cyg-cyd)/hd
其中,(cx,cy)表示编码后目标box的中心,而(w,h)代表box的宽和高。下标索引g和d分别表示groundtruthbox和anchorbox,cxg、cyg、wg、hg是从训练图像直接读取的。对anchorbox进行激活函数的卷积运算,得到三个类别置信度,类别置信度用于目标的类别预测;采用softmax函数对类别置信度进行处理,得到anchorbox的预测类别的概率。
使用指数加权移动平均梯度下降法(rmsprop)训练模型,参数采用msra参数初始化法。在训练数据时,增加训练的训练次数有助于提高模型精度。本文实验先在pascalvoc数据集上训练40000次得到预训练模型,然后将预训练模型在自采集数据集上训练60000次,共计训练100000次。保存训练完成的tiny模型参数。
第四、训练后的tiny模型的应用
训练完成的tiny模型结构为:输入图像大小为300×300×1,采用16个3×3的卷积核对原始图像进行卷积两次,即两个卷积层;再采用步长为2大小为2×2的池化核进行池化;
第二模块:采用32个3×3的卷积核对第一模块输出进行卷积两次,即两个卷积层;再采用步长为2大小为2×2的池化核进行池化;
第三模块:采用64个3×3的卷积核对第二模块输出进行卷积三次,即三个卷积层;再采用步长为2大小为2×2的池化核进行池化;
第四模块:采用128个3×3的卷积核对第三模块输出进行卷积三次,即三个卷积层;再采用步长为2大小为2×2的池化核进行池化;
第五模块:采用128个3×3的卷积核对第四模块输出进行卷积三次,即三个卷积层;再采用步长为1大小为3×3的池化核进行池化;
第六模块:采用256个3×3,rate(扩展率)为6的卷积核对第五模块输出进行卷积一次,即一个卷积层;
第七模块:采用256个1×1的卷积核对第六模块输出进行卷积一次,即一个卷积层;第八模块:采用64个1×1的卷积核对第七模块输出进行卷积一次,即一个卷积层;再用采128个3×3的卷积核对第七模块输出进行卷积一次,共两个卷积层。
使用训练完成的tiny模型进行卡车安全预警的具体步骤如下:构建tiny模型架构,加载训练完成的模型参数;将摄像头采集回来的卡车周围的视频截取成一帧一帧的图像,对图像进行预处理,即对图像进行归一化和灰度化,并将图像缩放到300×300×1的规格;将预处理完成的图像经过tiny模型处理,得到8个不同尺度的特征图,在新模块特征图、第七模块特征图和第八模块特征图共三个模块特征图上生成不同大小、形状的候选区域(anchorbox),即在特征图中,以各点像素确定候选区域的中心,中心为
其中,m为第二特征图数目,这里m为3;这里smin为0.10;smax为0.5。每个候选区域的长宽比根据比例值计算:
其中,a为候选区域比例值。对于比例为1的候选区域,额外添加一个默认框宽高为:
最终,每个像素点的候选区域个数为6。三个特征图的尺度不同,六个候选区域的大小形状不同,基本可以覆盖各种形状和大小的目标。
对之前的三个特征图分别进行3×3×(k×4)无激活函数的卷积运算,得到候选区域的四个偏移位置,用于目标定位预测,其中3×3为卷积核大小,k为每个特征图上各个像素点的默认框个数,‘4’为候选区域的四个偏移位置:起点横纵坐标和宽、高;再将之前的6个特征图分别进行3×3×(k×3)无激活函数的卷积运算,得到3个类别置信度,用于目标分类预测,其中3×3为卷积核大小,k为每个特征图上各个像素点的默认框个数,‘3’为每个候选区域可能属于的类数,即目标共有3类,行人、轿车和卡车。以块7为例,块7的大小为19×19,k为6,因此最后的输出为(19×19)×6×(3+4)。将三个类别置信度输出经过softmax函数进行处理,得到各个候选区域预测类别的概率(取值范围为0-1)。将生成的anchorbox与候选区域偏移融合得到目标的准确定位,即标注边框。融合计算公式为:
xc=loc[0]×wref×sacling[0]+xref
yc=loc[1]×href×sacling[1]+yref
w=wref×e(loc[2]×sacling[2])
h=href×e(loc[3]×sacling[3])
其中,xc、yc为标注边框的中心点坐标,w、h为标注边框的宽和高,loc为卷积得到的候选区域偏移的四个位置偏移量,xref、yref、wref、href为根据比例值计算得到的候选区域偏移的四个位置偏移量,scaling为默认参数,大小为[0.1,0.1,0.2,0.2]。
对新生成的标注边框进行筛选,对于每个标注边框,若预测其属于某类的概率大于阈值(这里取阈值为0.5),则保留该标注边框,并保存其所属的类和预测得分;然后对各个标注边框的预测类别得分进行降序排列,取得分最高的n个默认框,这里取n为400。采用非极大值抑制法对剩余的标注边框进行再次筛选,即对任意两个标注边框计算jaccard值,当两个标注边框为不同类预测或者jaccard值小于阈值时(这里阈值为0.45),保留两个标注边框,否则只保留预测分值高的标注边框。根据标注边框的四个位置偏移将标注边框标注在图片上,并标注其所预测的类别。最后将标注过的图片合成为视频,送到显示屏进行显示。
将本发明的tiny模型和改进前的基于多孔卷积的轻量级ssd目标检测模型对比,对比结果如下表所示:
表中,其中fps为检测速度:每秒显示的帧数;map为检测精度,是目标检测中常用的检测精度度量指标;模型占用内存用于衡量模型的大小。由上表可以看出,本发明的tiny模型在牺牲一部分检测精度的前提下,有效的提高了模型的检测速度,降低了模型占用存储空间大小。采用本发明tiny模型的预警系统可以直观的显示卡车周围的环境,重点标注人员和车辆,所有图像信息都实时处理,预警速度快,提高了矿区大型卡车的安全性。
本发明tiny模型的有效检测距离为50米,而大型卡车满载情况下的的刹车距离大约为45米左右,满足安全预警的要求。相比于改进前的网络,该发明的检测速度约为原来的3倍,占用内存空间约为原来的1/7大小。
本发明的卡车危险提醒方法采用基于多孔卷积的轻量级ssd目标检测模型剪枝压缩后生成的tiny模型对图像信息进行实时处理,该模型对矿区卡车需要特别识别的人、轿车和卡车目标识别速度快、识别效率高。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上述各个实施例可以相互参照,本实施例不对各个实施例进行限定。
最后应说明的是:以上所述的各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。