1 引言
利用红外成像传感器实现实时目标成像跟踪是精确制导武器的核心技术,图像中目标的分割效果尤其是有效地使目标从背景中分离出来是保证系统稳定跟踪的关键,Otsu分割算法因其简单有效在实时目标成像跟踪系统中得到了很广泛的应用,用这种聚类准则分割图象,当目标在图象中占有适当的比例时,分割结果比较好。然而对小目标图象却不能把目标从背景中分割出来,经常会把很多背景错分为目标,本文提出了利用改进的快速局部递归Otsu分割算法对图象分割。并且依靠并行Nios II软核和硬件逻辑结合的速度优势对算法实时实现。
2 算法原理
Otsu方法(即大律方法)在获得图像灰度直方图的条件下,利用概率论的知识,通过计算最大类间方差而得到分割门限.在较为理想的“双峰”条件下,用Otsu准则能够得到较好的分割效果。Otsu算法步骤如下:
在冷背景(如天空)下的红外飞机图像中,飞机目标的灰度级比较高,而且目标区域的面积往往要比背景区域的面积小一些,当两者面积相差悬殊时,简单的一次Otsu分割会错误地将部分背景划分到目标区域Otsu,考虑到一次Otsu分割的结果图像可以分为两部分:背景区域和(含有部分背景的)目标区域.由于只对目标区域感兴趣,把背景区域去掉并不会丢失目标信息.那么,可以对结果图像的(含有部分背景的)目标区域进行Otsu分割得到新的结果图像,接着,把新的结果图像中背景区域去掉,若目标区域还包含有部分背景,则再对(含有部分背景的)目标区域进行Otsu分割,依次递归下去,直到得到比较理想的分割图像为止.这种方法称为Otsu局部递归分割方法。
对红外图像数据流处理时,由于Otsu局部递归分割算法需要对图像进行多次迭代处理,而且对每场图像分割需要的迭代次数不同,所以很难保证分割的实时性,为此我们提出了利用Otsu准则对图象进行两次局部递归分割。即在第一次Otsu方法分割之后,将分割得到的亮像素再次利用Otsu分割准则计算得到新的分割阈值。实验表明,即使存在复杂的云层背景的情况下,经过两次迭代分割后,目标也较好地被分割出来。
3 双Nios II的实现方案
Nios II嵌入式处理器是Altera公司于2004年6月推出的第二代用于可编程逻辑器件的可配置的软核处理器,性能超过100 DMIPS。NioslI是基于哈佛结构的RISC通用嵌入式处理器软核,能与用户逻辑相结合,编程至Altera的FPGA中。处理器具有32位指令集,32位数据通道和可配置的指令以及数据缓冲。它特别为可编程逻辑进行了优化设计,也为可编程单芯片系统(SOPC)设计了一套综合解决方案。NioslI处理器系列包括三种内核:一种是高性能的内核(Nios II/f);一种是低成本内核(Nios II/e);一种是性能/成本折中的标准内核(Nios II/s),它是前两种的平衡。本系统采用高性能内核。Nios II处理器支持256个具有同定或可变时钟周期操作的定制指令;允许Nios II设计人员利用扩展CPU 指令集,通过提升那些对时间敏感的应用软件的运行速度,来提高系统性能。
根据红外焦平面成像特性,为了保证算法的实时性,采用双Nios II软核和硬件加速器协同设计的方式,在图像场的间隙做实时Otsu局部递归分割处理。如图 1 所示实现算法原理图
图 1 算法实现原理图
局部递归区域提取单元将需要分割的红外数据读入FPGA内部双端口RAM0,直方图统计对数据统计直方图,存放于双端口RAM2,聚类统计单元分别对直方图依次从高低两个方向计算类内均值和概率,把累加结果存入三端口RAM0和RAM1中,聚类统计结束后,两个Nios II并行对高低两个方向的聚类统计结果进行类间方差计算并分别求最大值。取两者最大为分割阈值,完成一次分割后,局部递归区域提取单元依据得到的阈值提取出目标区域存入双端口RAM1中,接着按照第一次分割步骤完成快速局部0tsu递归分割算法。
实现算法的CPU互联结构:
为了最大化的提高算法的处理速度,系统采用CPU并行工作方式。如图 2 所示,两个Nios II同时负责收发处理数据。当其中一个CPU执行完制定的任务后等待另一Nios II,当两个Nios II任务全部完成后,Nios II0从MailBox中取出Nios II1的处理结果计算最终分割阈值,采用这种将数据块分细处理结构,减少单个CPU处理的数据量,缩短了算法延迟。
考虑到算法需要进行循环的浮点数计算,采用Nios II的定制指令和VHDL编写硬件算法加速器保证系统运行速度,如图3 所示采用自定义浮点指令和软件实现浮点运算性能对比。定制指令逻辑和Nios II的连接在SoPC Builder 中完成。Nios II CPU配置向导提供了一个可添加256条定制指令的图形用户界面,在该界面中导入设计文件,设置定制指令名,并分配定制指令所需的CPU时钟周期数目。系统生成时,Nios II IDE为每条用户指令产生一个在系统头文件中定义的宏,可以在C或C++应用程序代码中直接调用这个宏。图4 Nios II软件实现系统算法和自定义指令实现性能对比。
4 结束语
局部递归Otsu分割方法,通过递归计算对图像中目标不断的逼近,因此在复杂的背景下,对红外图像目标分割有很好的效果,但是由于算法迭代繁琐很难实时实现,本文提出了一种基于双Nios II嵌入式处理器的红外图像快速局部递归Otsu分割实时实现方法。通过在Altera的Stratix FPGA 中集成两个l00 MHz软核配合一定的硬件逻辑,大大减小了算法的处理时间,实现了算法的实时处理,实验表明,该设计每秒可处理25帧320x240x8bits的红外图像。如图 3 所示对系统对3公里外的坦克目标分割效果图,(a)为原始图像,图像中心位置有一坦克目标,(b)图像一次Otsu分割结果,由于背景比较复杂,坦克目标与背景没有完全分割开,(c)经过本文快速局部递归Otsu分割后效果图,图中的坦克目标从背景中很好的分割出来。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !