一种基于车窗角点检测的车窗定位方法技术

技术编号:18256845 阅读:28 留言:0更新日期:2018-06-20 08:30
本发明专利技术一种基于车窗角点检测的车窗定位方法,提出了一种通过SVM检测车窗下面两个角点,然后根据角点位置来进行车窗边缘定位的方法。通过使用本发明专利技术的方法对车窗进行定位操作,它可以有效得定位到车窗边缘,并且对于车窗上下边缘存在倾斜的情况也可以进行定位。

A vehicle window location method based on vehicle corner detection

A method of window location based on window corner detection is proposed, and a method is proposed to locate the edge of the car window by detecting two corners of the window under the window, and then according to the position of the corner point. By using the method of the invention to locate the window, it can be effectively positioned to the edge of the car window, and can also be positioned on the condition that there is a tilt on the upper and lower edges of the window.

【技术实现步骤摘要】
一种基于车窗角点检测的车窗定位方法
本专利技术涉及计算机视觉及智能交通领域,具体是一种通过SVM检测车窗下面两个角点,然后根据角点位置来进行车窗边缘定位的方法。
技术介绍
随着智能交通领域的不断发展,目前在道路交通安全监测系统中对于驾驶员行为的检测和分析越来越受到重视。而要进行驾驶员行为的分析就必须先定位到驾驶员位置,车窗的准确定位则能够大致确定驾驶员的位置,因此车窗定位是驾驶员行为检测中非常关键的一步。当前有许多学者提出了不同的车窗定位方法,其中与本专利技术较接近的技术方案为:文献(潘世吉.智能交通违章检测算法研究及软件系统实现[D].哈尔滨工业大学,2016.)利用Canny边缘检测和线性结构元素开运算的方法进行车窗上下水平边缘定位,该方法在利用线性结构元素进行开运算时没有考虑到车窗存在倾斜的情况,一旦车窗的上下边缘稍微有点倾斜则通过线性结构元素进行开运算后车窗的上下水平边缘也会被去除;文献(侯殿福.车窗检测技术研究[D].北京交通大学,2012.)提出先对车辆进行定位,然后根据车头和车窗的比例初步得到车窗位置,在车窗大致区域进行Canny边缘检测,然后使用模板匹配来进行水平直线滤波,接着使用Hough变换来进行车窗上下边界的检测,该方法使用的模板匹配方法来进行水平直线滤波也是没有考虑到车窗上下边缘存在倾斜的情况,倾斜的直线在经过模板匹配之后同样会被滤除;文献(姚东明,韩安华,等.基于车窗检测的车身颜色识别方法研究[J].信息通信,2017(2):87-88.)同样使用了Canny边缘检测结合水平直线模板滤波和Hough直线检测车窗水平带的方法,也存在车窗上下边缘倾斜的时候检测不到的情况,并且没有对车窗位置进行粗略定位就开始检测车窗上下水平带,这很有可能会检测到车辆顶部的水平直线,造成误检的情况。综上所述,当前的车窗定位方法存在着如下不足:(1)对于车窗上下边缘存在倾斜的情况检测不到;(2)易检测到车辆顶部的水平直线,造成车窗边缘误检。
技术实现思路
针对现有的车窗定位方法中存在的上述问题,本专利技术提出了一种通过SVM检测车窗下面两个角点,然后根据角点位置来进行车窗边缘定位的方法。所述的一种基于车窗角点检测的车窗定位方法,其特征在于包括如下步骤:步骤1:对含有车辆的彩色图像image进行车牌定位,将定位到的车牌位置记为矩形区域plateRect;步骤2:根据车牌位置plateRect定义车窗左下角角点的检测区域detectRoiL以及车窗右下角角点的检测区域detectRoiR;步骤3:在detectRoiL内使用SVM检测到所有车窗左下角角点的候选区域,得到集合leftCornersList={RLi|i=1,2,…,n},RLi表示第i个车窗左下角角点候选区域,n表示车窗左下角角点候选区域的数量;在detectRoiR内使用SVM检测到所有车窗右下角角点的候选区域,得到集合rightCornersList={RRj|j=1,2,…,m},RRj表示第j个车窗右下角角点候选区域,m表示车窗右下角角点候选区域的数量;步骤4:采用扫描匹配方法从leftCornersList和rightCornersList中分别确定出最终的车窗左下角角点区域和车窗右下角角点区域,并分别记为winCornerRectL和winCornerRectR;步骤5:根据winCornerRectL和winCornerRectR的位置定义车窗下边缘检测区域,记为winDownRect;步骤6:在图像image中截取winDownRect区域部分,得到车窗下边缘检测区域图像,并对截取得到的车窗下边缘检测区域图像进行图像灰度化、Sobel水平边缘检测以及OTSU二值化操作,将最终得到的二值化图像记为winDownImg;步骤7:对winDownImg进行水平投影,找到winDownImg中水平投影值最大处的纵坐标值记为winDownLine;步骤8:根据winDownRect的位置定义车窗上边缘检测区域,记为winUpRect;步骤9:在图像image中截取winUpRect区域部分,得到车窗上边缘检测区域图像,并对截取得到的车窗上边缘检测区域图像进行图像灰度化、Sobel水平边缘检测以及OTSU二值化操作,将最终得到的二值化图像记为winUpImg;步骤10:对winUpImg进行水平投影,在winUpImg中自下向上扫描,直到扫描到某一位置的水平投影值满足车窗上边缘条件则停止扫描,将winUpImg中该位置的纵坐标值记为winUpLine,若没有找到满足车窗上边缘条件的水平投影值,则令winUpLine=winUpImg.heiht/2,其中winUpImg.heiht为winUpImg的高度;步骤11:根据winCornerRectL的位置和winCornerRectR的位置以及winDownLine和winUpLine计算得到车窗在图像image中的位置,记为矩形winRect。所述的一种基于车窗角点检测的车窗定位方法,其特征在于步骤2中车窗左下角角点的检测区域detectRoiL以及车窗右下角角点的检测区域detectRoiR的定义如下:2.1):detectRoiL.x=plateRect.x-plateRect.width×3;2.2):detectRoiL.y=plateRect.y-plateRect.width×3.5;2.3):detectRoiL.width=plateRect.x+plateRect.width/2-detectRoiL.x;2.4):detectRoiL.height=plateRect.y-plateRect.width-detectRoiL.y;2.5):detectRoiR.x=plateRect.x+plateRect.width/2;2.6):detectRoiR.y=plateRect.y-plateRect.width×3.5;2.7):detectRoiR.width=plateRect.width×3.5;2.8):detectRoiR.height=plateRect.y-plateRect.width-detectRoiR.y。其中plateRect.x为plateRect的左上角横坐标,plateRect.y为plateRect的左上角纵坐标,plateRect.width为plateRect的宽度,detectRoiL.x为detectRoiL的左上角横坐标,detectRoiL.y为detectRoiL的左上角纵坐标,detectRoiL.width为detectRoiL的宽度,detectRoiL.height为detectRoiL的高度,detectRoiR.x为detectRoiR的左上角横坐标,detectRoiR.y为detectRoiR的左上角纵坐标,detectRoiR.width为detectRoiR的宽度,detectRoiR.height为detectRoiR的高度。所述的一种基于车窗角点检测的车窗定位方法,其特征在于步骤4中从leftCornersList和rightCornersList中分别确定出最终的车窗左下角角点区域和车窗右下角角本文档来自技高网
...
一种基于车窗角点检测的车窗定位方法

【技术保护点】
1.一种基于车窗角点检测的车窗定位方法,包括如下步骤:步骤1:对含有车辆的彩色图像image进行车牌定位,将定位到的车牌位置记为矩形区域plateRect;步骤2:根据车牌位置plateRect定义车窗左下角角点的检测区域detectRoiL以及车窗右下角角点的检测区域detectRoiR;步骤3:在detectRoiL内使用SVM检测到所有车窗左下角角点的候选区域,得到集合leftCornersList={RLi|i=1,2,…,n},RLi表示第i个车窗左下角角点候选区域,n表示车窗左下角角点候选区域的数量;在detectRoiR内使用SVM检测到所有车窗右下角角点的候选区域,得到集合rightCornersList={RRj|j=1,2,…,m},RRj表示第j个车窗右下角角点候选区域,m表示车窗右下角角点候选区域的数量;步骤4:采用扫描匹配方法从leftCornersList和rightCornersList中分别确定出最终的车窗左下角角点区域和车窗右下角角点区域,并分别记为winCornerRectL和winCornerRectR;步骤5:根据winCornerRectL和winCornerRectR的位置定义车窗下边缘检测区域,记为winDownRect;步骤6:在图像image中截取winDownRect区域部分,得到车窗下边缘检测区域图像,并对截取得到的车窗下边缘检测区域图像进行图像灰度化、Sobel水平边缘检测以及OTSU二值化操作,将最终得到的二值化图像记为winDownImg;步骤7:对winDownImg进行水平投影,找到winDownImg中水平投影值最大处的纵坐标值记为winDownLine;步骤8:根据winDownRect的位置定义车窗上边缘检测区域,记为winUpRect;步骤9:在图像image中截取winUpRect区域部分,得到车窗上边缘检测区域图像,并对截取得到的车窗上边缘检测区域图像进行图像灰度化、Sobel水平边缘检测以及OTSU二值化操作,将最终得到的二值化图像记为winUpImg;步骤10:对winUpImg进行水平投影,在winUpImg中自下向上扫描,直到扫描到某一位置的水平投影值满足车窗上边缘条件则停止扫描,将winUpImg中该位置的纵坐标值记为winUpLine,若没有找到满足车窗上边缘条件的水平投影值,则令winUpLine=winUpImg.heiht/2,其中winUpImg.heiht为winUpImg的高度;步骤11:根据winCornerRectL的位置和winCornerRectR的位置以及winDownLine和winUpLine计算得到车窗在图像image中的位置,记为矩形winRect。...

【技术特征摘要】
1.一种基于车窗角点检测的车窗定位方法,包括如下步骤:步骤1:对含有车辆的彩色图像image进行车牌定位,将定位到的车牌位置记为矩形区域plateRect;步骤2:根据车牌位置plateRect定义车窗左下角角点的检测区域detectRoiL以及车窗右下角角点的检测区域detectRoiR;步骤3:在detectRoiL内使用SVM检测到所有车窗左下角角点的候选区域,得到集合leftCornersList={RLi|i=1,2,…,n},RLi表示第i个车窗左下角角点候选区域,n表示车窗左下角角点候选区域的数量;在detectRoiR内使用SVM检测到所有车窗右下角角点的候选区域,得到集合rightCornersList={RRj|j=1,2,…,m},RRj表示第j个车窗右下角角点候选区域,m表示车窗右下角角点候选区域的数量;步骤4:采用扫描匹配方法从leftCornersList和rightCornersList中分别确定出最终的车窗左下角角点区域和车窗右下角角点区域,并分别记为winCornerRectL和winCornerRectR;步骤5:根据winCornerRectL和winCornerRectR的位置定义车窗下边缘检测区域,记为winDownRect;步骤6:在图像image中截取winDownRect区域部分,得到车窗下边缘检测区域图像,并对截取得到的车窗下边缘检测区域图像进行图像灰度化、Sobel水平边缘检测以及OTSU二值化操作,将最终得到的二值化图像记为winDownImg;步骤7:对winDownImg进行水平投影,找到winDownImg中水平投影值最大处的纵坐标值记为winDownLine;步骤8:根据winDownRect的位置定义车窗上边缘检测区域,记为winUpRect;步骤9:在图像image中截取winUpRect区域部分,得到车窗上边缘检测区域图像,并对截取得到的车窗上边缘检测区域图像进行图像灰度化、Sobel水平边缘检测以及OTSU二值化操作,将最终得到的二值化图像记为winUpImg;步骤10:对winUpImg进行水平投影,在winUpImg中自下向上扫描,直到扫描到某一位置的水平投影值满足车窗上边缘条件则停止扫描,将winUpImg中该位置的纵坐标值记为winUpLine,若没有找到满足车窗上边缘条件的水平投影值,则令winUpLine=winUpImg.heiht/2,其中winUpImg.heiht为winUpImg的高度;步骤11:根据winCornerRectL的位置和winCornerRectR的位置以及winDownLine和winUpLine计算得到车窗在图像image中的位置,记为矩形winRect。2.如权利要求1所述的一种基于车窗角点检测的车窗定位方法,其特征在于:步骤2中车窗左下角角点的检测区域detectRoiL以及车窗右下角角点的检测区域detectRoiR的定义如下:2.1):detectRoiL.x=plateRect.x-plateRect.width×3;2.2):detectRoiL.y=plateRect.y-plateRect.width×3.5;2.3):detectRoiL.width=plateRect.x+plateRect.width/2-detectRoiL.x;2.4):detectRoiL.height=plateRect.y-plateRect.width-detectRoiL.y;2.5):detectRoiR.x=plateRect.x+plateRect.width/2;2.6):detectRoiR.y=plateRect.y-plateRect.width×3.5;2.7):detectRoiR.width=plateRect.width×3.5;2.8):detectRoiR.height=plateRect.y-plateRect.width-detectRoiR.y。其中plateRect.x为plateRect的左上角横坐标,plateRect.y为plateRect的左上角纵坐标,plateRect.width为plateRect的宽度,detectRoiL.x为detectRoiL的左上角横坐标,detectRoiL.y为detectRoiL的左上角纵坐标,detectRoiL.width为detectRoiL的宽度,detectRoiL.height为detectRoiL的高度,detectRoiR.x为detectRoiR的左上角横坐标,detectRoiR.y为detectRoiR的左上角纵坐标,detectRoiR.width为detectRoiR的宽度,detectRoiR.height为detectRoiR的高度。3.如权利要求1所述的一种基于车窗角点检测的车窗定位方法,其特征在于:步骤4中从leftCornersList和rightCornersList中分别确定出最终的车窗左下角角点区域和车窗右下角角点区域的扫描匹配方法的步骤如下:4.1):对于rightCornersList中的每一个元素RRj,从leftCornersList中找到一个元素RLi,使得(RRj.y+RRj.height/2)–(RLi.y+RLi.height/2)的绝对值最小,并且该绝对值要小于plateRect.width/2,若找到满足条件的RLi,则将RRj和RLi作为一对候选角点存储下来;4.2):对于leftCornersList中的每一个元素RLi,从rightCornersList中找到一个元素RRj,使得(RLi.y+RLi.height/2)–(RRj.y+RRj.height/2)的绝对值最小,并且该绝对值要小于plateRect.width/2,若找到...

【专利技术属性】
技术研发人员:高飞汪敏倩刘浩然葛一粟卢书芳陆佳炜肖刚
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1