1 / 21
文档名称:

详细设计说明书.docx

格式:docx   大小:68KB   页数:21页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

详细设计说明书.docx

上传人:459972402 2022/3/31 文件大小:68 KB

下载得到文件列表

详细设计说明书.docx

相关文档

文档介绍

文档介绍:疲劳驾驶检测系统
详细设计说明书
如下:
FdActivity
:该类是作为程序的主界面类,在该类中,将
surfaceview
占据了整个界面,在该类中主要重写了
onCreate()
、 onPause()

onDestroy()
、onCameraViewStarted()
、onCameraViewStopped()

onCameraFrame()、onCreateOptionsMenu()、
onOptionsItemSelected()、
函数具体的分析参见程序的具体描述部分;
onCameraFrame() 函数:在系统实时监测驾驶员的头像数据的时候,需
要显示当前的帧率, 该类就是负责帧率的显示的类, 该类中,主要是实现了以下的几个功能:
从一帧图片中计算人眼的区域
绘制人眼的区域

打开摄像头,实时采集脸部的帧数据,图像进行灰度变化,首先进行
预处理,将背景噪声以及图像中的突刺变化去除, 防止影响后面的图形计
算精度;利用 Opencv 中的已有函数接口进行人脸和人眼的定位,在将人
眼的轮廓提取出来,这里面的用的方法:Otus 和 Robert Cross边缘检测。
利用最大垂直距离进行是否闭合的判定,组后再利用 PERCLOS 原理进行
疲劳状态的判断。

见概要设计说明书

实时性:能基本实现实时性的要求
对人脸的判断准确度: 95%以上
眼睛的判断准确度: 90%以上
疲劳识别: 80%以上

输入的数据是:摄像头采集的实时数据
输出是:预警声音

人脸检测算法
传统的检测人脸分方法有很多种:基于肤色的分离、基于统计模型、
或者是 PCA 方法,但是这些方法识别的时间较长,并且准确率不高,在
本文中,采用的是 OpenCV 中非常成功的基于 Haar-Like 特征的 Adaboost
算法。人脸检测分成两步:首先是训练过程产生分类器文件,再是利用
分类器进行人脸检测过程[4] 。训练过程:(1)准备正负样本,正样本是
需要检测的目标(正脸),负样本是不含正样本特征的任何目标;(2)利
CreatSample程序准备正样本集 ;(3)利用 Haar-Training 程序训练得到
分类器特征 xml 文件。检测过程:利用 android-OpenCV 中的分类器构建函数去加载该特征 xml 文件,利用 分类器本身的成员函 数[4,5]:
detectMultiScale(Mat image, List<Rect> objects, double scaleFactor, int
minNeighbors, int flags, Size minSize)对指定的 image 进行检测。其函数各
参数的意义:
Image:需要进行目标检测的区域 .
Object:将检测到的目标标记在矩形框中 .
scaleFactor:代表图像的缩放因子 .
Minneighbors:指定每个候选矩阵至少包含的邻近元素个数 .
Flag:标志位,默认为 0.
Minsize:最小的检测窗口,如果该值设置过小,将会导致图像的计算量较大。
Otus 最佳阈值图像分割法
当系统成功标记处人眼部的区域后, 需要进行二值化处理, 从而实现眼部提取。但是由于图像的灰度值对光线很敏感, 固定的阈值势必无法满足要求,本文采用的是基于 Otsu 算法的二值化处理。
Otsu 算法,又被称为最大类间法,是一种自适应的图像分割技术,
它是根据最小二乘原理推导出来的,根据光线强度的不同, 阈值会随之变
化,能得到最优的阈值 [7] ,其基