基于 FPG A的嵌入式稳像系统设计

2010-10-30 09:14蔡耀仪
湖南人文科技学院学报 2010年2期
关键词:分块矢量投影

蔡耀仪

(中南大学信息科学与工程学院,湖南长沙 410083)

基于 FPG A的嵌入式稳像系统设计

蔡耀仪

(中南大学信息科学与工程学院,湖南长沙 410083)

针对传统电子稳像平台的缺陷,设计基于 FPGA的实时稳像系统,运用基于图像分块投影匹配的稳像算法,此系统能够适应存在平移运动同时带有旋转与缩放的运动画面,提高算法的精度与适应性。对此算法与传统算法所消耗时间进行对比研究,结果证明,此系统基本能消除随机抖动。

实时稳像系统;现场可编程门阵列;全局运动估算

在成像过程中,摄像机载体的运动和载体机座的运动导致图像的晃动,从而造成拍摄的图像出现抖动现象[1],电子稳像系统的目的是去除这种不必要的抖动而获得清晰的图像。电子稳像的过程包括运动估计和运动补偿两部分:运动估计是得到帧间全局运动矢量,而运动补偿是完成抖动分量的校正。运动估计模块处理简单平移运动常用算法有块匹配法[2]、位平面匹配法[3]、灰度投影法[4],处理旋转及缩放常用方法有特征法[5]等,这些方法都比较容易受局部运动和噪声的干扰。运动补偿模块主要分为两种:顺向补偿和反向补偿。

传统基于“摄像机—图像采集卡—计算机”模式的稳像系统中,图像检测和匹配算法全部由计算机完成,然而计算机属于单指令周期的串行处理数据方式难以适应目前基于多传感器视频处理系统的稳像任务,其次系统占用体积较大,难以满足某些特殊场合对处理系统的体积要求,所以采用新型的 FPGA器件,研制专用的稳像处理系统成为既有意义又有实际需求的工作。

本文以 Xilinx公司的 VirtexⅡPro系列为目标器件,建立了包含高速视频采集模块、图像预处理模块、数据存储模块和图像输出模块等部分的高速电子稳像系统[6]并重点提出了一种基于图像分块投影的运动估计算法。实验证明:研制的电子稳像系统既能高速采集数据,又能较好地实现稳像功能,既有实际意义又有工程价值。

1 基于分块投影匹配的稳像算法

1.1 摄像机参数模型

视频序列图像产生抖动的原因来自于摄像机的运动,这种运动主要包括平移和旋转。要对视频帧序列进行稳像,首先必须分析摄像机参数模型。

摄像机坐标系中,假设在三维物体上一点从时刻 tk的坐标 (X,Y,Z)运动到时刻 tk+1的坐标 (X′,Y′,Z′),可以用带有矩阵 R描述的旋转和矢量 T描述的平移来合成,如式:

由于图像视频序列是三维物体在二维平面的投影,此运动从时刻 tk的坐标 (X,Y)运动到时刻 tk+1的坐标 (X′,Y′),本文选用 6参数仿射模型从相邻帧图像中估计相应坐标点的变换关系。

6参数估计模型如图 1所示。

图1 六参数估计模型示意图

由图 1所示,假设所有从三维实体触发到图像平面的光线互相平行,二维成像平面上目标点 (x,y)和目标三维实体对应点 (X,Y,Z)的关系如式 2所示:

由公式 1、公式 2可以联立推导如下计算式:

即可以表示为:

1.2 分块投影匹配的运动估计算法

抖动视频帧序列中若存在旋转和缩放运动,由于画面中个像素的运动矢量并不一致,不能单靠图像中某块区域的运动矢量来估算全局运动矢量,投影法及代表点匹配法无法对复杂运动进行估计,而分块匹配法和直线变换法虽能估计复杂运动但计算量大,无法满足系统实时处理要求,本文采用基于分块投影匹配的运动估计算法,其流程如下:

图2 分块投影匹配法框图

算法中图像分块的大小需适中,划分过大会使得区域内旋转或运动矢量不能被忽略,而划分过小则使得区域内包含信息太小。算法的核心部分在于子区域运动矢量计算和全局运动矢量计算。子区域向水平和垂直方向投影,公式如下:

公式 (5)中,Grayk(i,j)是第 K帧图像上坐标为 (i,j)处的灰度值,Colk(j)、Rowk(i)分别表示第 k帧图像第 j列、第 i行的灰度值,其值分别为此帧图像上该列、行的所有像素点的灰度和。

在得到子区域的投影曲线后,可以将当前帧的子区域的行、列投影曲线和参考帧的行、列投影曲线进行相关计算,以水平相关 (列投影)为例说明相关计算公式如下:

其中 Rowt(j)、Rowt+i(j)分别表示当前帧和参考帧第j列投影,m值设定为所预估的运动矢量的最大偏移值。当C(i)最小时,i的取值为 Imin,则当前帧子区域相对于参考帧的水平方向的位移为:

1.3 最小二乘估计法计算全局运动矢量

得到图像中等大小的 n小块在上一帧的位移,即:

其中 i为图像块的编号,Δxi、Δyi分别为对应块图像在 x轴和 y轴上的运动矢量。定义函数ρx,ρy如下:

根据最小二乘法,当ρx,ρy取得最小值时,即:

对比公式 4的矩阵形式,可以得到帧间旋转角度为:

1.4 存在运动前景影响时算法的改进

当场景中出现运动的前景目标时,前景目标所在子区域的运动矢量与全局运动矢量不符,会使得估计出来的全局运动矢量不精确,例如,车载拍摄一段视频时,当汽车刮雨器刮过时,会造成稳像结果发生偏差。本文采用迭代的最小二乘估计,每次将误差值较大的运动矢量进行剔除,算法如下:

1)将各子区域通过灰度投影法求取的运动矢量归入初始数据集合中。

3)由数据集合中所有运动矢量和全局运动参数所求得的运动矢量的平均误差 E:

式中,Δxi、Δyi为第 i小块经过块匹配计算出的运动矢量为用运动参数恢复出的运动矢量

4)将计算得到的运动矢量集合误差大于 E的数据剔除,根据剩余数据重新计算全局运动矢量,若新数据和上次迭代得到的数据集合一致则停止迭代,否则继续迭代。

2 嵌入式稳像系统硬件设计

FPGA是现场可编程门阵列的英文缩写,作为专用集成电路中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。系统使用 Xilinx公司的新一代 VirtexⅡpro X2VP30系列可编程逻辑器件并借助 ISE和 EDK开发工具设计实时稳像系统。

2.1 系统设计框图

系统整体设计的框图如图 4所示,稳像算法实现模块是整个系统的核心模块,预处理和主要算法的实现全部在稳像算法实现模块中完成。当完成稳像处理后,系统将数据储存到内部存储器中并可由系统上的 PLB总线访问数据,从而能够随时将实时处理后的数据传输给后续处理系统。

图3 FPGA稳像系统框图

2.2 基于数据流方式的领域提取电路

系统采集的实时图像需要进行一定的预处理才能进行投影计算。预处理能一定程度上减少噪声干扰,提高系统的准确性。基于领域的处理算法复杂度较大,计算次数为图像尺寸与领域模板尺寸的乘积,采用基于通用串行处理方式的计算机系统无法满足实时性要求,而纯硬件实现的领域提取电路基于并行处理结构并属于纯硬件实现,具有极高的实时性,其实现结构如图 4所示。

对视频图像数据的存储是触发器和行延时存储器存储,由于采用数据流方式,对寄存器资源的需求只与模板尺寸有关。每个像素时钟周期内,系统采集输入一个新的像素点的值,相应的缓存器模块中的数据值都从左到右移动一位。

图4 领域提取电路

2.3 采用硬件加速的分块投影电路

系统最关键的步骤是对采集的每帧图像进行分块并在此基础上获得行、列投影值,基于硬件加速的分块投影电路实际为图像特定行、列上灰度值累加电路。

由于对每块图像行、列投影计算方法相同,系统设计了两套独立的分别对图像行、列进行投影计算的电路,电路结构如图 5所示。电路由一个宽度为 19 bit深度为 128的双口 RAM,一个加法器,一个读写时序模块和一个数据选择模块组成。双口 RAM的特点是 A口可供硬件读写的同时,B口能供总线访问,19bit保证的是数据不会溢出,而深度为 128是系统默认将每帧图像按照图像大小 64×64进行分块,并进行双倍 RAM空间下的乒乓操作,从而保证在统计过程中与总线访问互不冲突,这种乒乓操作的空间切换由高位地址决定。双口 RAM的 A口存在两种操作:清空和统计。在图像有效数据传输的间隙,数据选择模块MUX选择清空时序,对双口 RAM内数据进行清空,在有效数据到来时选择统计时序。这种设计避免了统计中的漏统现象,并能将结果输出给后续模块计算。

图5 高速分块投影电路

3 实验与分析

系统采用的是线阵 CCD摄像头,摄像头为 PAL制式,经过 FPGA处理后的视频数据送到显示控制器中进而在液晶触摸显示屏上显示。系统装置在小车上,针对一段公路场景进行实时稳像后得到的视频帧序列图像如图 6所示:

图7给出了某段车载视频拍摄图像稳定前后两帧视频的差图像,可以看出稳像前视频帧序列前后两帧差异很大,经过稳像后前后两帧之间像素值差异明显变小,两帧重合度变大,视觉效果明显改善,稳像后两帧差图像会出现白色边框的原因是运动补偿后图像的边界在不断改变。

图7 稳像前后两帧图像差

算法在主频为 1.4GHZ的 CORE双核处理器,内存为1024MB的笔记本电脑上,使用 V ISUAL C++,稳定 640×480的图像序列的平均时间为 30.3ms,与传统分块匹配法和特征点匹配法进行比较,如表1所示:

表1 算法时间比较

可以看出,在同样能解决旋转和变形能复杂抖动情况下,采用分块投影匹配法所耗费的时间明显低于其他两种传统稳像算法。

表2 系统硬件资源消耗

由 FPGA系统内部的时钟管理单元可以得到,其对PAL制式彩色摄像头拍摄的实时视频数据进行稳像所耗费的时间为 306μs,而 PAL制每秒为 25帧,即每 40ms采集一帧图像,即采用 FPGA实现稳像系统能够实时对采集视频帧序列进行稳像。

4 结束语

本文对现有稳像算法进行了改进,提出了一种分块投影匹配的算法,使其能够满足算法处理速度及稳像精度双重要求,并基于 FPGA设计了实时稳像系统,实验表明,稳像系统效果较好,能够达到高速实现稳像的要求。由于本文对运动补偿部分并没有太多研究,因此对于得到运动估计结果后的运动补偿部分还需进一步改进。

[1]贺顺.运动估计与运动补偿在电子稳像中的应用[J].计算机工程,2007,33(15):224-226.

[2]TAO Tangfei,KOO J C,CHO IH R.A fast block matching algorthim for stereo correspondence[C]. Cybernetics and Intelligent Systems,2008 IEEE Conference on 21-24 Sept.2008 Page(s):38-41.

[3]CEIEB IA,AKBULUTO,URHAN O.Truncated graycoded bitplane matching based motion estimation and its hardware architecture[J].IEEE Trans.on Consumer Electronics,2009,55(3):1530-1536.

[4]陈跃庭,李奇,许东晖,等.投影算法与块匹配法结合的实时数字稳像方法 [J].浙江大学学报:工学版,2007,41(9):1537-1540.

[5]宋永江,夏正良,杨世周.基于多直线特征的电子图像稳定算法[J].东南大学学报,2002,32(2):211~217.

[6]时永刚,周渝斌,赵跃进.实时电子数字稳像系统并行处理的快速实现[J].电子与信息学报,2006,28(7):114-117.

(责任编校:光明)

Design about Embedded Stabilization Image System Based on FPGA

CAI Yao-yi

(School of Infor mation Science and Engineering,Central South University,Changsha,410083,China)

In accordance with the shortcomings of traditional electronic stabilization image platform,real-time stabilization image system based on FPGA is designed.Stabilization image based on image block-matching algorithm is applied.Time-consuming algorithms are compared with the traditional algorithm.The results show that this system can basically eliminate random jitter.

real-time stabilization image system;FPGA;globalmotion estimation

TP391

A

1673-0712(2010)02-0017-04

2010-02-05.

蔡耀仪 (1984-),男,湖南长沙人,中南大学信息科学与工程学院硕士研究生,研究方向:图像处理。

猜你喜欢
分块矢量投影
矢量三角形法的应用
解变分不等式的一种二次投影算法
基于最大相关熵的簇稀疏仿射投影算法
分块矩阵在线性代数中的应用
找投影
找投影
反三角分块矩阵Drazin逆新的表示
基于矢量最优估计的稳健测向方法
三角形法则在动态平衡问题中的应用
基于自适应中值滤波的分块压缩感知人脸识别