基于ZYNQ AP SoC的安全驾驶系统设计
具体算法分析:
本文引用地址:https://www.eepw.com.cn/article/201702/344567.htm(1)本系统的脸部采集算法采用基于Haar特征的AdaBoost级联分类器,其具有精度和速度较快的优点,在AdaBoost算法中,核心思想是针对同一个训练集训练不同的弱分类器,然后聚合起来,构成强分类器。它根据每次训练集中的每个样本进行分类判决,以及上一次的总体分类的准确度来决定每个样本的权值,最后将每次训练得到的分类器融合起来,作为最终的判决分类器,运行在ARM嵌入式系统上,检测速度较慢。而因为驾驶位置相对固定,当系统启动时,通过detectMultiScale函数对驾驶员位置和脸部五官进行初定位,这样可以通过驾驶员坐标,分割图像,降低分类器级数,提高检测速度。而且,驾驶员驾驶机动时候,位置基本无变化,可采取隔2帧图像检测一次人脸位置,并更新的驾驶员位置坐标值。另外,由于人脸五官在脸部中的位置分布是固定的,可采用初始化时得到的五官坐标分布与五官之间的距离,提取检测图像的ROI部分,进一步降低运算量。 部分程序如下:
pFaceCas->detectMultiScale(dstImFull,faceRectInit,1.1,2,0,Size(30,30));
pEyesCas->detectMultiScale(dstGImeyes,eyeRectInit,1.1,4,0|CV_HAAR_SCALE_IMAGE , Size(5,5) );
faceRectInitV=Rect(faceRectInitVX,faceRectInitVY,faceRectInitVW,faceRectInitVH*6/5);
dstGImface = dstImFull(faceRectInitV);
检测效果如图5,检测统计结果如表1。
(2)采用morphologyEx函数,对识别提取的眼和嘴巴ROI图像进行开运算形态学滤波。开运算算法实际是对图像先进性腐蚀后膨胀,而形态学图象处理表现为一种邻域运算形式,一种特殊定义的邻域称之为“结构元素”(Structure Element),它在每个像素位置上与二值图象对应的区域进行特定的逻辑运算,逻辑运算的结果为输出图象的相应像素。开运算能达到消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积的效果,假设给定二值图象B(x,y)和作为结构元素的二值模板X(i,j)。
腐蚀运算:
开运算:
开运算程序如下:
Mat element = getStructuringElement(MORPH_RECT,Size(3,3));
Mat element2 = getStructuringElement(MORPH_RECT,Size(7,7));
morphologyEx(leyeT,leyeTm,MORPH_ERODE,element); // 腐蚀
morphologyEx(leyeTm,leyeTm,MORPH_DILATE,element2); // 膨胀
开运算效果如图6。
(3)OpenCV里面的findcontours算子能标记并提取脸部五官轮廓,通过提取出来的轮廓,计算得到眼睛、嘴巴的最大逼近张开度,然后通过比较,可判断出驾驶员的眼睛开闭状态、打哈欠次数。处理效果如图7,代码实现如下:
vector
vector
Mat image1 = dstTImmouth.clone();
findContours(image1,contours,hierarchy,RETR_EXTERNAL,CHAIN_APPROX_SIMPLE);
int i = 0 ;int crea;
for( ;i
crea = fabs(contourArea(contours[i]));
if(crea>=500) {cout<
qDebug()<<crea<<endl; p="" }
Rect box = boundingRect(contours[i]);
dstTImmouth = dstTImmouth(box);
4 行车记录与酒精检测
随着道路上机动车数量的增多,在开车的路上难免有小刮小碰,遇到撞车党和碰瓷党的事件常有发生,所以本系统集成有行车记录仪功能,记录每一个行车过程的细节,维护司机的合法权益。如图8,系统具有清除内存、内存剩余量、续航时间报时和回播功能。同时,系统集成了12位精度的数模转换器和酒精传感器,实时对酒驾行为提出警报。
5 结论
本系统在ZYNQ ApSoC平台下,集成疲劳检测、行车记录、酒驾判断功能,对人脸检测算法进行了嵌入式架构移植,对AdaBoost算法进行了嵌入式优化,利用ZYNQ的ARM+FPGA的架构优势,在(PL)FPGA端对图像进行了灰度转换预处理,在PS(ARM)端,对来自PL端的图像进行了降噪和人脸检测、人脸五官特征值提取。
本系统的运行图如图9,通过实验,参考表1,识别率较高,达到了预定的功能,适用于车辆防止交通事故的发生等一体化行车安全场景,加以完善,有广泛的应用前景。
参考文献:
[1]李庆梅,钟燕科.机车司机疲劳驾驶监测[J].制造业自动化,2011(24):50-53.
[2]Mike Santarini.Zynq-7000 EPP为创新开启新时代[J].电子技术应用,2011(07):29-31.
[3]邢艳芳,张延冬.基于Zynq的OLED驱动设计[J].液晶与显示,2014(02):75-79.
[4]逯沛龙,符意德.图像预处理算法在ZYNQ芯片上的设计与实现[J].计算机与数字工程,2015(06):184-186+206.
[5]张莹,李勇平,敖新宇.基于OpenCV的通用人脸检测模块设计[J].计算机工程与科学,2011(01):101-105.
[6]杨定礼,赵正敏,白秋产.基于Adboost与空间支持向量域分类的人脸检测[J].电路与系统学报,2013(02):325-329.
[7]陈健.基于眼动数据和PERCLOS的管制员疲劳状态研究[J].无线互联科技,2015(10):135-136.
[8]杨捷,高增梁,汤健彬.基于ARM的新型行车记录仪[J].仪器仪表学报,2004:320-321.
本文来源于《电子产品世界》2017年第2期第38页,欢迎您写论文时引用,并注明出处。
评论