图 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处理的数据量,缩短了算法延迟。
4 结束语
Otsu分割方法,通过递归计算对图像中目标不断的逼近,因此在复杂的背景下,对红外图像目标分割有很好的效果,但是由于算法迭代繁琐很难实时实现,本文提出了一种基于双Nios II嵌入式处理器的红外图像快速局部递归Otsu分割实时实现方法。通过在Altera的Stratix 中集成两个l00 MHz软核配合一定的硬件逻辑,大大减小了算法的处理时间,实现了算法的实时处理,实验表明,该设计每秒可处理25帧320x240x8bits的红外图像。如图 3 所示对系统对3公里外的坦克目标分割效果图,(a)为原始图像,图像中心位置有一坦克目标,(b)图像一次Otsu分割结果,由于背景比较复杂,坦克目标与背景没有完全分割开,(c)经过本文快速局部递归Otsu分割后效果图,图中的坦克目标从背景中很好的分割出来。