新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 分布式多视角目标跟踪算法在OMAP3平台上的实现与优化

分布式多视角目标跟踪算法在OMAP3平台上的实现与优化

作者: 时间:2011-05-21 来源:电子产品世界 收藏

  4.2 软件优化

本文引用地址:https://www.eepw.com.cn/article/119685.htm

  软件优化就是对程序代码进行优化。只在C语言的层面上进行优化有利于保持程序良好的移植性。不管是ARM上的C程序,还是DSP上的C程序,其优化的一般方法都具有相似性。

  A.dsplib的使用:TI公司为程序员提供了一个高效的函数库dsplib,这个函数库实现了很多常用运算,如相关、乘加、FFT等。通过使用dsplib,一方面减少了算法优化的时间和工作量,另一方面又能到达与汇编优化相近的效果。

  B.循环内部优化及循环展开:内循环往往是程序运行效率低下的瓶颈,通过优化内循环代码,可以大大提高代码的运行效率。一方面,应尽量精简内循环的代码,合理安排内循环存储器的操作;另一方面,通过循环展开的方法提高代码运行的并行程度,充分发挥C64+DSP单周期多指令的性能。

  C.提高存储器操作的并行性:通过在函数声明中使用关键字const和restrict等,并合理安排存储器的操作,可以消除存储器的关联性,使串行的存取操作变成并行的存取操作,从而提高程序运行速度。

  D.浮点运算转定点运算:C64+DSP核是一款定点DSP处理器,不支持硬件的浮点运算,只支持软件的浮点运算。为了提高运算速度,需要尽可能把浮点运算转化为定点运算。

  E.intrinsics函数(内联函数)的使用: instrinsics是直接映射为内联的C64x+指令的特殊函数,使用instrinsics函数相当于在一定程度上做汇编优化,可以大大提高了代码的执行效率。

  5.实现的性能与结果

  5.1 跟踪效果演示

  图3所示为遮挡情况下跟踪情况。本系统可以抗各种类型遮挡,包括短期遮挡,长遮挡。此外,本系统为分布式跟踪,也就是说部分节点的失效并不会影响我们最终的跟踪效果,节点的失效可以是网络的出错或者节点断电。在图4中从左到右有三个视角,每个视角内的白框为当前视角跟踪结果,蓝框为其他视角的跟踪结果在本地的投影。视角内的绿色点为粒子位置。

  一帧视频消耗的DSP周期数

  为了测量优化效果,我们使用CCS对跟踪算法进行了离线仿真。通过使用Clock工具和断点配合,我们可以精确地得到整个程序处理一整帧视频数据及程序内各函数需要的时钟周期数。我们选取了其中一个摄像头的某一帧视频,对跟踪算法所消耗的时钟周期数进行测量。表1显示了优化前和优化后这帧视频所消耗的DSP时钟周期数。表1只对DSP上运行的跟踪算法的主流程进行测量,其他的如视频采集和预处理等不在测量范围中。

  从表中可以发现,在小模板的情况下,优化比率并不高,这是由于粒子滤波中产生粒子的开销不随模板的变化而变化。在模板较大的情况下,优化比率迅速上升,因为起主导作用的是SSIM计算函数和插值函数。特别是SSIM计算函数,其优化比率随模板大小增加而迅速上升。在63×63大小的模板下,SSIM计算函数优化比率为117.6倍,而插值函数的优化比率为32.9倍,插值函数的优化比率基本不随模板的大小而变化。



评论


相关推荐

技术专区

关闭