基于DM6437上开发的行人识别程序的结构分析

行人识别在未来辅助驾驶领域会发挥重要的作用,但是在嵌入式上实现时,必须面对处理器性能问题。因此需要对算法进行调整与优化,以适应于DM6437上运行。

行人识别算法类型的分析

通过总结行人识别的算法流程,可以分为两大类:

  1. 需要定时执行的算法,如视频帧的交换、路面识别算法。这类算法并不需要太多的计算量,但是对实时性较敏感,需要按时执行。
  2. 需要持续执行的算法,如行人识别算法。这类算法计算量较大,但是实时性要求较低,这类算法可配置让他在CPU空闲状态下持续运行。

行人识别算法框架设计

通过上面的分析可以看出,行人识别算法的执行依赖于底层的定时器,软中断和任务,但是直接针对算法配置这些功能并不是最佳选择。随着硬件价格不断下降和算法复杂性的增加,硬件平台就有更换的必要,如果算法太过于依赖底层平台,会给更换平台带来巨大的工作量。因此,需要通过服务层完成对底层平台的适配,为算法屏蔽底层的细节,以服务的逻辑为上层算法提供定时执行服务。

  1. 针对定时执行的算法,可以通过配置定时器,按需触发执行。为保证算法执行的实时性,可以让定时器触发软中断,并且为实时性要求高的算法所对应的软中断配置较高的优先级,由软中断触发算法执行。
  2. 针对持续执行的算法,该任务的核心是一个死循环的任务,这个死循环会依次执行载入的算法,最大化利用CPU的计算能力。