目标跟踪算法作为一种有着非常广泛的应用的算法,在航空航天、智能交通、智能设备等领域有着非常广泛的应用。本系列博客将教大家在410c开发板上基于linux操作系统环境,采用QT+Opencv来实现视频目标跟踪,本文将首先向大家介绍常用的粒子滤波视频目标跟踪算法,对其原理进行简单的分析,为后续进一步选择和应用算法实现目标跟踪提供基础。
一、机器视觉及相关理论及OpenCv
机器视觉是人工智能领域正在快速发展的一个重要分支,其目标重要是通过机器来代替人眼来进行检测和判断,如下图1所示,是一个典型的机器视觉系统的构造图,包括镜头、摄像机、图像采集卡、计算机系统、输入输出设备、控制机构等模块,待测目标通过镜头处理后的影像传输给摄像机,摄像机捕获待检测目标的图像后将其转换为店信号输入到图像采集卡进行初步的处理,最后输入到计算机中,计算机对其进行分析和处理并将结果送入到控制机构对设备进行控制,实现智能化的控制和处理。
图1 机器视觉原理
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法,基于OpenCv可以方便的实现各种机器视觉的图形算法处理,起提供了各种应用于机器视觉处理的图形处理运算算法,具有非常高的速度和效率,是当前机器视相关产品开发和理论研究的重要工具。
二、粒子滤波视频目标跟踪算法
视频目标跟踪是机器视觉处理的一个重要环节,如何快速的实现