技术文章
基于双NiosⅡ的红外图像实时Otsu局部

递归分割算法设计
李 坚,王新赛,贺 明,薛 雷

(防空兵指挥学院红外与射频技术研究中心,河南省郑州市450052)

0引言

利用红外成像传感器实现实时目标成像跟踪是精确制导武器的核心技术,图像中目标的分割效果尤其是有效地使目标从背景中分离出来是保证系统稳定跟踪的关键,Otsu分割算法因其简单有效而在实时目标成像跟踪系统中得到了广泛应用。用这种聚类准则分割图像,当目标在图像中占有适当的比例时,分割结果比较好。然而,对小目标图像却不能把目标从背景中分割出来,经常会把很多背景错分为目标。本文提出了利用改进的快速局部递归Otsu分割算法对图像分割,并且依靠并行NiosⅡ软核和硬件逻辑结合的速度优势对算法实时实现。

1 算法原理

Otsu方法(即大律方法)在获得图像灰度直方图的条件下,利用概率论的知识,通过计算最大类问方差而得到分割门限,在较为理想的"双峰"条件下,用Ot-su准则能够得到较好的分割效果。Otsu算法步骤如下。

设图像包含L个灰度级(0,l,…,L-1),灰度值为i的的像素点数为/vi,图像总的像素点数为N=N0+N1+…+NL-1。灰度值为i的点的概率为:

门限t将整幅图像分为暗区c1和亮区c2两类,则类问方差σ2b是t的函数:

式中:aj为类cj的面积与图像总面积之比, ;uj为类cj的均值,该算法选择最佳门限 t使类问方差最大,即
,则由式(2)和式(3)有:
在冷背景(如天空)下的红外飞机图像中,飞机目标的灰度级比较高,而且目标区域的面积往往要比背景区域的面积小一些,当两者面积相差悬殊时,简单的一次Otsu分割会错误地将部分背景划分到目标区域Otsu,考虑到一次Otsu分割的结果图像可以分为背景区域和(含有部分背景的)目标区域两部分,由于只对目标区域感兴趣,把背景区域去掉并不会丢失目标信息,那么,可以对结果图像的(含有部分背景的)目标区域进行Otsu分割得到新的结果图像,接着,把新的结果图像中背景区域去掉,若目标区域还包含有部分背景,则再对(含有部分背景的)目标区域进行Otsu分割,依次递归下去,直至得到比较理想的分割图像。这种方法称为Otsu局部递归分割方法。

对红外图像数据流处理时,由于Otsu局部递归分割算法需要对图像进行多次迭代处理,而且对每场图像分割需要的迭代次数不同,所以很难保证分割的实时性,为此我们提出了利用Otsu准则对图像进行两次局部递归分割,即在第一次Otsu方法分割之后,将分割得到的亮像素再次利用Otsu分割准则计算得到新的分割阈值。实验表明,即使存在复杂的云层背景的情况下,经过两次迭代分割以后,目标也较好地被分割出来。

2 双NiosⅡ的实现方案

NiosⅡ嵌入式处理器是Altera公司于2004年6月推出的第2代用于可编程逻辑器件的可配置的软核处理器,性能超过100 Dhrystone MIPS(百万条指令每秒)。NiosⅡ是基于哈佛结构的RISC通用嵌入式处理器软核,能与用户逻辑相结合,编程至Altera的FPGA中。处理器具有32位指令集,32位数据通道和可配置的指令以及数据缓冲。它特别为可编程逻辑进行了优化设计,也为SOPC(可编程单芯片系统)设计了一套综合解决方案。NiosⅡ处理器系列包括3种内核:高性能内核(NiosⅡ/f);低成本内核(NiosⅡ/e);性能/成本折中的标准内核(NiosⅡ/s),它是前两种的平衡。本系统采用高性能内核。NiosⅡ处理器支持256个具有同定或可变时钟周期操作的定制指令,允许NiosⅡ没计人员利用扩展CPU指令集,通过提升那些对时间敏感的应用软件的运行速度来提高系统性能。

根据红外焦平面成像特性,为了保证算法的实时性,采用双NiosⅡ软核和硬件加速器协同设计的方式,在图像场的问隙进行实时Otsu局部递归分割处理。图1为实现算法原理图。

局部递归区域提取单元将需要分割的红外数据读入FPGA内部双端口RAMO,直方图统计对数据统计直方图,存放于双端口RAM2,聚类统计单元分别对直方图依次从高低两个方向计算类内均值和概率,把累加结果存人三端口RAMO和RAM1中。聚类统计结束后,两个NiosⅡ并行对高低两个方向的聚类统计结果进行类问方差计算并分别求最大值,取两者最大的值为分割阈值。完成一次分割后,局部递归区域提取单元依据得到的阈值提取出目标区域,存入双端口RAM1中,接着按第1次分割步骤完成快速局部Otsu递归分割算法。

为了最大化地提高算法的处理速度,系统采用CPU并行工作方式,如图2所示。两个NiosⅡ同时负责收发处理数据。当其中一个CPU执行完制定的任务后等待另一NiosⅡ,两个NiosⅡ任务全部完成后,NiosⅡ0从MailBox中取出NiosⅡ1的处理结果,计算最终分割阈值。采用这种将数据块分细处理结构,减少单个CPU处理的数据量,缩短了算法延迟。

考虑到算法需要进行循环的浮点数计算,采用NiosⅡ的定制指令和VHDL编写硬件算法加速器保证系统运行速度。表1为采用自定义浮点指令与软件实现浮点运算性能对比。定制指令逻辑和NiosⅡ的连接在SoPC Builder中完成。NiosⅡCPU配置向导提供了一个可添加256条定制指令的图形用户界面,在该界面中导人设计文件,设置定制指令名,并分配定制指令所需的CPU时钟周期数目。系统生成时,NiosⅡIDE为每条用户指令产生一个在系统头文件中定义的宏,可以在C或C++应用程序代码中直接调用这个宏。

表2为NiosⅡ软件实现系统算法与自定义指令实现性能对比。

3 实验结果

局部递归Otsu分割方法通过递归计算对图像中目标不断地逼近,因此在复杂的背景下,对红外图像目标分割有很好的效果,但是由于算法迭代繁琐,很难实时实现,本文提出了一种基于双NiosⅡ嵌入式处理器的红外图像快速局部递归Otsu分割实时实现方法。通过在Altera的Stratix FPGA中集成两个100 MHz软核配合一定的硬件逻辑,大大减小了算法的处理时间,实现了算法的实时处理。实验表明,该设计每秒可处理25帧320×240×8 bit的红外图像。图3所示为对3 km外的坦克目标分割效果图。

图3(a)为原始图像,图像中心位置有一坦克目标;图3(b)为一次Otsu分割结果,由于背景比较复杂,坦克目标与背景没有完全分割开;图3(c)为经过本文快速局部递归Otsu分割后的效果图,图中的坦克目标从背景中很好地分割出来。

 
 
    网站导航 |友情链接 | 招聘英才 | 联系我们 | 汇款方式 | 在线支付
公司地址:浙江省杭州市信义坊商街225号  邮政编码:310014
E-mail:tech@freefpga.com 服务MSN:freefpga@hotmail.com 电话(传真):0571-85084089
FPGA开发板技术支持群:7277386
Copyright © 杭州自由电子科技有限公司 2006 freefpga.com All Rights Reserved 备案序号:浙ICP备06026335号