MATLAB车辆运动目标跟踪检测系统设计‌

课题介绍   

本设计为基于MATLAB的运动车辆跟踪检测系统。带有一个GUI界面,可以读取高速路车流视频,读取视频信息,并且统计每辆车经过左车道还是右车道,车速和平均速度检测,以及某一帧下的车流密度,以及最后总共经过的车辆总数。将运动检测到的目标用方框框起来。是一个非常不错的选题。

二、实现功能

车流密度:一定时间内经过车辆的总数;

车流量:某一帧下的车辆数目;

车速:经过车辆的实时速度;

平均速度:所有车辆的平均速度;

三、GUI界面以及运行效果

1、视频读取
[filename, cd1] = uigetfile( ...
    {'*.avi;*.mp4;'},'Pick an Video');

if filename
    filename = [cd1,filename];
    video = vision.VideoFileReader(filename, 'ImageColorSpace', 'RGB');
end
axes(handles.axes1);
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
box on;
2、判定车道以及车速
      thresh = 120;        % 判定左车道和右车道分届的阈值

      for n = 1 : size(bbox,1)
%            fprintf('y: %f \n',bbox(n,2));
           pos = bbox(n,1) + bbox(n,3);
           if bbox(n,2) < 45 && bbox(n,2) > 35
               if pos < thresh && (size(left,1) == 0 || i - left(size(left,1)) > 4)            % 记住刚进入的车
                   left = [left;i];
               elseif (size(right,1) == 0 || i - right(size(right,1)) > 4)
                   right = [right;i];
               end
           else
               fm = 30;              % 视频帧率,参数可调,这里假设为30帧每秒
               len = 30;            % 视频中路段的长度,参数可调,这里先定位100m
               if pos < thresh             % 判断要开出该区域的车
                   if bbox(n,2) > 85 && size(left,1) > 0
                      vleft = i - left(1,1) + 2;            % 这里计算左车道车速,帧数
                      if vleft < 30 && vleft > 4                % 因为车速再慢也会大于一定速度
                          left(1,:) = [];
                          t = vleft/fm;                      % 计算实际时间  帧数/每秒帧数
                          vleft = len/t;                     % 计算实际车速   距离/实际时间,vl为坐车道速度
                          v1=v1+vleft;
                          v1
                          fprintf('左车道,车速: %f \n',vleft);
                          set(handles.edit_speed,'string',strcat('左车道:',num2str(vleft)));
                    else
                          left(1,:) = [];
                      end
                   end
               else
                   if bbox(n,2) > 80 && size(right,1) > 0
                       vr = i - right(1,1);                        % 这里计算右车道的车速,这里还是帧数
                       if vr < 35
                           right(1,:) = [];
                           t = vr/fm;                      % 计算实际时间  帧数/每秒帧数
                           vr = len/t;                     % 计算实际车速   距离/实际时间
                           v2=v2+vr
                           fprintf('右车道,车速: %f \n',vr);
                           set(handles.edit_speed,'string',strcat('右车道:',num2str(vr)));
                       else
                           right(1,:) = [];
                       end
                   end
               end
           end

3、车辆总数
 k=1;q=1;p=1;%初始化变量
 for j=1:(i-2)    %对检测到的车辆进行求和
         if count(j)==0 & count(j+1)>0
             k=j+1;
        else if count(j)>0 & count(j+1)==0
             q=j;
             summ1=summ1+max(count(k:q));
             cheliang_jishu(p)=max(count(k:q));
             p=p+1;
            end
         end
 end

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空