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

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

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

图4 颜色插值算法示意图

图5 RAW2RGB模块的硬件结构框图

这里为了便于检验算法的正确性,适当的对数字视频流进行了一些简化。由于编程时采用参数化设计,所以这并不会对系统的设计产生影响。这里假定待处理的原始数据每行只有12个像素,以两行数据为例,经过处理后的数据(每个像素包含R、G、B三种颜色分量),每行只包含6个像素,减少了一半,同样行数也变为原来的1/2。这样,当等待处理的图像分辨率为1280x1024时,经过该模块后的图像分辨率变为640x512。图7为经过颜色插值后的实际输出,与图6经过颜色插值后的预期输出相比较可以看出,该颜色插值模块的设计完全达到了预期的要求。

图6 经过颜色插值后的预期输出

图7 经过颜色插值后的实际输出

3.2 颜色空间转换模块的硬件设计

YCbCr坐标与RGB坐标之间的关系如下:

 
                                             (1)
有三种方案实现此模块设计,第一种方案采用Verilog语言对该转换公式进行行为描述;第二种方案采用FPGA芯片内的嵌入式RAM构造乘法器查找表,将转换公式内所有可能的中间结果存放在存储器中。该系统需要9个乘法器查找表,每个乘法器查找表的深度是1k,将操作数R、G、B作为地址访问存储器,得到的输出数据就是乘法运算的结果。查找表乘法器的速度只局限于所使用存储器的存取速度。第三种方案是对第一种方案进行改进,采用流水线结构实现此系统设计,大大提高了运算速度。本文采用第三种方案。流水线处理是高速设计中的一个常用设计手段。充分利用了硬件内部并行性,增加数据处理能力。这种流水线作业是在几个步骤中执行运算的功能单元的序列。每个功能单元接受输入,生成的输出则是缓冲器存储的输出。实现流水线结构的方法很简单,只要在每个运算部件(包括乘法器和加减法器)的输出以及系统的输入输出之间加上寄存器缓存即可。利用流水线技术的颜色空间转换实现框图如图8所示。一个数字系统的最高时钟频率受限于寄存器与寄存器之间的最大门延迟,如果不在每个运算部件的输出后面加上寄存器缓存,则寄存器与寄存器之间的最大门延迟为输入RGB信号到输出YCbCr信号之间的延迟。由于输入RGB信号到输出YCbCr信号之间存在大规模的组合逻辑电路,因此延迟很大。采用流水线结构之后,寄存器与寄存器之间的组合逻辑电路规模变小了,因此延迟变小,从而可以提高系统时钟。 

图8  利用流水线技术的颜色空间转换实现框图

波形仿真如图9所示。由波形图可以看到,相比于输入,输出结果延迟5个时钟周期出现,这是使用流水线结构造成的结果。例如输入(R,G,B)=(1023,1023,1023),在5个时钟周期后输出(Y,Cb, Cr)=(944,514,514)。虽然输出延迟了5个时钟周期,但每计算一个像素颜色转换仍只需要1个时钟周期。

图9  RGB2YCbCr模块仿真输出

同理,可以采用方案2,即FPGA芯片内的嵌入式RAM构造乘法器查找表,可以实现YCbCr向RGB的颜色空间转换。波形仿真如图10所示。由波形图可以看到,相比于输入,输出结果延迟3个时钟周期出现,这是使用寄存器锁存造成的结果。例如输入(Y,Cb, Cr)=(944,514,514),在3个时钟周期后输出(R,G,B)=(1023,1021,1023)。虽然输出延迟了3个时钟周期,但每计算一个像素颜色转换仍只需要1个时钟周期。

图10  YCbCr2RGB模块仿真输出

3.3 细胞神经网络的IP核设计

根据CNN的理论,模板中的权数分别对应了待处理像素周围的八个像素,所以在对某个像素进行处理之前,必须先读入该点周围的八个像素点,即某个像素点的结果不仅同本身像素有关,而且同邻域点像素灰度值有关。因为采用的CMOS图像传感器每行640个像素。因此构造3×3模板的关键在于构造行延时器。视频图像中像素来自非均匀校正后的串行数据流,因此FPGA可以以并行流水方式实现该模板[6]。构成3×3模板的硬件结构如图11所示:

图11  3×3模板的硬件结构

如图所示,视频输入图像经过由RAM组成的3×3模板后进入卷积模块,最后输出结果。由于采用了流水工作方式,因此在进行图像处理时,并不需要存储整帧图像,只要存储模板操作中的领域像素点。

卷积的实现方式一般有MAC(Multiply and Accumulate乘加法)和DA(Distribute Algorithm分布式算法)。MAC法一般直接使用乘法加法进行运算,目前有些FPGA中带有内部乘法器资源,即硬件乘法器。分布式算法将复杂的多位数乘积转变为简单的“与”操作,而且乘位权数的转变为移位操作,有效地提高了运算速度,降低了结构的复杂度。采用分布式算法实现卷积计算。在细胞神经网络中采用该算法具有以下优点:减小存储单元的大小,实现存储单元内容共享,减小数据总线位宽。为了节省FPGA片上资源采用串行分布式算法[7]。

串行方法的实现是先从最低位开始,用所有 个输入量的最低位对DA查找表进行寻址,得到了一个部分积,将其右移一位即将其乘以2-1后,放到寄存器当中,同时, 个输入量的次低位己经开始对DA查找表寻址得到另一个部分积,与右移一位后的上一个部分积相加,再重复上一步,直到所有的位数都己经寻址一遍。特别要注意,在补码输入的情况下,在最高位寻址得到的值不是与上一个右移一位后的部分积相加,而是相减。这样最后得到的值就是我们需要的结果,由此可以得到全串行DA模式。由上可知,完成一次运算需要 个时钟周期。

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

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