一种基于双核架构的视频跟踪与处理系统的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于双核架构的视频跟踪与处理系统的实现
王娇颖;陈卫东;贺峻峰;王超;张莹
【摘要】提出一种基于ADSP-BF561的视频跟踪与处理系统设计方法.系统利用ADSP-BF561的双核并行处理性能和丰富的视频编解码接口,采用一种相关跟踪算法对其进行优化,算法是一种以相关系数作为相似性度量准则的相关跟踪算法.对该系统进行测试,结果表明:针对PAL制目标视频图像序列,系统可以实现复杂背景下的实时目标跟踪,视频目标跟踪对每帧的处理时间为22 ms,解决了目标跟踪的实时性要求.%A design of video tracking and processing system based on ADSPBF561 was proposed. This system took full advantage of the excellent performance of dual-core processing and the profile interfaces of encoding and decoding. The paper used a correlation tracking algorithm based on correlation coefficient. And many measures were put forward to improve the speed of the algorithm, in order to satisfy the requirement of object real-time tracking. The experiment result based on the target video in phase alternating line (PAL) shows that the method can achieve object tracking in a complicated background in real time.
【期刊名称】《应用光学》
【年(卷),期】2012(033)003
【总页数】6页(P521-526)
【关键词】目标跟踪;ADSP-BF5 61;双核架构;相关跟踪算法
【作者】王娇颖;陈卫东;贺峻峰;王超;张莹
【作者单位】西安应用光学研究所,陕西西安710065;西安应用光学研究所,陕西西安710065;西安应用光学研究所,陕西西安710065;西安应用光学研究所,陕西西安710065;西安应用光学研究所,陕西西安710065
【正文语种】中文
【中图分类】TN911.73
引言
传统的数字图像处理通常采用图像采集卡,将模拟信号转换成数字信号,然后由个人计算机进行软件处理。
这样不仅不够灵活,处理能力也受到个人计算机和软件的限制。
随着CCD成像芯片工艺的改进和数字图像处理功能的提升,使得数据与计算量较大的图像硬件处理成为可能。
本系统以Blackfin ADSP-BF561芯片为核心,实现了一种基于双核架构的视频跟踪与处理系统。
该芯片具有高性能低功耗的特点,并且具有丰富的外设接口以及可实现独立于内核进行数据传输的DMA通道,这将使整个系统的结构设计更加简单,体积功耗更小。
由于市场上大多产品基于TI系列DSP进行开发,因此本系统基于ADIBlackfin系列开发具有一定的实用意义。
1 系统设计分析
ADSP-BF561处理器[1]是 Blackfin系列中的高性能产品,可用于多媒体和通信方面的各种应用[1]。
该器件的核心由两枚独立的Blackfin处理器组成。
这些Blackfin处理器将dual-MAC处理引擎,RISC式微处理器指令集的优点,以及单指令多数据(SIMD)多媒体能力结合起来,形成了一套独特的指令集结构。
ADSP-BF561集成了一套通用的数字图像处理外围设备,为数字图像处理和多媒体应用创建了一个完整的系统基片上解决方案。
ADSP-BF561处理器是Blackfin处理器家族中性能较高的芯片。
它把600MHz
的CPU性能与1.2Mbit的高速L1SRAM和专门为多媒体应用而优化的一套外设
结合起来。
每个内核包含2个16bit乘法器,2个40bit累加器(MAC),2个
40bit的算术逻辑单元(ALU),4个8bit视频ALU和1个40bit移位器。
它支
持ITU-R-656视频格式的集成PPI端口,大大简化了具有视觉功能的多媒体系统设计。
高度并行及高性能的计算单元,加之可独立于CPU的DMA传输通道和
可配置的高速缓冲存储器(cache),可提高图像处理速度,为同时进行图像采集、处理和显示提供了一个系统基片上解决方案。
图1 ADSP-BF561内部结构示意图Fig.1 Sketch map of internal structure of ADSP-BF561
2 硬件设计
系统的硬件部分主要由CCD、解码器ADV7183、嵌入式处理器 ADSP-BF561、编码器ADV7179和监视器组成,如图2所示。
图2视频跟踪系统硬件结构框图Fig.2Block diagram of structure of hardware system
本系统的硬件平台是基于ADSP-BF561DEMO板进行搭建,该DEMO板提供了相应的视频输入输出端口,即PPI0和PPI1端口,将CCD摄像头直接接到该视频输入口。
CCD摄像头采集的视频经PPI0端口进入ADI公司提供的
ADV7183decoder,它是10位ADC的增强型视频解码器,其内含3个精确模/数转换器(ADCs)和完整的自动增益控制(AGC)电路。
BF561与ADV7183之间通过其专用视频接口PPI0接口相连,并通过I2C总线协议完成对ADV7183内部寄存器的读/写操作。
ADV7183把输入的隔行扫描的全电视模拟信号转换成PPI支持的数字视频信号。
在完成一帧信号的采集及A/D转换存储后,将启动ADSP-BF561处理器获取存储器中的数据,并对其进行处理,从而有效提取并完
成视频跟踪与图像处理功能,然后通过PPI1端口传输进入ADV7179encoder,
并通过I2C总线协议完成对视频格式的配置使其输出PAL制视频,最后通过监视
器显示处理结果实现跟踪。
3 软件设计
本系统在Visual DSP++5.0环境下采用C/C++进行编程,利用双核构架进行视频跟踪与处理[2]。
利用其中一个核控制视频输入与视频跟踪,下文中称为coreA,同时利用另一个核控制视频输出与图像处理,下文中称为coreB,双核协同工作完成视频跟踪与处理功能。
3.1 时序设计
本系统的数据存储和处理是较为关键的一部分,由于系统处理的是视频信号,需要具备数据容量大、速度高等特点。
用功能复杂的处理器内核做简单的数据搬运工作是极大的浪费,所以本系统采用DMA方式。
ADSP-BF561有3个独立的DMA 控制器,能够以最小的DSP内核开销完成数据自动传输。
DMA是独立于处理器
后台传输,独立于内核处理器。
本系统由于需要对跟踪目标进行定位显示,所以采用图3所示的时序,既将图像跟踪与处理和DMA传输完全并行起来,又保证跟
踪处理显示不被刷新。
如图3所示,本系统在SDRAM的3个不同bank上开辟了3个存储图像的空间,分别为Frame0、Frame1、Frame2。
当 DMA 完成对Frame0的写入操作后,系统产生第一个中断,开始对Frame0进行跟踪处理。
与此同时DMA正在进行对Frame1的写入操作,当写入操作完成后,系统产生中断,此时对Frame0的跟踪处理也已经完成,系统同时进行对Frame0的读出和对Frame1的跟踪处理操作。
以此类推,系统根据该时序进行操作,保证了资源和时间的合理配置。
图3 系统处理时序图Fig.3 Diagram of time sequence
3.2算法实现
本系统为基于双核构架的视频跟踪与处理系统,该系统的软件部分主要包括视频跟踪和视频处理2个部分,并分别运行在2个内核中。
视频跟踪部分完成对指定目
标的跟踪和标示,在coreA上运行。
视频处理部分主要有波门叠加和字符信息显
示等可选模块,在coreB上运行。
3.2.1 算法结构
本系统采用如下步骤实现:
1)设置PLL。
芯片的时钟频率是影响性能和功耗的重要部分,Blackfin系列的DSP的时钟频率是通过PLL将晶振频率倍频后达到的。
通过此步骤设置系统和核
的时钟。
2)初始化SDRAM。
视频数据量大,需要用到片外SDRAM。
同时为了提高运行
效率,片内数据存储区部分配置为cache;并且为了避免对同一bank的同时存取,将3个buffer配置在不同的片外存储bank区。
具体在连接描述表文件(LDF)
中进行说明。
3)复位与配置编解码器。
本系统针对PAL制视频进行跟踪与处理,通过配置解
码器ADV7183和解码器ADV7179。
ADSP-BF561与ADV7183和ADV7179
之间通过其专用视频接口PPI接口相连,并通过I2C总线协议完成对ADV7179
内部寄存器的读/写操作的配置。
4)视频输入输出操作。
Blackfin DMA控制器可以在存储空间和外设之间高效的
传输数据;Blackfin处理器的PPI口支持工业级ITU-R-656模式和带有各种内部和外部帧同步选项的通用I/O模式。
使用PPI和合适的DMA模式可以实现图像的无缝捕捉或显示。
本系统选用DMA1连接PPI0和PPI1,在每个视频传输工
作单元之后会产生一个中断,进入终端服务函数完成处理。
图4 coreA工作流程图Fig.4 Flow chart of coreA
3.2.2双核架构的设计
一片ADSP-BF561内包含了2个完全相同的Blackfin内核,这使其拥有比同系列芯片更为强劲的运算能力。
因此想要充分发挥其能力,就必须使其结构特性具有为编码器设定合适的整体构架的能力。
通常的方式有两种:一种为对称的程序设计模式;另外一种为非对称的程序设计模式。
顾名思义,非对称模式就是2个内核完成不同的处理任务,这种模式下,2个内核好像是2个单独的处理器,它们之间不共享代码,不共享或者只共享少量的数据。
对称的程序设计模式比较适合于处理器任务较为单一,运算量比较大的情况,更能发挥双核在运算能力方面的优势。
基于以上分析,本系统的中断服务函数选择了对称的程序设计模式,而且是基于运算量考虑的对称模型,即两个核分别负责视频跟踪和处理。
另外,coreA负责视频输入,coreB负责视频输出,这样最大程度上平衡了2个核的工作量。
此外,在L2存储器中定义了2个核都需要的变量,以及控制双核同步的信号量等。
双核协作工作的过程以及同步方式如图5所示。
图5 双核协作工作流程图Fig.5 Flow chart of the cooperation of two cores 3.2.3 视频跟踪与处理
本系统采用相关跟踪方式,相关跟踪是基于图像相似性度量在现场获取的实时图像中寻找最接近目标模板图像区域的一种跟踪方式[3]。
它无需对图像进行分割和特征提取处理,只在原始图像数据上进行运算,从而保留了图像的全部信息,在许多复杂环境场景中这是一种切实可行的跟踪测量方法。
相关跟踪算法的流程如图6所示。
在跟踪之前,需要从采集到的原始图像中指定待跟踪的目标,并提取出目标模板,更新目标模板缓冲区,进入跟踪过程。
根据上次跟踪结果,再采集图像,提取目标图像。
从目标模板缓冲区中选择相关系数值最大的目标模板作为当前帧的目标模板,然后开始跟踪,最后得到跟踪点和该跟踪点所对应的相关系数值。
根据相关系数值判定本次跟踪是否成功。
如果成功,则将跟踪失败次数清零;不然跟踪失败次数累加1,在判断跟踪失败次数是否超过跟踪失
败次数门限时,若超出,跟踪失败,退出跟踪状态,否则继续跟踪。
图6 相关算法流程图Fig.6 Flow chart of correlation tracking
相关系数定义为
式中:f为目标图像;g为目标模板;f为目标图像均值;g为目标模板均值;MN 为模板大小。
其中,
3.2.4 系统的优化方案
系统的优化方案包括:
1)并行处理结构
为了提高系统的运行速度,对系统框架采用DMA传输和图像处理的并行优化方案。
根据DMA传输和运算的实际消耗,本系统采用DMA传输和跟踪处理的并行优化,在每个工作单元之后产生一个中断进行跟踪处理,此时DMA仍然保持传输状态,达到效率最大化。
2)存储结构优化
ADSP-BF561的地址空间包括片内、片外和I/O存储空间。
由于不同存储单元
访问速度的差别很大,所以合理配置和使用存储空间对整体效率至关重要,其中片内存储空间可以进行高速带宽访问,片内空间包括指令、数据和临时数据缓冲区。
部分指令和数据区可以动态分配为SRAM或CACHE。
片外存储空间可无缝连接SDRAM和异步存储装置,存储空间大但是效率较低。
由于视频数据量大,系统采集的视频数据通过PPI0端口直接存储在SDRAM中。
为了避免存储空间冲突(Bank Conflict),提高存储效率,系统将3帧缓存分别
分配在3个Bank中。
3)C代码优化
针对Blackfin系列DSP的特性,ADSP-BF561可以进行16位和32位定点运算,如果编写代码是大量使用浮点或位为数据,会为优化工作增加很大负担,所以本系统代码编写时避免了以上问题,采用32位定点运算执行处理。
DSP的运行时库包含常用的信号处理函数,这些函数在C/C++运行时库的基础上,为特殊领域的程序提供了方便快捷的解决方式。
调用库函数时要先引用相应的头文件,不同类型的头文件中包括不同用途的函数。
针对本系统算法需要进行大量互相关运算,代码应用了stats.h头文件,此头文件中定义了许多包括互相关在内的统计函数,使算法效率大大提升。
4)汇编优化
在实时处理算法中,循环是一个至关重要的特征。
汇编优化重要的一点就是用硬件循环代替软件循环。
零开销硬件循环允许编程通过设置一个计数值和定义循环范围来简单初始化一个循环,处理器将自动执行次循环制到达预定的计数值。
相反,软件的实现会增加额外的开销,降低实时处理能力。
由于在相关跟踪算法中需要进行大量的循环运算,因此对其进行了汇编优化,使处理器不必在每次循环末尾使用JUMP指令才能进行下一次循环,仅用LSETUP指
令就可完成一次多循环运算。
4 实验结果及分析
为了验证本系统的效果,系统通过CCD采集视频进行实验。
本实验采用的视频共有47帧组成,为了体现实验效果截取原始视频中的6帧(处理的图像大小为
352×288)和通过本系统处理后的相对应的6帧处理图像,如图7和图8所示。
图7 原始视频截取帧图像Fig.7 Original images
实验图中,原始图像为可见光图像,像素大小为352×288,匹配窗口尺寸分别为20×20。
一旦稳定进入跟踪状态后,跟踪算法的搜索范围由原来的全视场跟踪转
为以跟踪目标为中心,半径为50的跟踪窗口中进行计算。
实验表明,在复杂背景
下,针对PAL制目标视频图像序列能够进行准确的目标跟踪。
并且经过优化后,
视频目标跟踪对每帧的处理时间为22ms,能在40ms以内完成,达到了实时性要求。
图8 跟踪处理后的图像Fig.8 Result of the tracking processing
5 结论
设计了基于ADSP-BF561的双核架构的视频跟踪与处理系统,实现了在较为复
杂背景下,采用基于相关系数的跟踪算法实现对选定目标进行实时跟踪。
本系统研究中着重研究精确提取运动目标位置的相关系数跟踪算法及其基于ADSPBF561
系统的实时跟踪系统的实现。
【相关文献】
[1] Analog Devices,Ins.ADSP-BF561Blackfin Processor Hardware
Reference.Preliminary Revision0.3[M].Norwood,MA:Analog Devices Ins.,2005. [2] Analog Devices,Ins.ADSP-BF53x/56xBlackfin Processor Programming Reference.Revision 1.2[M].Norwood,MA:Analog Devices Ins.,2007.
[3]朱永松,国澄明.基于相关系数的相关跟踪算法研究.中国图象图形学报[J].2004,9(8):963-967.ZHU Yong-song,GUO Cheng-ming.Research of correlation tracking algorithm based on correlation coefficient[J].Journal of Image and Graphics,2004,9(8):963-967.(in Chinese with an English abstract)
[4]雷加印,尹志新,毛征,等.基于DSP的电视跟踪目标位置偏差的实时提取[J].国外电子
测量技术,2007(1):53-56.LEI Jia-yin,YIN Zhi-xin,MAO Zheng,et al.Extraction of the TV-tracking position deviation based on DSP[J].2007(1):53-57.(in Chinese with an English abstract)
[5]唐建.Blackfin双核处理器与应用开发[M].北京:电子工业出版社,2010.TANG
Jian.Blackfin dual-core processor and its application[M].Beijing:Pubushing House of Electronics Industry,2010.(in Chinese)
[6]惠宝聚,高雅,李良福.基于自适应非参数统计模型的彩色目标跟踪算法研究[J].应用光学,2009,30(3):437-441.LI Tao,CHEN Wei-dong,LI Liang-fu.An improved seamless image stitching algorithm based on wavelet direction contrast[J].Journal of Applied
Optics,2009,30(3):437-441.(in Chinese with an English abstract)
[7]陈锋.Blackfin系统DSP原理与系统设计[M].北京:电子工业出版社,2004.CHENG Feng.DSP principle of blackfin and system design[M].Beijing:Pubushing House of Electronics Industry,2004.(in Chinese)
[8]魏坤,武富春.一种基于双核架构的战场监视系统的实现[J].火力与指挥控制.2010,35(3):169-175.WEI Kun,WU Fu-chun.Realization of a battlefield surveillance system based on dual-core architecture[J].Fire Control & Command Control,2010,35(3):169-175.(in Chinese with an English abstract)
[9] AD.ADSP-BF561EZ-KIT lite evaluation system manual[Z].Norwood,MA:Analog Devices Ins.,2004.。