[发明专利]一种视频多车辆轮廓检测方法有效
申请号: | 201210202508.0 | 申请日: | 2012-06-19 |
公开(公告)号: | CN102799857A | 公开(公告)日: | 2012-11-28 |
发明(设计)人: | 路小波;熊阳;路畅 | 申请(专利权)人: | 东南大学 |
主分类号: | G06K9/00 | 分类号: | G06K9/00;G06T7/20;G08G1/01;H04N5/14 |
代理公司: | 南京天翼专利代理有限责任公司 32112 | 代理人: | 汤志武 |
地址: | 210096*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种视频多车辆轮廓检测方法,首先画虚拟围栏圈出监控区域,画虚拟检测器获取车宽、最小车长等参数;再通过背景差分、二值化、形态学开操作、轮廓提取等一系列步骤得到车身轮廓集合;通过跟踪组成车辆的像素块,实现车辆的跟踪,得到车辆的初始轮廓;以车辆的初始轮廓为基础,吞并同属本车的车身轮廓,使正在驶入监控区域的车辆的轮廓更完整;从剩余的车身轮廓中选择较大的轮廓,作为新车初始轮廓,再吞并同属本新车的车身轮廓,使得新驶入监控区域的车辆被及时地检测出来。该方法解决了摄像机抖动、道路两旁图像干扰、车辆前景不连通、邻近车辆轮廓粘连问题。 | ||
搜索关键词: | 一种 视频 车辆 轮廓 检测 方法 | ||
【主权项】:
一种视频多车辆轮廓检测方法,其特征在于:步骤1:初始化:步骤1.1:获取一段视频,再从视频获取背景图像;步骤1.2:以图像左上角的像素位置为原点,像素为单位长度,从左到右的方向为X轴正方向,从上到下的方向为Y轴正方向,建立坐标系;步骤1.3:用一个多边形在视频场景中圈出监控区域,该多边形称为虚拟围栏,如果车辆行驶方向为从下至上,则虚拟围栏的底部为水平线,该底部水平线称为入境线,如果车辆行驶方向为从上至下,则虚拟围栏的顶部为水平线,该顶部水平线称为入境线,入境线的Y轴坐标表示为Y_IN;步骤1.4:获取一帧有轿车刚好完全驶入监控区域的图像,车辆刚好完全驶入监控区域是指车辆尾部紧贴入境线,在该车的车头前画一条水平线,称为最小车长线,最小车长线的Y轴坐标表示为Y_LONG,在最小车长线与入境线之间画一条水平线,称为触发线,触发线的Y轴坐标表示为Y_TOUCH,触发线与最小车长线的距离和触发线与入境线的距离之比为3:1~4:1,在该车两侧画2条竖直线,使2条竖直线之间的距离为该车宽度的1.3~1.5倍,该竖直线称为车宽线,2条车宽线之间的距离表示为WIDE;步骤1.5:用变量S表示整段视频中已检测出来的车辆总数,用变量k表示正在检测的图像在视频中的帧序,第k帧图像表示为f(k),第k帧图像中的车辆的集合表示为CARS(k),第k帧图像中的编号为n的车表示为car(n,k),编号n表示car(n,k)是整段视频中第n辆被检测出来的车,car(n,k)的轮廓表示为c(n,k);设第k帧图像f(k)是由M×N个像素构成的像素矩阵,将第k帧图像f(k)划分为(M-m+1)×(N-m+1)个块,每个块是由m×m个像素构成的像素矩阵,m取值为WIDE的0.1~0.3倍,第k帧图像中的中心点坐标为(x,y)的块表示为sub(x,y,k),属于编号为n的车car(n,k)的块集合表示为SUBS(n,k);步骤1.6:令表示帧序的变量k为0,整段视频中已检测出来的车辆总数S为0,第0帧车辆集合CARS(0)为空集;步骤2:表示帧序的变量k自增1,获取第k帧图像f(k),令第k帧图像的车辆集合CARS(k)为空集;步骤3:获取车身轮廓集合:步骤3.1:取第k帧图像f(k)与背景图像之差的绝对值图像作为第k帧差分图dif(k);步骤3.2:第k帧差分图dif(k)中处于监控区域内且灰度值大于阈值T1的像素称为前景像素,否则称为背景像素,令前景像素灰度值为255,背景像素灰度值为0,得到第k帧二值图binary (k),T1可取值为20~50;步骤3.3:,对第k帧二值图binary(k)进行形态学开运算,得到第k帧前景图像obj(k),形态学开运算中的核是边长为m/2的矩形,核的参考点是核的中心点;步骤3.4:采用公知的Canny边缘检测法检测第k帧前景图像obj(k)中的边缘像素点,令边缘像素点的灰度值为255,非边缘像素点的灰度值为0,得到第k帧边缘图con(k);步骤3.5:采用公知的爬虫法获取第k帧边缘图con(k)中的所有车身轮廓,第k帧图像中的车身轮廓的集合表示为BODYS(k),车身轮廓是第k帧边缘图con(k)中边缘像素点的集合,对于任意一个车身轮廓body1内的任意一个像素点D1,存在一个车身轮廓body1内的像素点D2,像素点D2是像素点D1的8邻域像素点之一。步骤3.6:从第k帧图像的车身轮廓集合BODYS(k)中删除边界框脱离触发线的车身轮 廓,轮廓的边界框是指包围轮廓的最小矩形,边界框脱离触发线是指:如果车辆行驶方向为从下至上,边界框的4个顶点的Y轴坐标值均小于Y_TOUCH,如果车辆行驶方向为从上至下,边界框的4个顶点的Y轴坐标值均大于Y_TOUCH;步骤4:跟踪旧车:如果第k‑1帧图像的车辆集合CARS(k‑1)为空集,则进入步骤5,否则将第k‑1帧图像中的车辆集合CARS(k‑1)中的每辆车跟踪到第k帧图像,将第k‑1帧图像的车辆集合CARS(k‑1)中编号为n的车car(n,k‑1)跟踪到第k帧图像的步骤如下:步骤4.1:在第k帧图像的车辆集合CARS(k)中添加编号为n的车car(n,k),令车car(n,k)的块集合SUBS(n,k)为空集;步骤4.2:将车car(n,k‑1)的块集合SUBS(n,k‑1)中每一个块跟踪到第k帧图像;步骤4.3:如果车car(n,k)的块集合SUBS(n,k)为空集,则从第k帧图像的车辆集合CARS(k)中删除车car(n,k),并结束对车car(n,k‑1)的跟踪,否则进行步骤4.4;步骤4.4:标记车car(n,k)为旧车;步骤4.5:获取包围车car(n,k)的块集合SUBS(n,k)中所有块的顶点的凸包,令车car(n,k)的轮廓c(n,k)等于该凸包;步骤4.6:计算车car(n,k)的块集合SUBS(n,k)中所有块的运动矢量的平均值,将该平均值保存为车car(n,k)的运动矢量mean(n,k);块的运动矢量是指块的中心点坐标减去前一帧与该块对应的块的中心点坐标得到的矢量;步骤5:更新旧车轮廓:如果第k帧图像的车辆集合CARS(k)为空集或者第k帧图像的车身轮廓集合BODYS(k)为空集,则进入步骤6,否则进入步骤5.1;步骤5.1:将第k帧图像的车身轮廓集合BODYS(k)中的所有车身轮廓标记为未查看;步骤5.2:从第k帧图像的车身轮廓集合BODYS(k)中获取一个标记为未查看的车身轮廓,如果获取成功,将该车身轮廓标记为已查看,否则进入步骤6;步骤5.3:从第k帧图像的车辆集合CARS(k)中找出边界框与该车身轮廓的边界框距离最近的车辆,两边界框之间的距离是指边界框中心点之间的距离,车辆的边界框是指车辆的轮廓的边界框;步骤5.4:判断该车辆能否吞并该车身轮廓;步骤5.5:如果该车辆能吞并该车身轮廓,则该车辆吞并该车身轮廓;车辆吞并车身轮廓的方法如下:步骤5.5.1:合并车辆的轮廓与车身轮廓,得到点集A;步骤5.5.2:采用公知的Graham扫描法获取点集A的凸包,令该车身轮廓等于点集A的凸包;步骤5.5.3:从第k帧图像的车身轮廓集合BODYS(k)中删除该车身轮廓;步骤5.6:返回步骤5.2;步骤6:检测新车:如果第k帧图像的车身轮廓集合BODYS(k)为空集,则进入步骤7;步骤6.1:从第k帧图像的车身轮廓集合BODYS(k)中获取一个边界框宽度大于WIDE/3的车身轮廓,如果获取失败,则进入步骤7;步骤6.2:车辆总数S自增1,在第k帧图像的车辆集合CARS(k)中增加编号为S的车car(S,k),标记car(S,k)为新车,令车car(S,k)的轮廓c(S,k)等于由步骤6.1获取的车身轮廓的凸包,令车car(S,k)的块集合SUBS(S,k)为空集;步骤6.3:从第k帧图像的车身轮廓集合BODYS(k)中删除由步骤6.1获取的车身轮廓;步骤6.4:采用车辆吞并车身轮廓的方法,用车car(S,k)吞并第k帧图像的车身轮廓集合BODYS(k)中所有能被car(S,k)吞并的车身轮廓;步骤6.5:返回步骤6.1;步骤7:添加填充块:如果第k帧图像的车辆集合CARS(k)为空集,则返回步骤2,否则在为第k帧图像的车辆集合CARS(k)中的每辆车添加填充块之后返回步骤2,为CARS(k)中任意一辆车car(n,k)添加填充块的步骤如下:对车car(n,k)的轮廓c(n,k)上的每个点进行如下操作:一:设车car(n,k)的轮廓c(n,k)上的点坐标为(x1,y1),从以车car(n,k)的轮廓c(n,k)上的点(x1,y1)为顶点之一的四个块sub(x1‑m/2,y1‑m/2,k)、sub(x1‑m/2,y1+m/2,k)、sub(x1+m/2,y1‑m/2,k)、sub(x1+m/2,y1+m/2,k)中找出4个顶点全被c(n,k)所包围的块作为填充块,并标记填充块为sub(x2,y2,k),判断一个点D3是否被一个轮廓包围的方法是:如果一个轮廓上有奇数个点满足:X轴坐标值大于点D3的X轴坐标值,Y轴坐标值等于D3的Y轴坐标值,则点D3被该轮廓包围,二:在第k帧二值图binary(k)中与填充块sub(x2,y2,k)位置和大小都对应的像素矩阵称为填充块sub(x2,y2,k)的二值块,如果填充块sub(x2,y2,k)的二值块的非零像素个数大于阈值T2并且车car(n,k)的块集合SUBS(n,k)中没有与填充块sub(x2,y2,k)重叠面积大于m×m/2的块,则将填充块sub(x2,y2,k)加入车car(n,k)的块集合SUBS(n,k),阈值T2取值为m×m的0.6~0.8倍。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210202508.0/,转载请声明来源钻瓜专利网。