发明名称 一种车辆检测和跟踪方法
摘要 本发明公开了一种车辆检测和跟踪方法,包括以下步骤:1)通过安装在路边的摄像头对车辆进行拍摄;2)对采集输入的视频中的每一帧图像,利用改进的混合高斯建模;3)在图像中进行车辆检测和定位提取运动车辆的目标颜色和形心距离特征信息,用于视频车辆跟踪;4)匹配不同视频帧,判断是否属于同一车辆。本发明所设计的自适应混合高斯算法可以较为有效的克服光照突变的影响,从而为车辆的跟踪做好准备工作,全自动多目标跟踪,明解决了车辆跟踪中目标容易丢失的问题,车辆跟踪成功率高且应用范围较广。
申请公布号 CN106446824A 申请公布日期 2017.02.22
申请号 CN201610836670.6 申请日期 2016.09.21
申请人 防城港市港口区思达电子科技有限公司 发明人 罗盛雄
分类号 G06K9/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 北海市佳旺专利代理事务所(普通合伙) 45115 代理人 黄建中
主权项 一种车辆检测和跟踪方法,其特征在于,包括以下步骤:S1:通过安装在路边的摄像头对车辆进行拍摄;S2:对采集输入的视频中的每一帧图像,利用改进的混合高斯建模,在图像中进行车辆检测和定位,具体是:S2‑1:对读入的图像进行灰度化,并运用滤波技术消去噪声点;S2‑2:在视频的前20帧对混合高斯的背景模型进行训练,视频第20帧之后,对背景模型进行更新,利用此模型进行前景目标的提取,检测出的前景图像是一个二值化图像,像素值只有0和255两种;S2‑3:设计一个环境变化因子λ,其值为二值化前景图像中像素值为255的像素点个数T<sub>f</sub>占总像素点个数T<sub>b+f</sub>的比例值,其计算公式为λ=T<sub>f</sub>/T<sub>b+f</sub>,同时设计了两个阈值T<sub>1</sub>和T<sub>2</sub>(T<sub>1</sub>&gt;T<sub>2</sub>),这两个阈值分别代表目标像素点占总像素点比例较大和较小的情况,在进行实际检测前,应该对没有发生突变的环境进行分析,然后确定这两个阈值;计算并设定具体的混合高斯模型学习率,如下:α=α<sub>1</sub>,λ&gt;T<sub>1</sub>;α<sub>2</sub>,T<sub>1</sub>≥λ&gt;≥T<sub>2</sub>;α<sub>3</sub>,λ&lt;T<sub>2</sub>其中,α<sub>1</sub>、α<sub>2</sub>、α<sub>3</sub>分别是三个学习率,且α<sub>1</sub>&gt;α<sub>2</sub>&gt;α<sub>3</sub>;S2‑4:对提取出的二值化图像进行除掉噪声处理,并对空洞进行填充;用凸壳填充法对前景目标进行完全填补,如果学习率被设置成一个较大值时不进行凸壳填充;S2‑5:去除掉面积较大和较小的团块区域,求取检测目标的最小外接矩形,并将检测出的目标加入所设计的检测容器;S3:提取运动车辆的多个特征信息,用于视频车辆跟踪,具体是:对车辆所在矩形搜索框进行目标颜色和形心距离的提取;S4:匹配不同视频帧,判断是否属于同一车辆,具体是:S4‑1:在视频的前20帧对改进的混合高斯模型进行训练,第20帧后运用混合高斯模型进行目标检测,当第一次检测到车辆目标时,将其加入所设计的跟踪链表,然后为其分配卡尔曼滤波器和ID号;S4‑2:利用改进的混合高斯模型进行目标检测,将检测出的结果加入检测链表,并计算每个被检测出目标的形心坐标;S4‑3:查询被跟踪链表,对存在于链表中的每一个车辆目标进行Kalman预测,获得目标在当前帧中的预测坐标,然后在预估位置处运行CamShift算法,进而求得被跟踪目标在当前帧中的实际形心坐标,最后再用此坐标对Kalman滤波器进行校正;S4‑4:设计一个多目标跟踪列表,表中第一行实际上是一个跟踪容器,代表被跟踪的目标,第一列为当前帧中被检测出的目标,TD11、TD21.......TDij为已被跟踪目标用CamShift算法预测出的形心和被检测出的目标形心之间的距离,设定阈值为45,当移动距离小于此阈值时,可以认定此距离对应的被检测目标和被跟踪目标为同一目标;在进行完S4‑3步骤之后,求取从第S4‑2、S4‑3两步获得的各个形心坐标之间的距离,并将结果加入跟踪列表;多目标跟踪列表如下:<tables num="0001" wi="165"><table><tgroup cols="5"><colspec colname="c001" colwidth="20%" /><colspec colname="c002" colwidth="20%" /><colspec colname="c003" colwidth="20%" /><colspec colname="c004" colwidth="20%" /><colspec colname="c005" colwidth="20%" /><tbody><row><entry morerows="1"> </entry><entry morerows="1">T1</entry><entry morerows="1">T2</entry><entry morerows="1">……</entry><entry morerows="1">Ti</entry></row><row><entry morerows="1">D1</entry><entry morerows="1">TD11</entry><entry morerows="1">TD21</entry><entry morerows="1">……</entry><entry morerows="1">TDi1</entry></row><row><entry morerows="1">D2</entry><entry morerows="1">TD12</entry><entry morerows="1">TD22</entry><entry morerows="1">……</entry><entry morerows="1">TDi2</entry></row><row><entry morerows="1">……</entry><entry morerows="1">……</entry><entry morerows="1">……</entry><entry morerows="1">……</entry><entry morerows="1">……</entry></row><row><entry morerows="1">Dj</entry><entry morerows="1">TD1j</entry><entry morerows="1">TD2j</entry><entry morerows="1">……</entry><entry morerows="1">TDij</entry></row></tbody></tgroup></table></tables>S4‑5:求取跟踪列表中的最小值,如果此最小值小于所设定的阈值45,则可认为该最小值所对应的行和列元素为同一个目标,即代表在当前的视频帧中对此目标跟踪成功;为防止该最小值被重新求取,将该值加上45,然后继续求取最小值,直到所有值大于45为止;此时可认为对在前后两帧都出现的目标跟踪完毕;S4‑6:对于第一列被检测元素,如果在第一行中找不到与其距离小于45的被跟踪目标,则可认为此元素为新目标,此时需要对这个目标分配新的卡尔曼滤波器和ID号;S4‑7:对于第一行被跟踪的元素,如果连续N帧在第一列中都找不到与其距离小于45的元素,则可认为此目标已经消失;S4‑8:返回步骤S4‑2:,继续对新到来的视频帧进行处理。
地址 538000 广西壮族自治区防城港市港口区东兴大道603号东湾桃花苑1-2-801号