一种多方向车辆的车窗定位方法
技术领域
本发明涉及数字图像处理技术领域,具体是一种可以解决多方向车辆车窗的精准定位的多方向车辆的车窗定位方法。
背景技术
车窗是车辆的关键组成部分,在车辆图像分析中起到重要作用,比如根据车窗定位车辆其他关键部分,如车脸、车顶等,同时车窗区域也可以作为车辆识别以及驾驶人行为的识别的重要依据。
目前大多数车窗定位方法都是解决直行车辆的车窗定位问题,并没有一种可以解决多方向车辆车窗精准定位的方法,而目前已有的车窗定位主要可以分为两类,一类是基于色度差的方法,另一类是基于边缘检测的方法。基于色度差的方法主要是利用车身颜色与车窗颜色存在差异的特点进行车窗定位,比如刘直芳(基于遗传算法的车窗定位[J].计算机应用研究,2002,27(1):19(11):74-76)在车辆图像上,根据HSV的H通道定义像素色度值并得到行色度均值,然后根据设计的能量函数结合遗传算法找到车窗上下边界,但由于遗传算法的计算复杂度较高,因此该方法效率较差;而王运琼(基于色差均值的快速车窗定位算法[J].计算机应用与软件,2004,21(1):78-79)同样是在车辆图像上利用色度差进行车窗上下边界的定位,不同的他提出的方法是结合H值和V值来表示像素色度,并根据像素指定领域内的最大色度差来计算行色度差均值,然后直接通过分析行色度差均值确定车窗上下边界,该方法相对于前一种方法效率上有极大的改善,但容易误识别车身边缘以及车顶架等部分。基于边缘检测的方法通过在车窗二值化图像上利用边缘检测方法进行车窗边界检测,如李冬梅(基于Hough变换的车窗提取算法[J].中国测试,2007,33(3):50-52)提出了一种基于改进的Hough变换的车窗上下边界定位方法,首先计算所有像素的梯度方向,然后根据梯度方向对所有像素进行分组,进而对每组像素分别用Hough变换进行直线检测,该方法相对于直接Hough直线检测方法效率有所改善,但对于存在一定弯曲程度的车窗上下边界的定位鲁棒性不高。
综上所述,目前已有的车窗定位算法存在的不足是:(1)不能实现多方向车辆的车窗定位;(2)没有进行车窗左右边线的精准定位;(3)在车辆全图上进行车窗上下边界的定位,定位结果比较容易出错。
发明内容
针对现有方法的不足,本文提出了一种可以解决多方向车辆车窗的精准定位的多方向车辆的车窗定位方法。该方法首先在车辆图像上利用车窗窗角检测器定位车窗左下和右下两个窗角位置,进一步在窗角区域图像上,根据Hough直线检测方法进行车窗左右边界的定位,然后在确定的车窗下边界区域和上边界区域的二值化图像上,利用基于投影的方法确定车窗下上边界的定位,同时本发明提出一种Soble+OTSU二次阈值法进行图像边缘增强。
所述的一种多方向车辆的车窗定位方法,其特征在于包括如下步骤:
步骤1:在车辆图像I上,利用Hog+SVM左下窗角检测器和Hog+SVM右下窗角检测器找到车辆图像I上的左下窗角和右下窗角区域,分别记为DL和DR,同时将车辆图像I上区域DL对应的左下窗角图像和区域DR对应的右下窗角图像,分别记为IL和IR;
步骤2:对窗角图像IL和IR分别采用窗角图像的斜边检测方法检测出窗角图像中的窗角斜边直线lenL和lenR;将窗角斜边直线lenL和lenR对应的在图像I坐标系上的直线记为WL和WR,图像I坐标系表示坐标原点为(0,0),且X轴方向水平向右,Y轴方向水平向下的坐标系;
步骤3:检测车窗下边界所在直线WD,具体为:
步骤3.1:根据左下窗角区域DL和右下窗角区域DR得到车窗下边界所在区域DD,区域DD的参数根据公式(1)确定;将图像I上区域DD对应的车窗下边界区域图像记为ID;
其中,DX.x0,DX.y0,DX.w,DX.h分别表示区域DX的左上顶点横坐标、左上顶点纵坐标、区域宽度、区域高度,且下文所有其他区域的表达与此相同,min{}表示集合中的最小值,max{}表示集合中的最大值;
步骤3.2:根据车窗左右边界线WL和WR得到图像ID对应的车窗区域的Mask图像IDM,具体的图像IDM上任意坐标为(i,j)的像素灰度gDM(i,j)根据公式(2)-(4)进行计算,且图像IDM上的白色区域表示车窗区域;
其中,gDM(i,j)表示图像IDM上坐标为(i,j)的像素的灰度值,且下文其他图像上指定坐标像素灰度的表达与此处相同;locL(i,j)表示坐标点(i,j)与直线WL的相对位置,且locL(i,j)>0表示坐标点(i,j)在直线WL的右侧,locL(i,j)<0表示坐标点(i,j)在直线WL的左侧,locL(i,j)=0表示坐标点(i,j)在直WL上;locR(i,j)表示坐标点(i,j)与直线WR的相对位置,且locR(i,j)>0表示坐标点(i,j)在直线WR的右侧,locR(i,j)<0表示坐标点(i,j)在直线WR的左侧,locR(i,j)=0表示坐标点(i,j)在直线WR上;b1和k1为非垂直直线WL的截距和斜率;c1为垂直直线WL的横坐标值;b2和k2为非垂直直线WR的截距和斜率;c2为垂直直线WR的横坐标值;WL.θ表示直线WL与水平直线构成的右上方的夹角,WR.θ含义类似;
步骤3.3:采用Sobel+Otsu二次阈值法得到图像ID对应的边缘二值化图像,记为IDB;
步骤3.4:根据公式(6)-(7)得到车窗下边界直线的角度θD;
其中,θCar表示根据车窗左右两条边界线WL和WR得到的车辆的方向角度;
步骤3.5:在图像IDB上,从下往上平移斜率为kD=tan(θD)、宽度为3px的扫描线,即扫描线对应的截距依次为根据第一判定规则找到位置与车窗下边缘直线最接近的扫描线,将其记为scD;
步骤3.6:在图像IDB上,将步骤3.5得到的扫描线scD以点pSCD为旋转中心,在[θD-5°,θD+5°]角度范围内旋转扫描线,即扫描线对应的角度依次为θ=θD-5°,θD-4°,…,θD+5°,根据第二判定规则找到对应角度与车窗下边缘直线角度最接近的扫描线,将该扫描线记为scD2;其中,点pSCD为扫描线scD的中点,且扫描线的中点为扫描线与车窗左右两条边线的两个交点的连线中点;
步骤3.7:则车窗下边界直线为扫描线scD2所在直线,将其对应的图像I坐标系上的直线记为WD;
步骤4:检测车窗上边界所在直线WU,具体为:
步骤4.1:根据公式(19)确定车窗上边界所在区域DU;将图像I上区域DU对应的车窗上边界区域图像记为IU;
其中,pSCD为步骤3.5得到图像IDB上的扫描线scD的中点,pSCD.y表示点pSCD的在图像IDB上的纵坐标,pSCD.y+DU.y0表示图像I上点pSCD对应点的纵坐标;p1为直线与直线WL的交点;p2为直线与直线WR的交点;p3为直线与直线WL的交点;p4为直线与直线WR的交点;lengthD为直线WD与直线WL交点和直线WD和直线WR交点之间的线段长度;
步骤4.2:根据车窗左右边界线WL和WR得到图像IU对应的车窗区域的Mask图像IUM,具体的图像IUM上任意坐标为(i,j)的像素灰度gUM(i,j)根据公式(20)进行计算,且图像IUM上的白色区域表示车窗区域;
其中,locL(i,j)根据公式(3)进行计算,locR(i,j)根据公式(4)进行计算;
步骤4.3:根据Sobel+Otsu二次阈值法,得到图像IU对应的边缘二值化图像,记为IUB;
步骤4.4:在图像IUB上,从下往上平移斜率为kU=tan(WD.θ)、宽度为3px的扫描线,即扫描线对应的截距依次为根据第三判定规则找到位置与车窗上边缘直线最接近的扫描线,将其记为scU;
步骤4.5:则车窗上边界直线为扫描线scU所在直线,将其对应的图像I坐标系上的直线记为WU;
步骤5:根据直线WU、WD、WL、WR确定车辆图像I对应的车窗区域的Mask图像IWM,具体的图像IWM上任意坐标为(i,j)的像素灰度gWM(i,j)根据公式(27)-(29)进行计算,且图像IWM上的白色区域表示车窗区域;
locU(i,j)=k3×i+b3-j (28)
locD(i,j)=k4×i+b4-j (29)
其中,locU(i,j)表示坐标点(i,j)与直线WU的相对位置,且locU(i,j)>0表示坐标点(i,j)在直线WU的右侧,locU(i,j)<0表示坐标点(i,j)在直线WU的左侧,locU(i,j)=0表示坐标点(i,j)在直线WU上;locD(i,j)表示坐标点(i,j)与直线WD的相对位置,且locD(i,j)>0表示坐标点(i,j)在直线WD的右侧,locD(i,j)<0表示坐标点(i,j)在直线WD的左侧,locD(i,j)=0表示坐标点(i,j)在直线WD上;b3和k3为直线WU的截距和斜率;b4和k4为直线WD的截距和斜率。
所述的一种多方向车辆的车窗定位方法,其特征在于步骤2)中的窗角图像的斜边检测方法为:对窗角图像IX(X=L或R)进行高斯滤波和Canny边缘检测,得到边缘图DC;对图像DC进行Hough直线检测得到直线集L={li|i=0,1,…,NL-1};找到直线集L中所有满足20°<li.θmin≤90°的直线,则其中对应li.length最大的直线为窗角斜边直线,记为lenX(X=L或R);其中,NL为检测出的所有直线数量,li.θmin为直线li与水平线的夹角的较小角,li.length等于直线li穿过的所有边缘点中,相距最远的两个边缘点的距离。
所述的一种多方向车辆的车窗定位方法,其特征在于步骤3.3)中的Sobel+Otsu二次阈值法为:记输入图像为IZ,首先对图像IZ进行Soble水平边缘检测,得到边缘灰度图IZG;然后根据OTSU二值化方法计算出IZG的最佳阈值,记为thZG,并根据公式(5)计算阈值thZG对应的边缘强度系数λ;若λ<0.02,则根据图像中所有灰度小于thZG的像素集计算图像的二次OTSU阈值,记为thZG2,并根据thZG2对图像进行二值化;否则直接根据阈值thZG对图像进行二值化;在得到的边缘二值化图像上,白点表示边缘点;
其中,IZG.w,IZG.h分别表示图像IZG的宽度和高度,且下文所有其他图像宽度和高度表示方式与此相同;
所述的一种多方向车辆的车窗定位方法,其特征在于步骤3.5)中的第一判定规则为:若存在满足式(13)的扫描线,则找到其中对应截距最大的扫描线,确定该扫描线为位置最接近车窗下边界线的扫描线;若不存在满足式(13)的扫描线,则找到对应边缘水平投影比率最大的扫描线,确定该扫描线为位置最接近车窗下边界线的扫描线,根据公式(8)-(12)计算得到;
其中,projectX(k,b)表示图像IDB上斜率为k、截距为b的扫描线对应的边缘水平投影宽度;lineW(k,b)表示图像IDB上斜率为k、截距为b的扫描线对应的扫描线有效长度;radioPX(k,b)表示图像IDB上斜率为k、截距为b的扫描线对应的边缘水平投影比率;ifE(i,j)=1表示坐标点(i,j)在车窗区域范围内且图像IDB上坐标为(i,j)的像素为边缘点像素;ifW(i,j)=1表示坐标点(i,j)在车窗区域范围内;像IDB上所有截距对应的扫描线有效长度的最大值。
所述的一种多方向车辆的车窗定位方法,其特征在于步骤3.6)中的第二判定规则,其特征在于:为确定不同角度扫描线中,对应投影评分scoreD(θ)最高的扫描线为对应角度与车窗下边缘直线角度最接近的扫描线,scoreD(θ)根据公式(14)-(18)进行计算;
其中,表示角度为θ的扫描线对应的根据水平投影比率得到的评分,根据公式(15)确定;表示角度为θ的扫描线对应的根据水平投影中心偏离率得到的评分,根据公式(16)确定;α和β为评分的权重系数,根据公式(18)确定;radioPX(tan(θ),pSCD.y-tan(θ)×pSCD.x)表示角度为θ的扫描线对应的边缘水平投影比率,根据公式(12)确定;minradioPX表示不同角度扫描线对应的最小边缘水平投影比率;maxradioPX表示不同角度扫描线对应的最大边缘水平投影比率;radioDX(θ)表示角度为θ的扫描线对应的水平投影中心偏移率,根据公式(17)确定;minradioDX表示不同角度扫描线对应的最小水平投影中心偏移率;maxradioDX表示不同角度扫描线对应的最大水平投影中心偏移率;pDPC(θ)表示角度为θ的扫描线对应的边缘水平投影中心点;pDLC(θ)表示角度为θ的扫描线对应的扫描线中点;lineW(tan(θ),pSCD.y-tan(θ)×pSCD.x)表示角度为θ的扫描线对应的扫描线有效长度,根据公式(10)确定。
所述的一种多方向车辆的车窗定位方法,其特征在于步骤4.4)中的所述第三判定规则,其特征在于:若存在满足式(26)的扫描线,则找到其中对应截距最大的扫描线,确定该扫描线为位置最接近车窗上边界线的扫描线;若不存在满足式(26)的扫描线,则找到对应边缘水平投影比率最大的扫描线,确定该扫描线为位置最接近车窗上边界线的扫描线,根据公式(21)-(25)计算得到;
其中,projectXU(k,b)表示图像IUB上斜率为k,截距为b的扫描线对应的边缘水平投影宽度;lineWU(k,b)表示图像IUB上斜率为k,截距为b的扫描线对应的扫描线有效长度;radioPXU(k,b)表示图像IUB上斜率为k,截距为b的扫描线对应的边缘水平投影比率;ifEU(i,j)=1表示坐标点(i,j)在车窗区域范围内且图像IUB上坐标为(i,j)的像素为边缘点像素;ifWU(i,j)=1表示坐标点(i,j)在车窗区域范围内;maxlineU表示图像IUB上所有截距对应的扫描线有效长度的最大值。
通过采用上述技术,与现有技术相比,本发明的有益效果如下:
1)本发明实现了多方向车辆车窗的精准定位,包括对车窗上下左右四条边界线的精准定位;
2)本发明在车窗边界定位过程中,首先定位出车窗边界的大致所在区域,再在此区域上进行车窗边界的定位,提高了定位的效率和定位的准确率;
3)本发明通过一种“Sobel+Otsu二次阈值法”进行边缘增强,改善了边缘较弱的深色车辆的车窗定位的准确率。
附图说明
图1为根据步骤1得到的左右窗角检测结果示意图;
图2为车辆图像上左下窗角区域DL对应的窗角图像IL;
图3为车辆图像上右下窗角区域DR对应的窗角图像IR;
图4为根据步骤2得到的左下窗角斜边检测结果示意图;
图5为根据步骤2得到的右下窗角斜边检测结果示意图;
图6为根据步骤3.1确定的车辆图像上车窗下边界所在区域DD示意图;
图7为车辆图像上车窗下边界所在区域DD对应的窗角图像ID;
图8为根据步骤3.2得到的图像ID对应的车窗区域的Mask图像IDM;
图9为根据步骤3.3得到的图像ID对应的边缘二值化图像IDB;
图10为根据步骤3.5找到的车窗下边界扫描线scD示意图;
图11为根据步骤3.6找到的车窗下边界扫描线scD2示意图;
图12为根据步骤4.1确定的车辆图像上车窗上边界所在区域DU示意图;
图13为车辆图像上车窗上边界所在区域DU对应的窗角图像IU;
图14为根据步骤4.2得到的图像IU对应的车窗区域的Mask图像IUM;
图15为根据步骤4.3得到的图像IU对应的边缘二值化图像IUB;
图16为根据步骤4.4找到的车窗上边界扫描线scU示意图;
图17为根据步骤5确定的完整车窗区域示意图;
图18为根据步骤5得到的完整车窗区域的Mask图像。
具体实施方式
下面以具体车辆图像为例对本发明进一步进行说明。
如图所示,本发明的一种多方向车辆的车窗定位方法,包括如下步骤:
步骤1:在车辆图像I上,利用Hog+SVM左下窗角检测器和Hog+SVM右下窗角检测器找到图像I上的左下窗角和右下窗角区域,记为DL和DR,同时将图像I上区域DL对应的左下窗角图像和区域DR对应的右下窗角图像,分别记为IL和IR;
本实例用于进行说明的车辆图像如图1所示,且根据步骤1检测得到的左下窗角和右下窗角区域DL和DR在图中用黑色矩形框标出,区域DL对应的左下窗角图像和区域DR对应的右下窗角图像IL和IR如图2和图3所示;
步骤2:对窗角图像IL和IR分别采用窗角图像的斜边检测方法检测出窗角图像中的窗角斜边直线lenL和lenR;将直线lenL和lenR对应的在图像I坐标系上的直线记为WL和WR,图像I坐标系表示坐标原点为(0,0),且X轴方向水平向右,Y轴方向水平向下的坐标系;
所述窗角图像的斜边检测方法,其特征在于:对窗角图像IX(X=L或R)进行高斯滤波和Canny边缘检测,得到边缘图DC;对图像DC进行Hough直线检测得到直线集L={li|i=0,1,…,NL-1};找到直线集L中所有满足20°<li.θmin≤90°的直线,则其中对应li.length最大的直线为窗角斜边直线,记为lenX(X=L或R);其中,NL为检测出的所有直线数量,li.θmin为直线li与水平线的夹角的较小角,li.length等于直线li穿过的所有边缘点中,相距最远的两个边缘点的距离;
对于所述实例,根据步骤2所述窗角图像的斜边检测方法,分别对图像IL和IR进行斜边检测,斜边检测结果如图4和5所示;图4和图5为图像IL和IR的二值化图像,图中灰色的直线为最终确定的窗角斜边,且左右窗角对应斜边的角度分别为60.42°和90°;
步骤3:检测车窗下边界所在直线WD,具体为:
步骤3.1:根据左下窗角区域DL和右下窗角区域DR得到车窗下边界所在区域DD,如公式(1)所示,将图像I上区域DD对应的车窗下边界区域图像记为ID;
其中,DX.x0,DX.y0,DX.w,DX.h分别表示区域DX的左上顶点横坐标、左上顶点纵坐标、区域宽度、区域高度,且下文所有其他区域的表达与此相同,min{}表示集合中的最小值,max{}表示集合中的最大值;
对于所述实例,根据步骤3.1得到的车窗下边界所在区域DD如图6所示,图中黑色矩形框标注了区域DD的所在位置,且图7为车辆图像上区域DD对应的车窗下边界区域图像ID;
步骤3.2:根据车窗左右边界线WL和WR得到图像ID对应的车窗区域的Mask图像IDM,具体的图像IDM上任意坐标为(i,j)的像素灰度gDM(i,j)根据公式(2)-(4)进行计算,且图像IDM上的白色区域表示车窗区域;
其中,gDM(i,j)表示图像IDM上坐标为(i,j)的像素的灰度值,且下文其他图像上指定坐标像素灰度的表达与此处相同;locL(i,j)表示坐标点(i,j)与直线WL的相对位置,且locL(i,j)>0表示坐标点(i,j)在直线WL的右侧,locL(i,j)<0表示坐标点(i,j)在直线WL的左侧,locL(i,j)=0表示坐标点(i,j)在直WL上;locR(i,j)表示坐标点(i,j)与直线WR的相对位置,且locR(i,j)>0表示坐标点(i,j)在直线WR的右侧,locR(i,j)<0表示坐标点(i,j)在直线WR的左侧,locR(i,j)=0表示坐标点(i,j)在直线WR上;b1和k1为非垂直直线WL的截距和斜率;c1为垂直直线WL的横坐标值;b2和k2为非垂直直线WR的截距和斜率;c2为垂直直线WR的横坐标值;WL.θ表示直线WL与水平直线构成的右上方的夹角,WR.θ含义类似;
对于所述实例,根据步骤3.2得到的图像ID对应的车窗区域的Mask图像IDM如图8所示;
步骤3.3:采用Sobel+Otsu二次阈值法得到图像ID对应的边缘二值化图像,记为IDB;
所述Sobel+Otsu二次阈值法,其特征在于:记输入图像为IZ,首先对图像IZ进行Soble水平边缘检测,得到边缘灰度图IZG;然后根据OTSU二值化方法计算出IZG的最佳阈值,记为thZG,并根据公式(5)计算阈值thZG对应的边缘强度系数λ;若λ<0.02,则根据图像中所有灰度小于thZG的像素集计算图像的二次OTSU阈值,记为thZG2,并根据thZG2对图像进行二值化;否则直接根据阈值thZG对图像进行二值化;在得到的边缘二值化图像上,白点表示边缘点;
其中,IZG.w,IZG.h分别表示图像IZG的宽度和高度,且下文所有其他图像宽度和高度表示方式与此相同;
对于所述实例,根据步骤3.3得到的图像ID对应的边缘二值化图像IDB如图9所示;
步骤3.4:根据公式(6)-(7)得到车窗下边界直线的角度θD;
其中,θCar表示根据车窗左右两条边界线WL和WR得到的车辆的方向角度;
对于所述实例,由步骤2已知车窗左右边界线的角度分别为60.42°和90°,因此根据步骤3.4估算出的车窗下边界直线角度θD为0°;
步骤3.5:在图像IDB上,从下往上平移斜率为kD=tan(θD)、宽度为3px的扫描线,即扫描线对应的截距依次为根据判定规则1找到位置与车窗下边缘直线最接近的扫描线,将其记为scD;
所述判定规则1,其特征在于:若存在满足式(13)的扫描线,则找到其中对应截距最大的扫描线,确定该扫描线为位置最接近车窗下边界线的扫描线;若不存在满足式(13)的扫描线,则找到对应边缘水平投影比率最大的扫描线,确定该扫描线为位置最接近车窗下边界线的扫描线,根据公式(8)-(12)计算得到;
其中,projectX(k,b)表示图像IDB上斜率为k,截距为b的扫描线对应的边缘水平投影宽度;lineW(k,b)表示图像IDB上斜率为k,截距为b的扫描线对应的扫描线有效长度;radioPX(k,b)表示图像IDB上斜率为k,截距为b的扫描线对应的边缘水平投影比率;ifE(i,j)=1表示坐标点(i,j)在车窗区域范围内且图像IDB上坐标为(i,j)的像素为边缘点像素;ifW(i,j)=1表示坐标点(i,j)在车窗区域范围内;maxline表示图像IDB上所有截距对应的扫描线有效长度的最大值;
对于所述实例,根据步骤3.5,以斜率为0,宽度为3px的扫描线从下往上扫描图9所示图像,根据判定规则1找到位置与车窗下边缘直线最接近的扫描线scD如图10所示;
步骤3.6:在图像IDB上,将步骤3.5得到的扫描线scD以点pSCD为旋转中心,在[θD-5°,θD+5°]角度范围内旋转扫描线,即扫描线对应的角度依次为θ=θD-5°,θD-4°,…,θD+5°,根据判定规则2找到对应角度与车窗下边缘直线角度最接近的扫描线,将该扫描线记为scD2;其中,点pSCD为扫描线scD的中点,且扫描线的中点为扫描线与车窗左右两条边线的两个交点的连线中点;
所述判定规则2,其特征在于:为确定不同角度扫描线中,对应投影评分scoreD(θ)最高的扫描线为对应角度与车窗下边缘直线角度最接近的扫描线,scoreD(θ)根据公式(14)-(18)进行计算;
其中,表示角度为θ的扫描线对应的根据水平投影比率得到的评分,根据公式(15)确定;表示角度为θ的扫描线对应的根据水平投影中心偏离率得到的评分,根据公式(16)确定;α和β为评分的权重系数,根据公式(18)确定;radioPX(tan(θ),pSCD.y-tan(θ)×pSCD.x)表示角度为θ的扫描线对应的边缘水平投影比率,根据公式(12)确定;minradioPX表示不同角度扫描线对应的最小边缘水平投影比率;maxradioPX表示不同角度扫描线对应的最大边缘水平投影比率;radioDX(θ)表示角度为θ的扫描线对应的水平投影中心偏移率,根据公式(17)确定;minradioDX表示不同角度扫描线对应的最小水平投影中心偏移率;maxradioDX表示不同角度扫描线对应的最大水平投影中心偏移率;pDPC(θ)表示角度为θ的扫描线对应的边缘水平投影中心点;pDLC(θ)表示角度为θ的扫描线对应的扫描线中点;lineW(tan(θ),pSCD.y-tan(θ)×pSCD.x)表示角度为θ的扫描线对应的扫描线有效长度,根据公式(10)确定;
根据步骤3.6旋转步骤3.5找到的扫描线,进一步确定车窗下边界线的角度,对于所述实例,找到的对应角度与车窗下边缘直线角度最接近的扫描线scD2如图11所示;
步骤3.7:则车窗下边界直线为扫描线scD2所在直线,将其对应的图像I坐标系上的直线记为WD;
步骤4:检测车窗上边界所在直线WU,具体为:
步骤4.1:根据公式(19)确定车窗上边界所在区域DU,将图像I上区域DU对应的车窗上边界区域图像记为IU;
其中,pSCD为步骤3.5得到图像IDB上的扫描线scD的中点,pSCD.y表示点pSCD的在图像IDB上的纵坐标,pSCD.y+DU.y0表示图像I上点pSCD对应点的纵坐标;p1为直线与直线WL的交点;p2为直线与直线WR的交点;p3为直线与直线WL的交点;p4为直线与直线WR的交点;lengthD为直线WD与直线WL交点和直线WD和直线WR交点之间的线段长度;
对于所述实例,根据步骤4.1得到的车窗下边界所在区域DU如图12所示,图中黑色矩形框标注了区域DU的所在位置,且图13为车辆图像上区域DU对应的车窗下边界区域图像IU;
步骤4.2:根据车窗左右边界线WL和WR得到图像IU对应的车窗区域的Mask图像IUM,具体的图像IUM上任意坐标为(i,j)的像素灰度gUM(i,j)根据公式(20)进行计算,且图像IUM上的白色区域表示车窗区域;
其中,locL(i,j)根据公式(3)进行计算,locR(i,j)根据公式(4)进行计算;
对于所述实例,根据步骤4.2得到的图像IU对应的车窗区域的Mask图像IUM如图14所示;
步骤4.3:根据Sobel+Otsu二次阈值法,得到图像IU对应的边缘二值化图像,记为IUB;
对于所述实例,根据步骤4.3得到图像IU对应的边缘二值化图像IUB如图15所示;
步骤4.4:在图像IUB上,从下往上平移斜率为kU=tan(WD.θ)、宽度为3px的扫描线,即扫描线对应的截距依次为根据判定规则3找到位置与车窗上边缘直线最接近的扫描线,将其记为scU;
所述判定规则3,其特征在于:若存在满足式(26)的扫描线,则找到其中对应截距最大的扫描线,确定该扫描线为位置最接近车窗上边界线的扫描线;若不存在满足式(26)的扫描线,则找到对应边缘水平投影比率最大的扫描线,确定该扫描线为位置最接近车窗上边界线的扫描线,根据公式(21)-(25)计算得到;
其中,projectXU(k,b)表示图像IUB上斜率为k,截距为b的扫描线对应的边缘水平投影宽度;lineWU(k,b)表示图像IUB上斜率为k,截距为b的扫描线对应的扫描线有效长度;radioPXU(k,b)表示图像IUB上斜率为k,截距为b的扫描线对应的边缘水平投影比率;ifEU(i,j)=1表示坐标点(i,j)在车窗区域范围内且图像IUB上坐标为(i,j)的像素为边缘点像素;ifWU(i,j)=1表示坐标点(i,j)在车窗区域范围内;maxlineU表示图像IUB上所有截距对应的扫描线有效长度的最大值;
根据步骤4.4,以角度为3°,宽度为3px的扫描线从下往上扫描图像IUB,根据判定规则找到的最接近车窗上边界的扫描线scU如图16所示;
步骤4.5:则车窗上边界直线为扫描线scU所在直线,将其对应的图像I坐标系上的直线记为WU;
步骤5:根据直线WU、WD、WL、WR确定车辆图像I对应的车窗区域的Mask图像IWM,具体的图像IWM上任意坐标为(i,j)的像素灰度gWM(i,j)根据公式(27)-(29)进行计算,且图像IWM上的白色区域表示车窗区域;
locU(i,j)=k3×i+b3-j (28)
locD(i,j)=k4×i+b4-j (29)
其中,locU(i,j)表示坐标点(i,j)与直线WU的相对位置,且locU(i,j)>0表示坐标点(i,j)在直线WU的右侧,locU(i,j)<0表示坐标点(i,j)在直线WU的左侧,locU(i,j)=0表示坐标点(i,j)在直线WU上;locD(i,j)表示坐标点(i,j)与直线WD的相对位置,且locD(i,j)>0表示坐标点(i,j)在直线WD的右侧,locD(i,j)<0表示坐标点(i,j)在直线WD的左侧,locD(i,j)=0表示坐标点(i,j)在直线WD上;b3和k3为直线WU的截距和斜率;b4和k4为直线WD的截距和斜率。
根据直线WU、WD、WL、WR确定的车窗区域如图17所示,图中黑色矩形框标注了车窗区域的所在位置,且其对应的车窗区域的Mask图像IWM如图18所示。