QT+OpenCv实现在410c开发板上实现视频目标追踪预研——目标跟踪算法选择

来源:互联网 发布:废旧金属行情软件 编辑:程序博客网 时间:2024/05/22 02:11
    
      目标跟踪算法作为一种有着非常广泛的应用的算法,在航空航天、智能交通、智能设备等领域有着非常广泛的应用。本系列博客将教大家在410c开发板上基于linux操作系统环境,采用QT+Opencv来实现视频目标跟踪,本文将首先向大家介绍常用的粒子滤波视频目标跟踪算法,对其原理进行简单的分析,为后续进一步选择和应用算法实现目标跟踪提供基础。
  一、机器视觉及相关理论及OpenCv
       机器视觉是人工智能领域正在快速发展的一个重要分支,其目标重要是通过机器来代替人眼来进行检测和判断,如下图1所示,是一个典型的机器视觉系统的构造图,包括镜头、摄像机、图像采集卡、计算机系统、输入输出设备、控制机构等模块,待测目标通过镜头处理后的影像传输给摄像机,摄像机捕获待检测目标的图像后将其转换为店信号输入到图像采集卡进行初步的处理,最后输入到计算机中,计算机对其进行分析和处理并将结果送入到控制机构对设备进行控制,实现智能化的控制和处理。

图1 机器视觉原理
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法,基于OpenCv可以方便的实现各种机器视觉的图形算法处理,起提供了各种应用于机器视觉处理的图形处理运算算法,具有非常高的速度和效率,是当前机器视相关产品开发和理论研究的重要工具。
二、粒子滤波视频目标跟踪算法
视频目标跟踪是机器视觉处理的一个重要环节,如何快速的实现对视频目标的各种和各种目标轨迹的识别成为了当前视频处理研究领域的热点,粒子滤波视频目标跟踪算法作为目前常用的一种高性能的目标跟踪算法,已经被广泛的应用到各种视频目标跟踪处理中,该算法是利用了一种从带噪声的数据中估计出粒子运动状态的技术,在状态空间中通过传播大量的具有一定权限的离散的随机变量来近似概率分布并进行递归计算,最终实现对目标运动状态的预测,粒子滤波这一概念也是得于这种随机变量的分布就类似于实物中的粒子分布而来,如下图2所示,是一种典型的基于粒子滤波算法实现的视频目标跟踪。

图1 基于粒子滤波算法实现的视频目标跟踪
下图2是一种经典的粒子滤波算法的实现原理:
图2 粒子滤波算法实现原理及流程
在粒子滤波算法的实现过程中,其核心就是基于贝叶斯抽样估计的序列重要性采样原理进行设计,其摆脱了传统的解决非线性系统状态估计中所用的近似线性化以及随机量必须满足高斯分布的制约,极大地提升了对非线性系统状态估计的性能。
三、高通410c开发板核心资源及性能
DragonBoard 410c平台,使用的 APQ8016处理器是一款基于64位四核ARM Cortex-A53 MPcore哈佛架构超线程核心,同时支持LP-DDR2/LP-DDR3 SDRAM接口, Hexagon QDSP6, 13.5MP 摄像头输入支持, Adreno 306 GPU, 1080P视频解码/编码, 基于GLONASS的gpsOneGen 8c, 蓝牙4.1, OpenGL ES 3.0, DirectX,OpenCL,渲染脚本计算,FlexRender支持。其板载主要硬件结构如下图3所示。

图3 410c板载硬件结构
按照图上所示,其对应的编号的模块信息如下:

  四、算法选择
在对粒子滤波算法的基本原理的分析基础上,在粒子滤波过程中,其计算量最大的就是预测中的采样处理需要耗费大量的CPU计算处理资源,而通常从一副800万像素的图片的处理来看,其理论的处理像素点为800万个,但是在实际的处理过程中,其大部分的像素点在粒子滤波的过程中被舍弃,根据最优贝叶斯估计的眼里,只会处理部分的随机状态量,并且采样数也可以根据需要进行设置,在操作系统的支持下,其预计其处理每帧的最大用时在30ms左右,可以很好的满足处理过程中可以很好的满足人眼的极限值24帧的处理速度,并且较为流畅,因此后续选择粒子滤波算法来实现目标追踪的核心理论上可以满足视频目标跟踪的处理要求。
后续的本博客的第二个部分《QT+OpenCv实现在410c开发板上实现视频目标追踪预研——(二)粒子滤波算法测试》将在此基础上,进一步在上位机平台上搭建粒子滤波视频目标跟踪系统对粒子滤波算法性能进行测试,进一步验证其在DragonBoard 410c平台上实现的可行性。
1 0