图像自适应分段线性拉伸算法的FPGA设计

发布者:HeavenlyWonder最新更新时间:2010-07-26 来源: 现代电子技术关键字:FPGA  图像增强 手机看文章 扫描二维码
随时随地手机看文章

  0 引言

  由于红外图像的成像机理以及红外成像自身的原因,红外图像有对比度低、图像较模糊、噪声大等特点。因此抑止噪声,提高图像信噪比,以及调整红外图像对比度,以利于后续图像分析、目标识别或跟踪,必须对红外图像进行增强处理。另外,在其他场合,若采用人机交互方式,则必须对原始图像进行预处理,改善图像视觉效果,使其更适合人机进一步的分析和处理。

  图像增强从作用域出发,分为空间域增强和频率域增强两种。频率域是一种间接增强的方法,由于存在域之间的变换和反变换,计算复杂,难以满足实时性要求。自适应分段线性拉伸算法是一种空间域图像增强方法,直接对图像像素灰度进行操作,由于运算过程简单、实现方便,目前的图像增强预处理电路大多选用这种算法。硬件实现上,最初是采用单片DSP芯片实现,其原理为:图像数据实时的传输给DSP,DSP接收完1块数据后,再对整块数据进行增强处理,这样势必会造成时间的延迟,不能满足精确制导武器系统实时性的要求。后来硬件结构发展为采取DSP,FPGA芯片相结合的方式。这样,有效结合了DSP的运算能力强与FPGA逻辑和存储资源丰富的优点;不足之处在于,DSP与FPGA之间的通信给设计工作增加了额外负担。与DSP相比,FPGA结构上的优势使得其更适合完成并行处理、及结构性强和高速的运算。本文基于这种算法理论基础,使用xilinx公司规模较大的XC4VLXl5系列FPGA,实现了红外图像的实时处理。

  1 自适应线性分段线性灰度级拉伸算法

  图像灰度线性拉伸算法表达式为:

  式中:i是图像数据行号;j是图像数据列号;Y(i,J)是拉伸后输出图像灰度值;X(i,j)是输入原始图像灰度值,为14 b二进制数;Xmin是输入图像数据的最小灰度值;Xmax是输入图像数据的最大灰度值;Zmax表明输出图像的最大灰度值,设计中拉伸后的图像灰度值用8 b二进制数表示,故Zmax=255。

  首先对红外图像做灰度直方图统计,低信噪比条件下,选取压缩因子为5%,将盲元和噪声的影响降到最低。分别搜索5%最大灰度值中的最小值作为Xmax,5%最小灰度值里的最大值作为Xmin。拉伸转换时,将大于Xmax的像素灰度置为Zmax,小于Xmin的像素灰度置为O。此算法将线性拉伸区间自适应地分为[O,Xmin),[Xmin,Xmax]和(Xmax,255]三个部分。其中,[O,Xmin)和(Xmax,255]两个灰度区间的像素灰度分别被压缩为O和255。若图像中目标较小,且目标正好位于两个被压缩的区间内,就有可能被抑制。为避免这种情况发生,可视情况适当调整压缩因子5%的大小。

  2 拉伸算法的FPGA实现

  2.1 设计思路

  根据以上算法分析,FPGA设计思路如下:在每帧图像帧正程,用双端口RAM进行直方图统计,记录每个像素灰度值出现的次数,帧逆程即可统计得到此帧图像的Xmin和Xmax。因为相邻两帧图像近似度高,可用前帧得到的Xmin和Xmax来处理下帧图像。在帧逆程时,调用除法器计算出的值;在下帧正程时,只需计算Q·[X(i,j)-Xmin],然后将得到的结果除以64(左移6位),即对每个像素只需1次减法、1次乘法和移位就可完成拉伸运算。实现框图如图1所示,拉伸后数据的输出仅比输入延时62.5 ns,实现了对红外图像的实时处理。

[page]

  2.2 硬件设计

  通过以上设计思路的分析,设计主要包括灰度直方图统计、除法和拉伸运算3部分。下面进行详细介绍。

  2.2.1 双端口RAM

  XC4VLXl5芯片具有丰富的BlockRAM资源,用它构成双端口RAM,进行灰度直方图统计。像素的灰度值作为双端口RAM的地址,对应空间存储此灰度值在1帧图像里的频数。以320×256帧大小、灰度值为14 b的红外图像为例,在每个像素灰度值都相同的极限情况下,每个地址空间需要的存储的值为81 920,转换为二进制有17 b,故所需存储空间大小为17 b×214。对双端口RAM的操作分为三个阶段:

  (1)在帧正程时,只需对A端口进行读/写操作。根据接收到的像素灰度值,先读出RAM中对应地址空间的储值,加“1”后回写入原来的地址空间,这样在每帧正程结束时,就统计完了每个灰度值出现的频数,即完成了灰度直方图统计。

  (2)帧逆程时,要同时对A,B端口进行读操作。对于A端口,依次从高地址读取RAM中的数,将读取的数进行累加,当和大于帧像素个数的5%时,此时对应的地址值即为Xmax;类似地对B端口操作,从0地址开始读RAM,可找到Xmin。将得到的灰度值Xmin和Xmax存入寄存器,作为除法器和下一帧图像拉伸运算的输入。

  (3)每帧最后将双端口RAM清零,为下一帧灰度直方图统计做准备。由于双端口RAM没有整体清零功能,设计中采用从“O”地址开始。依次往高地址写零的方式清零。

  2.2.2 除法器

  除法运算通过调用ISE IP Core Generator生成的15位定点除法器来实现,满足高精度要求,而不采用逼近法。一帧图像的拉伸只需调用一次除法器,提高了运算的效率。在帧逆程计算Q:=16 384/(Xmax-Xmin)的值,对于15位输入,除法器有18个时钟周期的延时,而这并不会影响图像处理的实时性。

  2.2.3 控制时钟

  在1个像素时钟周期内要完成读RAM、加法计算和回写RAM的操作,RAM的控制时钟至少必须是像素时钟的4倍。控制时钟的选取还要考虑帧逆程的时间长度,要在逆程里访问RAM查找到Xmin和Xmax,还要完成RAM清零操作。FPGA系统时钟为96 MHz,分频后产生48 MHz,为像素时钟8倍,用它作为双端口RAM和除法器的控制时钟,可满足要求。

  2.2.4 拉伸运算

  将式(1)进行简单变换,可以记为:

  Q值在上帧结束前已经得到,根据式(2)拉伸运算得到简化,只需1次减法和乘法运算,得到积的小数点左移6位后,截取低8位就得到拉伸后的灰度值。需要注意的是,截取前要判定乘法是否溢出,如果溢出,结果置为最大灰度值255。[page]

  3 系统验证

  采用飞机高空采集的地面红外图像作为验证模板,灰度拉伸前的原始图像如图2所示,整幅图像对比度低,细节极不明显。最大、最小灰度值按5%的比例选取,拉伸后的图像如图3所示,拉伸后可明显看出河流、道路、汽车等地物的轮廓,但图像中较亮和较暗的部分层次不清晰。若减小灰度值压缩比例为2%,图像的主要轮廓变化不明显,较亮和较暗的部分将会显现出一定层次,这表明被压缩的区间相对变小,按比例拉伸的图像范围扩大。分段线性拉伸的结果可好可坏,分段区间的选择是关键,选取时要考虑原始图像的质量。噪声和盲元数目较少时,被压缩的区间可适当调小。

  该设计充分利用Virtex-4 FPGA的逻辑资源,实现了红外图像的自适应分段线性拉伸,对FPGA芯片资源占用情况如表1所示。整个设计完全在FPGA中实现,能最大限度地减少分立元件的使用。降低了系统的整体功耗,设计周期和开发成本也就能随之减少。算法完全采用流水线设计思路,处理后的数据相对输入延时小于一个像素时钟周期,最高系统时钟可达128 MHz。设计的性能和实时性满足预期目标,可用于精确制导武器或导航系统。

  4 结语

  这里简要分析了图像自适应分段线性拉伸算法,利用Xilinx Virtex-4 FPGA丰富的片上资源实现了这一算法。通过实验对设计的有效性进行了验证,图像对比度有明显提高,噪声和盲元被抑制。但该算法具有局限性,仅适用于大目标的图像增强。在天文学、计算机视觉、动态景物分析、超声及声纳图像处理等领域中广泛存在着点目标红外图像,由于点目标无形状、尺寸等可利用的信息,处理时须存储多帧图像,数据处理量大。在做图像灰度级拉伸时,目标有可能被作为噪声而抑制掉,从而丢失有用信息,今后需要对点目标红外图像的增强方法做进一步研究。

关键字:FPGA  图像增强 引用地址:图像自适应分段线性拉伸算法的FPGA设计

上一篇:浅谈DSP系统中的电磁兼容问题
下一篇:基于PLC的一氧化碳焚烧炉控制系统的设计

推荐阅读最新更新时间:2024-05-02 21:06

Dini的单板FPGA原型采用了Stratix® III
2008 年 11 月 11 号, Altera 公司宣布, Dini 集团在其业界容量最大的单板 FPGA 原型引擎中采用了具有 340K 逻辑单元 (LE) 的 Stratix ® III EP3SL340 FPGA 。 DN7020K10 采用了 1,760 引脚封装的 20 片 EP3SL340 FPGA ,每个器件提供 1,104 个用户 I/O ,容量等价于 5 千万 ASIC 逻辑门。客户设计无线通信、网络和图形处理应用等定制 ASIC 时,可以利用这一超大容量原型电路板来验证自己的逻辑设计,在接近实时时钟速率的环境下运行设计。 Dini 集团总裁 Mike Din
[工业控制]
Dini的单板<font color='red'>FPGA</font>原型采用了Stratix® III
Microsemi推出SmartFusion® cSoC与FPGA自有品牌计划
    致力于提供帮助功率管理、安全、可靠与高性能半导体技术产品的领先供应商美高森美公司(Microsemi Corporation,纽约纳斯达克交易所代号:MSCC) 今天为其SmartFusion®可定制化系统单芯片(cSoC)和广泛的闪存型与反熔丝型(antifuse-based)FPGA解决方案组合推出自有品牌计划(private labeling program)。主要的计划内容包括:      •自定义标志:器件可打上客户的商标与型号标志   •工厂编程:美高森美将负责为器件进行编程,客户无需自行建立编程能力与基础架构   •授权:Microsemi的SmartFusion cSoC已包含一颗经授权的ARM® Corte
[嵌入式]
莱迪思将参加2023年上海国际嵌入式大会,带来最新的FPGA技术进展
中国上海——2023年6月7日—— 莱迪思半导体公司 ,低功耗可编程器件的领先供应商,今日宣布将参加在 中国上海举办的2023年国际嵌入式展会 ,展示其最新的技术进展。公司将举办关于网络边缘AI计算的会议,还将在展台上展示基于莱迪思器件的嵌入式视觉、AI、安全、功能安全和互连演示。这些解决方案可以帮助工程师设计面向未来的网络边缘汽车、工业和安全应用。 • 参展方:莱迪思半导体 • 内容/时间: o 莱迪思展台和方案演示:6月14日 – 16日;3号展厅#A086展台 o 大会会议日程:北京时间6月14日(13:45-14:05) • 嵌入式AI会议:通过低功耗FPGA为智能PC带来
[嵌入式]
利用Xilinx FPGA和分解器数字转换器简化角度测量
自从人类发明了转轮,我们就希望了解如何通过改变精度提高转轮转动效率。在过去几个世纪,科学家和工程师已经研发了许多方法来实现此目标,期间轮-轴系统的基本原理得到了广泛应用,从汽车、音量旋钮、各种机械形式的齿轮到简陋的手推车,几乎每种机械系统均采用了这一原理 。 经过多个时代的探索,人们发现让转轮高效运转的最重要因素并非转轮本身(为何不彻底改造它呢?),而是转轮的轴角。目前测量和优化轴角的最有效方法是采用角度传感器。现有许多种角度传感器都能够通过轮轴监控和改进促进轮周效率优化;但如果配合使用FPGA,您就能够取得非常显著的效果,同时能够提高众多应用中的轮轴/轮周效率。 在详细介绍工程师们如何最佳利用赛灵思FPGA达到上述目的之前,先
[测试测量]
利用Xilinx <font color='red'>FPGA</font>和分解器数字转换器简化角度测量
基于ARM和FPGA架构的三维图形加速系统
引言   随着图形处理的巨额运算量,CPU变得不堪重负。此时,需要使用特定的硬件设备来为嵌入式CPU承担图形处理的任务。   具有三维图形硬件加速能力的ARM+FPGA架构嵌入式图形系统就是其中一种解决方案。其中,ARM处理器负责运行嵌入式操作系统、执行上层图形应用程序,而三维图形处理所需的大量运算则由FPGA实现的GPU(图形处理单元)进行。   图形API简介   在图形系统中预先定义了一组图形API,作为一个抽象层将图形应用程序和图形系统的具体实现隔离开来。具体的图形应用程序都将通过这些图形API来完成所有与绘制图形相关的工作。这样,同样的应用程序就可以在不同的目标图形系统上运行。   目前应用较为广泛的标准图形
[嵌入式]
基于ARM和<font color='red'>FPGA</font>架构的三维图形加速系统
德州仪器推出新型FPGA扩展板
        日前,德州仪器(TI)宣布推出专用于DK-LM3S9B96开发套件的新型 Stellaris FPGA 扩展板,可显着加速开发低成本安全接入控制系统及其它需要高速外部处理单元接口的应用。 这款全新电路板使开发人员能够轻松评估Stellaris微处理器(MCU) 高灵活性外设接口 (EPI) 的高带宽机器对机器 (M2M) 并行接口功能。EPI 的 M2M 模式可支持高达 32 位的数据宽度以及高达每秒 150 MB 的数据速率,专用于帮助低成本安全接入控制应用的开发人员将摄像系统或低分辨率视频与 Stellaris MCU 接口相连,以为经处理的编码影像提供高性价比的以太网通信功能。在上述系统中,专用的视频处理
[嵌入式]
FPGA工程师应如何挑选ADC和DAC
将具有信号处理功能的FPGA与现实世界相连接,需要使用模数转换器(ADC)或数模转换器(DAC)   一旦执行特定任务,FPGA系统必须与现实世界相连接,而所有工程师都知道现实世界是以模拟信号而非数字信号运转的。这意味着需要在模拟信号域与数字信号域之间进行转换。针对手头工作选择恰当的FPGA时,用户面临着林林总总的选择,在为系统选择正确的ADC或DAC时也是如此,玲琅满目。 选择时首先要确定转换信号所需的采样频率。这个参数不仅将影响转换器的选择,同时也会影响对FPGA的选择,这样才能确保器件能够满足所需的处理速度及逻辑封装要求。转换器的采样频率至少为信号采样频率的2倍。因此,如果信号的采样频率为50MHz,则转换器采样频率至少
[电源管理]
<font color='red'>FPGA</font>工程师应如何挑选ADC和DAC
一种并行存储器系统的FPGA实现
   摘 要: 介绍一种可在现代小卫星上应用的高(低)位交叉并行存储系统,并给出了该存储系统控制器的FPGA实现。该系统的应用将极大地增强星上计算机的数据通信和图象处理的能力,并提高整个系统的可靠性。     关键词: 现代小卫星 星载计算机 并行存储系统 FPGA 硬件描述语言     现代小卫星,通常指80年代以后发展起来的小卫星。它建立在微电子技术,计算机(包括软件)、微型光学和机械、轻型复合材料及高精机械加工的基础上,是航天高技术发展的产物。虽然现代小卫星的体积和重量很小,成本和风险都很低,但由于选用了高新技术,整个小卫星的容量和性能,即小卫星的功能密度是很高的。而且小卫星组成星座可拓宽全新的应用领
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved