灰度投影法

2024-10-13

灰度投影法(精选5篇)

灰度投影法 篇1

人眼定位技术在很多领域都有着非常重要的应用。例如驾驶员疲劳检测[1]、刑事侦查、身份识别[2]以及视线控制显示屏系统[3]等。目前, 眼睛定位方法主要有基于学习、基于模板匹配、基于几何特征的方法。基于学习的方法包括Ada Boost算法[4]、支持向量机 (SVM) [5]、主元分析法 (PCA) [6]等, 此类方法对机器进行培训的过程必不可少但也相当耗时。典型的基于模板的方法采用灰度模板匹配[7], 首先得到人眼样品模板, 然后在图像中逐步搜索与模板最匹配的区域, 此类方法计算量相对较大;基于特征的方法包括HSI虹膜检测、色彩信息[8]和灰度投影法[9]等, 另外还有基于复杂度方法、对称变换法、Blobs法、Gabor变换法[10]等其他特征方法, 此类方法克服了计算量大、处理速度慢等问题, 显著缩短了实时人眼定位的时间, 目前应用广泛。

本文算法是在灰度积分投影基础上结合圆形标记法进行眼睛定位。该方法首先通过RGB空间肤色聚类分割算法对原始图像进行分割, 经过数学形态学开运算、人脸特征排除方法去掉类人脸区域和噪声干扰, 得到精确的人脸区域二值化图;然后将二值化图像填空处理后得到一张人脸掩膜并与原始灰度图像相乘, 根据亮度差值进行分割得到信息量最大化的五官图;最后在此五官图的基础上采用圆形标记法对人眼的定位进行了改进。实验结果表明, 该方法简单有效, 并能精确地实现人眼定位, 在复杂条件下有较好的适用性和鲁棒性。

1 算法实现

该算法采用的图片是在自然光状态下通过分辨率为320×480摄像头采集, 适用的人脸旋转角度水平两侧方向不大于20°, 垂直方向不大于10°, 并且人脸正面不能有遮挡, 例如彩色眼睛、面具等。

该方法主要分为三个步骤从原始图像中定位人眼:人脸检测、人眼定位预处理、人眼精确定位。

1.1 人脸检测

人脸的色彩信息与自然背景有很大的差异性, 这种差异性为区分人脸与背景区域提供了依据。利用色彩信息进行肤色分割的原理实际上就是对每一个像素点确定一个阈值, 根据阈值决定当前点是目标还是背景, 阈值的决定取决于目标物的特征。目前被广泛应用于肤色分割的色彩空间有RGB、YCbCr、YIQ、HSV、HIS、RGB等。其中RGB是归一化的RGB模型, 这种模型的优点在于, R、G、B三个分量满足完备性, 所以只需使用到 (R, G) 两个分量进行肤色分割, 这样实际上实现了降维, 降低了计算复杂度;又因为RGB模型对亮度较为敏感, 而亮度信息对颜色模型的构造是不重要的, 因此选用RGB颜色模型又可以很好地克服光照的影响[11]。

1.1.1 RGB模型的人脸检测

RGB模型肤色分割的实现, 实际上就是确定一个阈值范围, 在阈值范围内的像素点赋值为白色点, 阈值范围以外的赋值为黑色点, 这样处理的目的是简化运算, 突显有效信息, 过滤冗余信息。实现的步骤:首先是将自然光状态下的RGB图片归一化, 其转换公式为:

然后根据人脸肤色特征确定肤色阈值区间。肤色阈值区间的选取必须精确恰当, 范围大了会产生过多的噪声点, 增大识别难度, 范围小了可能使必要的信息缺失甚至识别失败。Mc Kenna等[12]在1996年通过对大量人脸肤色分布分析, 得到的分析结果表明在不同条件下人脸肤色分布情况基本一致, R、G的值大致落在区间[0.3, 0.5]、[0.2, 0.4]内, 在此基础上需要反复地实验和对比, 逐步缩小范围直到找出一个既包含完整人脸信息又能排除非人脸区域的区间。经过大量实验统计, 以下公式 (2) 能很好地将人脸区域和自然背景区分开来。

用这个归一化模型对自然光下的图片进行人脸分割, 得到的结果如图1所示。

1.1.2 数学形态学处理

如图1所示, 通过肤色分割后出现的白色区域定义为类人脸区域, 但是可以明显地发现图像中不仅有噪声的干扰, 还存在与肤色相近的物体, 也被划分成了人脸候选区域, 这些干扰因素必须进行一系列的图像处理。首先, 对图像中的类人脸区域进行开运算, 开运算就是对图像先腐蚀后膨胀, 其目的是平滑图像的轮廓, 削弱狭窄的部分, 去掉细长的突出、边缘毛刺和孤立斑点、断开目标物之间粘连, 而且可以基本保持目标尺寸大小不变[13]。这里开运算的主要目的是消除人脸区域以外不连接的较小区域, 用黑色填充起来;同时消除人脸区域内的噪声干扰。开运算的公式为:

通过数学形态学处理后, 得到图2, 可见图2中消除了噪声以及较小的不可能人脸区域干扰, 缩小了候选区域范围, 并且填补了人脸区域内较小的空洞, 为后续检测缩减了工作量, 提高了准确率。

1.1.3 几何特征筛选人脸

经过去噪处理后, 过滤了噪声以及其他较小不可能人脸区域的干扰。这里需要注意的是假如原始图像中存在较大面积的类人脸肤色区域, 例如真皮座椅、手臂等, 单纯的数学形态学处理很难彻底排除。针对这些区域的排除需要进一步通过分析与计算, 本文采用以下三个几何特征对图像进行筛选:

首先, 判断连通区域的长宽比。人脸区域的长宽比满足一定比例, 通过对人脸图像的统计, 人脸的长宽比在0.8~1.8 (其中包含秃顶的情况以及脖子区域) , 利用该比例范围可以排除过于狭长或是横向长度明显过长的区域。

其次, 判断连通区域面积占连通区域外接矩形面积比。人脸区域是一个类似椭圆形, 人脸以及脖子区域所占整个最小外接矩形的面积比应该大于1/2 (这样可以排除一些不规则但和皮肤色调接近的物体, 同时也可以排除一些人体的其他区域) 。如果小于这个值则可以判断为不规则图形。

最后, 连通区域的像素点个数应该大于20×20, 否则这一像素的区域则无法识别。所以当连通区域小于这个值时也应当排除掉[14]。

经过上面的处理后得到图2, 可以看出基本排除了非人脸区域的干扰。

1.2 人眼定位预处理

肤色建模后, 人脸的大致区域已经确定, 并且排除了背景图像的干扰, 但经过形态学处理后的人脸五官信息量并不完整。为了得到最优化的五官图像, 增强定位的可靠性, 本文利用眼睛、眉毛、嘴与肤色的亮度差进行分割。首先, 先把人脸区域进行填空处理, 就是将人脸区域内的所有黑色块填充为白色, 得到一个连通无空洞的人脸掩膜如图3 (a) , 这是一个最大化的人脸模子;然后, 将这个模子与原始图像的灰度图相乘, 得到一张只有人脸的灰度图像3 (b) ;最后, 根据五官与肤色的量度差, 对图像进行二值化处理, 得到一张信息量精确完整的二值化人脸五官图3 (c) 。经过大量实验和统计, 这里亮度分量Y的阈值定为71。

经过上述识别处理后, 基本实现了人脸信息最大最优化, 从图3 (c) 可以看出, 除了人脸区域外, 其余的背景区域已经定义为黑色, 没有了保留价值。接下来的处理方式就是为了尽可能缩小人眼的搜索区域去除冗余的信息, 这也是进行精确人眼定位的最后一步预处理。

首先, 画出人脸区域的最小外接矩形框, 然后沿着矩形框把这部分裁剪出来;然后将裁剪出来的图像进行黑白反转, 这样做的目的是让五官以及接近于人眼亮度值的区域成为有效目标, 其余肤色区域成为背景, 这里需要注意的是, 翻转后的图像, 除了五官以及接近于人眼亮度值的区域成为白色外, 矩形框内人脸外的区域也变成了白色, 为了使矩形框内人脸以外的这小部分区域也变成黑色背景。需要用初步反转后的图像和图3 (a) 相乘, 这样可以使人脸外的无效区域也转换成黑色的背景。相乘公式如下:

这样就得到了投影前的最终预处理图3 (d) 。

1.3 积分投影定位算法

经过上述处理后, 人脸特征点如眉毛、眼睛、鼻子、嘴巴等被明显地分割出来, 现在就可以对二值化图像进行积分投影。实现算法的具体步骤:分别对该二值化图像进行垂直和水平方向的归一化积分投影, 根据积分投影原理, 在眼睛、眉毛、鼻子和嘴区域对应着投影曲线的极值点, 结合两个方向极值点确定眼睛的位置。图3 (d) 进行水平积分投影和垂直积分投影结果如图4所示。

上面三幅图中, 图4 (a) 为水平方向投影曲线, 图4 (b) 为垂直方向投影曲线。从水平投影中可以明显地分辨出眉毛和眼睛的水平坐标, 垂直投影中两眼中心的垂直坐标也较清晰, 最后通过水平线和垂直线的交点得到眼睛的位置图4 (c) 。

但是通过积分投影原理得到眼睛的位置仍然存在一些不足之处。例如检测目标的眉毛粗浓, 而眼睛又大, 两者的投影曲线有可能重叠, 最后得到的人眼位置包含眉毛区域, 从而影响最后检测结果, 如图5所示。

图5可以看出直接用积分投影方法进行人眼定位的准确性并不是十分理想。本文为了提高算法识别的鲁棒性和准确性, 在积分投影基础上提出一种改进方法。

1.4 改进的圆形标记人眼定位法

本文定位人眼算法的设想是利用积分投影之前已经得到的若干数目空洞的图像, 通过直观快速的方法排除其他非人眼空洞, 最后分离出正确的人眼对。实现以上算法可以依据人眼位置特征、形状特征、对称参数等要素, 这里采用的方法是融合上述几种特征完成的人眼精确定位, 暂定为圆形标记法。

圆形标记法定义:

首先, 在二值化图的基础上求出各个已知连通区域面积 (即各个空洞面积) 、质心坐标;并以这个质心为圆心, 连通区域面积作为圆型的面积画圆, 得到与原始图像的连通区域有相同个数圆的图像。

把图5 (a) 进行本文1.2节以上的全部预处理后, 确定人眼位置条件如下:

Step1:人眼的高度范围应该在人脸的中上部, 也就是在整个矩形图像的高度1/5~1/3之间, 这里取的高度范围是1/5~1/2, (范围较大的原因是考虑到秃顶的情况, 假如目标是秃顶, 则人眼高度所占比例自然下移) , 可以得到图6 (a) 。

Step2:本文讨论的情况是正常人脸倾斜条件下即左右上下偏转不大于20°。在此约束条件下两眼质心连线与水平方向的夹角应该小于等于15°[15]。然后具体做法是依次从左上方第一个质心开始搜索, 如果与任意质心连线和水平方向夹角大于15°, 则排除, 直到找到满足条件的两个圆为止。

Step3:正常偏转条件下, 两眼连线的长度所占人脸宽度比是满足一定比例的, 通过反复实验统计, 得到两眼中心距离所占人脸横向最大宽度的0.29~0.48。因为本文前期的工作中已经得到了最小外接矩形框, 所以可以把矩形框宽度近似为人脸横向宽度。

对图5 (a) 进行以上三个条件的筛选, 可以得到如图6 (b) 。

用这对空洞与原始灰度图像相乘得到了人眼对如图6 (c) , 最后对图6 (b) 做归一化积分投影, 分别得到水平积分投影曲线图6 (d) 和垂直积分投影曲线图6 (e) , 根据垂直和水平投影曲线的交点可以得到人眼的准确位置如图6 (f) 。圆形标记法不仅适用于浓眉大眼目标的检测, 而且还适用于人脸上有深色胎记和疤痕的眼睛定位。

2 实验与结果

在电脑笔记本上设计一个人眼定位仿真系统, 硬件系统采用第2代英特尔酷睿i5-2.4 GHz处理器, 内存2 GB, 软件在Matlab平台上进行, 采用的图片是在自然光状态下通过分辨率为320×480摄像头采集的20幅人脸图片, 人脸旋转角度水平两侧方向不大于20°, 垂直方向不大于10°, 并且人脸正面不能有遮挡, 例如彩色眼睛、面具等。

2.1 实验步骤

20幅人脸测试图片分别进行以下实验步骤:

(1) 首先将图像肤色分割, 接下来对图像进行形态学处理、几何特征筛选。

(2) 对图像进行人眼定位预处理, 得到有效目标空洞。

(3) 运用圆形标记法进行人眼定位, 结合投影曲线得到精确的眼睛位置。

2.2 实验结果

本文选取的20幅图像是在自然光条件下摄像头采取的, 通过实验, 结果如表1所示。

表1中, 本文的算法相对单独传统积分投影方法处理速度较长, 但准确率有显著提高。实验结果如图7所示。

3 结束语

本文结合灰度积分投影和圆形标记法对人眼进行定位:首先采用肤色分割进行人脸检测, 运用数学形态学、几何特征筛选消除干扰因素, 为眼睛的定位提供基础。然后根据亮度差值分割, 为人眼定位提供信息量最大化的五官图像。针对定位的结果问题, 提出了圆形标记法, 通过设定了三个条件逐步排除了嘴, 鼻子以及其他亮度与人眼相近的空洞区域, 最后根据眼睛和眉毛的位置特征, 对眼睛和眉毛的位置进行区别, 实现了眼睛的精准定位。

灰度投影法 篇2

电教课的多媒体教学是在教学过程中,依据教学目标和教学对象的特点,通过教学设计,开发、选择、组 织多种媒体参与教学过程,形成合理的教学过程结构,使学生在最佳的学习条件下进行有效的学习,因此,多 媒体教学是促进教改的.重要途径。现行中学历史电教课的电教媒体主要是投影机、幻灯机、录像机、收录机和 计算机等。而投影是历史电教课中较为常用的手段,因此,研究如何提高投影教学质量很有必要。笔者在多年 的电教课教学实践中,用图示法制作投影片进行教学,取得了较好的效果。

图示历史,就是用符号、文字、数字组成图形,表示历史过程内在联系和本质的一种教学方法。中学历史 教材知识的叙述有选择,有结构,所以我们就有可能把它图示化,用图示的形式来表达某一事件或某一章节的 内容。

1.运用图示法把教材内容制成投影片,起到浓缩教材,突出重点的作用

图示法投影教学的关健是要设计好图示,其实是把用文字来叙述的历史知识结构,用图示的形式加以表现 。它的最大特点之一是简约性。图示除用符号以外也用文字,一般用词组,因此比长篇的文字叙述要简约。有 些过程省略了,有些过程用符号来表示。

如讲到“殖民主义罪恶”时,其中“奴隶贸易”可用下图表示:

附图{图}

图1

欧洲殖民者的商船在欧洲装上少许廉价商品前往非洲(出程),在非洲海岸购进或掠得成群奴隶运往大西 洋(中程),用这些黑奴在美洲换取巨额的货物运回欧洲(归程)。在这三角贸易中,黑奴成为真正的商品, 累累白骨给西方世界带来了灿烂的黄金。

这幅图示就形象地反映了贩卖黑人奴隶的“三角”贸易。

学历史既需要形象思维,也需要逻辑思维。使用图示时,必须配以教师生动具体的讲述,这样就可以达到 省时省力,又取得好效果的目的。

2.运用图示法把复习课内容制成投影片,纵横串连,进行知识归类

图示法投影教学的第二大特点是系统性,图示能表示历史事件之间的横向关系和纵向关系,形成一个完整 的知识系统。

复习课中,为了把知识学活,教师要打乱教材章节,割块连线,纵横联系,把同一类型同一性质,同一意 义的历史事件联贯起来进行专题复习。

如我在复习“旧民主主义革命时期中国人民反抗斗争”时,按背景、经过、纲领、失败原因、意义、教训 等方面自制了“太平天国运动”、“戊戌变法”、“义和团运动”和“辛亥革命”等4张投影片。 一节课复习一个专题,容量大、节奏快,而且知识系统性强。

3.运用图示法把复杂的历史问题制成投影片,使复杂问题条理化

图示法投影教学的第三大特点就是条理

灰度投影法 篇3

电子稳像技术是综合电子、计算机、数字信号处理等技术,利用数字图像处理方法直接确定图像序列的偏移并进行补偿的技术[1]。利用电子稳像技术对不稳定的视频序列进行稳定处理,可提高监视质量,便于后续应用处理。电子稳像技术广泛用于机器导航、目标识别与跟踪、安全监控等视频分析和处理领域。实际应用中对电子稳像系统的处理时间、体积、重量、功耗等要求不断提高,基于嵌入式的实时电子稳像系统具有更高的实际应用价值。

鉴于电子稳像技术在军事和民用领域中的重要作用,美国、加拿大、以色列等国家较早地进行了研究和开发,并取得了一定成果。我国在2000年之后开始进行稳像技术研究。中国科学院长春光机所钟平针对具体应用环境特点,采用基于特征跟踪的电子稳像方法用于机载电子稳像,取得了良好的结果[2]。哈尔滨工业大学张博等将基于帧矢量叠加和自适应中止技术的快速运动估计方法用于电子稳像,运算量显著减小[3]。国防科大罗诗途等采用了一种由粗到精、由局部到全局配准的高效匹配策略实现了车载图像匹配,满足了车载图像跟踪系统对电子稳像技术的实时性及精度要求[4]。这些电子稳像系统大多基于VC编程在PC机上实现。北京理工大学赵跃进采用XC95144XL CPLD+DSP6711为处理平台实现了256×256像素图像的实时稳定[5]。中国科学院长春光机所孙辉采用灰度投影法检测序列图像当前帧和参考帧之间的运动矢量实现亚像元检测,并基于DSP6416图像处理平台应用在船载电视监视系统中,但没有讲述硬件实现过程[6]。本文重点研究了基于EP2S30 FPGA+DSP6416架构的电子稳像平台硬件开发流程。采用灰度投影算法,本平台能实时完成25 f/s的标准PAL制视频的稳定。

1 灰度投影算法简介

电子稳像的原理是对不稳定的视频序列图像进行局部运动估计和全局运动估计,并对运动参数进行综合评价得到运动补偿参数,进而对图像进行运动校正得到稳定的输出图像序列。依据上述原理,电子稳像过程分为运动估计、运动滤波、运动补偿3个部分,而关键技术就在于估计视频序列图像相邻两帧之间的全局运动参数。

灰度投影算法的原理是基于行列灰度曲线的变化规律进行运动估计,其方法是将灰度图像的二维图像信息映射成2个独立的一维波形,即获取图像的行列灰度投影曲线,然后进行相关运算,找到相关值曲线中的单峰值即为当前图像相对于参考图像的位移值。灰度投影算法作为一种二维平移模型的算法具有独到的优势,例如计算速度快,易于VLSI实现等。

2 电子稳像平台设计

2.1 平台硬件设计方案

电子稳像平台硬件结构框图如图1所示。平台完成灰度投影法电子稳像的流程为:视频解码器接收模拟视频并将其转换为数字视频数据流送入FPGA内部的图像采集控制模块。图像采集控制模块进行图像处理区域的剪裁和图像数据的YCbCr分解,分解之后的灰度数据分成两路,一路通过视频采集FIFO存入SDRAM进行帧存储;另一路先进行图像预处理,然后进行行列方向的灰度投影数据累加。DSP通过EMIF总线读取这个累加结果,完成运动估计和运动滤波的计算得到运动矢量数据。Nios II处理器通过EMIF总线读取这个运动矢量,在下一帧图像扫描开始时将SDRAM帧存储中的图像数据读入到视频显示FIFO中,经运动补偿模块后得到稳定的数字视频数据流,最后通过图像显示控制模块送到视频编码器输出稳定的模拟视频。

2.2 平台软件设计方案

电子稳像平台的软件设计分为两部分,分别在DSP6416和Nios II处理器中完成,其中DSP6416完成稳像算法的运动估计、运动滤波功能,Nios II处理器完成图像帧存储设计、视频编码器、视频解码器配置等功能。软件框架分为3个层次:

1)顶层管理。利用C6416芯片支持库以及DSP/BI-OS完成系统配置及实时多任务调度[6];

2)设备驱动。利用Nios II处理器的HAL完成编码器、解码器及SDRAM等外设的配置[7];

3)算法应用。利用C6000的Fast RTS函数库完成稳像算法中的浮点运算部分。

2.3 平台整体时序设计

图2是通过FPGA内部的逻辑分析仪采集到的稳像平台硬件设计时序图。

系统上电后FPGA通过内部Nios II处理器完成视频编码器、视频解码器的配置,之后通知DSP配置过程结束,DSP接收到配置结束信号后产生稳像开始信号(图2中信号4)送给FPGA。对于FPGA,接收到这个信号的时间是随机的,而本文的稳像算法是基于帧处理的,所以FPGA必须从稳像开始信号有效之后最新到来的一帧图像开始进行稳像处理。稳像平台的整体时序设计如下:

1)帧起始信号(图2中信号5)代表着稳像开始信号有效后每一帧新图像的到来,本文用这个信号触发Nios II处理器的外部中断来读取DSP计算出来的全局运动矢量。

2)处理区域奇场、偶场行有效信号(图2中信号6和信号7),这2个信号的下降沿分别代表稳像开始后每帧图像中奇场及偶场处理区域的结束,通知DSP通过EDMA通道读取图像灰度投影累加数据。为了完成实时稳像,DSP必须在信号7的下降沿和信号6的上升沿之间完成全局运动矢量的解算。

2.4 图像帧存储时序设计

电子稳像算法中,根据全局运动估计算法复杂程度的不同,需要存储图像的帧数就不同,图像延时的时间也就不同。基于灰度投影法的电子稳像平台需要进行一帧的图像存储,稳定之后的图像有一帧的延时。

在FPGA中利用SOPC_Builder生成SDRAM控制器通过DMA方式将图像存储在外部SDRAM中。同时在FPGA中还分别设计了采集FIFO和显示FIFO对图像采集和显示作行缓存。需要注意的是对于显示FIFO,本文必须提前写入一行数据以防止图像处理区域扫描信号到来时显示FIFO的读空。

图3是逻辑分析仪采集的帧存储时序波形,为了便于显示省略了中间的部分。分析如下:

1)利用处理区域列有效信号(图3中信号3)作为采集FIFO的写使能信号,信号的下降沿代表着一行有效数据采集完毕同时中断通知Nios II处理器通过DMA方式将数据写入SDRAM的采集存储区。采集FIFO的读使能、数据入、数据出分别对应于上图中的信号4,5,6。

2)利用提前一行的列有效信号(图3中信号8)上升沿去触发Nios II处理器的外部中断,通过DMA方式从SDRAM显示存储区中读出一行有效数据写入显示FIFO,而显示FIFO的读使能信号仍然使用信号3,这样便能防止显示FIFO的读空,同时保证显示FIFO中处理区域最后一行的有效数据被读出。显示FIFO的写使能、数据入、数据出分别对应于上图中的信号9,10,11。

由图3可见,上述设计中SDRAM读写操作时序不会出现重叠,完全满足时序要求。进行运动补偿时,上述设计的采集FIFO时序不发生变化,而显示FIFO的输出数据及相应的使能信号会发生变化。具体设计见图像运动补偿时序设计部分。

2.5 灰度投影数据累加时序设计

灰度投影数据累加包括行方向和列方向的数据累加,累加结果存储在FPGA片上的双端口RAM中。由于视频数据流的输入是随着行方向的扫描而来的,因此行方向上只要随着像素时钟对行方向投影数据作累加就可以了。

列方向投影数据累加采用2个双端口RAM,第1个双端口RAM存储图像处理区域内除最后1行图像外的列向投影数据累加结果,当图像扫描到处理区域最后一行时,从第1个双端口RAM读出之前的累加数据、加上图像最后1行当前列的数据、写入到第2个双端口RAM对应于列地址的存储单元中,同时将第1个双端口RAM对应列地址的存储单元清零。为了在1个像素时钟内完成数据读出、累加、写回的操作,本文用像素时钟的4倍频时钟驱动一个具有4个状态的状态机来完成上述的操作。图4为双端口RAM完成列方向投影数据累加过程示意图。

2.6 图像运动补偿设计

图像运动补偿模块的功能就是根据全局运动矢量计算出经过运动补偿之后的图像在SDRAM帧存中的位置并将图像取出来作显示。对于运动补偿之后产生的空白区域,本文作补零处理。

图像运动补偿功能由FPGA逻辑和Nios II处理器共同完成。Nios II处理器接收来自DSP的水平向和垂直向的全局运动矢量dx,dy,计算出运动补偿图像区域的首地址作为DMA的起始源地址。由于本文定义的DMA总线位宽为32位,为了地址对齐,定义每次DMA的数据长度为图像处理区域的长度img_h,为4的整数倍。这样对于每帧图像的运动补偿,实际上启动了(img_v-dy)次DMA传输,而每次DMA传输的数据中包含了dx个无效数据,其中img_h和img_v分别为图像处理区域的长度和宽度。

在FPGA的逻辑设计中,本文产生运动补偿所需的各使能信号控制显示FIFO接收DMA数据,在图像显示控制模块中去除每行的dx个无效数据,并最终将运动补偿图像区域的图像作显示。各使能信号的定义如图5所示。

在图5中,Clip_H为处理区域列有效信号;Clip_V为处理区域行有效信号;Trans_H为图像补偿区域列有效信号;Trans_V为图像补偿区域行有效信号;Trans_H_Fake为提前一行的图像补偿区域列有效信号;Trans_V_Fake为提前一行的图像补偿区域行有效信号。图5在空间位置上定义的图像补偿区域与2.4节中从时序上定义的图像处理区域是一致的,只不过2.4节中是在图像不发生抖动时将全部图像处理区域作显示,而在图像发生抖动时,本文只将运动补偿之后的有效图像区域作显示,无效部分作补零处理。

3 实验结果

为验证稳像平台的稳像效果,本文做了如下实验。通过人为随机设定的水平和垂直偏移量,截取摄像机输出100帧序列图像的512×512区域大小来模拟抖动的视频序列,图像所加偏移量的大小在[-30,+30]个像素之间。在DSP6416程序中记录算法解算出的抖动图像序列的帧间运动矢量。将当前帧前面的所有帧间运动矢量作累加即可得到当前帧图像相对于基准帧图像的运动轨迹。将实际运动轨迹和滤波后的运动轨迹数据通过Matlab软件绘图如图6所示。

a x方向运动轨迹

b y方向运动轨迹

由图6可见稳像算法能正确计算帧间运动矢量,并通过运动滤波去除视频中的无意抖动将摄像机的有意运动提取出来。同时将抖动的图像视频和稳像之后的视频分别在监视器上输出,稳像之后的视频达到了稳定效果。

4 设计总结

本文详细介绍了基于EP2S30 FPGA+DSP6416架构的电子稳像平台的硬件开发流程。采用灰度投影算法,平台能实时对水平向和垂直向抖动的范围为[-30,+30]个像素之间的标准PAL制视频进行稳定,稳像精度为1个像素。表1显示了FPGA中硬件资源的使用情况。

本文没有对稳像算法本身作深入地研究,而将重点放在了稳像平台的硬件架构设计和时序设计上。由表1可见FPGA内部硬件资源的裕量很大,同时在FPGA的外部也扩展了足够的存储器,加之DSP6416的使用,本稳像平台完全有能力完成更复杂的算法。

摘要:研制了基于FPGA+DSP架构的嵌入式实时电子稳像平台。DSP作为主处理器完成灰度投影稳像算法的运动估计和运动滤波,FPGA作为协处理器完成灰度投影数据累加及运动补偿。同时FPGA与内部Nios II处理器还共同完成系统时序控制、视频编码器配置、视频解码器配置、图像采集显示控制、EMIF总线接口控制、图像帧存储等功能。实验表明,平台能实时对25帧/秒(720×576),水平和垂直方向上存在±30个像素之间的抖动视频进行稳定,稳像精度为1个像素。

关键词:电子稳像,灰度投影,现场可编程门阵列,数字信号处理

参考文献

[1]赵红颖,金宏,熊经武.电子稳像技术概述[J].光学精密工程,2001,9(4):353-359.

[2]钟平,于前洋,金光.基于特征点匹配技术的运动估计及补偿方法[J].光电子.激光,20041,5(1):73-77.

[3]张博,吴芝路,张欣宇,等.基于矢量叠加和自适应中止的快速运动估计[J].电视技术,2006,30(4):7-10.

[4]罗诗途,王艳玲,张圮,等.车载图像跟踪系统中电子稳像算法的研究[J].光学精密工程,20051,3(1):95-103.

[5]周渝斌,赵跃进,刘明,等.基于C6711 DSP的实时数字稳像系统[J].北京理工大学学报,2004,24(5):435-438.

灰度投影法 篇4

电子稳像 (Electronic image stabilization—EIS) 是一种对视频图像序列进行修正的技术。其目的是除去视频图像序列中因摄像机无意抖动而造成的图像扰动, 从而获取清晰而稳定的视频图像序列。检测图像序列的帧间运动矢量是实现电子稳像的关键环节。目前检测运动矢量的方法有多种[1]:灰度投影法[2]、块匹配算法[3,4]、位平面匹配法[5]、特征跟踪法[6,7]等等。块匹配法精度很高, 但需要大量的计算时间, 占用系统资源大;特征跟踪算法对几何畸变有一定的适应能力, 运算速度快, 鲁棒性强, 但是精度方面的性能不令人满意;位平面匹配法只利用图像的一个位平面进行匹配, 匹配速度快, 但由于图像信息损失大, 估算精度有待提高;灰度投影算法能充分利用图像灰度总体分布的变化规律, 较准确的估计图像的运动矢量, 具有计算量小、精度高的特点, 但传统的灰度投影算法不能应用于大角度的旋转图像序列。为此提出了一种基于行灰度投影相关的快速图像旋转角度矢量估计算法, 该算法实现了对旋转图像序列角度运动矢量的快速估计, 可对任意角度的角度矢量进行高精度的估计, 有较高的稳定性和可靠性。

2 灰度投影

视频图像序列的实质就是灰度发生连续变化的一组图像。灰度投影算法能够充分利用图像的这种灰度变化特点, 较准确的获得图像的位移矢量。

灰度投影就是把经过滤波预处理后的每一帧图像, 将其灰度值映射成两个独立的一维波形, 即把二维图像信息用两个独立的一维信息来表示。取第k帧图像长、宽为m×m (本文图像长、宽的单位均为像素) 的中心区域, 则该区域的灰度投影公式可写成:

式中:miny= (h-m) /2、maxy= (h+m) /2;minx= (w-m) /2、maxx= (w+m) /2;w、h分别是图像的宽度、高度;Gk (x) 为该区域第x列的灰度投影值;Gk (y) 为该区域第y行的灰度投影值;Gk (x, y) 为第k帧图像 (x, y) 上位置处的像素灰度值。

3 基于行灰度投影相关的快速图像角度矢量估计算法

对于旋转图像序列, 如果将第k帧图像进行遍历[-180°, 180°]的旋转, 并与参考帧图像作灰度投影相关计算, 找到最小相关值, 就可以估算角度位移矢量。在这理论基础上, 本算法实现的关键是如何选取旋转区域、投影区域及减少运算量。

3.1 旋转区域和投影区域的选取

图像的旋转变换具有扩散性, 会丢失一部分图像数据, 所以采用图像的正方形中心区域为投影区域。如图1所示, 中间黑色区域ABCD为投影区域。将它向右旋转45°, 得到如abcd所示的形状, 这时投影区域丢失的图像数据最多, 为ABCD与abcd相割形成的4个白色三角形。

要确保投影区域的像素值不丢失, 选取的正方形旋转区域1234必须满足下式:

式中:LR是旋转区域的边长;LP是投影区域的边长。

理论上选取的投影区域越大, 精度和稳定性越好, 但是计算量将显著增大, 降低了角度矢量估算的速度。本文实验选取投影区域为60×60, 旋转区域为90×90, 可满足精度和稳定性要求。

3.2 角度矢量的相关检测

如果第k帧图像没有偏转, 它与参考帧图像投影区域的灰度投影相关值最小, 且图像偏离的角度越大, 相关值越大。这个结论证明如下:

3.2.1 灰度投影相关计算

将第k帧图像的m×m投影区域, 以1°为累加值, 作[-180°, 180°]的360次旋转, 将它的行、列灰度投影曲线与参考帧图像相应区域的行、列灰度投影曲线作绝对值差相关运算。则行相关计算公式为

式中:maxy= (576+m) /2;miny= (576-m) /2;G0 (y) 是参考帧图像投影区域第y行的灰度投影值;Gkθ (y) 是第k帧图像投影区域旋转θ度后第y行的灰度投影值。上式C (θ) 取最小值的时, θ即是图像旋转角度的矢量估计值。

3.2.2 行、列灰度投影相关曲线分析

行、列灰度投影相关曲线分三种情况进行分析:图像旋转角度为0°、[-90°, +90°]、[90°, 180°]∪[-180°, -90°]。现取0°情况进行分析如下:

以图2 (a) 为参考图像, 取投影区域100×100, 如图2 (b) 所示。将它旋转并与参考图像相应区域的行、列灰度投影曲线进行相关计算, 得到如图3 (a) 、图3 (b) 所示的相关曲线图。

从图3 (a) 可以看出, 行灰度投影相关曲线类似倒余弦函数, 具有单峰性的特点, 可采用快速搜索算法。即只有旋转角为0°时, 相关值最小, 这与式 (1) 结论相吻合。而且该曲线具有周期性, 在旋转角为n×360°时, 均可取到最小值, 即可进行任意角度的消旋。从图3 (b) 可以看出列灰度投影相关曲线在-180°、0°、180°三点处, 均出现最小值, 即只有旋转角度在45°以内, 可以判断出正确的相关值, 而在[-180°, 180°]内, 作大于45°角相关运算, 不具有单峰性, 如果采用快速搜索算法, 求不出正确的旋转矢量。

在其它两种情况下, 行相关曲线不具有严格的单峰性, 但可以证明它仍然适合快速搜索算法, 这里不再赘述。故取行灰度投影相关曲线作相关计算。

3.3 快速搜索算法

旋转区域进行遍历360°的旋转运算量非常大, 难以满足实时要求。为此, 采用快速搜索算法, 以下简称“二点法”。

如图4所示, 搜索半径r为5, 该搜索算法的原理如下:1) 平均选取3、6、9三个点;2) 计算它们的相关值, 找到相关值最小的点, 这里假设第3点;3) 以第三个点为中心, 以r/2为半径, 找到2、4两个点;4) 重复第二个步骤, 找到第2点;5) 依次类推, 找到1、2、3中相关值最小的点, 该点即是要找的匹配点。

从上面的搜索过程可以看出, 该搜索算法是以曲线的单峰性为基础的, 在搜索过程中自动判断相关值可能减小的方向, 在保证搜索精度的同时, 显著地减少了搜索的运算量。搜索半径为2n-1时, 全局搜索运算次数为2n+1-1, “二点法”所需运算次数为2n+1。可见采用“二点法”后, 角度矢量估算时间大大减少。

4 实验

实验在PⅣ2.67 GHZ, 内存512 M的PC机上, 操作系统为Windows Xp, 用VC 6.0编程实现。

投影区域分别为60×60、80×80、100×100, 旋转区域对应为90×90、120×120、150×150, 时间实验数据如表1所示。

用手工方法获取两张旋转128.8°、6.6°后的图像, 投影区域为60×60, 旋转区域为90×90, 搜索半径分别取180、360、1 800来获得1°、0.5°、0.1°的理论精度。精度实验数据如表2所示。

ms

(°)

用旋转平台获取旋转图像序列, 取4帧旋转角度不同的原始图像如图5所示。采用特征点跟踪算法 (FMVA) [11], 特征窗大小为15×15, 消旋结果如图6所示;采用本算法, 投影区域为60×60, 旋转区域为90×90, 消旋结果如图7所示。可以看出在旋转角度较小时 ( (a) 、 (d) ) , 两种算法消旋效果相当;旋转角度较大时 ( (b) 、 (c) ) , 后者消旋效果良好, 前者失效。这主要和它选取的特征窗大小有关, 如果增大特征窗, 角度矢量估计的时间会显著加大, 而本算法处理时间不受角度矢量大小的影响。

5 结论

从理论分析和实验结果可以看出, 基于行灰度投影相关的快速角度矢量估计算法实现了对旋转图像序列角度运动矢量的快速估算, 算法经过优化后, 可实现实时估算。和特征点跟踪算法相比, 该算法具有如下优点:

1) 估算旋转角度矢量的范围大, 可实现360°范围的角度矢量估算;

2) 精度高, 选取较大投影区域时, 理论上可实现任意精度的矢量估算。

当图像同时发生平移和旋转, 且图像的旋转区域没超出图像边界, 可先进行平移补偿, 然后再估算旋转角度矢量。

摘要:针对现存电子稳像算法估计图像旋转角度矢量的不足, 提出了一种基于行灰度投影相关的快速图像旋转角度矢量估计算法。通过在当前帧图像中心位置选取灰度投影区域和参考帧图像相应区域作行灰度投影相关计算, 估算出当前帧图像相对于参考帧图像的角度运动矢量。论述了灰度投影区域选取原则;分析了行、列灰度投影相关曲线的差异, 得出行灰度投影相关曲线具有单峰性的结论;阐述了快速搜索算法的原理及其在本算法中的应用。实验表明, 算法实现了对旋转图像序列角度运动矢量的快速估计 (在PⅣ2.67GHZ, 内存512M的PC机上, 估算速度为37.7ms) , 可对任意角度的角度矢量进行高精度的估计。

关键词:电子稳像,角度矢量估计,行灰度投影相关,快速搜索,算法

参考文献

[1]王明佳, 金光, 钟平, 等.实用电子稳像技术原理及方法[J].光机电信息, 2003, 2 (4) :29-31.WANG Ming-jia, JING Guang, ZHONG Ping, et al.Principle and Methods of practical Electronic image stabilization[J].OME Information, 2003, 2 (4) :29-31.

[2]Sauer K, Schwartz B.Efficient block motion estimation using integral projections[J].IEEE Transaction on Circuits and Systems for Video Technology, 1996, 6 (5) :513-518.

[3]FILIPPO V ALFIO C, MASSIMO M.Digital Image stabilization by adaptive block motion vectors filtering[J].IEEE Trans.Consumer Electronic, 2002, 48 (3) :796-801.

[4]KENYA U, ATSUSHI M, HIROFUMI I, et al.Automatic image stabilizing system by full digital signal processing[J].IEEE Trans.Consumer Electronic, 1990, 36 (3) :510-519.

[5]KO S J, LEE S W, JEON S W, et al.Fast digital image stabilizer based on gray-coded bit-plane matching[J].IEEE Trans.Consumer Electronic, 1999, 45 (3) :598-603.

[6]JOON K P, YONG C P, DONG W K.An adaptive motion decision system for digital image stabilizer based on edge pattern matching[J].IEEE Trans.Consumer Electronic, 1992, 38 (3) :607-616.

[7]Censi A, Fusiello A, Roberto V.Image stabilization by feature tracking[C]//International Conference on Image Analysis and Processing.Venice, Italy:[s.n.], 1999:665-667.

[8]汪小勇, 李奇, 徐之海, 等.用于实时数字稳像的灰度投影算法研究[J].光子学报, 2006, 35 (8) :1268-1271.WANG Xiao-yong, LI Qi, XU Zhi-hai, et al.Study on Gray Projection Algorithm for real time Video Stabilization[J].ACTA PHOTONICA SINICA, 2006, 35 (8) :1268-1271.

[9]李博, 王孝通, 杨常青, 等.电子稳像的灰度投影三点局域自适应搜索算法[J].光电工程, 2004, 31 (9) :70-72.LI Bo, WANG Xiao-tong, YANG Chang-qing, et al.Three-point locally adaptive searching in gray scale projection algorithm for electronic image stabilization[J].Opto-Electronic Engineering, 2004, 31 (9) :70-72.

[10]孙辉.快速灰度投影算法及其在电子稳像中的应用[J].光学精密工程, 2007, 15 (3) :412-416.SUN Hui.Fast gray projection algorithm and its application to electronic image stabilization[J].Optics and Precision Engineering, 2007, 15 (3) :412-416.

灰度投影法 篇5

无人机在空中遥感领域中应用日趋广泛[1]。但是无人机自身体积和工作特点,造成无人机拍摄的视频图像帧间不稳定,人眼视觉效果较差,影响任务执行,为后续处理带来困难。因此,要对无人机视频进行稳像处理。

目前,视频稳像方法主要分为3 类: 机械稳像、光学稳像和电子稳像[2]。采用电子稳像技术可以在不提高传感器复杂度的情况下,通过信号处理的方式,降低由于无人机飞行不稳定带来的视频效果的影响。电子稳像方法又分为2D方法和3D方法。3D方法实时性较差[3]。2D方法又分为代表点法、灰度投影法、块匹配法、位平面匹配法和特征点匹配法[4]。2D方法实时性强,但目前对于景深复杂的场景处理能力不足。

在空中遥感的应用中,无人机视频场景中大多没有复杂的景深信息,同时对实时性提出了很高的要求。所以2D方法有很大的应用潜力。但传统的2D方法对于大抖动研究较少[5],无法满足无人机视频稳像需求。

本文联合使用了灰度投影法和块平面匹配法,对无人机视频稳像,提高了对大抖动的处理能力。

1 信号处理流程

视频稳像的处理流程如图1。视频图像先进行平移运动估计,即先使用灰度投影得到平移运动估计,并作为初始值,再进行块匹配得到最终的平移运动估计。对块匹配配准后的图像使用极坐标变换,再次块匹配得到旋转缩放运动估计。由局部运动估计得到全局运动估计。使用卡尔曼滤波方法对全局运动估计进行运动轨迹平滑。根据平滑后的轨迹,对视频图像重构,产生稳像后的视频输出。

2 运动估计

无人机视频图像中4 个角区域的位置相关性最弱,主要表现在当任意区域有运动物体干扰,影响运动估计时,其他区域不易受到影响。故基于这4 个区域可以得到极佳的全局运动估计。

2. 1 局部运动估计

2. 1. 1 灰度投影

对视频第k帧图像,取4 角区域上的图像Iki( x,y) ,i = 1,2,3,4 ,各块图像进行灰度投影,得到行投影Vki( x) 和列投影Hki( y) 。对2 条投影曲线进行相关运算[6],行投影相关运算的公式为:

式中,Vik( x) ,Vir( x) 分别为当前帧和参考帧的行投影; N为行投影的长度; m为搜索范围。

求得c( w) 最小值对应的wmin,则水平位移为:Vgcxik= wmin- m - 1 。同理可得垂直位移Vgcyik。

2. 1. 2 块平面匹配

同一图像块进行块匹配,SAD匹配准则运算开销最小,采用SAD匹配准则:

块匹配的具体方法如图2 所示。研究表明,块匹配搜索算法使用DS搜索算法,既可以减少运算开销又可以得到与FS搜索算法相似的搜索结果。故采用DS搜索算法[7]。

将灰度投影方法得到的平移运动估计,作为DS搜索算法的起始中心点,再进行搜索。得到水平运动估计Vxik和垂直运动估计Vyik。

2. 1. 3 旋转缩放运动估计

旋转缩放运动估计选择对数极坐标变换[8],图像从笛卡尔坐标系到对数极坐标系( I( x,y) →I( r,θ) ) 的变换关系为:

式中,( x0,y0) 为坐标系变换中心。设变换中心为( 0,0) ,则θ = arctan( y /x) 在复平面表示为z = x + iy = r( cosθ + isinθ) = reiθ。由对数极坐标变换w = loga( z) = loga( reiθ) = logar + iθ ,可得在对数极坐标系下,尺度变化和角度变化是相互独立的。设 ρ = logar,φ = θ ,若图像以变换中心缩放k倍,旋转 Δθ ,可得 ρ1= logakr = logar + logak= ρ + Δp,φ1= φ + Δθ ,对数极坐标变换后的图像在尺度轴方向上平移了 Δρ ,角度轴方向上平移了Δθ 。若对数极坐标变换的图像分辨率为M × N ,图像位移了( Δm,Δn) ,则原始图像缩放了k =aΔm/M,旋转了 Δθ = 2πΔn /N 。

基于极坐标变换图像特征,同样使用块匹配的方法进行旋转缩放运动估计,得到Vrik,Vθik。因为对数极坐标变换前,图像在极径较小时,图像点的数目较少,所以需要插值运算计算出变换后的图像点。如果这些插值后的图像点参与计算,匹配和运动估计的结果便会很大程度受到这些少数点的影响。所以,在进一步的运动估计中,只对变换后图像的下半部分进行块匹配,并做运动估计。同时避免了对图像上半部分变换的运算开销。

2. 2 全局运动估计

由上述方法得到各个子块的局部运动估计Vik= ( Vxik,Vyik,Vrik,Vθik) 。对局部运动估计和上一帧的全局运动估计,进行中值滤波[9]:

式中,Vgk为当前帧的全局运动估计; V1k,V2k,V3k,V4k为各子块的局部运动估计; Vgk -1为前一帧全局运动估计。

3 运动平滑

运动估计的累积形成运动轨迹。稳像的目的是去除运动轨迹的高频运动分量,从而去除抖动。

一般采用曲线拟合与卡尔曼滤波的方法,对运动轨迹平滑[10]。曲线拟合的方法缺点在于控制点的选择,导致无法实现实时处理。采用卡尔曼滤波[11,12],实时地进行轨迹平滑。以X轴水平方向为例建立状态方程和观测方程:

式中,Xk为k时刻的测量值; xk,vxk为k时刻的状态; xk -1,vxk-1为k - 1 时刻的状态; N( 0,σx) ,N( 0,σX) 分别为系统过程和量测的高斯白噪声。

4 视频图像重构

平移和旋转缩放运动估计可以得到图像的相似变换[13]:

式中,u,u' 分别为变换前后图像点的位置矢量; s为缩放系数; R为旋转矩阵; t为平移向量。相似变换写成单应性变换矩阵为:

式中,H为齐次的变换矩阵,变换前后图像点为一一映射关系。

实际应用中,采用反向变换,但变换后的图像边缘通常会出现黑边。可以采用其他帧信息剪裁、填充,或用修图的方法来处理,这样会保持图像原始分辨率但会影响算法的实时性。也可以采用对当前帧剪裁的方法处理,虽然分辨率会有损失,但保证了算法的实时性。本文采用当前帧剪裁的方法。

5 实验结果分析

在双核CPU: 3. 4 GHz,WIN7 操作系统,Matlab R2011a平台仿真环境下,对算法进行了仿真实验,并对算法处理后的视频做了PSNR值统计,PSNR值反应了视频图像序列的差异大小( PSNR值越大差异越小) 。处理视频采用国外相关研究使用的视频数据库,分辨率为640* 360。算法选取的匹配块大小为64* 64。块匹配算法对比如表1 所示。由表1可以看出,本文算法在运算效率上相对于DS算法有了较大的提升,同时,视频序列的PSNR值也有了小幅提升,这是因为灰度投影法计算出的运动估计减小了块匹配算法搜索到局部最优点的概率。

卡尔曼滤波前后的运动轨迹如图3 和图4 所示,过程噪声Q = 0. 001 。由图3 和图4 可以看出,滤波后的运动轨迹变得平滑,高频分量减少。

算法对视频稳像的结果如表2 所示。可以看出,在不使用旋转缩放运动估计信息的平移变换方法,视频稳像的质量已有了大幅度提升。使用了旋转缩放运动估计的信息,采用相似变换后,视频稳像质量又有了小幅提升。这是因为视频抖动主要表现为平移抖动。所以平移变换后,相似变换可以提升的幅度有限。平移变换每帧只需0. 2 s左右,相似变换需0. 4 s左右。都可以满足视频25 fps的要求,达到了实时性的要求。

6 结束语

上一篇:防水卷材屋面工程施工下一篇:计算机辅助与数控编程