论文部分内容阅读
近年来,随着全球经济的飞速发展,机动车数量在不断增多,道路交通安全已经成为了一个严峻的问题,而驾驶员的疲劳是其中一个重要的原因,疲劳驾驶检测也因此而生,并逐渐成为当今的热门课题之一。但如今的疲劳驾驶检测产品多数基于硬件平台,价格昂贵且标准不一,并未得到广泛应用。人们迫切需要一款廉价且相对精确的疲劳驾驶监测系统。 本论文致力于将传统PC疲劳驾驶检测算法改良并与Android平台相结合,同时充分利用Android平台功能特性,研发一款便捷,实时性好,相对精确的疲劳驾驶检测软件。该软件通过Android手机前置摄像头实时获取驾驶员图像数据,利用C/C++编写的疲劳驾驶检测算法对驾驶员图像进行实时处理,将结果传到JAVA层,根据驾驶员的疲劳状态结果,进行对应的操作,如果疲劳则采用语音、提示和震动结合的报警方式。同时系统还针对Android端的GPS、加速度传感器开发了超速报警和碰撞报警功能,丰富了系统的应用前景。本论文主要完成了以下工作: 第一,本课题根据实际需求,分析了疲劳驾驶检测技术在Android平台上的实现方案,利用Android系统的高度开放型,以传统疲劳驾驶检测算法为基础,针对性地对适合于Android平台的疲劳驾驶检测算法进行了研究。该算法对传统算法只能对正面人脸状态分析情况进行了改良,将AdaBoost算法和改进后的二次肤色分割相结合,可以获取并判断驾驶员正脸与侧脸的疲劳特征。又针对部分情况下光照会影响到肤色检测人脸区域的问题,提出了将参考白与区域生长结合优化肤色分割结果的二次肤色分割方法,使算法有更强的光照适用性。测试结果表明,该方法可以有效地移植到Android平台中,完成对驾驶员疲劳特征的检测。同时实时性、正确率符合需求,并且无需事前的标注等工作,简便易行。 第二,本文通过分析,将传统PC端算法向Android端的移植方案做了对比,最终利用Android NDK下的JNI完成了最终的算法移植,对传统图像处理向新兴起的Android平台的移植方案做了说明与探讨。 第三,本文通过Eclipse平台完成了Android移动终端下的系统功能设计。包括利用自己编写的摄像头程序完成数据采集和存储,算法的跨平台数据分析功能的具体设计,警报功能以及显示功能等。最终以Android下的一款应用程序的形式呈献给用户,可以为用户提供疲劳实时报警,保证用户安全。 第四,为了丰富系统的功能,本文利用Android系统下的加速度传感器和GPS等,对行车中的位置信息、加速度等进行检测,为用户提供超速报警和碰撞报警等功能,为将来作为驾驶员安全系统的推广做了初步的探讨。 第五,由于移植后的系统较为复杂,针对系统实时性、运行中的内存消耗现象,本文通过Android端的多线程完成疲劳判定,并对系统中需要用到的Bitmap类和ListView类进行了内存方面的优化,使系统的实时性符合现实应用需求。最终FPS可以达到3/帧每秒,且拥有90%的检测精度。