欢迎来到知嘟嘟! 联系电话:13336804447 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13336804447
知嘟嘟经纪人
收藏
专利号: 2016110371187
申请人: 南京信息工程大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-02-23
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种手部驾驶违规行为的检测方法,其特征在于,包括以下步骤:

步骤一,驾驶员手部图像采集,

利用摄像机采集驾驶员驾驶行为图像信息,将摄像头安装在驾驶员头部上方的车顶处,摄像机镜头朝向方向盘,调节镜头位置,确保镜头不被驾驶员头部遮挡且能够清楚的采集到驾驶员在驾驶时手部活动区域的图像,图像应包括车门把手,方向盘,车载多媒体系统,变速杆以及车座前端位置,图像的分辨率设置为m×n,根据像素点的位置设置坐标系i′oj′,其中,左上顶点为坐标原点o,图像上边界为i′轴,图像左边界为j′轴,m为i′轴方向上的像素数,n为j′轴方向上的像素数;

步骤二,手部肤色区域提取,

(1)RGB颜色空间转换为YCrCb颜色空间

根据RGB空间到YCrCb空间转换公式,求出YCrCb颜色空间中像素点(x,y)处的Y,Cr,Cb的值,x依次取0,1,2,…,m-1,y依次取0,1,2,…,n-1,遍历整幅图像,得到每个像素点处的R(x,y),G(x,y),B(x,y)值,以及每个像素点处的Y(x,y),Cr(x,y),Cb(x,y)值,Y(x,y)=0.257R(x,y)+0.504G(x,y)+0.098B(x,y)+16;

Cr(x,y)=0.439R(x,y)-0.368G(x,y)-0.071B(x,y)+128;

Cb(x,y)=-0.148R(x,y)-0.219G(x,y)+0.439B(x,y)+128;

其中,x,y分别为当前位置像素的横,纵坐标值,R(x,y),G(x,y),B(x,y)表示RGB颜色空间中像素点(x,y)处的红色,绿色和蓝色这三色的强度信息,Y(x,y)表示YCrCb颜色空间中像素点(x,y)处的亮度信息,Cr(x,y),Cb(x,y)表示YCrCb颜色空间中像素点(x,y)处的色度信息;

(2)对图像进行非线性分段色彩变换,

根据上述得到的YCrCb颜色空间中每个像素点处的Y,Cr,Cb值,遍历整幅图像,计算得到肤色区域的中轴线表达式 和肤色区域宽度表达式WCb(x,y),WCr(x,y),其中,k1,kh表示非线性分段色彩变换的分段阈值,为对像素点进行统计后得出的经验值,其中k1=125,kh=188,Ymin,Ymax分别表示亮度的最小值和最大值,为对像素点进行统计后得出的经验值,其中Ymin=16,Ymax=235,WLCb,WLCr,WHCb,WHCr,WCb,WCr为对像素点进行统计后得出的经验值,其中WLCb=23,WLCr=

20,WHCb=14,WHCr=10,WCb=46.97,WCr=38.76,再利用上述得到的相关信息进行非线性变换,遍历整幅图像,得到新的色彩空间YCr′Cb′中每个像素点所对应的Cr′和Cb′值,其表达式为:其中,Cr′(x,y),Cb′(x,y)为加入色度补偿后像素点(x,y)处的色度分量Cr,Cb的修正值,Cr(x,y),Cb(x,y)为像素点(x,y)处的色度信息Cr,Cb的值;

(3)建立椭圆肤色模型

利用椭圆模型来描述肤色分布,建立YCr′Cb′颜色空间上的椭圆肤色模型,

u(x,y)=cosω*(Cb′(x,y)-Cx)+sinω*(Cr′(x,y)-Cy)

v(x,y)=(-sinω)*(Cb′(x,y)-Cx)+cosω*(Cr′(x,y)-Cy)

其中,u(x,y),v(x,y)为对像素点(x,y)处的Cb′,Cr′的值经过计算得到的值,a,b分别是椭圆长半轴和短半轴的长度,ω表示椭圆的倾斜弧度,Cx,Cy表示椭圆在Cb′Cr′平面上的中心,对像素点是否为肤色点进行初次判断,如果d(u(x,y),v(x,y))≤0,则像素点在椭圆区域内或椭圆边界上,则该像素点可能为肤色点,如果d(u(x,y),v(x,y))>0,则像素点在椭圆区域外,认为该像素点可能不是肤色点;

(4)确定像素点的肤色概率值,

为了在对肤色点进行初次判断的基础更准确地确定肤色像素点,利用logistic回归分析,进一步确定每一个像素点的肤色概率值ps(u (x ,y) ,v(x ,y)) ,其中,β1,β2是d(u(x,y),v(x,y))的参数,为经

验值,其中β1=2.247,β2=1,ps的取值范围为[0,1],假设灰度级数为255,则对应像素点(x,y)处的灰度值为B(x,y),B(x,y)=255×ps(u(x,y),v(x,y));

步骤三,手部肤色区域分割

运用遗传算法确定最佳分割阈值ts,对像素点是否为肤色点进行再判断,比较最佳分割阈值ts与像素点(x,y)处灰度值B(x,y)的大小,确定肤色区域,得到二值化图像B1(x,y),将灰度值大于阈值ts的像素点确定为肤色区域,完成对手部肤色区域的分割,用遗传算法进行自适应地选择分割阈值ts的步骤如下:

(1)编码:图像的灰度值为0到255,其中的每个灰度值都对应一个8位二进制数,所以将图像中每个像素的灰度值都可用一个8位二进制数来表示,(2)生成初始化种群:随机生成M个初始个体X11,X12,…,X1M,由这些个体形成初始种群X1,X1={X11,X12,…,X1M},设置最大进化代数为H,交叉率为Pc,变异率为Pm,其中H,Pc,Pm均为自行设定的经验值,其中H=40,Pc=0.2,Pm=0.01;

(3)确定适应函数:利用最大类间方差法确定适应函数g(t),

g(t)=wA(uA-ut)2+wB(uB-ut)2=wAwB(uA-uB)2,其中,公式中的参数wA,wB,uA,uB,ut由如下方法确定:假设采集到的图像中有N个像素,N=m×n,灰度值为λ的像素为nλ个,得出各灰度出现的概率pλ,pλ=nλ/N,引用某一灰度值为阈值t,将图像分成人手肤色区域和背景区域两类,分别为A和B,则A=(0,…,t),B=(t+1,…,L-1),L为灰度级数,根据各灰度出现的概率Pλ,可以得出A类和B类中灰度的概率值wA和wB, 以及整体平均灰度值uL(t)和阈值为t时的平均灰度值ut(t), 随后

进一步得出A类的平均灰度值uA和B类的平均灰度值uB,

最后,利用最大类间方差的方法确定适应函

数,适应函数为g(t)=wA(uA-ut)2+wB(uB-ut)2=wAwB(uA-uB)2;

(4)选择:利用得到的适应函数g(t),g(t)=wA(uA-ut)2+wB(uB-ut)2=wAwB(uA-uB)2,计算得到种群的适应度值,记为g1(t),g2(t),…,gM(t),将群体按照适应度大小进行排序,复制适应度值较大的个体来取代适应度值较小的个体,产生新的种群X1′,X1′={X11′,X12′,…,X1M′};

(5)交叉:打乱种群中个体的顺序,对个体进行随机排序,利用两点交叉法,在排序后的种群中随机选择两个个体,按交叉率Pc=0.2进行两点交叉,即在已经经过编码后的两个个体的码串中选择两个交叉点,对两个交叉点之间的码串进行交换,得到两个新的个体,对所有个体进行交叉运算后产生一个新的种群X1″,X1″={X11″,X12″,…,X1M″},两点交叉的过程;

(6)变异:以变异率Pm=0.01对种群X1″中任意个体的8位二进制数码串中的任意一位进行反位变异,即将选中的那一位上的数由0变为1或由1变为0,产生一个新的个体,对所有个体进行变异运算后,形成新一代的种群X2,X2={X21,X22,…X2M};

(7)终止条件:当执行到最大进化代数H=40或群体中的最大适应度值变化不大时,终止,若未达到终止条件则继续进行选择,交叉,变异操作,直到达到终止条件为止,对具有最高适应度值的个体进行解码,得最优阈值ts,步骤四,肤色区域连通以及手部图像提取

(1)手部肤色点标记

运用区域生长法进行连通区域的分析和标记,首先选取像素点(g,h)作为初始点,将标记值f(g,h)和标签llabel都设定为0,其中,g,h为当前像素点的横、纵坐标值,0≤g≤m-1,0≤h≤n-1,然后对图像进行扫描,从图像的左上顶点开始,从左到右,从上往下遍历整幅图像,判断是否为肤色点,若判断的初始像素点不是肤色点,则不对其进行标记,将下一个像素点作为当前点,即当0≤h≤n-2时,当前点坐标为(g+1,h),为与像素点(g,h)相邻的右方像素点,当h=n-1时,当前点坐标为(0,h+1),为像素点(g,h)下一行的首个像素点,若判断的初始像素点是肤色点,则将该像素点的标记值定为1,即f(g,h)=1,然后将下个像素点作为当前点进行判断,若是肤色点,则对它的上、左、左上,右上四个像素点进行判断,如果只有一个像素点被标记过,就把该像素点的标记值赋给当前点,如果有多个像素点被标记过,则按照上,左,左上,右上的顺序对当前点进行标记值赋值,即先检查当前点上方的像素点是否被标记过,若被标记过,则把上方像素点的标记值赋值给当前点,即f(g,h)=f(g,h-1),不考虑其他三个像素点的标记情况,选择下个像素点作为当前点继续分析标记,若没有被标记过,则检查左方的像素点是否被标记,若被标记,则把左方像素点的标记值赋给当前点,即f(g,h)=f(g-1,h),不考虑后面两个像素点的标记情况,选择下个像素点作为当前点继续分析标记,若没被标记,则检查左上方的像素点是否被标记,若被标记过,则把左上方像素点的标记值赋给当前点,即f(g,h)=f(g-1,h-1),不考虑最后一个像素点的标记情况,选择下个像素点作为当前点继续分析标记,若没被标记过,则检查当前点右上方的像素点是否被标记过,若被标记过,则把右上方像素点的标记值赋给当前点,即f(g,h)=f(g+1,h-1),标记结束,选择下个像素点作为当前点继续分析标记,若没被标记过,则说明当前点上、左、左上、右上四个像素点都未被标记过,则把当前点作为新的连通区域的初始点,赋予一个新的标记值,然后将llabel加1,遍历整幅图像,完成对肤色点的标记,标记公式为:其中,f(g,h)表示像素点(g,h)处的标记值,f(g,h-1)表示像素点(g,h)上方像素点的标记值,f(g-1,h)表示像素点(g,h)左方像素点的标记值,f(g-1,h-1)表示像素点(g,h)左上方像素点的标记值,f(g+1,h-1)表示像素点(g,h)右上方像素点的标记值;

(2)手部区域确定

标记结束后,根据标记值,区分连通区域,设每个标记值的区域为R1,R2,…,Rn′,n′为区域的个数,统计每个区域内像素的个数af′,(f′=1,2,…,n′),保留像素个数最大和次大的区域,其他区域可被认定为噪声区域,将它们的灰度值设为0,随后,设定像素个数阈值为Fn,若像素个数最大和次大的区域内的像素个数都小于Fn,则认为这两个区域为噪声区域,将它们的灰度值设为0,若像素个数次大的区域内的像素个数小于Fn,像素个数最大的区域内的像素个数大于或等于Fn,则认为像素个数次大的区域为噪声区域,将它们的灰度值设为0,像素个数最大区域认定为肤色区域,若像素个数次大的区域内的像素个数大于或等于Fn,则认为像素个数最大和次大的区域均为肤色区域,得到标记后的二值化图像的灰度值B2(x,y), 提取肤色图像,得到完整的手部图像;

步骤五,手部位置区域划分

利用采集到的图像信息,根据司机正常驾驶时双手放置习惯,在采集到的图像中框定五个感兴趣区域,方向盘区域,车门把手区域,膝盖区域,变速杆区域,车载多媒体系统区域,分别定义为区域1,区域2,区域3,区域4,区域5,设定由点A1(a1,b1),B1(a2,b1),C1(a1,b2),D1(a2,b2)(像素点坐标)围成的矩形区域为方向盘区域,其中,A1(a1,b1),B(a2,b1),C1(a1,b2),D1(a2,b2)表示方向盘区域的四个顶点坐标,a1,b1为点A1的横、纵坐标值,a2,b1为点B1的横、纵坐标值,a1,b2为点C1的横、纵坐标值,a2,b2为点D1的横、纵坐标值,由点A2(0,b3),B2(a3,b3),C2(0,b4),D2(a3,b4)围成的矩形区域为车门把手区域,其中,A2(0,b3),B2(a3,b3),C2(0,b4),D2(a3,b4)表示车门把手区域的四个顶点坐标,0,b3为点A2的横、纵坐标值,a3,b3为点B2的横、纵坐标值,0,b4为点C2的横、纵坐标值,a3,b4为点D2的横、纵坐标值,由点A3(a1,b4),B3(a2,b4),C3(a1,n-1),D3(a2,n-1)围成的矩形区域为膝盖区域,其中,A3(a1,b4),B3(a2,b4),C3(a1,n-1),D3(a2,n-1)表示膝盖区域的四个顶点坐标,a1,b4为点A3的横、纵坐标值,a2,b4为点B3的横、纵坐标值,a1,n-1为点C3的横、纵坐标值,a2,n-1为点D3的横、纵坐标值,由点A4(a4,b5),B4(m-1,b5),C4(a4,n-1),D4(m-1,n-1)围成的矩形区域为变速杆区域,其中,A4(a4,b5),B4(m-1,b5),C4(a4,n-1),D4(m-1,n-1)表示变速杆区域的四个顶点坐标,a4,b5为点A4的横、纵坐标值,m-1,b5为点B4的横、纵坐标值,a4,n-1为点C4的横、纵坐标值,m-1,n-1为点D4的横、纵坐标值,由点A5(a4,b1),B5(m-1,b1),C5(a4,b6),D5(m-1,b6)围成的矩形区域为车载多媒体系统区域,其中,A5(a4,b1),B5(m-1,b1),C5(a4,b6),D5(m-1,b6)表示车载多媒体系统区域的四个顶点坐标,a4,b1为点A5的横、纵坐标值,m-1,b1为点B5的横、纵坐标值,a4,b6为点C5的横、纵坐标值,m-1,b6为点D5的横、纵坐标值,且a3<a1<a2<a4<m-1,b1<b3<b6<b5<b2<b4<n-1;

步骤六,手部识别和违规驾驶判断

运用积分投影的方法,判断双手放置区域,以及区域内手的数量,设定判断准则,实现驾驶违规行为的判定,令f1=0,1,…,n-1,h1=0,1,…,m-1,计算与j′轴平行的每一列上所有像素的灰度值之和,根据计算结果确定手部的左、右边界,将计算结果存储在数组F1[f1]中, 当记录到F1[f1]第一次大于0时,则检测到图像中更偏于左方那只手的手部区域的左边界,用变量JL1记录当前的横坐标f1,并令JL1=f1,并记录这一列上第一个灰度值大于0的像素点的坐标,记为H1(f1′,h1′),继续给f1赋值,当F1[f1]等于0时,则检测到图像中更偏于左方那只手的手部区域的右边界,用变量JR1记录当前位置前一列的横坐标f1-1,并令JR1=f1-1,继续给f1赋值,当F1[f1]再一次大于0时,则检测到图像中更偏于右方那只手的手部区域的左边界,用变量JL2记录当前的横坐标f1,并令JL2=f1,并记录这一列上第一个灰度值大于0的像素点的坐标,记为H2(f1″,h1″),继续给f1赋值,当F1[f1]再一次等于

0时,则检测到图像中更偏于右方那只手的手部区域的右边界,用变量JR2记录当前位置前一列的横坐标值f1-1,并令JR2=f1-1,若只记录得到了JL1,JR1的变量值,那么JL2=0,JR2=0,计算与i′轴平行的每一行上所有像素的灰度值之和,根据计算结果确定手部的上、下边界,将计算结果存储在数组H1[h1]中, 当记录到H1[h1]第一次大于0时,则检测到图像中更偏于上方那只手的手部区域的上边界,用变量GU1记录当前的纵坐标h1,并令GU1=h1,继续给h1赋值,当H1[h1]等于0时,则检测到图像中更偏于上方那只手的手部区域的下边界,用变量GD1记录当前位置上一行的纵坐标值h1-1,并令GD1=h1-1,继续给h1赋值,当记录到H1[h1]再一次大于0时,则检测到图像中更偏于下方那只手的手部区域的上边界,用变量GU2记录当前的纵坐标h1,并令GU2=h1,继续给h1赋值,当H1[h1]再一次等于0时,则检测到图像中更偏于下方那只手的手部区域的下边界,用变量GD2记录当前位置上一行的纵坐标h1-1,并令GD2=h1-1,若只记录到GU1,GD1的变量值,那么GU2=0,GD2=0;

驾驶行为判断:在实际驾驶过程中,只有当双手在方向盘上或者一只手在方向盘而另一只手在换挡时,即双手都在方向盘区域或者一只手在方向盘区域的同时另一只手在变速杆区域,才被认为是正常的驾驶行为,否则,双手放置在五个感兴趣区域的其它位置则被认定为违规驾驶行为,具体判定规则如下:A,当a1<JL1<a2并且a1<JR1<a2并且JL2=0,JR2=0时,双手总共只得到一个左边界和一个右边界,说明计算手的左右边界时,双手错开位置不明显或者双手重叠;

1)若b1<GU1<b2并且b1<GD1<b2并且GU2=0并且GD2=0时,双手错开位置不明显,只得到双手的一个上边界和一个下边界,双手都在方向盘区域内,判定为正常驾驶;

2)若b1<GU1<b2并且b1<GD1<b2并且b1<GU2<b2并且b1<GD2<b2时,双手错开位置比较明显,左右手都能得到一个上边界和一个下边界,双手都在方向盘区域内,判定为正常驾驶;

B,当a1<JL1<a2并且a1<JR1<a2并且a1<JL2<a2并且a1<JR2<a2时,左右手分别得到一个左边界和一个右边界,说明计算手的左右边界时双手错开比较明显,无重叠现象;

1)若b1<GU1<b2并且b1<GD1<b2并且GU2=0并且GD2=0时,双手错开位置不明显,只得到双手的一个上边界和一个下边界,双手都在方向盘区域内,判定为正常驾驶;

2)若b1<GU1<b2并且b1<GD1<b2并且b1<GU2<b2并且b1<GD2<b2时,双手错开位置比较明显,左右手都能得到一个上边界和一个下边界,双手也都在方向盘区域内,判定为正常驾驶;

C,当a1<JL1<a2并且a1<JR1<a2并且a4<JL2<m-1并且a4<JR2<m-1时,若H1(f1′,h1′)在方向盘区域内,即a1<f1′<a2,b1<h1′<b2,H2(f1″,h1″)在变速杆内,即a4<f1″<m-1,b5<h1″<n-1,此时若b1<GU1<b2并且b1<GD1<b2并且b5<GU2<n-1并且b5<GD2<n-1时,则一只手在方向盘内,一只手在变速杆区域内,然后计算手部刚接触变速杆到离开变速杆这段时间内图像的帧数,得到手部在变速杆上停留的时间t′,设定停留时间阈值为Tt,若t′≤Tt,则判定为正常驾驶,如果不满足上述认为是正常驾驶的条件,则一律判定为违规驾驶。