基于DSP处理器的疲劳驾驶状态检测系统的设计

发布时间:2010-11-28 20:38    发布者:designer
关键词: dsp , 处理器 , 疲劳驾驶 , 状态检测
为了减少由于司机疲劳而导致的交通事故,国内外的许多研究工作者都在研究司机疲劳状态检测系统。例如美国卡内基梅隆大学的Richard Grace领导的Copilot工程开发的疲劳检测装置,浙江大学的驾驶防磕睡装置,北京航天航空大学的眼动测量系统。目前,疲劳驾驶的检测技术主要有两大类,一类是采集脑电信号的生理参数EEG来检测,EEG生理参数能准确地反映出人的疲劳状态,但检测设备较复杂昂贵,应用推广难度较大;另一类是对采集的面部图像信息进行识别。图像信息检测中,有的利用较昂贵的红外摄像机检测信号,有的利用普通摄像机进行检测。普通摄影机安装和使用较方便,利于推广应用,但对图像处理技术要求较高。由于疲劳状态实时检测系统要求很高的实时性和可靠性,目前为止,还没有出现满足实际需要的非强迫性检测系统。

表1中列出了几种疲劳状态检测的方法,并对性能进行了比较。通过比较可以发现,这几种方法中基于身体反应的检测方法性能较好。PERCLOS(Percentage of Eyelid Closure Time)是在单位时间内眼睛闭合时间所占的百分率。弗吉尼亚大学的Walt Wierwille从20世纪70年代开始研究眼睛光学变量与疲劳的关系,研究表明与疲劳有关的主要因素有缺乏睡眠、瞳孔直径、注目凝视、眼球快速转动、眉眼扫视、眨眼睛等,并且发现PERCLOS是最具潜力的疲劳测定方法之一,由PERCLOS得出的数据可以真正反映驾驶疲劳,是对疲劳进行估价测定的最好方法。




通过摄像头获取司机的实时视频,获得驾驶员的视频图像后,利用图像处理与模式识别技术分析人脸特征图像信息,从图像中找到驾驶员面部所在位置,检测出人眼并分析人眼状态(睁开或闭合),然后统计一定时间内眼睛闭合持续总时间,将其与某固定阈值比较,以确定司机瞌睡与否。

1 人脸和人眼特征的检测

疲劳状态检测要准确地检测和跟踪眼睛的状态。采用先确定人脸区域,然后再在人脸区域内进一步检测、定位人眼的方法,这样可以使得眼睛的检测与定位更加准确和快捷。眼睛的识别检测方法可分为基于统计和基于知识两种类型。基于统计的方法将人脸和人眼图像视为一个多维向量,从而将人脸和人眼检测问题转化为多维空间中分布信号的检测问题;而基于知识的方法则利用人脸和人眼特征知识建立若干规则,从而将人脸检测问题转化为假设和验证问题,例如人脸肤色和几何结构等。基于知识建模的方法一般对建模的假设条件依赖性强,而基于统计的方法精度较高、鲁棒性强,但运算量大。驾驶室光照复杂多变,振动环境也较复杂,选择基于统计的方法能更有效地进行检测。
Paul Viola和Michael Jones于2001年提出机器学习领域分类精度较高并且识别速度快的Adaboost算法[5-6],Adaboost算法是一种高效的迭代算法,在人眼的快速检测方面有着非常重要的应用。它针对同一个训练集训练出不同的弱分类器,然后把这些弱分类器组成强分类器,进而形成级联分类器。训练方法描述如下:



设计的系统采用麻省理工的MIT CBCL人脸库作为训练库,然后利用Adaboost算法训练人脸检测分类器。MIT CBCI数据库中的训练样本集共有2 429幅人脸样本图像和4 554幅非人脸图像,包括各种光照条件和人体姿态。利用人眼检测程序进行了大量图片检测,发现人眼检测正确率高,只要能够正确定位人脸,人眼检测都能准确识别。经过分析发现,人眼特征简单、模板小,不像人脸特征多、变化大。人眼的搜索区域为先前定位的人脸区域,搜索区域小;而人脸搜索区域为整幅图像。特征简单、搜索区域小,致使人眼检测正确率高,不会出现误检。

2 检测算法移植

疲劳状态检测算法运行在PC机上的检测帧速率约为3~4帧,不能满足检测算法的实时性要求。为了提高实时检测速度,将检测算法移植到DSP芯片上运行可以有效地提高系统的实时性。DSP系统具有强大的数据并行处理能力,能提高检测算法的运算速度,从而获得实时检测的效果。DSP具备普通微处理器所强调的高速运算和控制功能,移植过程中还要针对实时数字信号处理,在处理器结构、指令系统、指令流程上做相应的改动。系统采用TI公司的TMS320DM642芯片作为嵌入式芯片平台,检测算法的移植在合众达公司的SEED-VPM开发板上进行。
TMS320DM642是建立在C64x DSP核基础上、采用了德州仪器公司开发的第二代高性能超长指令字结构VelociT l .2TM,在每个时钟周期内可执行2个16×16 bit的乘法或4个8×8 bit的乘法。TMS320DM642内包含了6个算术逻辑单元,在每个时钟周期内都可执行2个16 bit或4个8 bit的加减、比较、移动等运算。在600 MHz的时钟频率下,DM642每秒可以进行24亿次16 bit的乘累加或48亿次8 bit的乘累加。这样的运算能力,使得DM642可以进行实时的多视频处理和图像处理。TMS320DM642通过64 bit的EMIF和3个8/16 bit宽度的视频口来连接板上的外设(如SDRAM、Flash、FPGA和DART)。TMS320DM642还在C64x的基础上增加了很多外围设备和接口。

疲劳状态检测识别系统是运行在DSP芯片上的数字信号处理系统,视频数据的处理流向如下:视频数据从摄像机输入进来,输入的格式为PAL/NTSC模拟电视广播信号格式,经过模拟数据经视频解码芯片SAA7115解码,可以得到标准BT.656并行数据,BT.656并行数据从DM642视频口1输入,视频口1提取YCbCr数据之后,分别存放在内部的缓冲器中,独立于CPU的EDMA将视频口buffer中YCbCr数据搬移到大容量外部SDRAM存储器中,SDRAM中存放着连续的3帧图像数据,同时EDMA将其中一帧图像数据,不停地搬移到DM642内部RAM,在内部RAM存放着两行连续视频数据供CPU使用,CPU处理过的数据输回到内部RAM中暂时保存,后续数据输出步骤与前面介绍的数据输入步骤正好相反。

DSP采用多总线的哈佛结构,相同的系统复杂程度,DSP比一般的微处理数据处理速度快2个数量级。多总线结构使得DSP结构复杂,工作频率较低,对外部存储器的访问速度只有133 MHz,从而造成数据瓶颈,严重地制约了处理速度,移植过程中,要减少片内外的数据传输、提高片内数据的利用率。Adaboost检测算法要求较大的数据计算量,将其移植到DSP中,可以通过提高二级高速缓存Cache命中率、优化算法等措施来减少片内外的数据传输,减少程序运算量。

移植完成后,对算法进行一系列优化,最终达到18 S/s的帧速率,满足了实时性要求,如表2所示。





3 检测结果与分析

检测时,TMS320DM642工作频率为600 MHz,视频输入图像大小为724×576,DSP将其缩放为CIF图像(356×298像素),然后进行疲劳驾驶检测,系统检测速率基本达到18帧/s。通过采集多人图像视频进行检测,分析得到人脸检测率为90.5%,人眼检测率90.3%,人眼状态分析正确率为86.7%。算法达到18帧/s的帧速率,基本满足了系统实时检测的性能要求。但是由于实验设备环境与时间限制,检测系统还存在缺陷和有待完善的地方。例如由于样本库的原因,人脸检测算法对倾斜人脸的检测存在先天不足,可以加入倾斜人脸样本或在检测阶段采用旋转视频图像方法解决该问题。
本文地址:https://www.eechina.com/thread-42487-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表