论文部分内容阅读
运动目标检测是视频跟踪和分析的基础,其中一个首要而关键的任务是从视频序列中确定运动目标。背景消减法是目前确定运动目标最常用的方法,其核心是将当前包含运动目标的视频帧和一个背景参考帧相差,将其中差值较大的像素区域标记为运动目标。在背景建模各方法中,混合高斯建模方法是公认的检测效果和适应性都较好的方法,但其所需计算量巨大,难以实时实现。图形处理器(GPU)通过大量的流计算单元为加速此类应用提供了新的计算平台,因而针对GPU平台,挖掘背景建模算法的并行性并进行优化,以提高实时性,对于扩展其应用范围和降低应用成本,具有重要意义。通过利用GPU平台上的CUDA编译环境,从线程级并行和异步流处理并行两个方面对自适应混合高斯背景建模算法进行并行化改进。线程级并行化主要是利用CUDA的内核函数(kernel),将原算法里的每一个像素的背景更新过程映射到GPU的一个流处理单元上进行处理,通过多线程的并行执行,来加速计算速度。异步流处理优化借鉴了流计算的边传输边计算的思想,通过隐藏数据传输所带来的时延来加速计算过程。这里利用CUDA编程模型中的流概念,通过创建多个流,使每个流之间的数据传输和计算可以重叠进行,这样就从整体上获得了计算性能的提升,达到了加速的效果。同时,对每个像素的模型参数按照行序优先的规则以分块方式进行组织存放,以配合多流并行处理时内核函数处理数据的需要,保证内核函数能及时存取所需要的数据。在采用了CUDA线程级并行化后,通过对分辨率分别为384×288、640×272、720×576、1280×720和1920×1080的视频进行测试,结果表明,在Debug模式下平均建模时间分别快了40.932ms、94.656ms、228.012ms、547.759ms和861.459ms;而在Release模式下的平均建模时间分别快了10.362ms、33.421ms、71.594ms、173.609ms和156.02ms。在此基础上,以采用8个数据流为参照,进一步进行异步流处理优化后,在Release版本下的测试结果表明:在5种分辨率下,平均建模时间比优化前分别又快了2.640ms、3.769ms、10.703ms、19.331ms和55.335ms。由此可见,在GPU平台上通过线程级并行化和异步流处理优化后,确实可以大幅度地加速混合高斯背景建模算法的执行过程。本文研究工作得到国家自然科学基金项目:嵌入式多媒体流计算的自适应机制与跨层优化(编号:60873029)和华中科技大学自主创新研究基金(编号:2010MS014)的支持。