应用于汽车安全驾驶的手部跟踪算法
2016-12-21李梦宇付华勇孙真真
李梦宇,元 辉,付华勇,孙真真
(山东大学 信息科学与工程学院,山东 济南 250000)
应用于汽车安全驾驶的手部跟踪算法
李梦宇,元 辉,付华勇,孙真真
(山东大学 信息科学与工程学院,山东 济南 250000)
为了提高汽车驾驶的安全性,提出了利用方向盘检测与手部跟踪的方法,对驾驶员的操作行为进行分析,并能对潜在的危险驾驶行为预警,进而减少意外事故的发生。该方法首先采用边缘检测和霍夫变换检测出方向盘所在的位置坐标,然后以正常驾驶的手部状态为模板检测并跟踪手部。实验结果表明,所提方法可以有效地跟踪驾驶员的手部动作。
安全驾驶;方向盘检测;手部跟踪
交通事故使人们的生命财产安全受到巨大威胁。如果在事故发生前,能够对潜在的危险预警,就可以有效降低交通事故发生的概率。在传统的汽车安全驾驶分析中,研究者常常通过瞳孔的张合度来判断驾驶员是否在疲劳驾驶[1],由于每个人的眼睛张合度不同,此方法并不能有效地判定每位驾驶员的疲劳状态。此外,也有研究人员通过判断视频场景中手的数目(是否为2)判断驾驶员是否规范驾驶[2]。如果仅仅通过手部数量的检测,即便检测出驾驶员的2只手全部在场景范围内,驾驶员也仍然有可能存在不规范驾驶行为。
由此,本文提出一种应用于汽车安全驾驶的手部跟踪算法。通过对视频场景中的图像进行直方图均衡化、开运算与轮廓绘制以及霍夫圆检测等处理,准确检测出方向盘的位置坐标,然后以左右两只手部的图像为模板对场景里的驾驶员手部进行模板匹配,实现手部的跟踪定位。通过判定手部是否在方向盘标定的范围内运动,判断驾驶员是否正常驾驶。如在检测疲劳驾驶时,若检测过程中发现手部坐标长时间无变化,则判定驾驶员有极大可能处于疲劳驾驶的状态。再者如酒后驾驶、不规范驾驶以及驾驶员休克等情况,若检测到双手长时间超出方向盘所在的范围或者检测不到双手,则会发出警告,从而有效提高驾驶员的人身安全。图1所示,提出算法主要包括方向盘检测与手部跟踪两个部分。
图1 手部跟踪算法系统框图
1 方向盘检测
方向盘具有两种直观的特征,即接近圆形、颜色较深。因此,提出首先对待检测的图像进行预处理;然后绘制处理后的图像的边缘轮廓;最后利用霍夫变换检测图像中的圆形区域,确定方向盘的位置。
1.1 预处理
为了增强对比度,使方向盘相对于其他区域亮度对比更加突出,首先对图像进行直方图均衡;然后进行开运算消除图像中的细小物体;为了使方向盘的检测更加精准,采用边缘检测,保留方向盘所在区域的强边缘,并在此基础上提取方向盘的边缘轮廓。
1.1.1 直方图均衡化
在实际应用中,外界光线纷繁复杂,方向盘各部分亮度不同,难以准确地用灰度值判断方向盘的位置。因此采用直方图均衡化处理,增强图像对比度。图2是原始图像经过直方图均衡化处理后的图像及相应的直方图。
图2 原始图像经过直方图均衡化处理后的图像及相应的直方图
1.1.2 开运算
在汽车中控区域,除了方向盘外还存在其他圆形区域(如各种仪表盘)。这些区域亮度通常较弱,在经过直方图均衡处理后,可以通过开运算将这些区域作为细小物体消除。
开运算是先腐蚀后膨胀的过程,其可以用来消除小物体、平滑较大物体的边界[3]。
腐蚀是求局部最小值的操作,使图像中的高亮区域逐渐减少。它是一种消除边界点,使边界向内部收缩的过程,其腐蚀的数学表达式为
(1)
式中:src是将原图与核卷积操作的函数;dst是膨胀处理后的图像;(x,y)是原图像中的像素点坐标;(Δx,Δy)是邻近像素与当前像素之间的水平、垂直距离。膨胀与腐蚀相反,是求局部最大值的操作,如式(2)所示。
(2)
图3是腐蚀与开运算处理后的图像,可见仪表盘部分已被消除。
图3 腐蚀与开运算处理后的图像
1.1.3 边缘检测及强边缘保留
为提高霍夫变换的速度与精度,在经过开运算处理后,需采用Canny算子检测边缘并绘制边缘轮廓。轮廓是一系列的像素点集合,即图像中的一条曲线。
首先对图像进行一阶微分运算,求得梯度最大值,最后通过判定像素点的幅值是否大于阈值来提取边界[4]。若像素点的幅值大于高阈值,则保留为边缘像素,若其小于低阈值时则弃用,若其介于二者之间并且能连接到一个高于高阈值的像素点时被保留。图4所示为边缘图像及强边缘保留后的图像。
图4 边缘图像及强边缘保留后的图像
1.2 霍夫圆检测
对于平面上的圆只需要知道圆心坐标(x0,y0)以及半径r,即可确定圆上所有点的坐标(x,y),在极坐标上表示为[5]
(3)
由于圆心位于圆上的每个点的模向量(垂直于切线并指向圆心)上, 圆心即是圆上所有点的模向量的交点。因此,边缘点对应的三维空间曲线交于一点的个数越多,其经过的共同圆上的点就越多,进而判断圆心坐标,然后根据设定的圆的半径来选取最优的圆。
(4)
式中:(x, y)表示图像中的像素点;(X, Y) 表示圆检测后的圆心坐标;Sx,Sy分别表示x与y方向的梯度;D表示斜率指定的直线上的每一个像素点的集合;max表示通过累加器得到的所有大于给定阈值并且大于其所有近邻的候选中心,Rmin与Rmax分别表示设定的圆的最小半径和最大半径。图5是原始图像直接进行霍夫圆检测与经过边缘检测等预处理后的图像进行霍夫圆检测的对比图。
图5 霍夫圆检测结果
2 基于方向盘位置的手部检测与跟踪
在手部识别跟踪研究中,常常通过训练大量手部样本,进而得到手部特征(如Haar特征[6])实现手部的识别跟踪,但是该方法需要建立庞大的数据库[7],并且运算复杂度较高。为了迅速识别手部区域并进行跟踪,采用模板匹配来检测手部并跟踪的。
首先从训练图像中选取手部区域,并作为模板,然后在测试图像中遍历搜索,找到与模板最匹配的区域作为手部区域,如图6所示[8]。
在匹配过程中,采用平方差匹配法[9]作为匹配准则,即
(5)
式中:T为模板图像;I为搜索图像中与模板大小相对应的区域。图7所示为模板匹配检测到的手部区域。
图6 模板匹配示意图
图7 手部模板匹配的检测标识
3 实验结果分析
为验证算法的有效性,采用公交驾驶员的驾驶视频在PC端(Windows7系统,32位,4 Gbyte内存)进行实验仿真。图8所示是不同帧下的方向盘的圆心坐标及半径和手部坐标。图8中(X,Y) 表示圆心坐标,R表示圆半径,(Ax,Ay)表示左手坐标,(Bx,By)表示右手坐标。
图8 圆心坐标及半径的折线图和相应检测结果图
为判断驾驶员是否在安全驾驶,通过判定手部是否在指定区域运动来确定。首先定义规范驾驶情况下,手部中心坐标与方向盘的中心之间的最远和最近距离dmax和dmin。当手部中心坐标与方向盘中心的距离D位于dmax和dmin之间时,即
(6)
判定驾驶员驾驶行为规范;当D>dmax或D 本文主要研究驾驶员手部操作规范情况的判别,以不同于疲劳驾驶的角度进行危险驾驶预警,对包括疲劳驾驶、酒后驾驶以及驾驶员意外情况发生等情形下的不符合规范的行为能实现正确检测。由于本文所提的安全驾驶检测算法目前并无一致的国际衡量标准,因此有待进一步完善与研究。 [1]徐建军. 基于人脸特征的列车司机疲劳驾驶检测与识别系统研究[D]. 成都:西南交通大学,2010. [2]郭克友,纪彬,陈雪洁,等.一种方向盘上操作手数目检测算法[J].计算机工程与应用,2015,51(10):177-181. [3]毛星云,冷雪飞.Opencv3编程入门[M].北京:电子工业出版社,2015. [4]Opencv 2.4.9.0 documentation[EB/OL].[2015-11-23].http://docs.opencv.org/ modules/refman.html,2014. [5]陈国栋. Hough变换改进算法研究[D].哈尔滨:哈尔滨工业大学,2007. [6]TRIESEH J, Der MALSBURG C. Classification of hand postures against complex backgrounds using elastic graph matching[J]. Image and vision computing,2002,20 (13/14):937-943. [7]GIANNI F, COLLET C, DALLE P. Robust tracking gestures[C]//Proc. Gesture-Based Human-Computer for Processing of videos of communication's Interaction and Simulation. [S.l.]:IEEE,2009:93-101. [8]高富强.一种快速彩色图像匹配算法[J].计算机应用,2005, 25(11):2604-2605. [9]GONZALEZ R C.Digital image processing[M].3rd ed. [S.l.]:Prentice Hall,2007. 李梦宇(1994— ),硕士生,主研计算机视觉及图像处理; 元 辉(1984— ),副教授,硕士生导师,主要研究方向为视频编解码。 责任编辑:闫雯雯 Hand tracking algorithm applied to vehicular safe driving LI Mengyu, YUAN Hui, FU Huayong, SUN Zhenzhen (SchoolofInformationScience&Engineering,ShandongUniversity,Jinan250000,China) In order to improve the safety of driving, vehicular steering detection and hand tracking are proposed to analyze the operation behavior of the driver, and reduce the occurrence of accidents. Firstly, the position coordinates of the vehicular steering is detected by using edge detection and Hough transform. Secondly, the driver’s hands are detected and tracked by template matching. Experimental results show that the proposed method can effectively track the driver's hand movements. safe driving; steering detection; hand tracking 李梦宇,元辉,付华勇,等. 应用于汽车安全驾驶的手部跟踪算法[J]. 电视技术,2016,40(11):112-115. LI M Y, YUAN H, FU H Y,et al. Hand tracking algorithm applied to vehicular safe driving [J]. Video engineering,2016,40(11):112-115. TP391 A 10.16280/j.videoe.2016.11.023 国家自然科学基金项目(61571274);山东大学青年学者未来计划项目(2015WLJH39) 2015-11-234 结论