论文部分内容阅读
随着汽车保有量持续增长,交通事故数量逐年上升。交通事故给人们的生命和财产安全造成重大威胁,研究表明疲劳驾驶是导致交通事故的主要原因之一,因此设计一种功耗低、实时性好、便携的疲劳驾驶检测系统具有重要意义。本文选用ZedBoard开发板,其核心芯片为Zynq系列的xc7z020-clg484-1,Zynq芯片的结构是ARM+FPGA。ARM精于控制和易于搭建操作系统,FPGA具有强大的并行计算能力。疲劳驾驶检测系统采用软硬协同的方法实现,可以充分发挥ARM和FPGA的各自优点。FPGA 部分主要有人脸检测 IP、VDMA(Video Direct Memory Access)和 HDMI接口等模块。VDMA是FPGA和DDR之间的图像数据传输通道,HDMI接口用来完成图像的高清显示。人脸检测IP使用Vivado HLS(High-Level Synthesis)高层次综合工具设计,采用基于图片缩放的AdaBoost算法。其主要包含图像缩放、积分图计算、图像遍历、分类器检测、窗口合并等模块。图像缩放采用双线性插值法,利用积分图增量算法获得积分图,图像遍历通过设置行、列步长加速窗口遍历,窗口合并采用均值法。针对硬件设计,分类器检测模块采用串并行结合的结构加速待检窗口检测。ARM部分主要有Linux操作系统、疲劳特征判断、硬件IP驱动和操作界面等模块。硬件IP驱动控制VDMA和人脸检测IP运行,操作界面是用户和整个系统的交互界面。疲劳特征判断主要包括人脸分割、光照校正、边缘检测、特征拟合及判断、疲劳判断等。其中人脸分割通过“三庭五眼”的规律分割出人眼和嘴巴区域,光照校正采用的是自适应Gamma校正算法,边缘检测采用Canny算法,眼睛和嘴巴特征提取分别采用椭圆拟合和外接矩形的方法,通过长短轴之比和矩形的高来判断眼睛和嘴巴的状态,特征拟合判断的结果结合PERCLOS准则判断驾驶员疲劳状态。本文在ZedBoard开发板上采用软硬协同设计的方法实现了疲劳驾驶检测系统,系统具有便携性、功耗低、实时性好等特点。