微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DM642的实时运动目标检测系统

基于DM642的实时运动目标检测系统

时间:08-26 来源:互联网 点击:

BS引脚输出,这样系统的处理结果就可以在显示器上实时地显示。

  2.2 算法的DM642实现

  系统的软件在TI提供的集成开发环境CCS完成,编程用C语言和汇编语言实现,软件采用TI推荐的RF-5架构,采用了三个线程tsk_inpu-t、tsk_process、tsk_output。

  软件的执行流程如下:

  (1)TMS320DM642的初始化。包括初始化BIOS、CSL、设置CACKE;

  (2)初始化RF-5模块。用CHAN_init,ICC_init,SCOM_init分别初始化CHAN模块、ICC模块、SCOM模块;

  (3)DSP/BIOS根据操作系统的调度规则环调度执行tsk_input、tsk_process、tsk_output三个线程。其中tsk_inpufi通过按照顺序调用FVID_create、FVID_control、FVID_aUoc函数实现对FVID驱动的调用,打开输入通道,实现得到SAA7ll5获取的BT.656格式的YUV422数字视频码流。tsk_process负责对tsk_input线程获取的数字图像进行运动图像检测算法的处理,其中要调用到上一节所述的算法函数,经过处理,运动目标被分割出来。tsk-output负责调用FVID_create、FVID_control、FVID_alloc函数,打开输出通道实现对已经分割处理的数字视频流通过SAA7105输出,在显示器上予以显示。这三个线程在DSP/BIOS的调度下循环并行运行,三个线程之间的数据交换通过SCOM模块实现。

  上述程序中,核心程序为tsk_process线程,其主要代码如下:

  While(1)

  {……

  Background()://获取背景并根据条件更新

  Diff_picture()://背景与当前图像差分

  Otsu_binary(): //由改进的大津法进行阀值分割并二值化

  Filter_obitct()://对二值化图像进行滤波得到运动的物体,即为检测的结果。

  ……

  }

  2.3 软件优化

  应用TMS320DM6425开发运动目标检测系统时,为保证检测结果的高效、实时,软件代码的优化显得尤为重要。基于TMS320DM642编程时,我们参照该芯片的特点在编写算法时进行了如下的优化:

  (1)使用流水线技术。采用编译选项-o2、-o3,充分利用软件流水线方式提高运行效率。

  (2)对寄存器进行优化,通过CCS自带的性能分析工具Profiler对调用频率高的C语言代码采用汇编语言改写,并采用汇编优化器进行优化,使代码的执行效率得到最大限度提升。

  2.4 实验结果

  基于DM642的运动目标检测系统实验结果如图3所示。

  

  3 结论

  本文采用TI的专用图像处理芯片TMS320DM642构建硬件平台,采用背景差分法来检测运动物体,采用大津法获取自适应阀值,并按阀值取值来判断是否有物体运动,这样简化了后续的形态学处理,然后再对差分图像进行二值化处理,最后用形态学处理消除孤立的点,经过试验,本文的运动检测系统有很强的适应能力,能避免背景死锁情况,并能最大程度抑制拖影和空洞现象的产生。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top