电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者维修技术维修教程知识电子制作基于CNN的红外图像预处理系统的研究与设计

基于CNN的红外图像预处理系统的研究与设计

09-08 12:12:39 | http://www.5idzw.com | 电子制作 | 人气:979
标签:电子小制作,http://www.5idzw.com 基于CNN的红外图像预处理系统的研究与设计,http://www.5idzw.com

摘要:本文设计了一个以FPGA为核心处理器实现红外视频图像数字预处理的系统,利用Altera公司提供的DE2开发板,把系统大部分的功能模块集成在一片FPGA 上,大大优化了整个系统的性能。该方案采用Altera公司推出的低成本、高密度的Cyclone Ⅱ系列FPGA,提高了系统的设计灵活性。细胞神经网络IP核的开发,充分利用了细胞神经网络在图像处理方面的优势,提高了整个系统的处理效率。实现了细胞神经网络的一种高效数字实现方案,并且采用分布式算法可以提供更高的运行速度。
关键词 边缘检测;细胞神经网络;FPGA;

引言

红外视频图像数字预处理系统是红外焦平面阵列探测器必备的后处理电路,对成像质量有很大的影响。随着红外弱小目标检测技术开始广泛应用于制导、跟踪、自动控制、人工智能等诸多领域,这些应用对红外成像质量的要求越来越高。因此,研究红外视频图像数字预处理系统有很大的意义[1-2]。本文从细胞神经网络模型研究开始,将细胞神经网络的模型、算法研究与具体的图像处理特别是在图像边缘检测中的应用紧密结合,充分将理论和实践联系起来。将设计好的模板应用到图像的边缘检测中,利用FPGA的并行性特点,建立基于CNN的红外图像预处理系统,用于进行实时的图像处理。

该系统硬件电路包括两路视频A/D,数据缓冲同步FIFO,FPGA,数据存储、颜色空间转换等功能模块。系统能够完成对IRFPA信号的正确读出,并将读出的视频模拟信号经A/D转换器转换为数字信号,经FIFO缓冲后进入存储器,之后经过中心数字信号处理器进行必要的处理(边缘提取),最后输出标准的VGA模拟视频信号,传送到显示器。

1 图像预处理实现原理分析

红外图像预处理的目的在于,改善图像数据,抑制不需要的变形或者增强某些对于后续处理重要的图像特征,为后续的目标识别与跟踪提供方便。这里做的预处理为边缘提取,即对处于最低抽象层次上的图像所进行的操作,此时处理的输入输出为亮度图像。这些图像是与传感器抓取到的原始数据同类的,通常是用图像函数值矩阵表示的亮度图像。整个系统的核心处理部分是由细胞神经网络IP核实现的。

细胞神经网络(Cellular Neural Network,CNN)是以神经网络的联接方式为背景,具有实时信号处理能力的大规模非线性模拟电路。从结构上讲,CNN类似于细胞自动机,即细胞神经网络中的每一个胞元仅与它的邻近胞元相连接,相连胞元之间存在直接通信,而非邻近胞元之间不直接联接,但是由于连续时间下的动态传播,可以间接影响不相邻的胞元。理论上,可以定义任何维数的细胞神经网络,但是因为处理图像的需要,这里只考虑二维的情况。一个二维的 细胞神经网络结构形式如图1所示,用 表示第i行第j列的细胞。胞元的状态方程为:

由上式可知,在CNN应用使用空间不变的系数的情况下,整个网络的功能由2个 的矩阵 和 ,以及胞元偏移值I决定。矩阵A和B分别称为反馈模版和控制模版。胞元结构见图2所示。

图1   3x3规模的细胞神经网络结构

图2  CNN结构图

在图像处理中,无论是灰度图像还是二值图像,每一个像素的值均为离散量化的,采用CNN进行图像处理时,存在对其输入与输出量化的问题。在 的二维图像中,不失一般性地设它的任意一点值为 ,通常对于二值图像, 仅取两个整数值,即 ;而对灰度图像则 为灰度值,以8比特灰度图像为例 。在CNN系统中,其输入为 ,输出为 ,因而在处理二值图像时,需要使原来的 映射为 ,但必须注意这种映射为:原来的0映射为1(纯黑色),原来的1映射为-1(纯白色)。而处理灰度图像时,首先要对输入与输出的值域 进行256级的均匀量化,然后使 映射到这个均匀量化的 中,同样必须注意:原来的0映射为1(纯黑色),原来的255映射为-1(纯白色),其余灰度值均按照由小到大的顺序依次映射到由1到-1这个由大到小的量化体系中[3-5]。

2 总体方案选择

系统的工作流程如图2所示,从CCD传来的数字视频信号及其控制信号首先通过图像采集模块,从而筛选出有效的数据,然后通过RAW2RGB模块,利用插值算法得到每个像素点的R、G、B数据。为了便于CNN模块进行核心处理,在进行边缘提取操作前,把图像数据从RGB颜色空间转换为YCbCr颜色空间,针对Y分量进行处理。处理后的数据再经过YCbCr2RGB模块转换为RGB数据从而提供给VGA模块,供LCD显示。

图2 红外图像预处理系统工作流程

整个的核心部分在于CNN模块,在图像边缘提取中使用的算法主要是经典的微分算子,微分算法在硬件中很难实现,将CNN应用于灰度图像边缘提取的算法,是因为CNN是一种基于神经元局域连接的神经网络并行处理器[3], 硬件上可以采用相同的电路元件阵列来设计CNN并行处理器,这种阵列同构的电路设计有利于VLSI实现。故采用粒子群算法训练CNN的模板,进行边缘提取。

虽然在细胞神经网络中允许任意规模的邻域,随着模板尺寸的增大,硬件实现的难度也随之增大。受限于目前的VLSI技术,胞元之间的互联只能是局部的。本文中,规定采用3x3邻域,即模板A、模板B都是3x3的矩阵,且它们的系数都是实系数。因为目前大多数图像处理针对的都是灰度级图像,所以细胞神经网络胞元的输入范围被限定在[-1,+1]之间,-1代表白色像素,1代表黑色像素,其余的值代表二者之间的灰度值。这里采用定点数,因为在硬件实现中,定点数具有更高的速度和更低廉的成本,特别是在调用FPGA中的乘法底层原语时。

单个胞元的串行硬件实现结构,完成一次胞元状态更新的运算至少需要9个时钟周期。为了提高速度,可以在计算胞元状态更新时采用并行结构,如图3所示,通过采用流水线结构,完成一次胞元状态的更新只需要1个时钟周期。本文采用并行结构在FPGA中实现细胞神经网络。

图3 CNN 并行实现结构框图

3 硬件设计

图像数据采集模块用于实现图像数据的捕捉,根据图像传感器MT9M011输出数据时序,当视频捕捉开始键按下时,该模块开始接收数据,在获得有效像素数据的同时也接收了消隐期的图像数据,所以设置了输出数据有效信号,用以在接下来的RAW2RGB模块把有效数据和非有效数据区分开来。

3.1 RAW2RGB模块的设计

MT9M011采用的是Bayer型CFA(Color Filter Array,颜色滤波阵列),由于该图像传感器的分辨率为1280x1024,这里采用的插值算法,每四个像素合并为一个像素,像素值的变化如图4所示,这样经过RAW2RGB模块后,图像的分辨率变为原来的一半,即640x512。

该模块的硬件实现框图如图5所示。其中control模块由两个状态机组成,分别是ram_wr_state和ram_rd_state。ram_wr_state状态机负责产生RAM的写使能和写地址。当输入数据有效时,把输入的像素数据依次交替存储在2个RAM中,构成类似乒乓操作的结构。这个状态机负责产生RAM的写使能和写地址。ram_rd_state的状态机负责产生RAM的读使能和读地址。

[1] [2] [3]  下一页

,基于CNN的红外图像预处理系统的研究与设计
关于《基于CNN的红外图像预处理系统的研究与设计》的更多文章