125 (a)Original grayscale (b) Binarization figure 图2 检测算法中右边车道近端和远端虚拟线框 Fig 2 Detection algorithm in the right lane proximal and distal virtual wireframe 我们在高速公路右边车道选取的一远一近两个矩形区域(由于近端的矩形区域三边是贴 130 着图像边缘,所以在图像上只能看到一边),这两个矩形区域是作为虚拟线框的检测区域, 两个线框宽度都是7 个像素,近端线框的长贯穿整个图像,远端相框长是3/8 个图像宽,这 样选取的目的是使得右边通行的车辆能完全包含在这两个线框中,而左车道车辆不会出现。 当前帧虚拟线框内有目标车辆进入时,首先判断该虚拟线框内的连通域是否是目标车 辆,因为虚拟线框内的连通域有如下几种情况不是目标车辆生成的: 135 1. 二值化后,在单独帧中产生的噪声进行形态学处理后,有可能膨胀为一个小型连通域。 2. 由于形态学处理中为了减少大型车辆车体内部空洞,而选择了较大的膨胀核,导致处理 后的车体比之实际车辆较大,从而使得相对车道上的靠内行驶的车辆可能有部分进过本 车道上的虚拟线框,从而形成错误的非目标车辆的连通域。 3. 因为摄像头可能存在不定时的晃动或者二值化等前期工作遗留问题,可能使得目标车辆 140 在当前帧还在虚拟线框外,没有进入,而下一帧(因为实时监测的需要,我们是间隔一 定帧数后取一帧)的时候已经进过虚拟线框了,从而是虚拟线框内出现“闪现”连通域 的情况。 针对前面两种情况,无论是噪声引起的假连通域,还是相对车道过膨胀引起的,其出现 在虚拟线框内的大小相对于目标车辆来说要小很多,所以我们只需要根据线框大小和目标车 145 辆大小来确定一个阈值,对连通域的面积进行阈值比较,小于阈值的不计为目标车辆,大于 阈值的记为目标车辆(实验结果远端线框的阈值大小设为35)[7]。由于我们只对单向车道统 计车流量,所以根据实际情况,相对车道车辆连通域不会出现在近端线框中,只针对噪声引 起的小连通域选择阈值(实验大小为15)。 假设目标车辆在当前帧处在虚拟线框外面,还没有进入线框范围,则该目标车辆不可能 150 快到在下一帧时已经通过了虚拟线框,在虚拟线框内不存在该目标车辆的连通域。也就是说: 理论上每一个目标车辆的连通域至少有一帧的时刻是在虚拟线框内存在的。事实上,根据实 际线框的大小和车流速度,结合大量观测实验,我们发现就算是最快的小型汽车通过预先设 定的远端虚拟线框,最少也进过了20 帧,所以我们做出合理假设,目标车辆连通域至少存 在于远端虚拟线框4 帧的时间,这是一个对之后算法改进很重要的假设。 155 根据以上结论,在没发现第三种情况之前,我们判定有车辆进过虚拟线框的基本准则是: 当前帧虚拟线框内存在连通域个数小于前一帧虚拟线框内的连通域个数时,说明有车辆跑出 了线框区域范围。这时我们用前一帧线框内连通域个数减去当前帧线框内连通域个数作为车 流计数。假设我们储存的前一帧线框内的连通域个数为3,而当前帧连通域个数为1,这认 为有两辆车在前一帧到当前帧的时间段驶出了该虚拟线框检测区,所以计数为2。其思路是 160 目标车辆进入线框时不予统计,当车辆驶出线框时再统计[8]。 但是很快我们发现这种算法存在极大的问题,会过多的统计车流量。于是我们将每帧远 端虚拟线框检测区内连通域个数记录并打印出来(如图3)。 165 图3 每一帧虚拟线框内目标连通域个数统计 Fig 3 Target connected domain number of each frame virtual wireframe 其部分帧中远端虚拟线框连通域数存在异常(用红色方框标注的部分),导致之后的错 误统计流量。进过反复的实验发现前面提到的第三种情况:出现“闪现”连通域[9]。为了解 170 决车流量过多错误统计的问题,我们提出对连续帧连通域个数的平滑的操作。具体步骤如下: 1. 在背景合成之后,将连续7 帧中远端虚拟线框内连通域个数储存在容量大小为7 的 容器deq_far 中,当下一帧进来后,删除deq_far 中第一帧的数据。 2. 对deq_far 中7 个数据进行中值滤波,将中值数据赋予接下来要进入deq_far 的当前 帧。 175 这里deq_far 容器大小选为7 是因为前面我们的合理假设:目标车辆连通域至少存在于 远端虚拟线框4 帧的时间。因为连续4 帧的时间,不可能有目标车辆跑出远端虚拟线框检测 区,跟何况是目标车辆膨胀后的二值化连通域。所以我们有理由相信对虚拟线框中出现的“闪 现”连通域的平滑处理时合理的,并且实验结果也是令人满意的。图4 是对图3 中连续帧远 端虚拟线框检测区域内连通域数平滑操作后打印出来的结果。图4 中红色矩形框标注的数据 180 对应的是图3 中出现异常帧的位置,其余帧的数据没有受到影响。 图4 对连续帧连通域数据进行平滑操作后的结果 Fig 4 For continuous frame connected domain data smoothing operation results 185 经过大量的测试,该算法远端线框中目标车辆连通域统计准确率在90%以上,特别是 视频质量较好时,对单个车辆的检测几乎没有遗漏。主要问题集中在高速公路中出现的大型 货车(车身较长),由于车身较长,导致进过形态学处理后,其二值化图像也有部分存在分 裂现象,使虚拟线框对连通域数量出现误判,这是属于形态学处理的遗漏问题。为了解决这 190 个问题,我们结合近端和远端虚拟线框的检测数据,对远端虚拟线框内目标前景的连通域用 7*1 的模板直接进行闭运算,由于该模板的特点,所以不会对连通域的水平方向像素有任何 影响。 2.1 区域切割 图像分割的是根据不同场景或运算目的将图像分割为不同的检测区域。例如,有根据区 195 域灰度的不连续性,通过检测目标区域之间的边界来处理,也有以像素性质分布为基础的门 限分割(如灰度级的值和颜色)。在车流量统计系统中,目标车辆的检测和统计是核心,也 是根本目的。而区域分割又作为目标检测不可或缺的部分,可见其重要性。 用数学公式来表示传统区域分割技术如下: 设Z 表示整幅图像,则区域分割可看成是Z 被划分为n 个不同的子模块,这里我们用 1 z , 2 z ,L, n 200 z 来表示。则有分割区域一般具有如下性质: a) 1 , 1,2, , n i i z Z i n = U = = L ; b) 每一个分割出来的i z 都是一个连通区域; c) 当i≠ j时, i j zIz = ∅ ; d) ( ) i T z =true; e) 对于任意相邻的i z 和j z , ( ) i j 205 T z Uz = false; 上面的( ) i T z 是定义在i z 上的逻辑谓词。例如区域i z 中所以像素点有相同的颜色,则是 ( ) i T z =true,条件e 则是说明区域i z 和j z 的逻辑谓词不一样[10]。 在这里,我们的区域分割,不同于传统的分割方法,不是对整幅图像Z 进行区域分割, 而是只针对虚拟线框的区域。通过按照车道宽度对虚拟线框检测区进行划分区域,从而分割 210 有目标车辆遮挡或粘连的情况。该分割方法的思路如下: 首先,根据测试预先得到单个车道在远近虚拟线框中所占的像素宽度,在结合所得到的 车道所占像素宽度对各虚拟线框进行分割区域,分割出的各区域中的共性就是,当有目标车 辆进过虚拟线框时,所有车辆的宽度要小于单个车道的宽度,所以车辆应该是完整通过各分 割区域的(由于多车道高速公路上车辆都是在车道内行驶的,几乎不存在违章的压线行驶)。 215 2.2 分割区域车流量统计 就测试用的右车道情况来说,由于车流是顺着摄像机的方向,所以可以确定近端虚拟线 框检测出的目标车辆数总要先于远端虚拟线框的检测数(因为车辆是先通过近端虚拟线框)。 一、 近端虚拟线框内连通域处理: 由于近端目标车辆信息较多,容易出现同一个目标的连通域空洞,所以用7*1 的核直接 220 进行膨胀,该操作即不影响连通域宽度,也不会与前方车辆连通域出现粘连或遮挡的情况, 因为近端目标车辆距离摄像机较近,使得实际车距在近端也有很大的差距,所以不考虑前后 车辆遮挡问题。之后提取对各分割区域内的连通域的宽度,对连通域宽度小于半个车道宽度 的不予计数。因为大型货车在通过近端线框时,由于摄像机角度的问题,形态学处理后会覆 盖相邻车道的区域,而一个完整的目标最少也占用了车道的2/3 宽度,所以半个车道宽度的 225 阈值是合理的,从而可解决近端线框车辆遮挡和粘连的情况。 二、远端虚拟线框内连通域处理: 与近端情况刚好相反,远端由于视角问题使得目标车辆所占像素相对较少,而且前后车 辆遮挡和粘连的情况较多,而水平方向上较少,所以我们根据这一情况只用5*1 的模板进行 闭运算,而不是直接膨胀。对单个分割区域内的检测与近端法则是一样的,都是以预定车道 230 宽度的一半为阈值来划分。 三、大型车辆的判定: 由于目标车辆的误统计大都是因为大型车辆遮挡或粘连引起的,所以我们首先要在近端 虚拟线框检测区内判断出通行连通域是否是大型车辆:首先设置多个deq_near 容器(根据 近端分割区域的多少来确定数量)用来储存连续帧近端单个分割区域虚拟线框内的目标连通 235 域数,再进过前面提到的连续帧连通域个数平滑的操作,这些deq_near 内存储的数据只可 能是连续的0 或连续的1。我们就是这连续的1 的个数来判定该连通域属于大型车辆还是小 型车辆,因为大型车辆车速较慢,车体较长,所以其通过连通域的时间也叫长,这里的时间 我们可以理解为帧。通过实验结果显示,大型车辆连通域通过近端虚拟线框的时间一般在 35 帧以上,而小型车辆最慢也才20 帧,所以我们设定的阈值为28 帧,也就是说当deq_near 240 有连续28 个1 出现后,我们判定该连通域为大型车辆。 四、车流量统计修正 假设我们将虚拟线框检测区分割为N 个单独区域(N 为划分的车道数,实验数据为4), 则按照前面的统计方法有num_ near1,num_ near2 ,…, num_ nearN 个近端虚拟线框目 标车辆的统计数据,它们表示当前时刻所有以通过该单车道区域的车辆数。我们用 245 num _ near 表示当前时刻所有以通过该近端虚拟线框的车辆数。对应的远端虚拟线框的统 计数据分别为num_ far1, num _ far2 ,num_ farN 和num _ far ,则有: 学术论文网Tag:代写硕士论文 代写论文 代写MBA论文 代写博士论文 |