首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM+DSP的驾驶员眼部疲劳视觉检测算法设计2

基于ARM+DSP的驾驶员眼部疲劳视觉检测算法设计2

2.4 基于Sobel 算子的边缘检测

边缘是图像灰度变化剧烈的地方, 在从皮肤到眼白再到瞳孔的变化过程中, 包含了丰富的眼部图像边缘信
息, 因此可以用边缘提取的方法将眼部边缘提取出来作为人眼检测和定位的基础。利用Sobel 边缘算子对初始眼部检测区域进行边缘检测, 能够有效地将眼部边缘提取出来。Sobel 算子可用矩阵形式表示为:


2.5 改进积分投影算法确定左右眼角和上下眼睑的距离

对滤波后的二值图像, 首先将初始眼部检测区域EFGH 从水平方向的中线位置分成如图3 所示的左右两个部分(即右眼检测区域EMNH 和左眼检测区域MFGN),然后利用改进积分投影算法分别在左右眼检测区域内确定左右眼的左右眼角距离及上下眼睑距离。因左、右眼的参数确定方法类似,故仅以右眼检测区域EMNH 为例说明参数的确定过程。具体实现过程如下:

(1)为避免计算过程中眼睛上方眉毛对定位结果的影响, 算法在确定上下眼睑边缘, 从右眼检测区域EMNH
的最下方一行像素开始向上搜索,逐行从左至右统计每行中灰度值等于1 的像素个数, 并将第i 行中灰度值为
1 的像素个数之和存放在数组Nc 中, 规定右眼检测区域EMNH 的最下方一行为第0 行, 即i=0 ; 每搜索统计完一行后i 自动加1。

(2) 对当前第i 行中灰度值等于1 的像素的个数之和进行统计计算, 如果:


3 实验与分析

为验证眼睛疲劳特征检测算法的有效性,在构建的ARM+DSP系统上对采集到的视频图像进行实验验证。在沪宁高速南京段的实验结果表明,该系统将算法处理时间控制在50 ms以内,取得了良好的实时效果,疲劳驾驶检测正确率达97.6%。部分图像的眼部区域检测结果如图4所示,其中,第一行为人脸检测后的面部定位图像,第二行为经Sobel边缘检测后的眼部二值图像,第三行为得到的眼部边界定位图像。

通过观察发现,通常情况下,驾驶员在睁眼和闭眼时,左、右眼的睁闭情况是同步的,即同时睁开或同时闭合。因此,在对眼睛睁闭状态进行判断时,为减少计算量,仅对左眼的睁闭情况进行判断。针对图4所示的眼部区域检测结果,利用式(8)计算其左眼睁闭度的大小,计算结果如表1所示。
由表1可知,图4中第一列和第二列所示的眼睛闭合时的睁闭度值明显小于第三列和第四列所示的眼睛睁开时的睁闭度值。故只要选择合适的阈值,根据眼睛睁闭度值的大小,就可对驾驶员眼睛的睁闭状态进行有效判断。
本文在ARM+DSP系统上实现了基于眼部特征的疲劳驾驶检测算法。利用基于肤色聚类的脸部检测算法确定脸部边界,采用一种简单有效的改进积分投影算法,实现了驾驶员眼部睁闭状态的有效判定和疲劳驾驶的实时检测。
返回列表