论文部分内容阅读
多核并行编程技术的发展,给那些受限于单核运行速度的程序带来了新的曙光,尤其对于那些有时间死限约束的实时程序。在智能交通系统中,基于视频的串行目标跟踪程序在实际应用过程中,如果同一场景中出现的目标数过多,程序将出现严重的性能问题,其实时性无法得到保障。如何设计和开发基于多核技术的目标跟踪程序,以充分利用多核计算优势带来的系统性能提升,成为改善视频目标跟踪程序实时性的一种有效手段。均值漂移算法和粒子滤波算法是两种常用的目标跟踪算法。均值漂移算法是一种非参数化的密度梯度上升方法,通过迭代方式找到目标的新位置。而粒子滤波算法在复杂环境下仍具有优异的跟踪性能。它是一种基于传播样本集的递归Bayes滤波器,在短时间内受遮挡丢失目标后能恢复跟踪,抗干扰能力强,但是其计算量大,在实时程序中容易成为系统的瓶颈。本文针对两种算法存在运算量大、运行速度慢等的问题,分析了两者的特点,借助Intel(?) Parallel Studio工具得出程序的瓶颈和热点区域,再利用基于OpenMP多核并行编程技术对这些地方进行了并行化。另外,本文提出了一种车辆跟踪并行流水线模型,使得视频帧能够进行流水处理。并行区域流水线阶段模型中的每个阶段以并行线程的形式映射到各个处理器上同时执行,以加快程序的执行。模型的优缺点和实际程序的运行加速比也在本文中进行了讨论在四核的环境下对串、并行的均值漂移算法和粒子滤波算法进行运行时间统计,可计算出并行程序的加速比。实验结果表明了多核并行编程技术在提升程序性能方面的优越性,多核程序充分利用了多核计算资源,克服了串行跟踪算法在应用中的性能瓶颈,达到了预期的优化目标。