一.智能交通技术概述
智能交通系统(Intelligence Transport System ,ITS)是目前世界交通运输领域的前沿研究课题,它融合了电子信息技术,通信技术,自动控制理论,计算机技术和传统的交通工程学理论等多个学科的理论,并将其应用于现代的交通运输管理体系中,从而实现交通运输服务和管理智能化。
交通监视系统是智能交通系统中的一个重要环节,这一子系统主要负责采集有关道路交通流量的各种参数,例如车流量,车速,车型,排队时间和长度等。目前,道路参数检测的方法很多,主要有超声波检测,红外检测,感应圈检测和基于视频的检测等等。超声波检测精度不高,容易受车辆遮挡和行人的影响,检测的距离短;红外线检测受车辆本身热源的影响,并且抗噪声的能力不强,因而检测精度不高;虽然地感线圈检测精度相对较高,但要求设置于路面结构中,并有对路面有损坏,施工和安装相对不便,使用寿命比较短,容易损坏等缺点。
近年来,基于视频检测的方法随着计算机技术,图像处理,人工智能和模式识别等技术的不断发展,在交通流检测中得到了越来越广泛的应用,相对于其它交通流量检测技术而言,它具有以下的优势:

  1. 视频检测可以检测较大的交通场景面积;
  2. 相对于其它检测方法,投资少,费用低;视频传感器等设备,例如摄像头,易于安装和调试,且对路面设施不会产生破坏;
  3. 使用视频检测技术!可以采集到更多的交通流量参数。

二.相关技术的介绍和说明
图像的预处理–背景提取
采用背景差分方法进行车辆检测,一般而言,不对视频卡采集的整幅视频图像进行处理。这里,有目的地根据车道的情况,在整幅图像中选择了几个感兴趣的区域(也称作虚拟线圈),并对这些区域进行实时处理,检测车辆并获得相关的交通流量参数。
提取若干桢连续的视频图像,并把在虚拟线圈中的像素灰度值按帧的序号顺序存储在数组中,对虚拟线圈中的每个像素逐点求其灰度值的直方图,选择出现次数最多的灰度值作为背景图像中当前像素的灰度值。
一般而言,选择每个像素最常出现的灰度值作为背景图像对应像素点的灰度值是十分合理的,如果碰到车辆较密集的情况,可以适当增加采集的帧数,以得到较好的效果。
背景提取需要一个初始化的过程,在背景提取的过程中,不对读入的视频图像进行车辆检测。
背景更新采用了每隔一段时间进行背景提取并进行背景更新的方法:程序中设置一定时器,每隔一段时间,程序就开始进行新一轮背景提取,在此背景的提取过程中,程序进行车辆的检测。
不过此时所用的背景为上一次提取的背景,当当前背景提取完后,用当前背景覆盖上一次的背景,图像下一帧的车辆检测就使用更新后的背景,即当前背景,进行检测。
此方法能够有效抑制光线和自然条件的缓慢变化,并能够提高背景差分算法检测车辆的效果。当车辆经过虚拟线圈,虚拟线圈内所有像素当前灰度值和背景对应像素的灰度值之间的绝对值差的总和会有一个变化的过程,并把线圈内所有像素的当前图像的灰度值与背景图像的灰度值之间的绝对值差的总和用变量。
在虚拟线圈没有车辆经过的情况下,虚拟线圈内当前图像信息保持相对恒定,线圈内像素点的灰度值变化很小。然后,当有车辆开始进入虚拟线圈的区域时,由于背景和车辆像素的灰度值之间巨大的差异,会导致值逐渐增大;车辆离开虚拟线圈区域时值也将随之逐渐减少。当车辆完全离开时值又变得很小。

这种方法可能具有的缺点和不足:
桢间差分比较常用的是连续三桢作两两差分,这种方法虽然具有很强的自适应性,但是对进行差分的连续桢的选择时机要求较高,而且有赖于运动物体的运动速度,如果运动速度较快,且选取的时间间隔过长,就会造成两桢之间无覆盖区域,从而无法分割出运动物体;而如果运动速度过慢,且选取的时间过小,则会造成过度重叠,最坏的情况是物体几乎完全重叠,根本检测不到物体。

图像的预处理–前景提取:
前景提取的基本思想是通过将当前帧与当前的背景帧相减,门限后得到运动的前景点。在进行操作之前,首先对当前帧进行平滑滤波以降低噪声的影响。在这里使用3*3大小的高斯模板。由于平滑的同时也造成了图像边缘信息的损失,因此此时我们还需要对滤波后的图像进行边缘增强。考虑到G通道对噪声的不敏感性,这里我们仅在G通道对当前帧和背景帧用Sobel算子进行边缘增强。在选取门限时,为了适应背景的变化,取:

其中,.C=R、G、B
由于背景图像的直方图在R、G、B通道都呈现出明显的单峰特性,因此这样的门限是合理的。之后,定义任一点(x,y)上当前帧与背景帧的差值为

当DBt(x,y)≥TL时,认为该点为前景的运动点,否则认为它是背景点,将被更新入背景。即PFore={(x,y)| DBt(x,y)≥TL}。
经过上述操作后,包括阴影在内的运动前景已经基本被提取出来,但是由于噪声的影响,可能使被检区域不完整,甚至出现一个区域被断裂成两个或两个以上区域的情况,因此还需要对检测到的点集进行若干形态学操作以保证运动前景的完整性。

图像的预处理–滤波处理
成像系统获取的原始图像由于种种条件限制和随机干扰,例如视觉成像系统镜头的脏污,地面凹凸不平引起图像模糊等,不能直接使用,必须对原始图像进行预处理。对于视觉系统来说!所用的图像预处理方法并不需要考虑图像降质的原因,将图像中感兴趣的特征能有选择地突出,衰减其不需要的特征。
计算机图像的滤波处理主要采用两大类方法:
一类方法是在空间域中处理:即在图像空间中对图像进行各种处理;另一类方法是把空间图像经过变化,如经过傅立叶变换,使之在频率域内进行各种处理,然后再变回到图像的空间域,形成处理后的图像。
目前频率域处理方法有傅立叶正变换和逆变换,各种小波变换和逆小波变换。这些方法使用的计算机内存和计算时间的开销很大,不适于智能车辆这样的实时系统。
因此,采用空间域中的中值滤波处理方法,该种方法是一种局部平均的平滑技术,对脉冲干扰和椒盐噪声的抑制效果好。在一定条件下可克服线性滤波器如最小均方滤波均值滤波等带来的图像细节模糊,有效保护图像的边缘。由于在实际运算中不需要图像的统计特征,因此这为图像的预处理带来很大的方便。

图像的预处理–边缘增强
根据视觉理论可知:识别一个对象是从其边缘开始的,一幅图像不同部分的边缘往往是模式识别最重要的特征。边缘是其周围像素灰度有阶跃变化或屋顶变化的像素的集合,它广泛存在于物体与物体,物体与背景之间,基元与基元之间,
在机器视觉系统采集的图像中,车道的边缘信息湮没在背景之间。
边缘增强的目的在于突出道路的边缘信息,以利于道路边界识别。另外,边缘增强算法还有助于克服道路光照不均的影响作用。
常用边缘增强算子有Robert算子,Sobel算子,Krisch算子,Prewitt算子,Laplace算子等。这里,边缘检测采用了Sobel算子,它其实是一种一阶差分算子,它可以有效地消除道路图象中大部分无用信息。
离散-BCDF 算法定义为下式$

Sobel算子具有较强抑制噪声的能力,实际上Sobel算子的本质是反映相邻或相距一定距离的像素点的灰度差异特征。对于道路而言,正常路面上由于物理性质接近,且光照一般是均匀的。在这种情况下,邻近的像素点的灰度值相差不大,经过Sobel算子,就把这种接近程度转化成一定值,该值通常接近值。论文研究的道路边界与道路其它部分具有一定的灰度差异,Sobel算子能突出边界处像素值的差异,相对于其它路面部分,得到的值较大。同时还可得到边缘的梯度方向信息,而且该算法计算简单,易于实现。
经过Sobel算子运算后的图象,边界从整幅图象中被突显出来。

图像的预处理–二值化
对图像进行二值化处理的关键是阈值的合理选取,阈值设置过小易产生噪声"阈值设置过大会降低分辨率,使非噪声信号被视为噪声而滤掉,考虑到一般在光线较为均匀或在光线不发生强烈变化的条件下试验,因此选取了整体最优阈值法进行图像二值化处理。
整体最优阈值原理是统计每幅图像灰度的分布特性,利用类别方差作为判据,选取使类间方差最大值作为选定的阈值.
使用最优阈值算法的二值化图像进一步减少了噪声,为后续的Hough变换提供了较为干净的图像数据。

图像的预处理–摄像机定标和设置
视频摄像机可以安装在过街天桥上,高层大楼上,或者一个足够高的杆子上。图1描绘出了视频摄像机的配置情况,有一些配置参数包括倾斜的角度 ,转动的角度 ,幅度的角度 和摄像机高度h。我们假设转动角度 等于0,而参数 ,h,和摄像机的焦距f事先已知。至于摄像机的视角 将在校准的时候确定。
图1. 摄像机的配置
建立从二维空间到三维空间图像的映射关系
实际采集的三维图像是三维空间坐标在二维摄像头像平面上的映射,需要对采集的图像先进性映射后再进行实际几何关系的计算。通常摄像头和公路坐标系的位置关系。

检测和追踪–车辆的检测

如何检测运动目标的轨迹
背景的方法能够检测到运动的和静止的车辆,运动区域可以用差分背景和差分桢间来分成运动目标和静止目标。用滤波的预测信息作为聚类初始化信息,大大减少迭代次数,增强了实时性。在桢间的轨迹对应中,根据单位时间内目标运动的滞后性即运动目标在单位时间内位移不大,速度近似等他点,把相邻桢间的聚类结果进行匹配,从而获取运动目标的轨迹。
如何处理噪声
一般情况下,如果检测到的点迹是运动目标点迹,在相邻的几个桢周期内也能检测到该目标的点迹,根据轨迹起始准则来建立轨迹,这样解决了跟踪的初始化问题。如果某点迹是由随机噪声产生的,则在相邻的几个桢周期内,不可能在某处连续出现此造成点迹,即噪声点迹无法建立轨迹,这样有效解决了跟踪过程中的虚警问题。
自适应背景的优点
用自适应背景模型来代替固定背景在鲁棒性上得到了增强,但建立自适应背景图像由于时空信息的融合从而增加了计算量,对实时性方面有一定影响,在环境发生突变时,如天气的突然发生变化,自适应背景图像的初始化需要一定时间。
局限性
外界环境变化给车辆的运动分割和检测带来了极大的挑战,建立适应任何变化的车辆分割和鲁棒检测还需要做出极大的努力。由于道路复杂多变,很多种情况时不可以事先预测的,因此单纯靠桢间差分和差分背景来进行建模检测车辆已很难达到正确检测的目的。基于多目视觉的系统在同一时间从不同角度拍摄到的图像进行信息融合方法将是一种方法,但必须解决其信息融合影响实时性的问题。

检测和追踪–车辆跟踪过程
(1)将第一帧的各个区域当作不同的目标,对各个目标区域启动目标链。
(2)根据判决准则,如果某目标链中的区域在当前帧找到了匹配区域,则用找到的匹配区域特征更新该目标链中的区域特征。
(3)如果在形心预测值所在位置,当前帧区域和目标链中区域面积相差很大,则可以认为发生了合并或者分裂现象。对目标链中的区域包围矩形,在本帧查找该矩形覆盖了几个区域,如果多于一个区域,则认为发生了分裂现象。对分裂现象出现的新区域,启动新的目标链。同理,对于本帧区域的包围矩形,查找该矩形覆盖了几个目标链中的区域,如果多于一个,则认为发生了合并现象,利用合并区域启动新的目标链,同时终止那些被合并区域的目标链。
(4)对于目标链中的区域,如果在本帧没有与之相匹配的区域存在,则认为发生了消失现象。目标链并不立即终止,只有在经过数帧仍没有找到匹配之后,才终止该目标链。
(5)查找本帧是否还存在新进入的区域,如果存在,则启动新的目标链。采用这种方法可以快速跟踪图像序列中的目标,同时得到车辆在监视范围的平均速度。在计数时,只有目标在连续数帧里出现才认为是一个真正的目标区域,只有目标在连续数帧都没有出现才认为消失,因此可以消除那些暂时消失引起的计数错误。

检测和追踪–车流量和车速等参数的测量:
一 根据车辆的行车路径:
多人决策制定技术(MPDM) 假设有m个独立的属性特点来描述车辆,相应的,在多人决策过程中也有m个决策制定者。我们也建设分别从视频图像 和 中检测出 和 个车辆。然后每个决策者i ,基于某一属性特点,确定图像 和 中的车辆的对应关系。
这些相对应的车辆将根据相应车辆之间的差异进行进一步的排序,这n对排序的结果表示成 。接下来,根据如下顺序s,我们来给每对车辆定义了值D来表示他们之间的相似水平:
(13)
这里 表示高度,N是车辆对的数量。
在实践中,我们按照顺序 1,也就是D(n,1),来选择相应的车辆对,其数值必须大于某一个门限值, ,这样来控制由于车辆移出监控范围而造成的误匹配的发生。即使车辆彼此之间是遮挡的,他们让再可以通过多人决策过程来进行追踪。在这种情况下,我们要进一步计算D(n,2)的值,更大的D(n,2)意味着两个遮挡的车辆彼此之间分隔开了。
从追踪的结果来看,车辆的数量和车速都可以被确定。车辆的数量可以通过数车辆的行车路线来获得,同时把道路平面上的车辆的移动距离除以追踪的周期就得到了车辆的行车速度。这里,车辆的移动距离可以通过它行车路线的长度和道路平面和图像平面之间的关系计算出来。

二 根据跨过某条虚拟线来判断过线的车辆数
除了具体的追踪某一个车辆的具体运行轨迹外,如果单单只要得到某一路段单位时间内的车流量,而不需要定位某辆车,可以在某方向去一条线,通过检测图像中跨过这条线的车数,也可以得到车流量。对于双向道路,上行和下行路段各取一条虚拟的线,线的位置不能太远,否则车辆重叠的很厉害,也不能太近,由于系统处理能力的限制,每秒钟取的桢数不宜太多,而近处车辆位移较明显,容易造成漏检。

阴影抑制和遮挡–车辆阴影的抑制
运动的物体造成的阴影会随着物体的运动而运动,所以,经过HSV方法分割出的物体会受到阴影的影响,这样分割出来物体会比实际的物体大,甚至造成两个分割出来的物体连接子在一起,影响计数的准确性。
阴影检测的关键算法是 基于HSV空间的阴影检测算法,因为HSV空间更接近人的视觉反应,而且更能精确的反映一些灰度信息和色彩信息,特别是对于图像中极亮和极暗的物体业能很好的反映出相应信息,经过处理后,就可以将图像像素分成两个部分:背景和运动物体。这里运动物体包括阴影,通常将阴影的像素值和背景的该点像素值作比较,如果其包含的相应色彩值和灰度值都在一定的阀值范围内,那么就认为这个点是阴影

阴影抑制和遮挡–车辆的遮挡

由于摄像机的位置和车辆的行驶,有时会产生车辆的遮挡问题,解决这种问题有几种办法:
(1)根据车辆行驶的路径,来判断此时刻产生遮挡的车是否在前一时刻分开过;
(2)根据遮挡的车辆之间的差异,使用运动区域分析的办法;
我们可以通过计算桢-背景和桢与桢之间的差值,来得到某一关注区域的运动物体的位移量,由于车辆的轨迹和车速的连续性,如果发现这一区域的位移不是始终一致的,当它超过某一门限的时候,我们就可以判定发生了遮挡。
除此之外,我还设想了几种其他的办法:根据车辆占有车道的宽度,来判断是否有两辆车产生遮挡;根据车的自身特性来判点,例如在HSV空间中,我们检测车辆主要依靠其V灰度特性,在无法判断是否有遮挡时,我们可以根据其H和S的特性,判断车身的主体颜色是否一致,或者判断其色饱和度的差异,如果某车在较大区域内颜色基本保持一致等(这会受到车自身的涂装的影响,但是与人眼的识别过程相符合)。
检测区域内,两个运动的车辆的速度会有差异,这就决定了不同桢之间,这个区域的位移量不同,通过设定门限,我们可以将遮挡的物体识别出来。
另外还可以根据外形,轮廓等两个不同的运动区域特征“标记”两个不同的车辆,然后通过形态学上的扩张技术,扩大每个车的标记区域,产生彼此重叠的部分,这个部分叫做“切割区”,这样可以分处两个独立的车辆。
行人干扰
根据车辆的长度和宽度,调整摄像机的位置,将车辆的数据从二维图像空间换算成三维真实空间的数值,这样通过恰当地选择一定的阈值,就可以在检测到的车型的基础上,将行人区分开来。在计数的时候就可以消除行人的影响。
检测队列长度
根据映射关系,我们可以根据图像上车的队列长度来推算出实际车的长度。
这里检测排队长度的算法,主要包括两个部分分:
一种是车辆总排队长度----在可视范围内所有的车辆长度,包括停止和运动的车辆
先用Sobel边缘算子得到被监控道路上的车辆的边缘图像,再将得到的边缘映射到图像中道路的中轴线,统计其上的亮点个数(二值化后,值等于1的像素点个数),得到二维图像上的车队长度,然后通过公式换算成实际的车辆排队长度。
但是这种方法得到的事车队整体排队长度,无法区分运动车辆和静止排队车辆的长度。
二是得到停下来的车辆的排队长度。
在路口监控系统中,有些情况(如控制信号灯的变化)需要得到已经停止的车辆的长度,利用边缘信息得到总体排队长度的基础上:
实际在统计亮点个数的时候,并不是逐行的进行扫描,而是一次扫描n行,n为实际中略小于一辆车的长度映射到二维图像上得到的像素数。
假设司机会自动并道停车,即使用所有可用的行车道(这是符合实际情况的)。
在统计中,如果发现统计区域(实现设定的车的长度)亮点个数少于一半时,就假定此区域可能是停止车辆排队的终点,然后启动角点检测程序,如果该区域的角点小于一定的阈值(可以根据实际需要来选去,通常选择一辆车平均角点的倍数),就认为当前扫描行为车辆排队的终点,如果大于相应的阈值,就继续扫描。

DSP技术
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。
DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:
(1) 在一个指令周期内可完成一次乘法和一次加法;
(2) 程序和数据空间分开,可以同时访问指令和数据;
(3) 片内具有快速 RAM,通常可通过独立的数据总线在两块中同时访问;
(4) 具有低开销或无开销循环及跳转的硬件支持;
(5) 快速的中断处理和硬件I/O支持;
(6) 具有在单周期内操作的多个硬件地址产生器;
(7) 可以并行执行多个操作;
(8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
世界上第一个单片 DSP 芯片应当是1978年 AMI公司发布的 S2811,1979年美国Intel公司发布的商用可编程器件2920是DSP芯片的一个主要里程碑。这两种芯片内部都没有现代DSP芯片所必须有的单周期乘法器。1980 年,日本 NEC 公司推出的PD7720是第一个具有乘法器的商用 DSP 芯片。在这之后,最成功的DSP 芯片当数美国德州仪器公司(Texas Instruments,简称TI)的一系列产品。
如果前几步的实验成功,打算进一步在DSP平台下实现检测功能。设计使用的芯片为:TMS320VC5402。该芯片是TI公司于1996年后推出的DSP。其特点是:1.围绕8条总线构成的增强型哈佛结构;2.高度并行和带有专用硬件逻辑的CPU设计;3.高度专业化的指令系统;4.模块化结构设计;5.先进的IC工艺.

一种基于DSP的视频车辆识别
本系统完成基于视频图像处理技术的交通检测系统:通过安装在道路旁边或者中间隔离带的支架上的摄像机和图像采集设备将实时的视频信息采入,经过对视频图像的实时处理分析得到各种交通信息如车辆的流量、速度、交通密度、车型分类、车辆排队长度、转弯信息等。
该方案由一个以TMS320C6203DSP为核心的嵌入式系统组成。系统主要包括四大硬件模块:视频采集模块,视频压缩存储模块,系统管理及视频分析模块和通讯模块。见图1所示。各部分主要实现功能如下:
(1)视频采集模块。这是系统的前端信息采集部分。主要的功能是将多个摄像头传回来的视频图像存入到系统内存中;同时输出到监视器,方便交通管理中心的人员进行人工、直观的交通监控和管理。
(2)视频压缩存储模块。该模块基于AD公司生产的DSP芯片ADSP2185为控制核心,实现实时压缩和暂存储。该模块能够做到2路视频流的实时小波压缩。
(3)管理和视频分析模块。该模块以TI公司的DSP芯片TMS320C6203为中心构建,作为核心处理部件,完成系统的主要功能。其基本框图如图2所示。主要负责系统的各个任务调度、视频分析算法的运行、与上层监控中心的通讯管理等。
(4)通讯模块。该模块负责系统与上层之间、系统与另一系统之间的可靠通信。主要内容为上面提及的实时信息输出、事件触发图像序列输出以及监控指令的传送。考虑到系统的可扩展性和兼容性,主要采用基于TCP/IP传输协议的通信方式。但对于物理层和数据链路层的标准,根据具体情况可以任意选择,如采用同轴电缆或RJ45接口,或者是RS485接口,都是可以的。而且可以做到与目前某些国外大公司的产品(如Peek等)接口兼容。

TMS320C6203视频处理主要包含以下几个关键技术:图像的标定和平面映射;车辆实时检测;车辆的跟踪。标定过程是指在一定信息(摄像机高度、与地平面夹角以及镜头张角等)的帮助下,从摄像机所拍摄的图像中,恢复出各车辆在实际交通场景中的位置对应关系,也就是将3维位置关系变换为2维位置关系。车辆检测的过程中,要解决存在阴影、车辆部分遮挡、车辆与复杂背景的正确分割等问题。车辆的跟踪主要用来获取各车辆的速度、转弯等等信息。

车流量检测深度学习代码 车流量检测模块_自动驾驶