新闻  |   论坛  |   博客  |   在线研讨会
基于双niosII的数字稳像系统
under120 | 2010-01-28 09:49:54    阅读:1699   发布文章

一、概述

1.1 设计意图

本项目计划以Cyclone II FPGA为核心,设计一套基于多nios的数字稳像系统。通过分析二维图像运动和三维摄像系统运动之间的关系,对数字稳像算法进行数学建模,从而实现实时的数字稳像。

数字稳像是新一代的稳像技术,它主要是通过数字图像处理的方法获得视频图像序列间的相对运动信息,并以此为依据进行运动补偿,达到输出稳定视频图像的目的。数字稳像技术不仅可以输出稳定的视频图像,而且可以为图像拼接、图像增强、信息融合、目标跟踪、目标识别等后续工作的顺利进行创造条件。同时相比于传统的机械和光学稳像技术,数字稳像系统具有体积小、便于操作、便于系统整体设计等优点。正是基于以上优点,数字稳像技术具有广阔的应用前景,比如运用于数字摄像系统,以及陆上公共交通系统或恶劣条件的海上航电系统等等。

本项目采用Altera公司提供的从QuartusIISOPC BuilderNIOSII集成开发环境,依托Cyclone FPGA丰富的可编程资源,依据模式识别、机器视觉、数字图像处理的理论和方法开展对运动估计、运动滤波、运动补偿等几个方面的研究,使设计的作品拥有更高的性能和更好的稳定性,并且允许进一步调整和优化设置。

1.2 适用范围

本项目可以灵活的运用于数字摄像系统,以及陆上公共交通系统或恶劣条件的海上航电系统等等。

目前便携式数字摄像系统由于使用者处于运动状态,拍摄出来的视频往往效果不好,安装该系统之后,可以明显提高拍摄效果;架设在公交系统头部的数字稳像平台能去除由监视系统振动引起的图像抖动、旋转等问题,从而减少误判和漏判的几率;在风浪较大的海域,航行的船舶存在很大的安全隐患,安装该系统之后可以,通过观察稳像后海况,可以帮助观察者作出正确的判断。

1.3 选用FPGA器件的原因

我们选用了Altera DE2-70作为开发平台。其FPGA核心为数量高达70,000个逻辑单元的Altera Cyclone II 2C70。平台上具有大容量的内存组件,丰富的多媒体、储存及网络等应用接口,可以进行深入的功能开发。同时,对于此开发平台,Altera提供了大量的教材和各种说明范例。非常便于开发。

考虑到本系统会使用到运算量较大的数字图像处理算法。其中有些算法的软件实现方法很容易实现,但是用硬件方法设计起来就有相当的难度。Altera提供的NiosⅡ软核系统可以根据我们的要求定制处理器,完成算法的软件实现。

同时考虑到该数字稳像系统的实时性,为了提高处理速度,可以在FPGA内部可以实现多个处理器内核,通过将多个NiosⅡ内核集成到单个器件内提高了运算效率,达到了并行处理的目的。

2、设计结构

基于多NiosII软核的数字稳像系统硬件总体结构如图4.1所示,共分为五部分:

视频数据输入模块如图4.2(b)所示;双NiosII运动估计模块如图4.3所示;运动补偿模块如图4.4所示;视频输出模块如图4.5所示;USB补偿矢量输出模块如图4.6所示。

2.1 硬件总体结构

数字稳像系统分为五部分,如图4.1所示,考虑到要进行运动补偿,特设置帧存RAM(采用DE2-70上的两片SDRAM),由运动补偿模块控制RAM组输出进行补偿后的YUV格式视频数据,然后通过视频输出模块进行D/A转换,在显示器上输出稳像后的图像。同时通过USB接口与上位机连接,将补偿矢量实时输出到上位机。

2.2 视频数据输入模块

视频数据输入模块如图4.2所示,CCD可置于摇摆台或容易晃动的支架上进行测试,CCD输出PAL制式的视频信号进入TV Decoder芯片ADV7180ADV7180NiosII控制下输出BT.656 YCrCb数字信号。同时CCD在外接一个监视器,用于比较稳像的效果。

2.3 NiosII运动估计模块

运动估计模块和运动补偿模块是数字稳像系统的重要部分,其中决定数字稳像效果最为核心的模块就是运动估计模块。运动估计模块包括局部运动估计单元和全局运动估计单元。在数字稳像系统中,景物和成像系统之间的相对运动矢量就是由局部运动估计单元和全局运动估计单元来确定的,稳像原理如图4.3(a)所示:

目前,对于局部运动估计广泛采用块匹配算法(BMA-Block Matching Algorithm)。该算法较为规则,容易编程实现,综合考虑稳像系统的实时性和精度要求我们也以该算法为基础进行运动估计。为了充分发挥Altera系列FPGA NiosII软核的巨大优势,提高运算速度,设计了双NiosII运动估计模块,如图4.3(b)所示。

如上图所示,我们先基于块匹配算法设计局部运动估计单元,然后在图像上寻找四个不同区域,在NiosII Core1的控制下进行高速并行计算;得到各个区域的局部运动矢量之后,将其引入NiosII Core2NiosII Core2通过自定义加速指令进行全局运动估计的计算最终得到全局运动矢量。对于双NiosII软核间如何通信及传递数据,我们参考了去年获得特等奖的设计——“基于FPGA的手术导航定位系统”,双核运行在一片2MSSRAM上不同的内存空间,通过共享OnChip-RAM高速通讯。

2.4 运动补偿模块

视频输入模块将模拟PAL制式视频信号转换为YUV格式数字信号之后分两路输出,一路用于运动估计,另一路先存储到外部RAM(采用DE2-70所带的SDRAM)然后根据运动估计单元最后输出的补偿矢量XY,从RAM中选择性读出以达到补偿目的,如图4.4所示。

经过补偿后的数字信号经过视频DAC芯片ADV7123D/A转换,转换为VGA信号。

2.5 视频输出模块

视频输出模块如图4.5所示,ADV7123DE2-70上提供的10位高速视频DAC芯片,经过补偿后的数字信号经过ADV7123D/A转换,转换为VGA信号,输出至显示器,则显示器上可呈现稳定的补偿图像。

2.6 USB补偿矢量输出模块

USB补偿矢量输出模块同上位机连接,实时输出“双NiosII 运动估计模块”得出的补偿矢量XY,用于采集数据并分析运动估计算法的准确性。如下图所示,USB芯片采用DE2-70开发平台上的ISP1362,将输入的补偿矢量以USB协议传输到上位机,并编写基于VC++的上位机客户端程序,显示并保存补偿矢量XY的数值。

2.7 NiosII软核数字稳像系统软件流程图

NiosII软核数字稳像系统软件流程如图4.7所示,两个NiosII软核相互配合提高了运算效率,达到并行处理的目的。

3、设计特点

3.1 双核NiosII协同处理

利用Altera公司提供的SOPC Builder的巨大便利,我们在FPGA内部实现了双NiosII软核处理器结构。

3.2 自定义指令的应用

用硬件逻辑电路实现系统中软件处理耗时多的关键算法,通过自定义加速指令进行全局运动估计的计算最终得到全局运动矢量,大大提高了系统的效率。

3.3 双监视器设计

双监视器设计,一个用于显示初始图像,一个用于显示稳像后的图像,用于比较稳像的效果。

3.4 USB实时输出运动估计矢量

数字稳像系统的核心就在于运动估计,利用DE2USB模块,设计USB控制器,并用VC编写了上位机界面,通过USB接口实时输出运动估计矢量XY到上位机,并保存用于数据分析。

3.5 并行处理

市面上的数字稳像系统通常都是采用DSP作为核心处理器,而采用FPGA则很少,考虑到FPGA可以无并行级数限制的并行处理数据,对所划分的四个区域,同时用块匹配算法进行局部运动估计,在频率相同的情况下,将估计时间缩短为原来的四分之一。

3.6 适用范围广

该数字稳像系统输入是标准的CVBS接口,对于任何带CVBS输出的摄像系统都能实现稳像;同时对于特殊接口的摄像系统也可以通过在FPGA内部进行视频格式的转换转为算法所支持的视频格式,因此该系统适用范围很广。

3.7 升级维护方便

该系统基于Altera公司的Cyclone II系列FPGA开发,考虑到该器件的可编程性,我们可以很容易的对系统进行升级和维护,将更快和更稳定的算法烧入FPGA中。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客