技术领域
本发明涉及安全驾驶技术领域,特别是一种汽车智能安全驾驶的实现方法。
背景技术
随着社会的发展,汽车已经成为人们出行必不可少的交通工具;但是随着汽车数量的增多,汽车的安全驾驶已成为社会极为关注的问题。特别是现实中出租车、公交车驾驶管理中存在代驾、疲劳驾驶等不安全行驶行为,给顾客生命安全带来了隐患,也危及驾驶人员自身安全。因此,怎样解决该些现象,已成为不容忽视的问题。
发明内容
本发明的目的是提供一种汽车智能安全的实现方法,能够通过机器视觉来监测人的疲劳状态及危险驾驶行为,通过物联网技术来监测车辆的行驶信息。
本发明采用以下方案实现:汽车智能安全驾驶的实现方法,其特征在于:包括以下步骤:
S01:提供一主摄像头,用于检测车辆前方视图信息,包括检测远方光照值、人行道、前方车辆及道路标牌;
S02:提供一A柱右摄像头,用于检测手握方向盘状态;
S03:提供一A柱左摄像头,用于检测驾驶人员抽烟状态与安全带绑定状态;
S04:提供一仪表盘摄像头,用于检测人疲劳状态与代驾状况;
S05:提供一硬盘录像机保存上述步骤S01至S04检测的信息,用于本地调用及远程视频调用;
S06:提供一VSCC控制器,采集车辆信号同时,并根据所述代驾状况控制计价器的使用;
S07:提供一GPS模块,该GPS模块与车载电脑相连,所述车载电脑在所述车辆信号、GPS位置及所述检测的信息超出阈值时进行警示,并将所述车辆信号、GPS位置及所述检测的信息传输至一远程监控中心。
在本发明一实施例中,所述检测远方光照值包括以下步骤:
S11:从主摄像头读取视频或者直接打开所述硬盘录像机内存储的视频;
S12:从视频中取出每一帧,定位天空区域,计算天空区域的平均亮度作为该帧的亮度值,亮度计算公式:(max(R,G,B)+min(R,G,B))/2;定位地面区域,计算地面区域的高频能量值,光线越暗或能见度越低时,高频能量越低,采用小波变换提取高频系数作为高频能量值;
S13:将每帧的亮度值与高频能力值与预设的阈值进行比较,小于阈值,则此帧光线较暗;大于阈值,则此帧光线充足;
S14:每单位时间判断一次是否需要打开大灯,判断方法:计算单位时间内所有帧的平均亮度值及平均高频能量值;
S15:将平均亮度值及平均高频能量值与预设的阈值进行比较,小于阈值,则此时光线较暗,自动打开大灯;大于阈值,则此时光线充足,如果大灯处于开启状态,则自动关闭大灯。
在本发明一实施例中,所述人行道的检测包括如下步骤:
S21:由于道路路面在视频图像中主要在图像的下半部分区域,故设置感兴趣区域在图像的下半部分,以减少计算量;
S22:选取图像的下半部分的一小块像素求道路路面灰度值的平均值,并进行动态更新,方法如下:
S221:道路线提取,首先使用中值滤波去噪,其次采用canny算子检测车道线边缘,最后再排除非车道线边缘;
S222:斑马线检测,通过检测感兴趣区域最上面四分之一的区域来判断是否有斑马线,斑马线具有连续间断的直线特征,利用该直线特征来判断当前区域中是否含有斑马线;
S223:检车车道线,并判断是实线还是虚线,通过左右两侧车道线的长度与所述的下半部分区域长度的比例来判断虚实。
在本发明一实施例中,所述前方车辆的检测采用逐帧检测技术,每帧图像独立检测,各帧之间无关联;具体检测包括如下步骤:
S31:把帧图像转化成灰度图像,然后使用中值滤波去噪;
S32:使用Sobel算子检测灰度图像的边缘;
S33:使用阈值对Sobel边缘图像进行二值化分割,分割出强边缘像素点;
S34:求路面像素灰度均值,从图像底部取两行数据,求出其灰度均值作为道路路面灰度均值,并设置一个上下波动的阈值;
S35:根据所述阈值,消除非车身边缘点的噪声;
S36:通过检测车辆底部存在的一块阴影区域来定位前方车辆的具体位置,由于阴影区域的灰度值比路面或者车身的灰度值小,因此结合步骤S33中的边缘像素点进行检测,该检测依据:存在一段水平的连续的边缘;
S37:结合对称性特征,车身长度进行判断,排除非车辆区域。
在本发明一实施例中,所述道路标牌的检测是检测图像中的蓝色矩形标志,其包括如下步骤:
S41:从上到下,从左往右扫描图像中的每个像素点,标记并记录所有的蓝色像素点;
S42:遍历所有检测到的蓝色像素点,使用角点掩膜检测蓝色矩形区域;
S43:判断检测到的蓝色矩形区域是否为交通标识或者车牌。
在本发明一实施例中,所述手握方向盘状况的检测步骤包括:
S51:输入一张三通道的相关彩色图片;
S52:设置感兴趣区域;
S53:使用椭圆皮肤模型在所述感兴趣区域得出皮肤区域;
S54:得出皮肤区域的二值化图像;
S55:将所述二值化图像的左上角无关区域值置0;
S56:根据置0区域对二值化图像进行形态学闭操作,消除孔洞;
S57:清除左侧无关的隔离区域;
S58:获得二值化图像的轮廓,统计隔离区域的个数,以及面积;
S59:根据上述步骤所得的信息进行手握方向盘检测判断。
在本发明一实施例中,所述驾驶人员抽烟状态的检测包括如下步骤:
S61:提取出A柱左摄像头获取的视频的一帧图像传入函数中;
S62:对该帧图像进行人脸检测,返回人脸区域的位置,其中有人脸区域则返回一个CvRect,否则返回空;
S63:对该帧图像运用椭圆模型检测出皮肤的区域;
S64:对步骤S62中返回区域进行皮肤像素点估计,如果低于一预设值,则判断人脸区域位置出错;
S65:定位出人脸后,在人脸区域下面定下一块感兴趣区域,然后在这块区域内部检测皮肤,然后确定一个阈值,多于阈值就判断这个区域出现了人手;则判断为可能性抽烟行为;
S66:针对香烟叼在嘴巴上的情况,同样先检测出人脸,然后在嘴巴区域进行模糊匹配,检测嘴巴区域是否有香烟。
在本发明一实施例中,所述人疲劳状态的检测包括如下步骤:
S71:通过仪表盘摄像头获取视频;
S72:人脸定位:采用haar特征训练器定位人脸;
S73:眼睛定位:截取人脸的上半部分,采用haar特征训练器定位眼睛;
S74:图像进行二值化处理,计算图像眼睛高度;
S75:当眼睛高度小于设定的高度阈值时,判断为闭眼,否则为睁眼;
S76:计算单位时间内闭眼总帧数、连续闭眼帧数以及眨眼次数,通过这三个参数判断驾驶员是否处于疲劳状态;
其中,高度阈值为视频的前20帧算出平均眼睛高度,然后乘以一个比例系数作为阈值;眼睛高度为计算每一列的黑像素个数,取其中最大值作为眼睛高度;眨眼次数为有出现睁眼-闭眼-睁眼的过程算一次眨眼。
在本发明一实施例中,所述代驾状况的检测是通过初始化提取人脸数据建立训练集,然后对于日常驾驶中,每帧的人脸进行匹配,若发现为未知人脸,则判定为代驾行为;
其中所述建立训练集为:
S81:对训练集中的图片进行训练,首先进行人脸检测,将检测出的人脸,去除头发部分,再进行大小归一化;
S82:使用PCA算法对归一化后的人脸进行训练。
在本发明一实施例中,所述安全带绑定状态的检测包括如下步骤:
S81:从A柱左摄像头读取视频或者直接打开视频文件;
S82:循环从视频中提取每一帧按照如下步骤进行检测:
S821:将输入的将彩色图像灰度化;
S822:采用canny算子进行边缘检测;
S823:采用hough变换检测直线;
S824:提取满足以下条件的直线:直线的倾斜角度大于30度,小于80度;直线的长度大于30像素;直线的起点位于整幅图像的右下部分;
S825:若步骤S824提取出的直线数小于2,则判断该帧无安全带;否则,将倾斜角度之差最小的两条直线作为伪安全带边缘线;
S826:判断检测出的伪安全带是否为真正的安全带:在提取出的两条边缘线之间截取一个矩形区域,判断该区域的高频能量以及其灰度图像的方差,若高频能量及方差小于设定的阈值,则判断该帧有安全带,否则无安全带;
S83:每单位时间判断一次是否佩戴安全带,判断方法:单位时间内,有安全带的帧数大于无安全带的帧数,则判断为有佩戴安全带,反之则无。
本发明整合车内检测控制系统与远程监控终端,实现车内疲劳安全检测、车外安全检测、车辆状态安全检测等。该方法建设时重点在于视频检测准确性与精准性,依托公安部123号令规定来检测人员危险驾驶行为,提高驾驶人员安全性。
附图说明
图1是本发明实施例方法实施例方法流程示意图。
图2是依据本发明方法形成的硬件架构示意图。
图3是结合硬件架构的工作流程示意图。
图4是本发明实施例眼睛检测示意图。
图5是本发明实施例眼睛图像处理示意图。
图6是本发明震动检测电路示意图。
图7是VSCC控制器原理示意图。
图8是VSCC信息采集流程示意图。
图9是本发明实施例代驾计价原理示意图。
图10是本发明监控中心逻辑架构图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1所示,本实施例提供一种汽车智能安全驾驶的实现方法,其特征在于:包括以下步骤:
S01:提供一主摄像头,用于检测车辆前方视图信息,包括检测远方光照值、人行道、前方车辆及道路标牌;
S02:提供一A柱右摄像头,用于检测手握方向盘状况;
S03:提供一A柱左摄像头,用于检测驾驶人员抽烟状态与安全带绑定状态;
S04:提供一仪表盘摄像头,用于检测人疲劳状态与代驾状况;
S05:提供一硬盘录像机保存上述步骤S01至S04检测的信息,用于本地调用及远程视频调用;
S06:提供一VSCC控制器,采集车辆信号同时,并根据所述代驾状况控制计价器的使用;
S07:提供一GPS模块,该GPS模块与车载电脑相连,所述车载电脑在所述车辆信号、GPS位置及所述检测的信息超出阈值时进行警示,并将所述车辆信号、GPS位置及所述检测的信息传输至一远程监控中心。
请参照图2和图3,图2是依据本发明方法形成的硬件架构示意图,其中主摄像头主要用于检测车辆前方视图信息,可用于检测远方光照值、人行道、前方车辆及道路标牌;A柱右摄像头用于检测手握方向盘状况;A柱左摄像头用于检测驾驶人员抽烟状态与安全带绑定状态;仪表盘摄像头用于检测人疲劳状态与代驾状况。硬盘录像机用于采集4个摄像头视频值,并且保存至本地硬盘中,用于本地调用及远程视频调用。VSCC控制器采集车辆信号同时,控制计价器的使用。GPS模块直接与车载电脑相连,车载电脑将车辆信号、GPS位置及检测到的数据值传输至远程监控中心。远程监控中心构建GIS系统,用于动态显示车辆位置、状态,同时对于收到的警报信息,进行通知监控人员。车辆系统与远程监控中心数据走向如下图3所示。车辆系统开启状态中,硬盘录像机实时采集车辆4大摄像头视频值,而VSCC采集车辆信号;车载电脑首先通过机器视觉,检测出当前车辆中是否存在疲劳驾驶、是否存在代驾行为,若存在该行为,则发送信号至VSCC,VSCC断掉计价器系统,停止司机运营;同时还需要检测是否前方人行道或者学校标志、是否前方光照过低、是否前方车辆过近距离、是否抽烟、是否安全带未绑定、是否双手不握方向盘驾驶、是否车辆震动过大,若存在该危险驾驶现象,若车辆车速过快,则车内警示司机,并且将相关的警报值发送至远程监控中心。远程监控中心实时接收监控的所有车辆信息值,进行监控中心大屏幕显示,对于收到的警报信息,还将进行警报通知监控人员。
具体的,为了让一般技术人员更好的了解本发明,下面对上述各种检测所采用的具体方式做进一步介绍。本实施例中,车内检测子系统安装摄像头有A柱位置与仪表盘位置,其中方向盘下端示意图如下图4所示。该检测子系统可用于人眼疲劳检测、人脸代驾检测、驾驶员抽烟检测、安全带使用检测和方向盘使用检测。
人眼疲劳检测原理:
1. 通过摄像头获取视频;
2. 人脸定位:采用haar特征训练器定位人脸;
3. 眼睛定位:截取人脸的上半部分,采用haar特征训练器定位眼睛;
4. 图像进行二值化处理,计算图像眼睛高度;
5. 当眼睛高度小于设定的高度阈值时,判断为闭眼,否则为睁眼;
6. 计算单位时间内闭眼总帧数、连续闭眼帧数以及眨眼次数,通过这三个参数判断驾驶员是否处于疲劳状态。
其中,高度阈值为视频的前20帧算出平均眼睛高度,然后乘以一个比例系数作为阈值;眼睛高度为计算每一列的黑像素个数,取其中最大值作为眼睛高度;眨眼次数为有出现睁眼-闭眼-睁眼的过程算一次眨眼。其检测的状态如下图5所示:
在人脸没有倾斜的情况下,不戴眼镜人脸检测正确率几乎100%,眼睛检测的正确率也有90%以上,眼睛状态判断也比较准确;戴眼镜的情况,如果是戴浅色眼镜,几乎没影响,如果是深色眼镜,人脸检测的正确率也可达95%以上,眼睛检测的正确率有所降低,而眼睛状态的判断影响较大,正确率很低。而在人脸倾斜或眉毛被遮挡,眼睛定位的正确率很低。
驾驶员代驾检测主要通过初始化提取人脸数据建立训练集,然后对于日常驾驶中,每帧的人脸进行匹配,若发现为未知人脸,则判定为代驾行为。
其中建立训练集为:
1. 对训练集中的图片进行训练,首先进行人脸检测,将检测出的人脸,去除头发等部分,再进行大小归一化。
2. 使用PCA算法对归一化后的人脸进行训练。
而实际分类预测是流程为:
1. 输入一张待识别的图片,首先进行人脸检测,将检测出的人脸,去除头发等部分,再进行大小归一化。
2. 使用模型对归一化后的人脸进行分类预测。
抽烟检测通过传入A柱左侧的视频流,针对视频帧中的一些信息,来定位出驾驶员是否有抽烟的行为。检测步骤如下所示:
1. 提取出视频的一帧图像传入函数中。
2. 对该帧图像进行人脸检测,返回人脸区域的位置。(有则返回一个区域,否则返回空)。
3. 对该帧图像运用椭圆模型检测出皮肤的区域。
4. 对2中返回的区域进行皮肤像素点估计,如果过低的话就判断人脸区域位置出错。
5. 定位出人脸后,在人脸区域下面定下一块感兴趣区域,然后在这块区域内部检测皮肤,然后确定一个阈值:多于阈值就判断这个区域出现了人手代表此时人手跟脸比较近,因为感兴趣区域就在人脸的下方。通过这个方法初步判定时候有抽烟事件的发生。
针对香烟叼在嘴巴上的情况,同样先检测出人脸,然后在嘴巴区域进行模糊匹配(通过颜色和形状等一些信息),检测嘴巴区域是否有香烟,以此来判断什么时候有抽烟。
安全带检测过程如下所示:
1. 从摄像头读取视频或者直接打开视频文件
2. 循环从视频中提取每一帧按照如下步骤进行检测:
a) 将输入的将彩色图像灰度化;
b) 采用canny算子进行边缘检测;
c) 采用hough变换检测直线;
d) 提取满足以下条件的直线:直线的倾斜角度大于30度,小于80度;直线的长度大于30(像素);直线的起点位于整幅图像的右下部分;
e) 若步骤d提取出的直线数小于2,则判断该帧无安全带;否则,将倾斜角度之差最小的两条直线作为伪安全带边缘线;
f) 判断检测出的伪安全带是否为真正的安全带:在提取出的两条边缘线之间截取一个矩形区域,判断该区域的高频能量以及其灰度图像的方差,若高频能量及方差小于设定的阈值,则判断该帧有安全带,否则无安全带。
3. 每单位时间(目前设置为1s)判断一次是否佩戴安全带,判断方法:单位时间内,有安全带的帧数大于无安全带的帧数,则判断为有佩戴安全带,反之则无。
方向盘检测步骤如下:
1. 输入一张三通道的相关彩色图片。
2. 设置感兴趣区域。
3. 使用椭圆皮肤模型得出皮肤区域。
4. 得出皮肤区域的二值化图像。
5. 将左上角无关区域值置0。
6. 进行形态学闭操作,消除孔洞。
7. 清除左侧无关的隔离区域。
8. 获得轮廓,统计隔离区域的个数,以及面积。
9. 根据前面的信息进行手握方向盘检测判断。
光照检测步骤如下所示:
1. 从摄像头读取视频或者直接打开视频文件;
2. 从视频中取出每一帧,定位天空区域,计算天空区域的平均亮度作为该帧的亮度值,亮度计算公式:(max(R,G,B)+min(R,G,B))/2;定位地面区域,计算地面区域的高频能量值,光线越暗或能见度越低时,高频能量越低,采用小波变换提取高频系数作为高频能量值;
3. 将每帧的亮度值与高频能力值与预设的阈值进行比较,小于阈值,则此帧光线较暗,大于阈值,此帧光线充足。
4. 每单位时间(目前设置为1s)判断一次是否需要打开大灯,判断方法:计算单位时间内所有帧的平均亮度值及平均高频能量值;
5. 将平均亮度值及平均高频能量值与预设的阈值进行比较,小于阈值,则此时光线较暗,自动打开大灯,大于阈值,此时光线充足,如果大灯处于开启状态,则自动关闭大灯。
:当司机在道路中行驶,车前方出现斑马线的时,司机必须做出减速或者刹车停止的动作,否则视为违反道路行车规定。通过车顶上面的摄像头检测道路前方是否含有斑马线,并以此来判断司机是否遵守交通行驶规则。
由于道路路面在视频图像中主要在图像的下半部分区域,故可设置感兴趣区域在图像的下半部分,以减少计算量。ROI区域中主要为道路路面,且路面的灰度值较为均匀,故可选取ROI区域中的一小块像素求道路路面灰度值的平均值,并进行动态更新,方法如下:
1. 道路线提取。首先使用中值滤波去噪,其次采用canny算子检测车道线边缘,最后再排除非车道线边缘,具体代码如下:
2. 斑马线检测:通过检测感兴趣区域最上面四分之一的区域来判断是否有斑马线。斑马线具有连续间断的直线特征,此处简单利用此特征来判断当前区域中是否含有斑马线,具体步骤参加相关代码
3. 检车车道线,并判断是实线还是虚线。主要通过左右两侧车道线的长度与ROI区域长度的比例来判断虚实。
道路标牌主要检测图像中的蓝色矩形标志,步骤说明如下:
1. 从上到下,从左往右扫描图像中的每个像素点,标记并记录所有的蓝色像素点;
2. 遍历所有检测到的蓝色像素点,使用角点掩膜检测蓝色矩形区域;
3. 判断检测到的蓝色矩形区域是否为交通标识或者车牌。
此外,该方法还根据检测到的图像ROI区域,利用cascade方式检测出是否为学校标志。
前方车辆检测:车辆在道路中行驶时,需要时刻观察前方车辆的行车情况,及时刹车减速以保持在安全车距内。
检测前方车辆方法采用逐帧检测技术,每帧图像独立检测,各帧之间无关联,具体检测步骤说明如下:
1. 把帧图像转化成灰度图像,然后使用中值滤波去噪。
2. 使用Sobel算子检测灰度图像的边缘。
3. 使用阈值对Sobel边缘图像进行二值化分割,分割出强边缘像素点。本文采用一个固定阈值进行分割。
4. 求路面像素灰度均值:从图像底部取两行数据,求出其灰度均值作为道路路面灰度均值,并设置一个上下波动的阈值(类似正态分布)。
5. 使用路面灰度均值,消除非车身边缘点的噪声,具体步骤参看代码。
6. 通常情况下,车辆底部会存在一块明显的阴影区域,其长度刚好和车辆的车身长度差不多。因此,可通过检测此阴影区域来定位前方车辆的具体位置。考虑到阴影区域的灰度值比路面或者车身的灰度值小,结合上述步骤3中的边缘点进行检测判断,具体步骤参考代码(检测依据:存在一段水平(三行像素内有边缘点)的连续的边缘)。
7. 结合对称性特征,车身长度等进行判断,排除非车辆区域。
车辆震动检测使用原理图如图6所示:
本实施例中采用以下参数设置:
1. 主要芯片:LM393双电压比较器、801S震动传感器;
2. 工作电压:直流5V;
3. 双路信号输出,TTL检测电平输出Dout和模拟信号输出Aout;
4. 灵敏度可调,通过调节可变电阻器R3,来增大或减小震动检测的灵敏度,以适应于不同车辆的震动状况;
5. Dout为TTL电平信号,可直接连接处理器STM32F107的IO口,当有震动时,输出为高电平,无震动时,输出为低电平;
6. Aout为模拟信号,输出电压范围为0~5V,可直接连接处理器STM32F107的AD输入口,采集实时的模拟信号量。
VSCC采集车辆传感器信息,并将信息传输至车载电脑。其中采集的车辆传感信息如下表所示:
其中VSCC装置拓扑图及采集信息流程图如图7和图8所示。
计价器的控制原理:对于车内检测子系统检测到的人脸代驾或者驾驶人员疲劳状态情况,输出信号至代驾计价器控制系统,关闭该计价器,使得代驾人员无法进行非法营业。
代驾计价器的控制是由计价器及其电源控制模块组成。其中,电源控制模块采用继电器的工作原理,对计价器进行供电。继电器的工作受车辆信号采集系统的输出I/O信号控制。代驾计价器的控制工作原理如下图9所示:车内检测的人脸代驾检测模块将检测的信息,通过车载电脑的以太网接口,以TCP/IP通信的方式,实时传输给车辆信号采集系统。车辆信号采集系统再根据该检测信息,通过I/O口输出电源控制信号对代价计价器控制系统
远程监控中心与车载终端的通信采用3G或GPRS移动通信技术进行远程TCP/IP通信,并且保持可靠的心跳连接,逻辑架构请参见图10。图中监控中心逻辑架构上主要2个部分,监控中心服务于GIS服务,其中:监控中心服务器实现车辆的GPS、视频实时监控功能;GIS服务实现地理信息服务,为监控中心提供地理信息数据支撑,系统使用GeoServer实现地理信息服务。其中监控中心显示屏可以分别显示不同地区的情况。
GPS车辆监控管理平台工作原理是车载终端通过GPRS或者3G通信网络与监控中心进行数据联接,利用互联网进行双向数据信息传输;车载终端接收GPS定位信号和车载各种状态数据,检测车辆状态,根据工作状态将定位和状态数据传送到监控中心,同时接收监控中心调度信息或控制数据并对车辆进行控制。
GIS系统作为基础支撑应用之一,将为GPS监控系统以及后续的其他业务应用系统提供基于电子地图的业务管理基础。
此外,本发明还可以通过3G网络对指定的硬盘录像机进行远程实时监控、下载或者回放,或把存储器中的视频文件支持通过USB接口连接到PC电脑端进行回放。可以通过PC上运行该视频回放分析软件,对硬盘中存储的视频文件进行回放分析。
(一)实时视频监控
可以通过选择相应的车辆或摄像头实时查看当前的车内状态。
(二)同步实时定位与视频查看
可以通过选择车辆,在实时监控车辆视频的同时查看车辆的当前位置,实现位置与视频的同步监控。
(三)实时视频巡检
设定相应的时间间隔,系统可以实时自动循环播放该客户需要监控的所有车辆的视频,从而给视频监控工作带来便利。
(四)本地视频回放
可以方便的播放保存在本地的视频,从而实现反复查看而不浪费流量的效果。
:
(一)报警信息提取
车载终端可以根据检测结果产生摄像头遮挡报警、摄像头无信号报警、疲劳驾驶报警、危险驾驶报警、视频断电报警、GPS断电报警 、GPS盲区报警报警,并可以通过客户端实时提醒用户,同时保存相应报警时间段的视频到服务器中,用户可以依据报警信息回放相应报警时间段的视频。
(二)报警视频审核
可以对产生的报警视频进行回放和审核。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。