与个人计算机计算能力、可用内存和内部数据的表达相比,嵌入式平台拥有有限的资源。资源的局限性为跟踪算法施加了很多约束。
算法中的一些计算步骤(如下)面临匮乏的资源,从而难以实现实时追踪。
①计算轨迹跟踪的复杂描述符(如多维颜色直方图)。
②引入大量的关联假设(例如,马尔可夫链蒙特卡尔计算,多假设跟踪),会导致搜索空间维度的组合爆炸。
③涉及互相影响的大量目标,需要复杂的遮挡处理。
④需要许多的迭代或搜索步骤来估计新的目标状态。
另一方面,随着晶体管密度增加(摩尔定律),诸如高度并行的SIMD处理引擎,这些嵌入式并行处理架构的性能将不断提升,能应对更复杂的追踪算法。
在嵌入系统中,需要考虑许多与硬件和软件相关的内容。有效的硬件、软件对于达到预计的设计目标和增加系统的鲁棒性极其重要。特别地,一个智能的软件设计策略对于资源的有限显得格外重要。只要有可能,就应该避免动态分配存储空间的计算方式,例如,使用静态数组代替动态列表;在编译时就预知数组大小会更好。一个常见的改进策略是使用完整的算法计算代替浮点型的计算。Schlessman等人[471]声明要考虑特别的设计软件和硬件,可以把跟踪系统从PC移到现场可编程门阵列平台。作者指出了避免复杂算法操作的重要性,例如二次方根运算和除法运算,以及最小化表示像素的比特流。在其他硬件结构中,为每一个任务设置处理单元。
一个可能构架包括一个摄像机(例如一个标准的CCTV摄像机),以及在一个嵌入式的硬件平台上能够实现对当前场景进行分析的图像处理系统,该系统基于视频流。可在线执行这样的分析来评估当前监视方案。由于这样的分析,主要的典型参数可以存储在数据库中,能够被进一步的访问和处理。图11.8解释了这种思想。(www.xing528.com)
另外一个有趣的策略是在计算机视觉算法外实施硬件资源的管理。虽然这个途径需要在实现步骤中进行更多的努力,它最主要的优点是硬件管理和计算机视觉任务之间的相互独立,以及公共调用接口所要求的算法互换性。Glasl等人[214]应用这种方法从一个实时方案中获取了交通数据参数。
当硬件结构中包括许多处理单元,就有可能像计算机那样进行处理。在这样的结构中,处理器由许多处理单元组成,每一个处理单元拥有有限的内存和算法逻辑单元。提取图像中的数据后,一个输入/输出单元把数据转为并行,存储在缓存中。通过每一个处理单元可以访问这个缓存。图11.9描述了这样的结构。这样的一个应用是最近由Medeiros等人[371]提出的。对于行人的跟踪,他们在SIMD处理器上应用了粒子滤波器,它是基于对一个直方图的计算,且在不同的处理单元中以并行方式实现。
图11.8 可运行图像处理算法的嵌入式平台架构
图11.9 许多处理单元组成的硬件结构
最后,考虑到专用软件的优化,可通过3个最主要的步骤:基于编译器的优化;基于系统的优化;汇编级的优化。基于编译器的优化试图使速度最大化,同时探索结构特征(例如矢量化,流水线)和编译功能。通过合理划分存储器和正确的数据流可以在系统级得到优化。最终的优化是由汇编语言实现的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。