一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种交互式辅助安全驾驶系统

2022-11-19 15:48:40 来源:中国专利 TAG:


1.本发明涉及安全驾驶技术领域,具体为一种交互式辅助安全驾驶系统。


背景技术:

2.随着科技的进步与社会的发展,人们对汽车的拥有量越来越高。在汽车数量不断增多的同时,交通环境也随之变得拥堵,驾驶员在驾驶时出现交通事故的风险也越来越高。究其原因主要为对车外场景无法有效感知。该问题严重影响了驾驶员的驾驶安全与行人的生命安全。因此,如何更加有效地保障驾驶员与行人生命安全成为亟待解决的问题。
3.目前常见的安全驾驶系统主要基于ai智能系统来处理数据,通过提前让驾驶者意识到可能发生的危险,有效提高驾驶安全性。大体上包括以下功能:车距过近报警以及行人碰撞报警等。
4.行人碰撞报警模块的设计思路是当检测到驾驶车辆与行人距离相比于安全距离存在潜在风险时,给予对应的语音或视觉显示警报提示。但在复杂拥堵的环境下要保证路人安全(即高精度的行人碰撞感知),则对行人检测准确率有极高的要求。而在实际场景中,行人在路过马路时经常出现互相遮挡或者被静止物体遮挡等现象,仅靠传统的行人检测算法并不具备较高的可靠性,仍然存在潜在的危险。
5.此外,精准检测驾驶前方路面信息也是重要的一环。由于在路面平整度较差的情况下驾驶员难以保证平稳驾驶,会增大交通事故发生的风险。目前常见的路面平整度检测方法主要包括通过专用车辆搭载专业检测设备检测和基于深度学习检测。现今市场常见产品多数不具备路况检测模块,而传统的路面检测仪器检测成本较高、检测频率较低、实时性不高的问题导致了该方法在实际应用中存在局限性。基于深度学习的路面平整度检测思路为:首先采集行车过程中的振动数据信息,设置有效的加速度指标,再使用聚类框架加上数据挖掘方法,可以较为准确地实现路面平整度的检测,同时降低了成本。
6.对于车距过近报警模块,目前常见市场产品主要通过检测并计算驾驶车辆与前车之间的距离,并与预设安全距离值进行比较。当距离低于预设安全距离阈值时,警报系统会触发警报提示。但实际驾驶中,如果驾驶车辆与前方车辆车速差异很大或者在冰雪天气下,即便与前车的距离较大,也可能无法及时制动而导致交通事故发生。
7.由于现有技术综合性较差,不有效保障驾驶员的生命安全,并减小交通事故发生几率。


技术实现要素:

8.本发明的目的是:针对现有技术中综合性较差,难以有效保障驾驶员的生命安全,并减小交通事故发生几率的问题,提出一种交互式辅助安全驾驶系统。
9.本发明为了解决上述技术问题采取的技术方案是:
10.一种交互式辅助安全驾驶系统,包括复杂拥堵场景下行人检测模块、路面病害信息检测模块、驾驶周围交通标志检测与识别模块和驾驶前后方车速检测及前车碰撞报警模
块;
11.所述复杂拥堵场景下行人检测模块用于检测车辆前方的行人,当行人与车辆的距离小于安全阈值时,通过语音反馈给驾驶员;
12.所述路面病害信息检测模块用于检测路面的病害信息,并将检测到的信息通过语音反馈给驾驶员;
13.所述驾驶周围交通标志检测与识别模块用于对车辆前方的交通标志进行检测和识别,并将检测和识别结果通过语音反馈给驾驶员;
14.所述驾驶前后方车速检测及前车碰撞报警模块用于对前后方的车辆与驾驶车辆的距离以及前后方车辆的速度进行检测,若前后方的车辆与驾驶车辆的距离小于安全距离阈值或前后方车辆的速度大于速度阈值时,通过语音反馈给驾驶员;
15.所述复杂拥堵场景下行人检测模块通过行人检测算法实现,所述行人检测算法具体包括以下步骤:
16.步骤1:获取视频流文件,然后针对视频流文件进行逐帧提取,对提取到的每一帧图像通过非极大抑制算法识别是否存在遮挡和遮挡对象,并将遮挡对象定义为活跃状态,将被遮挡对象定义为非活跃状态;
17.步骤2:在非活跃状态和活跃状态轨道回归之前,假设行人移动的速度恒定,并利用mm模型预测下一帧中遮挡对象和被遮挡对象轨迹的位置,并通过计算平均前n个边界框中心的位移得到遮挡对象和被遮挡对象的速度,具体为:
[0018][0019]
其中,si表示第i个边界框中心的位移,t
l
表示相邻两帧图像之间的时间间隔;
[0020]
步骤3:利用cmc模型得到相机运动速度,设pd为被遮挡行人的中心位置,其坐标为(xd,yd),设被遮挡行人的非活跃状态轨迹的估计位置p
l
坐标为(x
l
,y
l
),当两个坐标之间差距低于设置的阈值时,则被遮挡对象会激活非活跃状态,即进入活跃状态,具体为:
[0021]
||p
d-p
l
||≤d
max
[0022][0023]
其中,d
max
随非活动轨迹的速度以及轨迹已经处于非活跃状态的时间t
inactive
的增加而增加,γ表示控制d
max
数值的参数;
[0024]
步骤4:根据cmc模型得到相机运动速度进而得到检测标记框,然后在步骤3中进入活跃状态对象的运动轨迹中任意提取两个tracklet,如果两个tracklet完全重叠,即在两个tracklet都有检测标记框的每帧中iou值均高于阈值,则二者属于同一个目标,如果两个tracklet部分重叠,即存在没有重叠的帧,iou值低于阈值,这时仅保留每帧中最长tracklet对应的检测标记框;
[0025]
步骤5:当检测标记框与进入活跃状态的对象的重叠部分减少时,回归分数s会随之下降,当回归分数s小于阈值s
min
且进入活跃状态的对象的检测标记框的边界与图像的边界重合时,计算检测标记框的运动轨迹的二维速度向量如果的方向指向图像边界,则将检测标记框在运动轨迹中删除,否则,保留该检测标记框;
[0026]
步骤6:通过姿态估计网络提取被跟踪行人的17个关键点,所述被跟踪行人为进入
活跃状态的对象,并根据17个关键点构建响应图作为数据输入,并计算被跟踪行人的每个人体关键点的注意力权重attentionk,具体为:
[0027]
attentionk=average_pool(relu(conv(k)))
[0028][0029]
其中,average_pool表示全局平均池,用于将每个通道的特征编码成对应的全局特征,attentionk表示被跟踪行人的人体关键点注意力权重,attentionk∈rc×1×1,conv表示3
×
3的卷积核,relu表示激活函数,f表示提取到的行人关键点特征,表示对被遮挡部位进行nms抑制后的特征值;
[0030]
步骤7:首先对被跟踪行人的可见部分进行mask掩膜构建,即可见部位标记为1,不可见部位标记为0,最终被跟踪行人的可见部位特征图表示为:
[0031][0032]
其中,

表示按照对应位置乘法运算;
[0033]
步骤8:设被跟踪行人为t,设被跟踪行人对应的所有候选标记框组成的集合为c,经过调参处理后,通过下式计算集合c中各个元素的值m:
[0034]
m=3*err
cls
err
reg
[0035]
根据集合c中各个元素的值m并结合下式筛选出最小的元素t
end

[0036][0037]
其中,err
cls
与err
reg
分别指预测标记框与真实标记框的误差与回归误差;
[0038]
步骤9:将最小的元素t
end
对应的检测标记框之外的检测标记框进行抑制处理,即归一化处理,表示为:
[0039][0040][0041]
grade=α*dis
cls
βdis
reg
[0042]
dis
cls
=yi*log(σ(p(yi))) (1-yi)*log(1-σ(p(yi)))
[0043][0044]
其中,dis
cls
表示候选检测框样本与真实框类别的差距,yi∈{0,1},σ表示sigmoid函数,用于将值映射到(0,1)之间,dis
reg
表示候选检测框样本与真实框的回归的差距,z
x
和zy分别表示候选检测框的中心点坐标,v
x
和vy分别表示表示真实框的中心点坐标,wz和hz分别表示候选检测框的宽度和高度;
[0045]
步骤10:设置损失函数l;
[0046]
步骤11:根据步骤1~步骤10对于整个模型进行训练与测试,并且计算得出各项模型评估指标。
[0047]
进一步的,所述损失函数l包括中心点处损失、行人损失、偏移量损失、区域像素学习损失以及区域细粒度分割学习损失;
[0048]
l=λ1l
center
λ2l
scale
λ3l
offset
λ4l
pixel
λ5lf[0049]
其中,l
center
表示中心点处损失,l
scale
表示行人损失,l
offset
表示偏移量损失,l
pixel
表示区域像素学习损失,lf表示区域细粒度分割学习损失,对于控制系数参数λ1~λ5分别设置0.02、0.005、0.1、0.0002、0.0001。
[0050]
进一步的,所述中心点损失定义如下:
[0051]
中心点l
center
包括行人身体的中心点、行人头部中心点以及行人可见部分的中心点,这三个中心点对应的真实图像输出通道数目有3个,通道1内中心点处设值为1,其余位置则根据2d高斯函数生成中心点map值,通道2中设置行人中心点处值为1,其余位置设值为0;通道3中行人检测框区域内赋值为1,其余区域设值为0,中心点真实图像已有值时,则取已有值和当前值中较大者,中心点损失表示为:
[0052][0053][0054][0055][0056]
其中,n表示每张图中行人数,(xa,ya,σ
wa
,σ
ha
)表示行人的坐标,如果某个坐标值中存在多个高斯值,则取其最大值max,σw表示行人对应宽度的高斯值,σh表示行人对应高度的高斯值,r
ij
表示预测图中(i,j)处置信度值,表示不同对应y
ij
下的预测值,预测图大小表示实际执行时,α设为4,β设为2,y
ij
表示行人中心点处的赋值,β
ij
表示不同ij下的系数参数。
[0057]
进一步的,所述行人损失定义如下:
[0058]
对于行人损失,基于l1loss损失函数,分别包括宽度和高度的损失,
[0059]
l
scale
=l
height
l
width
[0060][0061][0062]
其中,sa表示对行人宽度的真实值取对数,ta表示对行人宽度的预测值取对数,sb表示对行人高度的真实值取对数,tb表示对行人高度的预测值取对数,a=1...n,b=1...n。
[0063]
进一步的,所述偏移量损失定义如下:
[0064]
偏移量损失函数基于smoothl1损失函数,表示为:
[0065]
[0066]
其中,ok和o
k1
分别表示偏移量的真实值与预测值。
[0067]
进一步的,所述区域像素学习损失定义如下:
[0068]
设a为行人所在区域所有像素数目,m
t
,m
p
分别表示行人所处真实区域的像素值和模型预测出的行人所处区域的像素值,区域像素学习损失表示为:
[0069][0070]
进一步的,所述区域细粒度分割学习损失定义如下:
[0071][0072]
其中,n
t
,n
p
分别表示行人所处真实区域细粒度分割图像和模型预测出的行人所处区域的细粒度分割图像。
[0073]
进一步的,所述路面病害信息检测模块通过路面病害信息检测算法实现,所述路面病害信息检测算法具体包括以下步骤:
[0074]
步骤1:获取路面图像,并对路面图像进行特征提取,之后根据提取到的特征并进行sobel边缘检测,具体为:
[0075][0076][0077][0078][0079]
其中,g
x
表示水平方向的梯度,gy表示垂直方向的梯度,g
x

和gy′
表示对角线方向梯度,zi(i∈[1,9])表示3
×
3的sobel算子模板中各个坐标处显示的数值;
[0080]
步骤2:将ssd模型中vgg16替换为inception网络结构,并在conv6-conv12之间引入se-net注意力机制;
[0081]
步骤3:引入损失函数,所述损失函数包括位置损失αl
loc
(x,l,g)和分类损失l
conf
(x,c),总体损失量为:
[0082][0083]
其中,x与c分别表示指示量以及设置的置信度,l与g分别表示预测框以及背景框;
[0084]
步骤3.1:计算位置损失,位置损失指预测检测框与真实检测框之间的损失量表示为:
[0085][0086]
[0087][0088][0089][0090]
其中,l
loc
表示位置损失中的子变量,pos表示检测框所涵盖的区域,表示检测框中第i个样本表示的预测框,表示中间变量,表示中心横坐标中第j个样本所对应的背景框,表示中心纵坐标中第j个样本所对应的背景框,表示中心横坐标中第i个样本所对应的网络本身预定的绑定框,表示中心纵坐标中第i个样本所对应的网络本身预定的绑定框,表示第i个样本中宽度表示w的网络本身预定的绑定框,表示第i个样本中高度表示w的网络本身预定的绑定框,表示第j个样本中宽度表示w的背景框,h表示行人对应高度;
[0091]
步骤3.2:计算分类损失,分类损失即softmax损失,具体为:
[0092][0093][0094]
其中,n表示样本数目,x与c分别表示指示量以及设置的置信度,l与g分别表示预测框以及背景框,α表示位置框损失值权重,c
x
,cy,w,h分别表示标记框的中心坐标(x,y)和标记框的高度与宽度值,d表示网络本身预测的标记框,表示第i个样本下第j个指示量,表示中间变量,neg表示样本的回归区域,表示第i个样本的置信度,p表示计算系数;
[0095]
步骤4:设置批量处理数为20,图像大小设置为400
×
400,学习率设置为0.005,迭代次数为5000,采用l2正则化标准训练模型,并利用测试集测试模型性能。
[0096]
进一步的,所述驾驶前后方车速检测及前车碰撞报警模块具体执行如下步骤:
[0097]
步骤1:定义a车表示驾驶员驾驶的车辆,a车前方带有车外摄像头o2,f表示摄像机焦距,b车表示驾驶过程中前方车辆,m为b车车尾,p为b车中心点所在的水平位置,h表示摄像机在车上的高度,d1表示a车与b车之间距离,o3m表示b车车位垂直投影到地面上的点在图像中距离图像中线的距离,根据几何关系可计算出两车中心点间的距离o3p,具体为:
[0098][0099][0100]
其中,α1表示o2和b车中心点间与水平线的夹角,γ1表示o2与m与水平线的夹角;
[0101]
根据上式可知垂直方向y的坐标o2p与垂直方向x的坐标pq,表示为:
[0102][0103][0104][0105]
其中,q表示o2相较于α1夹角下与水平面的交点在x轴上的映射点,β1表示o2和p与水平面的夹角,p1表示o2p的延伸线与y轴的交点,o1表示o2与m的连线的延伸线与y轴的交点,x
pix
表示测试时间,v表示a车的行驶速度,v
center
表示b车的行驶速度;
[0106]
步骤2:设不同时刻待测车辆在成像平面上的高度为ui(i=0,1,2...),设两辆车在两个不同时刻相对距离分别d
r1
和d
r2
,根据下式计算出两个不同时刻的相对距离:
[0107][0108]
其中,kh表示车实际高度,α0表示控制角度,根据上式可知,两车相对距离变化为:
[0109][0110]
根据上式可知,当l

小于0时,表示两车逐渐靠近;当l

大于0时,两车逐渐远离;当|l

|值无限趋近与1时,两车相对车距变化无限增大;|l

|值无限趋近与0时,两车相对车距变化无限减小;
[0111]
步骤3:车辆间相对速度表示为:
[0112][0113]
其中,δt表示检测到的相邻两帧图像之间的时间间隔,i=1...n。
[0114]
进一步的,所述系统还包括:离岗检查与身份鉴定模块、疲劳状态检测与情绪状态检测模块、危险驾驶行为检测模块;
[0115]
所述离岗检查与身份鉴定模块包括离岗检查单元和身份鉴定单元,所述离岗检查单元用于通过车内摄像头检测人脸,并进行活体检测,当检测不到人脸、人脸被遮挡或未通过活体检测时,则触发警报,所述身份鉴定单元用于将检测到的人脸信息与数据存储中设定的车主信息进行匹配,匹配成功,则允许驾驶,若匹配失败,则触发警报;
[0116]
所述疲劳状态检测与情绪状态检测模块用于在检测到允许驾驶后,通过驾驶员脸部、眼部和体态特征检测驾驶员是否疲劳驾驶,若是,则触发警报,否则,不触发警报;
[0117]
所述危险驾驶行为检测模块用于通过摄像头对驾驶员行车过程中的实时姿态进行检测,若检测到吸烟、喝水、接打电话、玩手机以及找东西行为,则触发警报。
[0118]
本发明的有益效果是:
[0119]
本技术提供了一种新型复杂场景下的行人检测算法(afcnn),有效提高了拥堵遮挡场景下对于行人的检测准确率,从而进一步降低了行人碰撞的风险;本技术提出了一种路面病害信息检测算法(si-ssd),降低了因路面状况差导致交通事故的几率;针对常见产
品中车辆碰撞检测算法难以应对冰雪天气等问题,引入了对驾驶前后方车辆的行驶速度进行实时检测的功能,便于驾驶员及时调整车速,进一步降低了交通事故的风险。本技术通过路面病害信息(坑洼、表面裂缝、路面损坏等)检测功能,降低了因路面条件较差情况下交通事故发生的几率;本技术提出的一种基于ssd模型改进的路面病害信息检测算法(si-ssd),在rdd数据集上进行验证:与传统ssd模型检测性能相比,si-ssd模型对横向裂缝的检测精度提高了约10%,可达到94.5%,对纵向裂缝的检测精度提高了约7.5%,可达到91.2%;本技术还提出了一种复杂拥堵场景下遮挡行人检测算法(基于注意力机制的可见部分特征提取的行人检测算法afcnn),提高了在复杂场景下行人检测的精度,在citypersons数据集中heavy子集上可达到40.6%的结果,在reasonable子集上可达到10.3%的效果(评估标准是mr-2
),与常见算法相比有了明显提高,降低了行人碰撞的几率。总之,本技术相比目前已有产品而言,更能有效保障驾驶员的生命安全,减小交通事故发生几率。
附图说明
[0120]
图1是车内场景中在/离岗检测与身份鉴定流程图;
[0121]
图2是车内场景中驾驶员驾驶状态检测分析(情绪检测、疲劳检测)流程图;
[0122]
图3是车内场景中危险驾驶行为检测分析流程图;
[0123]
图4是车内场景中语音交互与手势交互流程图;
[0124]
图5是车外场景中路面平整度检测流程图;
[0125]
图6是车外场景中复杂拥堵场景下行人检测流程图;
[0126]
图7是车外场景中交通标志检测流程图;
[0127]
图8是车外场景中驾驶前后方车辆速度检测流程图;
[0128]
图9是基于视觉测量车距的几何关系图像;
[0129]
图10是afcnn算法中不同额外特征加入后检测器性能对比分析图;
[0130]
图11是afcnn算法与其他算法性能比较测试图;
[0131]
图12是si-ssd模型与原始ssd模型性能比较测试图。
具体实施方式
[0132]
需要特别说明的是,在不冲突的情况下,本技术公开的各个实施方式之间可以相互组合。
[0133]
具体实施方式一:本实施方式所述的一种交互式辅助安全驾驶系统,包括复杂拥堵场景下行人检测模块、路面病害信息检测模块、驾驶周围交通标志检测与识别模块和驾驶前后方车速检测及前车碰撞报警模块;
[0134]
所述复杂拥堵场景下行人检测模块用于检测车辆前方的行人,当行人与车辆的距离小于安全阈值时,通过语音反馈给驾驶员;
[0135]
所述路面病害信息检测模块用于检测路面的病害信息,并将检测到的信息通过语音反馈给驾驶员;
[0136]
所述驾驶周围交通标志检测与识别模块用于对车辆前方的交通标志进行检测和识别,并将检测和识别结果通过语音反馈给驾驶员;
[0137]
所述驾驶前后方车速检测及前车碰撞报警模块用于对前后方的车辆与驾驶车辆
的距离以及前后方车辆的速度进行检测,若前后方的车辆与驾驶车辆的距离小于安全距离阈值或前后方车辆的速度大于速度阈值时,通过语音反馈给驾驶员;
[0138]
所述复杂拥堵场景下行人检测模块通过行人检测算法实现,所述行人检测算法具体包括以下步骤:
[0139]
步骤1:获取视频流文件,然后针对视频流文件进行逐帧提取,对提取到的每一帧图像通过非极大抑制算法识别是否存在遮挡和遮挡对象,并将遮挡对象定义为活跃状态,将被遮挡对象定义为非活跃状态;
[0140]
步骤2:在非活跃状态和活跃状态轨道回归之前,假设行人移动的速度恒定,并利用mm模型预测下一帧中遮挡对象和被遮挡对象轨迹的位置,并通过计算平均前n个边界框中心的位移得到遮挡对象和被遮挡对象的速度,具体为:
[0141][0142]
其中,si表示第i个边界框中心的位移,t
l
表示相邻两帧图像之间的时间间隔;
[0143]
步骤3:利用cmc模型得到相机运动速度,设pd为被遮挡行人的中心位置,其坐标为(xd,yd),设被遮挡行人的非活跃状态轨迹的估计位置p
l
坐标为(x
l
,y
l
),当两个坐标之间差距低于设置的阈值时,则被遮挡对象会激活非活跃状态,即进入活跃状态,具体为:
[0144]
||p
d-p
l
||≤d
max
[0145][0146]
其中,d
max
随非活动轨迹的速度以及轨迹已经处于非活跃状态的时间t
inactive
的增加而增加,γ表示控制d
max
数值的参数;
[0147]
步骤4:根据cmc模型得到相机运动速度进而得到检测标记框,然后在步骤3中进入活跃状态对象的运动轨迹中任意提取两个tracklet,如果两个tracklet完全重叠,即在两个tracklet都有检测标记框的每帧中iou值均高于阈值,则二者属于同一个目标,如果两个tracklet部分重叠,即存在没有重叠的帧,iou值低于阈值,这时仅保留每帧中最长tracklet对应的检测标记框;
[0148]
步骤5:当检测标记框与进入活跃状态的对象的重叠部分减少时,回归分数s会随之下降,当回归分数s小于阈值s
min
且进入活跃状态的对象的检测标记框的边界与图像的边界重合时,计算检测标记框的运动轨迹的二维速度向量如果的方向指向图像边界,则将检测标记框在运动轨迹中删除,否则,保留该检测标记框;
[0149]
步骤6:通过姿态估计网络提取被跟踪行人的17个关键点,所述被跟踪行人为进入活跃状态的对象,并根据17个关键点构建响应图作为数据输入,并计算被跟踪行人的每个人体关键点的注意力权重attentionk,具体为:
[0150]
attentionk=average_pool(relu(conv(k)))
[0151][0152]
其中,average_pool表示全局平均池,用于将每个通道的特征编码成对应的全局特征,attentionk表示被跟踪行人的人体关键点注意力权重,attentionk∈rc×1×1,conv表示3
×
3的卷积核,relu表示激活函数,f表示提取到的行人关键点特征,表示对被遮挡部位进行nms抑制后的特征值;
[0153]
步骤7:首先对被跟踪行人的可见部分进行mask掩膜构建,即可见部位标记为1,不可见部位标记为0,最终被跟踪行人的可见部位特征图表示为:
[0154][0155]
其中,

表示按照对应位置乘法运算;
[0156]
步骤8:设被跟踪行人为t,设被跟踪行人对应的所有候选标记框组成的集合为c,经过调参处理后,通过下式计算集合c中各个元素的值m:
[0157]
m=3*err
cls
err
reg
[0158]
根据集合c中各个元素的值m并结合下式筛选出最小的元素t
end

[0159][0160]
其中,err
cls
与err
reg
分别指预测标记框与真实标记框的误差与回归误差;
[0161]
步骤9:将最小的元素t
end
对应的检测标记框之外的检测标记框进行抑制处理,即归一化处理,表示为:
[0162][0163][0164]
grade=α*dis
cls
βdis
reg
[0165]
dis
cls
=yi*log(σ(p(yi))) (1-yi)*log(1-σ(p(yi)))
[0166][0167]
其中,dis
cls
表示候选检测框样本与真实框类别的差距,yi∈{0,1},σ表示sigmoid函数,用于将值映射到(0,1)之间,dis
reg
表示候选检测框样本与真实框的回归的差距,z
x
和zy分别表示候选检测框的中心点坐标,v
x
和vy分别表示表示真实框的中心点坐标,wz和hz分别表示候选检测框的宽度和高度;
[0168]
步骤10:设置损失函数l;
[0169]
步骤11:根据步骤1~步骤10对于整个模型进行训练与测试,并且计算得出各项模型评估指标。
[0170]
作为本技术的一种实施方式,可以包括以下模块:
[0171]
模块1.车内场景之离岗检查与身份鉴定。通过开启车内摄像头来检测人脸是否处于显示屏画面中,当驾驶员处于离岗状态或者驾驶员面部被遮挡时,会触发警报系统;身份鉴定指对检测到的人脸信息与数据存储中设定的车主信息进行匹配。为避免出现“照片”假检测情况,设置活体检测环节,通过活体检测后如果身份鉴定成功,则允许驾驶;如果鉴定失败,则触发警报系统。
[0172]
模块2.车内场景之疲劳状态检测与情绪状态检测。当终端设备检测到驾驶员在岗状态后,对驾驶员脸部、眼部、体态等细节特征进行智能分析并检测驾驶员是否疲劳驾驶。如果是,则触发警报提醒驾驶员注意休息。如果驾驶员长时间处于非中性状态则触发警报提醒驾驶员专注驾驶。
[0173]
模块3.车内场景之危险驾驶行为检测。摄像头会对驾驶员行车过程中出现诸如吸烟、喝水、接打电话、玩手机以及找东西等行为进行检测,同时检测车辆乘客人数是否超员,
乘客人数超员也属于危险驾驶行为之一。如果检测到危险驾驶行为,则触发警报提醒驾驶员小心驾驶。
[0174]
模块4.车内场景之语音识别与交互以及手势识别与交互。终端设备内置麦克风对提取驾驶员讲话内容,经过程序中算法模型进行语义分析,可以通过驾驶员讲出特定内容来唤醒不同的功能,具体包括:唤醒音乐播放器、提高音量、降低音量、播报天气情况、显示当前时间、唤醒导航系统等功能;而手势识别与交互部分则通过终端设备内置摄像头对手部姿态进行感知,对于不同手势可以做出不同的响应,能够唤醒的功能和语音唤醒是一致的。总之,手部姿态的识别与交互进一步扩大了整个安全系统的适用人群,尤其对于残障人士驾驶汽车提供了便利。
[0175]
模块5.车外场景之复杂拥堵场景下行人检测。由于复杂拥堵场景下检测到的行人目标存在大量重叠,故实际提取的特征并不具备较高可靠性。因此,在实际驾驶场景中,如果提取的特征并不足以被认定为行人或者检测准确率很低,往往容易造成行人碰撞。本技术针对该问题,基于fast r-cnn框架进行改进,提出了一种基于注意力机制的可见部分特征提取的行人检测算法(afcnn),在一定程度上可以减少由于遮挡带来的漏检,提升了复杂场景下行人检测效率,减小了行人碰撞的风险。
[0176]
模块6.车外场景之路面平整度与病害信息检测。由于传统的循环神经网络算法在接收复杂的路面信息数据输入时,神经网络层数会不断增多,激活函数作用的次数也随之增多,在反向传播环节会出现梯度下降的情况,影响最后检测精度。针对该问题,本技术引入一种基于lstm网络的算法,输入数据为路面信息数据,通过lstm网络对路面平整度指标(iri)进行计算;得到iri值后,根据定义的评价指标得到最终的路面平整度预测结果,并对iri异常的状况通过语音模型反馈给驾驶员,便于驾驶员根据实际情况做出调整;对于路面病害检测环节,由于传统的ssd网络难以高效处理路面图像色彩单一同时图像特征不明显的问题。本技术针对该问题,在卷积层加入了sobel边缘检测算子,提出了一种基于ssd模型改进后的路面病害信息检测算法(si-ssd),加快模型执行的同时也提高路面病害图像特征的提取效率。最后将实时检测到的路面平整度与路面病害信息通过语音模块反馈给驾驶人,利于驾驶人针对实时环境做出判断。
[0177]
模块7.车外场景之驾驶周围交通标志检测与识别。检测交通标志实质上是一个候选区域检测与分类问题,同时在驾驶过程中对交通标志检测需要极高的实时性。由于yolov3模型具有快速的特征提取网络darknet-53,而k-means模型具备较好地分类效果。因此本技术使用yolov3 k-means组合方法进行交通标志的检测与识别,并将实时检测结果通过语音模块反馈给驾驶人,利于驾驶人针对实时情况做出调整。
[0178]
模块8.车外场景之驾驶前后方车速检测及前车碰撞报警。该模块首先要对驾驶前后方的车辆进行监测和识别。由于汽车具有很多鲜明的特征,如颜色、边缘、阴影、车灯以及纹理等。通过这些特征可以进一步获取图像中汽车所在的区域,然后基于运动模型对定位到的车辆状态进行检测。在相对车速检测环节,本技术利用基于多帧图像叠加的方法,根据几何关系模型来计算车距变化的计算。当两车之间的车距低于安全阈值距离或者相对速度高于安全阈值速度时,通过语音模块提醒驾驶人针对实时情况做出调整。
[0179]
一、路面平整度检测
[0180]
步骤1:数据集预处理
[0181]
该步骤主要是对于数据集中的数据进行缺失值的填充,本技术中采用k-means算法对缺失值进行填充。归一化公式如式(1)所示
[0182][0183]
其中d为数据集中路面数据距离值,max与min分别表示数据中最大值与最小值。
[0184]
步骤2:池化层
[0185]
池化层主要加在卷积层之后,池化层加入目的是防止过拟合,同时也可以提升神经网络运行的效率。池化层采用3
×
3平均池化,更能保存采集的距离数据信息。
[0186]
步骤3:计算遗忘门的输出值
[0187]
该步骤主要是对于所有输入的信息进行存储和管理,同时对于所有信息进行筛选排查,将无用的信息滤去。具体计算公式如式(2)所示
[0188]ft
=σ(wf·
[h
t-1
,x
t
] bf)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0189]
其中,wf表示输入门所占权重,σ为sigmoid激励函数。bf为遗忘门的偏置向。
[0190]
步骤4:计算输入门的值并且更新网络单元状态信息,计算公式如式(3)-(4)所示
[0191]it
=σ(wi·
[h
t-1
,x
t
] bi)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0192][0193]
wi表示输入门的权重,wc表示单元状态的权重,bi表示输入门的偏置项,bc表示单元状态的偏置项。表示计算下一时刻所需更新信息的中间向量。
[0194]
步骤5:更新单元状态。该步骤主要由三个环节组成。首先是删除旧信息,然后利用来添加新的信息,最后计算输出门的值并且更新单元状态。计算公式如式(5)-(7)所示
[0195][0196]ot
=σ(wo·
[h
t-1
,x
t
] bo)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0197]ht
=o
t
*tanh(c
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0198]
其中o
t
表示激活后的值。
[0199]
步骤6:计算iri值,经过单元状态的不断更新,进行反向传播操作来更新模型参数,并利用预测模型进行预测。具体计算公式如式(8)所示
[0200][0201]
二、路面病害信息检测(坑洼、表面裂缝、路面损坏等)
[0202]
步骤1:sobel边缘检测与提取算子
[0203]
该步骤主要针对路面病害图像中特征较弱而难以处理的问题,其具体计算如式(9)-(12)所示
[0204][0205][0206][0207][0208]
其中g
x
表示水平方向的梯度,gy表示垂直方向的梯度,g
x

和gy′
表示对角线方向梯
度。zi(i∈[1,9])表示3
×
3的sobel算子模板中各个坐标处显示的数值。
[0209]
步骤2:构建路面病害检测模型(si-ssd)
[0210]
ssd模型以vgg16为基础网络提取特征,虽然可以提取丰富的信息但也存在一些不足,过多卷积核操作导致提取的特征太多而导致参数数目太大,对检测效率产生了负面影响,同时vgg16网络需要经过大量池化操作,容易丢失重要特征信息。针对这些问题,本技术提出了一种si-ssd模型,该模型基于ssd模型进行改进,整体结构如表1所示。首先将vgg16结构更改为inception网络结构,因为inception模块中有一个中瓶颈层(1
×
1的卷积),可以降低参数数目,减小对检测效率的影响。inception block设置5层,transition layer作用是进行特征降维,随后采用step为2的深度可分离卷积来替换最大池层,并在conv6-conv12之间引入注意力机制(se-net),检测特征图从而得出默认框,最后进行非极大值抑制筛选。在训练数据集过程中,引入注意力机制可以有效增加裂缝所在位置的权重系数,提升对裂缝重要特征的提取效率,同时也可以提高损失函数计算的精确度。
[0211]
表1.si-ssd模型结构
[0212]
[0213][0214]
步骤3:计算损失函数,该步骤主要包含两个环节:位置损失、分类损失。具体计算公式如式(13)所示
[0215][0216]
步骤3.1:计算位置损失,位置损失指预测框与真实框之间的损失,计算公式如式(14)-(18)所示
[0217][0218][0219][0220][0221][0222]
步骤3.2:计算分类损失,分类损失指softmax损失,计算公式如式(19)-(20)所示
[0223]
[0224][0225]
其中n表示样本数目,x与c分别表示指示量以及设置的置信度,l与g分别表示预测框以及背景框。α表示位置框损失值权重,c
x
,cy,w,h分别表示标记框的中心坐标(x,y)和标记框的高度与宽度值,d表示网络本身预测的标记框。
[0226]
步骤4:训练与验证模型,为验证si-ssd模型的执行效果,本技术采用rdd数据集进行验证,并且对比si-ssd模型与原始ssd模型的性能。该数据集包含7个城市的不同路面病害图片,并将路面病害分为8个类别并标记其类别名称,具体如表2所示。
[0227]
表2.rdd数据集中各种路面病害类型及其定义
[0228][0229]
对于模型训练参数而言,批处理数为20,图像大小设置为400
×
400,学习率为0.005,迭代次数为5000,正则化标准采用l2正则化。
[0230]
三、车辆距离以及相对速率计算
[0231]
步骤1:计算待测车辆与成像平面位置关系,由于检测前后方车辆距离和车速的基本原理相同,不同之处仅在参考系,故此处只列举驾驶车辆与前方车辆的联合分析。在图9中,a车表示驾驶员驾驶的车辆,a车前方带有车外摄像头o2,f表示摄像机焦距。b车表示驾驶过程中前方车辆,h表示摄像机在车上的高度,d1表示a车与b车之间距离。o3m表示b车车位垂直投影到地面上的点在图像中距离图像中线的距离。根据几何关系可计算出o3p的长度,具体如式(21)-(22)所示
[0232][0233][0234]
根据上式可知垂直方向y的坐标o2p与垂直方向x的坐标pq,如式(23)-(25)所示
[0235][0236]
[0237][0238]
步骤2:帧差法计算车辆之间相对距离,设不同时刻待测车辆在成像平面上的高度为ui(i=0,1,2

),设两辆车在两个不同时刻相对距离分别d
r1
,d
r2
,根据式(26)可以计算出两车的相对距离。
[0239][0240]
其中k表示车实际高度。α0无限趋近于0,根据上式可知,两车相对距离变化可如式(27)得出。
[0241][0242]
根据上式可知,当l'小于0时,表示两车逐渐靠近;当l'大于0时,两车逐渐远离;当|l'|值无限趋近与1时,两车相对车距变化无限增大;|l'|值无限趋近与0时,两车相对车距变化无限减小;
[0243]
步骤3:计算车辆间相对速度,具体计算公式如下所示
[0244][0245]
其中δt表示检测到的相邻两帧图像之间的时间间隔。
[0246]
四、afcnn算法
[0247]
步骤1:遮挡定义与检测,当两个行人运动轨迹相互交叉时,检测到的行人边界框的重叠部分则会逐帧增加,直到非极大抑制(nms)过滤出准确的回归框才停止。如果行人a处于活跃状态而行人b处于非活跃状态,则定义行人a遮挡行人b。
[0248]
步骤2:mm(运动模型) cmc(相机运动补偿模型),在非活动和活动轨道回归之前,假设行人移动的速度恒定,在cmc模型工作前使用mm模型,为预测下一帧中轨迹的位置,通过计算平均前n个边界框中心的位移来计算其速度。具体计算如下所示
[0249][0250]
其中si表示各个边界框中心的位移,t
l
表示相邻两帧图像之间的时间间隔。
[0251]
步骤3:激活被遮挡行人非活跃状态,首先对非活跃状态进行mm模型与cmc模型处理,设pd为被遮挡行人的中心位置,其坐标为(xd,xd);设被p
l
遮挡行人的非活动轨迹的估计位置坐标为(x
l
,y
l
)。当两个坐标之间差距低于设置的阈值时,则新检测到的行人会激活非活跃状态而进入活跃状态。具体计算如下所示
[0252]
||p
d-p
l
||≤d
max
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(30)
[0253][0254]
其中d
max
随非活动轨迹v
l
的速度以及轨迹已经处于非活跃状态的时间的增加而增加,γ为控制d
max
数值的参数。
[0255]
步骤4:合并处理多个tracklet,如果两个tracklet(跟踪轨迹的小片段)完全重
叠,即在两个tracklet都有方框的每帧中iou均高于阈值,则可确定二者属于同一个目标。如果两个轨迹仅部分重叠,即存在没有重叠的帧(iou低于阈值),这时删除每个帧中较短轨迹的框,并认定长轨迹比短轨迹可信度更高、准确性更强。
[0256]
步骤5:行人轨迹判别,当待检测的行人即将离开检测的视野时,回归分数会随之下降,当回归分数s小于阈值s
min
且其边界框处于图像边界时,计算其运动轨迹的二维速度向量如果的方向指向图像边界,则将其在运动轨迹中删除。
[0257]
步骤6:检测与跟踪被遮挡行人,该步骤首先要提取人体关键点,通过姿态估计网络提取被跟踪行人的17个关键点,并根据这17个关键点(coco 17个关键点所对应的人体部位包括:0:鼻子、1:左眼、2:右眼、3:左耳、4:右耳、5:左肩、6:右肩、7:左肘、8:右肘、9:左腕、10:右腕、11:左胯、12:右胯、13:左膝、14:右膝、15:左踝、16:右踝)构建响应图作为数据输入,经过式(32)-(33)计算可以得到被跟踪者的人体关键点注意力权重,符号表示为attentionk。
[0258]
attentionk=average_pool(relu(conv(k)))
ꢀꢀꢀꢀ
(32)
[0259][0260]
其中,average_pool表示全局平均池,用于将每个通道的特征编码成对应的全局特征。attentionk表示被跟踪行人的人体关键点注意力权重,attentionk∈rc×1×1,conv表示3
×
3的卷积核,relu表示激活函数,f表示提取到的行人关键点特征,表示对被遮挡部位进行nms抑制后的特征值。
[0261]
步骤7:基于注意力机制的可见部位检测与跟踪,可见人体部位指在检测和跟踪过程中没有被遮挡的部分,如头部、手臂、腿部、可见中心等部位。首先要对可见部分进行mask掩膜构建,即可见部位标记为1,不可见部位标记为0。最终被跟踪行人的可见部位特征图由式(34)可得
[0262][0263]
其中

表示按照对应位置乘法运算。经过改进后,被遮挡的部分的特征对于整体遮挡下的行人检测的影响进一步减小,有效保障行人检测与跟踪的准确率。
[0264]
步骤8:筛选高质量标记框,设行人目标为t,设其对应的所有候选标记框组成的集合为c。经过调参处理后,通过式(35)计算集合c中各个元素的值m,根据式(36)筛选出最小的候选标记框的元素t
end
[0265]
m=3*err
cls
err
reg
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(35)
[0266][0267]
其中err
cls
与err
reg
分别指预测框与真实框的误差与回归误差。
[0268]
步骤9:抑制标记其他标记框,筛选出高质量标记框后,要对其他框进行抑制处理,防止其干扰筛选得到的标记框工作。具体方式是对其他框进行归一化处理,如式(37)-(38)所示
[0269][0270][0271]
该方法对其他非最优标记框进行抑制作用,可以保证每次检测所用框均为最优
框,从而降低低质量标记框对整体检测的干扰。
[0272]
步骤10:设置损失函数。损失函数包括中心点处损失、高度损失、偏移量损失、区域像素学习损失以及区域细粒度分割学习损失。
[0273]
步骤10.1:中心点损失,中心点包括行人身体的中心点、行人头部中心点以及行人可见部分的中心点。而这三个中心点对应的真实图像输出通道数目有3个,通道1内中心点处设值为1,其余位置则根据2d高斯函数生成中心点map值。通道2中设置行人中心点处值为1,其余位置设值为0;通道3中行人检测框区域内赋值为1,其余区域设值为0。当中心点真实图像已有值时,则取已有值和当前值中较大者。
[0274][0275][0276]
n表示每张图中行人数,(xk,yk,σ
wk
,σ
hk
)表示行人的坐标。如果某个坐标值中存在多个高斯值,则取其最大值max。
[0277][0278][0279]qijα
=g(i,j;xk,yk,σ
wk
,σ
hk
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(43)
[0280]
其中r
ij
表示预测图中(i,j)处置信度值,预测图大小为实际执行时,α设为4,β设为2。
[0281]
步骤10.2:行人损失,对于行人损失,基于l1loss损失函数,分别包括宽度和高度的损失。
[0282][0283]
l
scale
=l
height
l
width
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(45)
[0284]
步骤10.3:偏移量损失,偏移量损失函数基于smoothl1损失函数。
[0285][0286]
其中ok和o
k1
分别表示偏移量的真实值与预测值。
[0287]
步骤10.4:区域像素学习损失,设a为行人所在区域所有像素数目,m
t
,m
p
分别表示行人所处真实区域的像素值和模型预测出的行人所处区域的像素值。
[0288][0289]
步骤10.5:区域细粒度分割学习损失,n
t
,n
p
分别表示行人所处真实区域细粒度分割图像和模型预测出的行人所处区域的细粒度分割图像。
[0290][0291]
步骤10.6:计算总体模型损失函数
[0292]
l=λil
center
λ2l
scale
λ3l
offset
λ4l
pixel
λ5lfꢀꢀꢀꢀ
(49)
[0293]
其中对于控制系数参数λ1~λ5分别设置0.02、0.005、0.1、0.0002、0.0001。
[0294]
步骤11:根据步骤1~步骤10中操作,对于整个算法模型进行训练与测试,并且计算得出各项模型评估指标。
[0295]
本技术与现有产品相比具有以下特点:
[0296]
1、在行人检测环节,与现有行人检测算法相比,本技术中afcnn算法增加了额外特征的提取和融合,更加适于遮挡较为严重的场景,检测性能有所提升,一定程度上降低了漏检率。
[0297]
2、在路面病害信息检测环节,与现有ssd模型检测算法相比,本技术中si-ssd算法模型不需要进行过多的卷积核池化操作,通过使用更加轻量级的网络结构,加快了整个模型的执行速度,同时在检测置信度上有所提升,也提高了多目标的检测置信度。
[0298]
3、相比于市场常见产品,本技术新增了路面平整度检测功能,缓解了因路面质量较差而引起的驾驶不稳问题。
[0299]
4、相比于市场常见产品,本技术对安全车距概念进行细化和改进,新增了驾驶周围车速的实时监测功能,可以进一步降低驾驶过程中汽车碰撞的几率。
[0300]
本技术的有效性可通过以下仿真说明:
[0301]
一、afcnn算法
[0302]
1、分析不同额外特征的添加对于检测器检测性能的影响。为进一步验证afcnn算法对于遮挡条件下行人检测效果,本技术设计了消融实验。分别针对行人检测区域、头部特征、可见中心、预测行人高度对行人检测器的性能影响进行了测试。整体骨干网络采用resnest-200,为了在模型训练过程中保持平稳,于是利用移动滑动平均策略。学习率设置为0.0001,训练次数设为1000。由于citypersons数据集中数据类型与本技术实际应用场景较为贴近,故选用citypersons数据集作为验证数据集。
[0303]
2、afcnn算法与其他模型算法性能比较与分析。为了进一步验证afcnn算法的性能,分别测试常见模型在citypersons数据集上的检测性能。本技术主要测试了mgan、ap2m、csp、alfnet、tll以及aevb模型在数据集中heavy子集和reasonable子集工作的效果,评估标准是mr-2
。学习率与训练次数均保持不变。
[0304]
3、仿真结果与分析。对于不同额外特征的添加对于检测器检测性能影响的分析实验而言,具体结果如表3所示。图10反应了在行人区域作为检测区域时,分别加入头部特征、可见中心以及预测行人高度特征后检测器检测效果图。根据图10信息可知,行人检测器性能随着额外特征的加入而不断提升。可以较为显著地降低严重遮挡情况下的漏检率。
[0305]
表3.消融实验结果分析
[0306][0307][0308]
根据表3中数据可知,将行人区域作为检测区域比将整个图像作为检测区域效果要好,在heavy子集上取得了可降低1.4个百分点的效果,因此后面实验均采用行人区域作为检测区域;在引入了头部信息特征与可见中心模块后,在heavy子集上可达到41.3%的结果,行人检测的效果产生了较明显的提升,再引入预测行人高度模块后,在heavy子集上可以达到40.6%的结果,在reasonable子集上可以达到10.3%的效果,因此引入头部特征、可见中心检测、预测行人高度模块后均对最终检测效果起到了增益作用。
[0309]
表4显示了在citypersons数据集上评估afcnn算法的指标与其他常见网络模型对比情况。图11反应了本技术提出的afcnn算法与其他模型性能的对比测试图。根据图11信息可知,本技术提出的网络模型可以较为高效地将特征集中在行人身上,从而可以有效降低严重遮挡情况下的漏检率。
[0310]
表4.在citypersons数据集中各个模型评估指标对比数据
[0311][0312]
通过表4数据可知,基于afcnn模型的行人检测模块在拥堵场景下效果更好,对漏检的处理效果更好,漏检率也更低。因此,通过本实验结果可以说明本技术所提出的afcnn算法比其他行人检测算法更适于实际驾驶场景,可以有效降低行人碰撞几率。
[0313]
二、si-ssd算法
[0314]
1、对比5000次迭代过程中si-ssd模型算法与ssd模型的损失值。通过比较si-ssd模型与ssd模型在迭代过程中的损失值,可以间接对比二者性能优劣。表5列出了si-ssd模型与ssd模型在5000次迭代过程中各个阶段损失值。
[0315]
表5.5000次迭代中损失值数据统计
[0316][0317]
根据表5可知,si-ssd模型损失值更低,效果相比原ssd模型有所提高。接着在数据集中提取2000张图片作为测试集,分别验证了在ssd模型和si-ssd模型下的准确率,具体结果如表6所示。
[0318]
表6.测试集下ssd模型与si-ssd模型精确度统计与对比表
[0319][0320]
可知,经过改进后的si-ssd模型的损失值比原ssd模型有所下降,同时在测试集上精度有了明显提高。
[0321]
2、对比si-ssd算法模型与ssd模型检测病害信息的置信度。为了更加直观地比较两种模型检测器的性能,选取部分图像进行检测并对比分析,检测结果如图12所示,检测结果图上包括病害信息所处位置、所属类别以及置信度。根据图12信息可知,本技术提出的si-ssd模型在检测置信度上有所提升,同时也提高了多目标的检测置信度。此外,从图12可以看出,传统的ssd模型难以有效检测到较小的路面病害信息,而本技术提出的si-ssd模型则更精准地检测到较小目标。因此通过本实验结果可以说明本技术提出的si-ssd算法模型更适于实际驾驶场景,对于路面病害信息检测的性能更好。
[0322]
需要注意的是,具体实施方式仅仅是对本发明技术方案的解释和说明,不能以此限定权利保护范围。凡根据本发明权利要求书和说明书所做的仅仅是局部改变的,仍应落
入本发明的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献