基于光流场的交通汽车检测跟踪
本文主要研究基于光流场的视频车辆检测与跟踪技术,主要工作包括:
1.受外界环境以及摄像机等因素的影响,采集的视频图像往往受各种噪声影响,这会降低光流法检测运动目标的准确度。因此在检测运动目标之前,需要对图像进行图像平滑预处理,包括中值滤波、均值滤波、动态滤波三种去噪方法。
2.运动目标检测的关键就是要把目标物体提取出来,即将目标物体从复杂的背景中分离出来。传统的目标检测方法首先要提取出静态背景图像,然后将序列图像与背景图像相比较以提取目标物体,这种方法数据处理量较大。本文主要介绍基于Horn-Schunk算法、Lucas-Kanade算法、块匹配算法和基于相位的方法。通过实验表明H-S算法、L-K算法能够有效检测出运动目标,然而都存在一定的优劣性。
3.运动目标跟踪采用Horn-Schunk算法,通过实验仿真有效实现了运动目标跟踪,实验证明这种方法减少了数据处理量,能够满足现实中对目标物体实时跟踪的需要。
主函数:
clc; clear all; close all;
videofile = 'viptraffic.avi';
reader = VideoReader(videofile);
opticFlow = opticalFlowHS;
while hasFrame(reader)
im = readFrame(reader);
im_gray = rgb2gray(im);
flow = estimateFlow(opticFlow,im_gray);
figure(1);
subplot(1, 2, 1); imshow(im, []); title('原图');
subplot(1, 2, 2);
imshow(im)
hold on
plot(flow,'DecimationFactor',[5 5],'ScaleFactor',25)
hold off
title('光流场标记图');
end
光流场的计算主要有基于梯度的方法、基于匹配的方法、基于能量的方法和基于相位的方法。
可以自行指定链接绘图
源码添加链接描述下载地址:
https://download.csdn.net/download/dongbao520/85706021
部分参考来源:
https://blog.51cto.com/u_15295137/5169459
https://blog.csdn.net/m0_60703264/article/details/121214423