首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际申请 / 明显错误 / 一种基于视频的车辆特征提取与匹配方法

一种基于视频的车辆特征提取与匹配方法

阅读:728发布:2021-02-27

专利汇可以提供一种基于视频的车辆特征提取与匹配方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于视频的车辆特征提取与匹配方法,包括如下步骤:读入视频文件;对视频图像进行背景建模;采用背景差法来获取包含运动目标的前景区域;采用获取车辆轮廓的方法来进行车辆检测;提取车辆图像的pHash特征;提取车辆图像ISIFT特征;结合pHash 算法 和ISIFT算法,并通过BBF搜索算法和RANSAC算法来筛选ISIFT特征匹配点,从而实现车辆匹配。本发明能够基于视频实现车辆检测、车辆特征信息提取、车辆匹配功能,检测出车辆的车辆轮廓非常精准,车辆信息特征提取准确,运算速度快,满足实时性要求,成本低廉,还能够检测不同方向行驶的车辆,适用范围广。,下面是一种基于视频的车辆特征提取与匹配方法专利的具体信息内容。

1.一种基于视频的车辆特征提取与匹配方法,其特征在于,包括如下步骤:
步骤1:读入视频文件:
从交通卡口摄像头中读入视频文件,并取一大小的彩色图像,记为G,彩色图像的宽度和高度分别为W和H;
步骤2:对视频图像进行背景建模,保证背景精确稳定及实时性:
如果图像G对应于视频文件的第一帧图像,则进行背景模型的初始化,否则,进行背景模型的更新;
背景模型的初始化过程为:
通过间隔采样多帧图像,求取多帧图像的平均值作为视频背景图片;首先将彩色图像进行RGB三通道分离,分别用8位二进制数字表示,R、G、B三通道的像素值范围均为0~255,对三个通道分别每隔p帧进行一次采样,p为常数,进行N次采样后将所得到的N帧图像求取平均值;Sum0(x,y)由背景初始化得到,表示积累N帧图像在(x,y)处像素值总和,则Sum0(x,y)具体表示为
其中,Grpi(x,y)、Ggpi(x,y)、Gbpi(x,y)分别表示在R、G、B三通道上,第p×i帧图像在(x,y)处的像素值,其中p表示每隔p帧进行一次采样,N表示参与背景初始化的总帧数;
B0(x,y)表示初始化背景图像在(x,y)处像素值,则B0(x,y)具体表示为
B0(x,y)=Sum0/N
背景模型的更新过程为:
Sumt(x,y)表示以第t帧为中心积累的N帧在(x,y)处像素值总和,则Sumt(x,y)具体表示为
Bt(x,y)表示第t帧在(x,y)处的背景像素值,则Bt(x,y)具体表示为
Bt(x,y)=Sumt(x,y)/N
步骤3:采用背景差法来获取包含运动目标的前景区域:
首先手动标示出检测区域,将非检测区域过滤以减少干扰;然后将当前帧图像和背景图像转换为8位的灰度图像,再进行差分运算,从而获得灰度前景图像;
其中Gt(x,y)、Bt(x,y)分别表示第t帧视频图像、背景图像在(x,y)处的像素值,Grayt(x,y)、Bgt(x,y)分别表示经过灰度化后第t帧视频图像、背景图像在(x,y)处的灰度值;则灰度前景图像Fgt(x,y)具体表示为:
Fgt(x,y)=|Grayt(x,y)-Bgt(x,y)|
其中,Fgt(x,y)表示第t帧前景图像在(x,y)处的灰度值;
步骤4:车辆检测:
采用获取车辆轮廓的方法来进行车辆检测,具体流程为:
步骤4.1:二值化前景图像Fgt(x,y),得到二值化后的前景图像Tt(x,y),则Tt(x,y)具体表示为
其中T表示阈值;如果Fgt(x,y)的值大于等于设定的阈值T,则将该点设置为前景点,否则为背景点;
步骤4.2:对二值图像进行形态学变换,对二值前景图像Tt(x,y)进行闭运算;
步骤4.3:采用Freeman链码跟踪方法提取二值前景图像里前景区域的轮廓,同时剔除明显不是轮廓的点;然后采用Graham扫描法获取前景轮廓的凸包,并以前景凸包作为车辆轮廓,最终得到车辆轮廓;
步骤4.4:进行车辆检测:
首先定义一个记录表,用来保存最近检测出来的车辆的各种信息,并且不断删除过期信息;采用每隔N帧进行一次检测的方法,并对每一次检测出来的每一辆车进行逐一处理;
针对任意一辆车,需要和记录中所有车辆进行比对,根据区域重叠情况以及中心距离判断记录中是否已经包含车辆;如果记录中包含车辆,即更新记录中车辆的位置、时间、路径等信息,反之则将新车加入记录;当在较短时间内,车辆被检测出来超过一定次数,并且在视频中车辆的相对位置适中,即可以提取车辆的信息并进行数据库录入操作;
步骤5:提取车辆图像的pHash特征:
pHash算法将每一张图像生成指纹信息,然后比较不同图片之间的指纹,距离越近代表两张图片越相似,其中图像压缩后和原图像的汉明距离很小,相同图片之间的汉明距离为零;
步骤6:提取车辆图像ISIFT特征,具体流程为:
步骤6.1:尺度空间极值检测:
搜索所有尺度上的图像位置,通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点;首先使用高斯金字塔每组中相邻上下两层图像相减,得到高斯差分图像;关键点由高斯差分空间的局部极值点组成,第一步就是求出DOG空间的局部极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小;然后排除边缘效应以及效应较弱的点;
步骤6.2:关键点的定位和方向:
确定关键点的位置和尺度,并且基于梯度方向确定关键点的方向;
首先通过子像素插值法精确得到了关键点的位置;对尺度空间DoG函数利用taylor展开式进行曲线拟合,剔除不稳定的边缘响应点;通过获取特征点处的Hessian矩阵来计算主曲率,从而剔除掉不稳定的边缘响应点;对于在DOG金字塔中检测出的关键点,采集其所在高斯金字塔图像邻域窗口内像素的梯度和方向分布特征;对于二维图像,定义梯度的模值m(x,y)和方向θ(x,y)如下:
L所用的尺度表示各关键点所在的尺度,统计关键点邻域范围内的像素的梯度和方向,具体计算模值m(x,y)时采用高斯分布加权,距离关键点中心越近权值越大;
在计算关键点区域内各像素的度和模数后,使用直方图统计邻域内像素的梯度和方向;梯度直方图将0~360度的方向范围分为36个柱(bins),其中每柱10度;直方图的主峰将是关键点的主要方向;80%以上的主峰作为辅助方向保留下来;
步骤6.3:为每一个关键点建立一个描述符,用一组向量来描述关键点:
首先,确定关键点邻域范围,将范围内坐标轴进行旋转,使得x轴和关键点主方向一致;
对于邻域内像素点的坐标,经过旋转满足下述公式:
对于旋转后的图像,通常将其分为d×d的区域,计算每一个区域中的梯度模值和方向,将梯度分配到8个方向上;当d取4时,特征向量总共有128维,每个子区域梯度方向按0~
360°分成8份,每份45°;
将关键点主方向位于y轴左侧的全部“翻转”到右侧,只统计主方向位于y轴右侧的关键点;对图像所有关键点和翻转后的关键点计算ISIFT特征d’,满足下述公式:
d′=d,cosθ≥0
其中θ表示关键点主方向的角度,d表示原图像和翻转图像的SIFT特征,d’表示改进后的ISIFT特征,即新特征ISIFT只保留主方向位于y轴右侧关键点的特征;
步骤7:进行车辆匹配:将ISIFT算法和pHash算法结合,首先采用pHash特征进行暴匹配,在图片库中查找最相似图片,当检索图片和相似图片之间的汉明距离小于阈值,就视为匹配完成,当最小汉明距离大于阈值,则采用ISIFT算法进行精确匹配,同时结合BBF搜索算法和RANSAC算法;具体流程为:
步骤7.1:采用pHash特征进行暴力匹配,在图片库中查找最相似图片,当检索图片和相似图片之间的汉明距离小于阈值,就视为匹配完成,否则进入步骤7.2;
步骤7.2:采用ISIFT算法进行精确匹配,并通过BBF搜索算法和RANSAC算法来筛选ISIFT特征匹配点:
步骤7.2.1:BBF搜索算法:BBF是一种改进k-d树最近邻查询算法,为了消除部分错误匹配点,取K=2,寻找特征点的最近邻和次近邻匹配点;假设128维向量和最近邻特征的距离为d1,和次近邻的距离为d2,计算d1和d2的比值,当不满足下式时剔除该匹配;
其中,ratio是一个常量,在0和1之间;
步骤7.2.2:RANSAC算法:采用随机抽样一致性算法RANSAC进一步筛选SIFT特征匹配;
RANSAC算法输入一组观测参数,往往包含一组“外点”,采用迭代的方式,寻找最佳参数模型,符合该参数模型的点即为“内点”,其余被定义为“外点”;RANSAC算法认为两个不同视角图像上的点对可以用射影变化表示,即X1=HX2,即下式:
其中s表示尺度(x,y)和(x′,y′)分别表示左边和右边的坐标;寻找最佳的单应性矩阵H,H为3×3的矩阵,总共需要4组不共线的即可解出矩阵H;RANSAC算法从数据集中计算出单应性矩阵H,然后利用模型测试所有数据,使得下式中D值最小:
2.根据权利要求1所述的基于视频的车辆特征提取与匹配方法,其特征在于,所述步骤
4.3剔除图像时,剔除规则为:当轮廓的周长、面积小于一定阈值,或者形状异常的给予剔除处理。
3.根据权利要求1所述的基于视频的车辆特征提取与匹配方法,其特征在于,所述步骤
5具体包括如下子步骤:
步骤5.1:缩小尺寸:将图片缩小成8×8、32×32;
步骤5.2:简化色彩:将图片转化为灰度;
步骤5.3:计算DCT:将图像进行DCT变换,得到32×32的DCT矩阵,将图像从像素域变换成频域;只取图像低频部分,保留DCT矩阵左上角8×8的部分;
步骤5.4:计算Hash值:计算DCT的平均值,根据8×8的DCT矩阵,大于均值的设为1,小于均值的设为0,这样就组成了64位整数,得到图像的hash指纹;
步骤5.5:计算汉明距离:进行图像检索时,其他图像同样计算出各自的hash值,和数据库中每个图像指纹进行比较,汉明距离越小表示越接近。
4.根据权利要求1所述的基于视频的车辆特征提取与匹配方法,其特征在于,所述步骤
6.3中在cosθ<0且cosθ≈0的情况下新特征ISIFT仍然保留特征d。
5.根据权利要求1所述的基于视频的车辆特征提取与匹配方法,其特征在于,所述步骤
7.2.2中RANSAC算法步骤如下:
1重复迭代K次,不断执行下面几步;
2随机从数据集中抽出4对不共线样本,计算H矩阵;
3设定阈值T,测试所有数据,根据上式计算D值,若D<T,则将该数据加入内点集;
4若内点集个数大于最优记录,则更新该记录。

说明书全文

一种基于视频的车辆特征提取与匹配方法

技术领域

[0001] 本发明属于图像处理和交通视频检测领域,涉及一种基于视频的车辆特征提取与匹配方法,主要应用于基于视频的车辆检测、车辆特征信息提取、车辆匹配。

背景技术

[0002] 通过视频提取交通信息成本低廉,只需要利用交通卡口的抓拍摄像头即可。提取车辆的各种信息涉及计算机视觉和图像处理的技术,随着计算机运算能的不断增强,使得通过数字视频准确的提取出车辆信息成为可能。但该方法仍然具有不少难点,比如卡口摄像头安装在室外,受光照、环境等因素影响非常大;另外,由于交通场景复杂多变,难以保s证在车辆密集时或者突发状况下的鲁棒性和准确性;以及实时性问题:最新的算法往往能够有很好的准确性,但运算量巨大,非常耗时,难以实用。
[0003] 现阶段对视频中车辆检索的方法主要可以分为两类,一类通过车辆属性进行检索,比如通过车辆颜色、车型、车牌等信息进行搜索,这种方法的准确率依赖信息提取的精度。另一类主要通过车辆图像特征搜索,通常分为两个过程,首先是提取车辆图像底层特征向量,接着是将提取的特征进行相似性匹配,这种方法类似于图像检索。现有检索方法一般需要采集样本,还需要拍摄图像中没有运动目标的纯背景图像,需要大量的前期准备工作。
[0004] 本发明对视频背景进行动态更新,在提高检测准确率的同时保证实时性。

发明内容

[0005] 为解决上述问题,本发明公开了一种基于视频的车辆特征提取与匹配方法,重点研究车辆图像特征提取,并通过检测轮廓的方式检测运动目标,实现基于图像匹配的车辆检索。
[0006] 为了达到上述目的,本发明提供如下技术方案:
[0007] 一种基于视频的车辆特征提取与匹配方法,包括如下步骤:
[0008] 步骤1:读入视频文件:
[0009] 从交通卡口摄像头中读入视频文件,并取一大小的彩色图像,记为G,彩色图像的宽度和高度分别为W和H;
[0010] 步骤2:对视频图像进行背景建模,保证背景精确稳定及实时性:
[0011] 如果图像G对应于视频文件的第一帧图像,则进行背景模型的初始化,否则,进行背景模型的更新;
[0012] 背景模型的初始化过程为:
[0013] 通过间隔采样多帧图像,求取多帧图像的平均值作为视频背景图片;首先将彩色图像进行RGB三通道分离,分别用8位二进制数字表示,R、G、B三通道的像素值范围均为0~255,对三个通道分别每隔p帧进行一次采样,p为常数,进行N次采样后将所得到的N帧图像求取平均值;Sum0(x,y)由背景初始化得到,表示积累N帧图像在(x,y)处像素值总和,则Sum0(x,y)具体表示为
[0014]
[0015] 其中,Grpi(x,y)、Ggpi(x,y)、Gbpi(x,y)分别表示在R、G、B三通道上,第p×i帧图像在(x,y)处的像素值,其中p表示每隔p帧进行一次采样,N表示参与背景初始化的总帧数;
[0016] B0(x,y)表示初始化背景图像在(x,y)处像素值,则B0(x,y)具体表示为[0017] B0(x,y)=Sum0/N。
[0018] 背景模型的更新过程为:
[0019] Sumt(x,y)表示以第t帧为中心积累的N帧在(x,y)处像素值总和,则Sumt(x,y)具体表示为
[0020]
[0021] Bt(x,y)表示第t帧在(x,y)处的背景像素值,则Bt(x,y)具体表示为
[0022] Bt(x,y)=Sumt(x,y)/N。
[0023] 步骤3:采用背景差法来获取包含运动目标的前景区域:
[0024] 首先手动标示出检测区域,将非检测区域过滤以减少干扰;然后将当前帧图像和背景图像转换为8位的灰度图像,再进行差分运算,从而获得前景图像;
[0025]
[0026]
[0027] 其中Gt(x,y)、Bt(x,y)分别表示第t帧视频图像、背景图像在(x,y)处的像素值,Grayt(x,y)、Bgt(x,y)分别表示经过灰度化后第t帧视频图像、背景图像在(x,y)处的灰度值;则前景图像Fgt(x,y)具体表示为:
[0028] Fgt(x,y)=|Grayt(x,y)-Bgt(x,y)|。
[0029] 其中,Fgt(x,y)表示第t帧前景图像在(x,y)处的灰度值;
[0030] 步骤4:车辆检测:
[0031] 采用获取车辆轮廓的方法来进行车辆检测,具体流程为:
[0032] 步骤4.1:二值化前景图像Fgt(x,y),得到二值化后的前景图像Tt(x,y),则Tt(x,y)具体表示为
[0033]
[0034] 其中T表示阈值;如果Fgt(x,y)的值大于等于设定的阈值T,则将该点设置为前景点,否则为背景点;
[0035] 步骤4.2:对二值图像进行形态学变换,对二值前景图像Tt(x,y)进行闭运算;
[0036] 步骤4.3:采用Freeman链码跟踪方法提取二值前景图像里前景区域的轮廓,同时剔除明显不是轮廓的图像;然后采用Graham扫描法获取前景轮廓的凸包,并以前景凸包作为车辆轮廓,最终得到车辆轮廓;
[0037] 步骤4.4:进行车辆检测:
[0038] 首先定义一个记录表,用来保存最近检测出来的车辆的各种信息,并且不断删除过期信息;采用每隔N帧进行一次检测的方法,并对每一次检测出来的每一辆车进行逐一处理;针对任意一辆车,需要和记录中所有车辆进行比对,根据区域重叠情况以及中心距离判断记录中是否已经包含车辆;如果记录中包含车辆,即更新记录中车辆的位置、时间、路径等信息,反之则将新车加入记录;当在较短时间内,车辆被检测出来超过一定次数,并且在视频中车辆的相对位置适中,即可以提取车辆的信息并进行数据库录入操作;
[0039] 步骤5:提取车辆图像的pHash特征:
[0040] pHash算法将每一张图像生成指纹信息,然后比较不同图片之间的指纹,距离越近代表两张图片越相似,其中图像压缩后和原图像的汉明距离很小,相同图片之间的汉明距离为零;
[0041] 步骤6:提取车辆图像ISIFT特征,具体流程为:
[0042] 步骤6.1:尺度空间极值检测:
[0043] 搜索所有尺度上的图像位置,通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点;首先使用高斯金字塔每组中相邻上下两层图像相减,得到高斯差分图像;关键点由高斯差分空间的局部极值点组成,第一步就是求出DOG空间的局部极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小;然后排除边缘效应以及效应较弱的点;
[0044] 步骤6.2:关键点的定位和方向:
[0045] 确定关键点的位置和尺度,并且基于梯度方向确定关键点的方向;
[0046] 首先通过子像素插值法精确得到了关键点的位置;对尺度空间DoG函数利用taylor展开式进行曲线拟合,剔除不稳定的边缘响应点;通过获取特征点处的Hessian矩阵来计算主曲率,从而剔除掉不稳定的边缘响应点;对于在DOG金字塔中检测出的关键点,采集其所在高斯金字塔图像邻域窗口内像素的梯度和方向分布特征;对于二维图像,定义梯度的模值m(x,y)和方向θ(x,y)如下:
[0047]
[0048]
[0049] L所用的尺度表示各关键点所在的尺度,统计关键点邻域范围内的像素的梯度和方向,具体计算模值m(x,y)时采用高斯分布加权,距离关键点中心越近权值越大;
[0050] 在计算关键点区域内各像素的度和模数后,使用直方图统计邻域内像素的梯度和方向;梯度直方图将0~360度的方向范围分为36个柱(bins),其中每柱10度;直方图的主峰将是关键点的主要方向;80%以上的主峰作为辅助方向保留下来;
[0051] 步骤6.3:为每一个关键点建立一个描述符,用一组向量来描述关键点:
[0052] 首先,确定关键点邻域范围,将范围内坐标轴进行旋转,使得x轴和关键点主方向一致;对于邻域内像素点的坐标,经过旋转满足下述公式:
[0053]
[0054] 对于旋转后的图像,通常将其分为d×d的区域,计算每一个区域中的梯度模值和方向,将梯度分配到8个方向上;当d取4时,特征向量总共有128维,每个子区域梯度方向按0~360°分成8份,每份45°;
[0055] 将关键点主方向位于y轴左侧的全部“翻转”到右侧,只统计主方向位于y轴右侧的关键点;对图像所有关键点和翻转后的关键点计算ISIFT特征d’,满足下述公式:
[0056] d′=d,cosθ≥0
[0057] 其中θ表示关键点主方向的角度,d表示原图像和翻转图像的SIFT特征,d’表示改进后的ISIFT特征,即新特征ISIFT只保留主方向位于y轴右侧关键点的特征;
[0058] 步骤7:进行车辆匹配:将ISIFT算法和pHash算法结合,首先采用pHash特征进行暴力匹配,在图片库中查找最相似图片,当检索图片和相似图片之间的汉明距离小于阈值,就视为匹配完成,当最小汉明距离大于阈值,则采用ISIFT算法进行精确匹配,同时结合BBF搜索算法和RANSAC算法;具体流程为:
[0059] 步骤7.1:采用pHash特征进行暴力匹配,在图片库中查找最相似图片,当检索图片和相似图片之间的汉明距离小于阈值,就视为匹配完成,否则进入步骤7.2;
[0060] 步骤7.2:采用ISIFT算法进行精确匹配,并通过BBF搜索算法和RANSAC算法来筛选ISIFT特征匹配点:
[0061] 步骤7.2.1:BBF搜索算法:BBF是一种改进k-d树最近邻查询算法,为了消除部分错误匹配点,取K=2,寻找特征点的最近邻和次近邻匹配点;假设128维向量和最近邻特征的距离为d1,和次近邻的距离为d2,计算d1和d2的比值,当不满足下式时剔除该匹配;
[0062]
[0063] 其中,ratio是一个常量,在0和1之间;
[0064] 步骤7.2.2:RANSAC算法:采用随机抽样一致性算法RANSAC进一步筛选SIFT特征匹配;RANSAC算法输入一组观测参数,往往包含一组“外点”,采用迭代的方式,寻找最佳参数模型,符合该参数模型的点即为“内点”,其余被定义为“外点”;RANSAC算法认为两个不同视角图像上的点对可以用射影变化表示,即X1=HX2,即下式:
[0065]
[0066] 其中s表示尺度(x,y)和(x′,y′)分别表示左边和右边的坐标;寻找最佳的单应性矩阵H,H为3×3的矩阵,总共需要4组不共线的即可解出矩阵H;RANSAC算法从数据集中计算出单应性矩阵H,然后利用模型测试所有数据,使得下式中D值最小:
[0067]
[0068] 进一步的,所述步骤4.3剔除图像时,剔除规则为:当轮廓的周长、面积小于一定阈值,或者形状异常的给予剔除处理。
[0069] 进一步的,所述步骤5具体包括如下子步骤:
[0070] 步骤5.1:缩小尺寸:将图片缩小成8×8、32×32;
[0071] 步骤5.2:简化色彩:将图片转化为灰度;
[0072] 步骤5.3:计算DCT:将图像进行DCT变换,得到32×32的DCT矩阵,将图像从像素域变换成频域;只取图像低频部分,保留DCT矩阵左上角8×8的部分;
[0073] 步骤5.4:计算Hash值:计算DCT的平均值,根据8×8的DCT矩阵,大于均值的设为1,小于均值的设为0,这样就组成了64位整数,得到图像的hash指纹;
[0074] 步骤5.5:计算汉明距离:进行图像检索时,其他图像同样计算出各自的hash值,和数据库中每个图像指纹进行比较,汉明距离越小表示越接近。
[0075] 进一步的,所述步骤6.3中在cosθ<0且cosθ≈0的情况下新特征ISIFT仍然保留特征d。
[0076] 进一步的,所述步骤7.2.2中RANSAC算法步骤如下:
[0077] 1重复迭代K次,不断执行下面几步;
[0078] 2随机从数据集中抽出4对不共线样本,计算H矩阵;
[0079] 3设定阈值T,测试所有数据,根据上式计算D值,若D<T,则将该数据加入内点集;
[0080] 4若内点集个数大于最优记录,则更新该记录。
[0081] 与现有技术相比,本发明具有如下优点和有益效果:
[0082] 1.本发明改进了传统的均值法对视频背景进行生成和更新,在获取视频初始背景之后还需要对视频背景进行不断更新,增强鲁棒性,提高车辆信息特征提取的准确性。
[0083] 2.本发明利用了一种改进SIFT的新特征ISIFT,让SIFT具有对称不变性的同时完全保留SIFT特征所具有的旋转不变性、尺度不变性等优点,实现了对称的车辆图片之间的匹配。由于完整保留了SIFT特征的结构,所以具有尺度不变性、旋转不变性,对光照变化也有不错的鲁棒性。在匹配时间方面,由于ISIFT同样具有128维特征,特征点数量也和SIFT基本相同,所以匹配时间和SIFT几乎一致。
[0084] 3.本发明方法只需要利用交通卡口的抓拍摄像头即可,且并不需要采集样本,也不需要拍摄图像中没有运动目标的纯背景图像,而只需要一个用本发明方法编写而成的视频处理软件就可以检测出视频中的车辆,成本低廉。
[0085] 4.采用本发明方法检测出车辆的车辆轮廓非常精准,有利于下一步车辆信息特征的提取。
[0086] 5.本发明将ISIFT算法和pHash算法结合,大幅加快某些情况下的图片检索速度。在车辆检索中,采用原图和缩略图进行搜索的频率很高,在这种情况下,本文算法可以大幅减少检索时间,总体运算速度快,基本能够满足实时性的要求。
[0087] 6.本发明采用了全局检测的方式,可以适用于不同角度拍摄的交通卡口视频,适用面更广,可以检测不同方向行驶的车辆。本发明方法根据所拍摄的视频适当调整软件的一些参数,就可以很好地实现车辆检测及车辆检索,因而本发明方法可以应用于多种不同背景环境下的车辆检测与车辆检索。附图说明
[0088] 图1为本发明提供的基于视频的车辆特征提取与匹配方法流程图

具体实施方式

[0089] 以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
[0090] 本发明提供的基于视频的车辆特征提取与匹配方法,其流程如图1所示,包括如下步骤:
[0091] 步骤1:读入视频文件:
[0092] 从交通卡口摄像头中读入视频文件,并取一帧大小的彩色图像,记为G,彩色图像的宽度和高度分别为W和H;
[0093] 步骤2:对视频图像进行背景建模,保证背景精确稳定及实时性:
[0094] 如果图像G对应于视频文件的第一帧图像,则进行背景模型的初始化,否则,进行背景模型的更新;
[0095] 背景模型的初始化过程为:
[0096] 通过间隔采样多帧图像,求取多帧图像的平均值作为视频背景图片;首先将彩色图像进行RGB三通道分离,分别用8位二进制数字表示,R、G、B三通道的像素值范围均为0~255,对三个通道分别每隔p帧进行一次采样,p为常数,进行N次采样后将所得到的N帧图像求取平均值;Sum0(x,y)由背景初始化得到,表示积累N帧图像在(x,y)处像素值总和,则Sum0(x,y)具体表示为
[0097]
[0098] 其中,Grpi(x,y)、Ggpi(x,y)、Gbpi(x,y)分别表示在R、G、B三通道上,第p×i帧图像在(x,y)处的像素值,其中p表示每隔p帧进行一次采样,N表示参与背景初始化的总帧数;
[0099] B0(x,y)表示初始化背景图像在(x,y)处像素值,则B0(x,y)具体表示为[0100] B0(x,y)=Sum0/N。
[0101] 背景模型的更新过程为:
[0102] Sumt(x,y)表示以第t帧为中心积累的N帧在(x,y)处像素值总和,则Sumt(x,y)具体表示为
[0103]
[0104] Bt(x,y)表示第t帧在(x,y)处的背景像素值,则Bt(x,y)具体表示为
[0105] Bt(x,y)=Sumt(x,y)/N。
[0106] 步骤3:采用背景差法来获取包含运动目标的前景区域:
[0107] 首先手动标示出检测区域,将非检测区域过滤以减少干扰;然后将当前帧图像和背景图像转换为8位的灰度图像,再进行差分运算,从而获得前景图像;
[0108]
[0109]
[0110] 其中Gt(x,y)、Bt(x,y)分别表示第t帧视频图像、背景图像在(x,y)处的像素值,Grayt(x,y)、Bgt(x,y)分别表示经过灰度化后第t帧视频图像、背景图像在(x,y)处的灰度值;则前景图像Fgt(x,y)具体表示为:
[0111] Fgt(x,y)=|Grayt(x,y)-Bgt(x,y)|。
[0112] 其中,Fgt(x,y)表示第t帧前景图像在(x,y)处的灰度值;
[0113] 步骤4:车辆检测:
[0114] 采用获取车辆轮廓的方法来进行车辆检测,具体流程为:
[0115] 步骤4.1:二值化前景图像Fgt(x,y),得到二值化后的前景图像Tt(x,y),则Tt(x,y)具体表示为
[0116]
[0117] 其中T表示阈值;如果Fgt(x,y)的值大于等于设定的阈值T,则将该点设置为前景点,否则为背景点;
[0118] 步骤4.2:对二值图像进行形态学变换。对二值前景图像Tt(x,y)进行闭运算,使得运动目标内部空洞部分少了很多,运动目标具有了连通性。
[0119] 步骤4.3:采用Freeman链码跟踪方法提取二值前景图像里前景区域的轮廓,同时剔除明显不是轮廓的图像,当轮廓的周长、面积小于一定阈值,或者形状异常的给予剔除处理。然后采用Graham扫描法获取前景轮廓的凸包,并以前景凸包作为车辆轮廓,最终得到车辆轮廓。
[0120] 步骤4.4:进行车辆检测:
[0121] 首先定义一个记录表,用来保存最近检测出来的车辆的各种信息,并且不断删除过期信息。采用每隔N帧进行一次检测的方法,并对每一次检测出来的每一辆车进行逐一处理。针对任意一辆车,需要和记录中所有车辆进行比对,根据区域重叠情况以及中心距离判断记录中是否已经包含车辆。如果记录中包含车辆,即更新记录中车辆的位置、时间、路径等信息,反之则将新车加入记录。当在较短时间内,车辆被检测出来超过一定次数,并且在视频中车辆的相对位置适中,即可以提取车辆的信息并进行数据库录入操作。采用此车辆检测方法,检测出车辆的车辆轮廓非常精准,有利于下一步车辆信息特征的提取;且能够同时检测不同方向行驶的车辆,运算速度也相对较快,基本能够满足实时性的要求。
[0122] 步骤5:提取车辆图像的pHash特征:
[0123] pHash算法将每一张图像生成指纹信息,然后比较不同图片之间的指纹,距离越近代表两张图片越相似,其中图像压缩后和原图像的汉明距离很小,相同图片之间的汉明距离为零。具体流程为:
[0124] 步骤5.1:缩小尺寸:将图片缩小成8×8、32×32,目的主要是简化DCT计算,加快运算速度。
[0125] 步骤5.2:简化色彩:将图片转化为灰度,进一步减少计算量。
[0126] 步骤5.3:计算DCT:将图像进行DCT变换,得到32×32的DCT矩阵,将图像从像素域变换成频域。为了增强算法的鲁棒性,只取图像低频部分,保留DCT矩阵左上角8×8的部分。
[0127] 步骤5.4:计算Hash值:计算DCT的平均值,根据8×8的DCT矩阵,大于均值的设为1,小于均值的设为0,这样就组成了64位整数,得到图像的hash指纹。
[0128] 步骤5.5:计算汉明距离:进行图像检索时,其他图像同样计算出各自的hash值,和数据库中每个图像指纹进行比较,汉明距离越小表示越接近。
[0129] 步骤6:提取车辆图像ISIFT特征,具体流程为:
[0130] 步骤6.1:尺度空间极值检测:
[0131] 搜索所有尺度上的图像位置,通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。首先使用高斯金字塔每组中相邻上下两层图像相减,得到高斯差分图像。关键点由高斯差分空间的局部极值点组成,第一步就是求出DOG空间的局部极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。然后排除边缘效应以及效应较弱的点。
[0132] 步骤6.2:关键点的定位和方向:
[0133] 确定关键点的位置和尺度,并且基于梯度方向确定关键点的方向。首先通过子像素插值法精确得到了关键点的位置。为了提高关键点的稳定性,需要对尺度空间DoG函数利用taylor展开式进行曲线拟合。DOG算子会产生较强的边缘响应,需要剔除不稳定的边缘响应点。一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向有较小的主曲率。因此通过获取特征点处的Hessian矩阵来计算主曲率,从而剔除掉不稳定的边缘响应点。接着就需要定义关键点的方向了。对于在DOG金字塔中检测出的关键点,采集其所在高斯金字塔图像邻域窗口内像素的梯度和方向分布特征。对于二维图像,定义梯度的模值m(x,y)和方向θ(x,y)如下:
[0134]
[0135]
[0136] L所用的尺度表示各关键点所在的尺度,统计关键点邻域范围内的像素的梯度和方向,具体计算模值m(x,y)时采用高斯分布加权,距离关键点中心越近权值越大。
[0137] 在计算关键点区域内各像素的角度和模数后,使用直方图统计邻域内像素的梯度和方向。梯度直方图将0~360度的方向范围分为36个柱(bins),其中每柱10度。直方图的主峰将是关键点的主要方向。80%以上的主峰作为辅助方向保留下来。
[0138] 步骤6.3:为每一个关键点建立一个描述符,用一组向量来描述关键点:
[0139] 首先,需要确定关键点邻域范围,将范围内坐标轴进行旋转,使得x轴和关键点主方向一致。对于邻域内像素点的坐标,经过旋转满足下述公式:
[0140]
[0141] 对于旋转后的图像,通常将其分为d×d的区域,计算每一个区域中的梯度模值和方向,将梯度分配到8个方向上。当d取4时,特征向量总共有128维,每个子区域梯度方向按0~360°分成8份,每份45°。
[0142] 将关键点主方向位于y轴左侧的全部“翻转”到右侧,只统计主方向位于y轴右侧的关键点。我们对图像所有关键点和翻转后的关键点计算ISIFT特征d’,满足下述公式:
[0143] d′=d,cosθ≥0
[0144] 其中θ表示关键点主方向的角度,d表示原图像和翻转图像的SIFT特征,d’表示改进后的ISIFT特征,也就是说新特征ISIFT只保留主方向位于y轴右侧关键点的特征。由于计算误差,图像的翻转后对应特征点可能并不存在,并且寻找翻转图像对应特征点会增大算法复杂度,因此ISIFT不需要寻找对应特征点,只需将原图像和翻转图像中主方向位于y轴右侧关键点作为最终特征点保留,简化计算。此外角度计算同样可能存在误差,实际操作中,在cosθ<0且cosθ≈0的情况下仍然需要保留特征d。
[0145] 步骤7:进行车辆匹配:本方法将ISIFT算法和pHash算法结合,首先采用pHash特征进行暴力匹配,在图片库中查找最相似图片,当检索图片和相似图片之间的汉明距离小于阈值,就视为匹配完成,当最小汉明距离大于阈值,则采用ISIFT算法进行精确匹配。此外,通过BBF搜索算法和RANSAC算法减大幅减少了ISIFT特征的错误匹配数量,同时也加快了匹配速度。具体流程为:
[0146] 步骤7.1:采用pHash特征进行暴力匹配,在图片库中查找最相似图片,当检索图片和相似图片之间的汉明距离小于阈值,就视为匹配完成,否则进入步骤7.2。
[0147] 步骤7.2:采用ISIFT算法进行精确匹配,并通过BBF搜索算法和RANSAC算法来筛选ISIFT特征匹配点:
[0148] 步骤7.2.1:BBF搜索算法:BBF是一种改进k-d树最近邻查询算法,为了消除部分错误匹配点,取K=2,寻找特征点的最近邻和次近邻匹配点。假设128维向量和最近邻特征的距离为d1,和次近邻的距离为d2,计算d1和d2的比值,当不满足下式时剔除该匹配。
[0149]
[0150] 其中,ratio是一个常量,在0和1之间,ratio越小意味着越严格,会导致一些正确匹配点也被剔除了,本方法ratio采用经验值0.8。
[0151] 步骤7.2.2:RANSAC算法:采用随机抽样一致性算法RANSAC来进一步筛选SIFT特征匹配。RANSAC算法输入一组观测参数,往往包含一组“外点”,采用迭代的方式,寻找最佳参数模型,符合该参数模型的点即为“内点”,其余被定义为“外点”。RANSAC算法认为两个不同视角图像上的点对可以用射影变化表示,即X1=HX2,即下式:
[0152]
[0153] 其中s表示尺度(x,y)和(x′,y′)分别表示左边和右边的坐标。RANSAC算法就是寻找最佳的单应性矩阵H,H为3×3的矩阵,总共需要4组不共线的即可解出矩阵H。RANSAC算法从数据集中计算出单应性矩阵H,然后利用模型测试所有数据,使得下式中D值最小。
[0154]
[0155] RANSAC算法步骤如下:
[0156] 1重复迭代K次,不断执行下面几步。
[0157] 2随机从数据集中抽出4对不共线样本,计算H矩阵。
[0158] 3设定阈值T,测试所有数据,根据上式计算D值,若D<T,则将该数据加入内点集。
[0159] 4若内点集个数大于最优记录,则更新该记录。
[0160] 本发明采用两段视频对本文提出的车辆检测算法进行测试,视频1是使用自行拍摄的视频,分辨率为640×480,帧率50帧/秒。视频2来自实际卡口拍摄视频,分辨率为3576×2008,帧率25帧/秒。其中视频1总共有114辆车,视频2总共有358辆车,对于视频1检测出112辆车,检测率达到98.2%,对于实际卡口视频2,成功检出356辆车,检测率达到99.4%。;
[0161] 测试视频2来自实际卡口拍摄视频,分辨率为3576×2008,帧率25帧/秒。背景提取时间小于40ms认为满足实时性要求。对于实际道路中高清卡口拍摄的视频2,单高斯背景模型和混合高斯背景模型远达不到实时性要求,其中混合高斯模型获取一帧背景需要659.3ms,距离实时性要求40ms相差很远。Vibe算法耗时小于高斯模型,但是仍然达不到实时性要求,本发明背景提取算法计算量较小,能够满足实时性要求。
[0162] 本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈