基于忆阻神经网络的图像边缘检测的FPGA硬件实现
FPGA Hardware Implementation of Memristor Pulse Coupled Neural Network for Edge Detection Images
DOI: 10.12677/JISP.2024.131007, PDF, HTML, XML, 下载: 53  浏览: 128 
作者: 费俊豪, 李 彤:天津职业技术师范大学电子工程学院,天津
关键词: 忆阻神经网络图像处理FPGAMATLABMemristor Pulse Coupled Neural Network Image Processing FPGA MATLAB
摘要: 基于忆阻器的高集成度和非易失性等特点,本文将忆阻器应用于传统神经网络模型中,对原有的脉冲耦合神经网络进行创新,将两个忆阻元件反向并联替代神经网络连接权值,形成忆阻神经网络。同时利用忆阻神经网络可对图片实现边缘检测的特性,将边缘检测结果图与FPGA结合,通过串口通信,SDRAM存储,TFT显示等模块,使用Verilog语言对各个硬件模块进行描述,最后成功在TFT显示屏上显示出结果图。
Abstract: Based on the high integration and non-volatility of memristors, this paper applies memristors to the traditional neural network model, innovates the original pulse-coupled neural network, and re-places the neural network connection weights of two memristive elements in reverse parallel to form a memristive neural network. At the same time, the memristive neural network can be used to realize the edge detection characteristics of the picture, the edge detection result graph is combined with the FPGA, through serial port communication, SDRAM storage, TFT display and other modules, each hardware module is described in Verilog language, and finally the result graph is successfully displayed on the TFT display.
文章引用:费俊豪, 李彤. 基于忆阻神经网络的图像边缘检测的FPGA硬件实现[J]. 图像与信号处理, 2024, 13(1): 69-75. https://doi.org/10.12677/JISP.2024.131007

1. 引言

边缘检测 [1] 作为图像处理技术中的一种,是图像处理的一个基本步骤。在进行图像的边缘检测时,先检测出图像轮廓的像素点,然后通过连接规则将像素点连接起来,最后进行检测并形成整体的边缘。

脉冲耦合神经网络(Pulse Coupled Neural Network,简称PCNN)由Eckhorn等人于20世纪90年代提出,是对猫等哺乳动物的视觉皮层神经元脉冲振荡(同步振荡)现象的研究 [2] 。PCNN不需要学习或者训练,可以自主地从复杂背景下提取有效信息。现已广泛应用在图像处理中,例如图像分割,边缘检测、细化、识别等方面。

忆阻神经网络(Memristive convolutional neural networks,简称MCNN)是将忆阻器与神经网络相结合的神经网络模型 [3] 。针对传统神经网络实现图像边缘检测的效果不佳以及网络参数手动设置繁琐等不足,提出该网络模型。忆阻器具有高集成度、低功耗、可模拟突触可塑性等特点,自此,忆阻突触器件成为神经形态计算中新型电子突触器件的有力候选者之一。

FPGA (Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物 [4] 。TFT-LCD液晶显示屏是薄膜晶体管型液晶显示屏,TFT液晶为每个像素都设有一个半导体开关,每个像素都可以通过点脉冲直接控制,因而每个节点都相对独立,并可以连续控制,对比VGA显示器,不仅提高了显示屏的反应速度,同时可以精确控制显示色阶,TFT液晶的色彩更真。

由于近年来神经网络的不断发展,图像显示的分辨率和图像处理算法的复杂度也在不断提升。而FPGA等硬件设备在图像领域得到了迅速的发展,它通过为每个功能建立单独的硬件来实现整个应用程序所需要的逻辑功能,为实现清晰图像的显示提供了可能性,所以FPGA使其很适合作为图片显示的处理器。

2. 忆阻神经网络的边缘检测图像

2.1. 脉冲耦合神经网络

脉冲耦合神经网络模型如图1所示。当该神经网络模型进行图像边缘检测时,彩色图像转为灰度图像,随后对灰度图像进行边缘提取。M × N个图像像素矩阵相当于M × N个PCNN神经元模型 [5] 。每个神经元的输入I相当于每一个图像像素的灰度值,β为神经元之间的连接强度 [6] ,PCNN模型如图1所示:

Figure 1. PCNN model

图1. PCNN模型

2.2. 改进的神经网络——忆阻神经网络

传统PCNN模型中的连接强度β由人为设定,本文将β改为由两个忆阻器反向并联,能更有效的提高网络的自适应性 [7] 。改进后的忆阻神经网络如图2所示:

Figure 2. MCNN model

图2. 忆阻神经网络模型

图2中,M1和M2为两个忆阻,进行反向并联,I为外部信号,F为系统反馈信号,U为内部状态信息,E为阈值函数,Y为输出信号。将输入信号作为忆阻器的控制电压,从而影响忆阻器并联总阻值的变化 [8] 。本文取合适的忆阻值来改变网络模型参数,即取图像像素的最大与最小值,分别为M1,M2,并联后的值可表示为M即β的值,公式如下所示:

M = M 1 + M 2 M 1 M 2

神经元的点火频率由神经元触发周期和连接强度β决定,而点火频率决定整个神经网络的输出。将两个忆阻器并联得到的值取代β的值,其MATLAB代码如下所示,其他语句与脉冲耦合神经网络实现边缘检测的程序相同。

R = Roff. * X./D + Ron. * (1−X./D);

R1 = max(R);

R2 = min(R);

Beta = (R1 + R2)/(R1 * R2);

本文利用原有的脉冲耦合神经网络模型,改进其网络模型结构,将两个忆阻器反向并联替换原有的β部分,更改为忆阻神经网络模型。利用忆阻神经网络可实现图像边缘检测的特性,本文将原图(图3)通过忆阻神经网络进行边缘检测,再使用FPGA硬件设备展示出边缘检测后的图像(图4)。

Figure 3. Original figure

图3. 原图

Figure4. MCNN edge detection result graph

图4. 忆阻神经网络边缘检测结果图

3. 硬件系统设计

3.1. 系统总体设计

系统分为主要几个功能模块:时钟分频模块,串口模块,SDRAM存储模块,TFT显示模块,PC通过串口软件发送图像数据,SDRAM模块接收到数据后存储图像信息,随后输出到TFT显示屏模块,最后显示屏输出图像结果 [9] 。由于本文用的FPGA平台所采用的时钟频率为50 Hz,而TFT模块需要特定频率才能正常工作,所以需要设计时钟分频模块保证系统正常运行。本文所需用的软件为QuartusII13.1,Modelsim10.4,Notepad++,Matlab,友善串口调试助手 [10] 。总体框图如图5所示:

Figure 5. General block diagram

图5. 总体框图

3.2. SDRAM控制器

本文设计采用华邦公司的W9825G6KH-6型SDRAM芯片,其中包含13位行地址与8位列地址,芯片内部一共有4个bank,存储容量大小为4 M * 4Bank * 16 Bits,即256 Mbit。SDRAM的内部可以理解为一个存储阵列 [11] ,由若干个单个的存储单元构成,若想要实现存储阵列中的某一存储单元的数据读写操作,我们要通过行地址和列地址精确定位到这一存储单元,进而进行数据的读写操作由于SDRAM通过电容来存储数据,所以只有通过刷新操作才能保证数据的可靠性,故本文设计了SDRAM自动刷新模块,利用时钟周期计数,每7.5usSDRAM需要进行一次刷新操作 [12] 。除此以外,为保障SDRAM的正常运行,还设计了控制模块,读写模块,初始化等等模块。

3.3. 图像数据的转换与发送

由于FPGA无法直接接收图片,所以需要将图片转换成txt的形式发送到串口,本设计所采用的软件为MATLAB2021B,通过该软件可将图片内容转换成数据形式进行发送 [13] ,MATLAB代码如图6所示:

Figure 6. MATLAB code processing diagram

图6. MATLAB代码处理图

图6代码处理后,所需要的图片会以txt的形式出现,部分数据如图7所示:

Figure 7. Image data conversion chart

图7. 图片数据转化图

3.4. 串口RS232

图片需要通过串口从PC端发送至FPGA的TFT显示屏上 [14] ,本文所使用的串口为RS232串口,该串口没有时钟线,串口通信只有两根信号线,一根信号线是tx (Transmitter),为发送数据端口线,另一根信号线是接收数据端口线为rx (Receiver)。使用MATLAB处理后,将结果图数据化 [15] ,使其成为txt形式,并发送至串口,如图8所示:

Figure 8. Serial port diagram

图8. 串口图

3.5. TFT显示屏

本文采用的液晶屏主要由FPGA芯片,时钟电路,系统电源,接口电路和TFT显示屏构成。其中TFT控制模块产生有效图像的坐标信息,随后将坐标信息传到图像生成模块 [16] ,生成并回传图像数据,TFT控制模块根据视频传输协议将数据同步在行场同步信号下进行传输,输出信号(rgb信号,行场同步信号)通过顶层传到全景图网络后设定数模转换,最后通过TFT接口呈现到显示屏上 [17] 。本文采用的TFT显示屏为480 * 272@60标准,其中480 * 272是指有效像素,60是指刷新频率(表示1秒显示60幅图像),通过控制模块,可生成图像信息,行场同步信号 [18] [19] 。由图9可知,输入的工作时钟频率为9 MHz。在系统运行过程中,其自身会产生一个图像信息成为TFT控制模块的输入端,随后输出行场同步信号和像素点的具体坐标。

Figure 9. Display specific parameters

图9. 显示屏具体参数

原图经忆阻神经网络处理后,结果图放入TFT显示屏中如图10所示:

Figure 10. Hardware diagram of MCNN edge detection

图10. 忆阻神经网络实现边缘检测硬件图

4. 结束语

本文根据脉冲耦合神经网络模型,利用两个忆阻器进行反向并联取代原有的连接强度,而后选取合适的忆阻值来改变网络模型的动态参数,实现对图像的边缘检测。忆阻神经网络实现的边缘检测比PCNN实现的效果更好,图像边缘更加清晰。本文使用Verilog硬件描述语言完成系统模块的设计,用Quartus软件验证其可行性,最后在FPGA的TFT显示屏上呈现出经忆阻神经网络处理后的边缘检测图像。

参考文献

[1] Al-Mansor, E., Al-Jabbar, M. and Ben, I.A. (2023) Medical Image Edge Detection in the Framework of Quantum Rep-resentations. Alexandria Engineering Journal, 81, 234-242.
https://doi.org/10.1016/j.aej.2023.09.008
[2] Zang, L., Liang, W. and Ke, H.C. (2023) Research on Liver Cancer Segmentation Method Based on PCNN Image Processing and SE-ResUnet. Scientific Reports, 13, Article Number: 12779.
https://doi.org/10.1038/s41598-023-39240-0
[3] Feng, Y.H., Wei, Y.G. and Sun, S. (2023) Fish Abundance Es-timation from Multi-Beam Sonar by Improved MCNN. Aquatic Ecology, 57, 895-911.
https://doi.org/10.1007/s10452-023-10007-z
[4] Al Ali, Z.T. and Abdulghani, A.S. (2023) Fire and Blood Detec-tion System in Disaster Environment Using UAV and FPGA. Multimedia Tools and Applications, 82, 43315-43333.
https://doi.org/10.1007/s11042-023-15507-6
[5] Chinmaya, P., Ayan, S. and Kumar, M.N. (2022) Parameter Adaptive Unit-Linking Dual-Channel PCNN Based Infrared and Visible Image Fusion. Neurocomputing, 514, 21-38.
https://doi.org/10.1016/j.neucom.2022.09.157
[6] Sangani Dhara, J., Thakker Rajesh, A. and Panchal, S.D. (2021) Pansharpening of Satellite Images with Convolutional Sparse Coding and Adaptive PCNN-Based Approach. Journal of the Indian Society of Remote Sensing, 49, 2989-3004.
https://doi.org/10.1007/s12524-021-01440-4
[7] An, F.P., Li, X.W. and Ma, X.M. (2021) Medical Image Classi-fication Algorithm Based on Visual Attention Mechanism-MCNN. Oxidative Medicine and Cellular Longevity, 2021, Article ID 6280690.
https://doi.org/10.1155/2021/6280690
[8] Hu, X.F., Duan, S.K. and Wang, L.D. (2012) A Novel Chaotic Neural Network Using Memristive Synapse with Applications in Associative Memory. Abstract and Applied Analysis, 2012, Article ID 405739.
https://doi.org/10.1155/2012/405739
[9] Thamizharasan, V. and Kasthuri, N. (2023) High-Speed Hybrid Multi-plier Design Using a Hybrid Adder with FPGA Implementation. IETE Journal of Research, 69, 2301-2309.
https://doi.org/10.1080/03772063.2021.1912655
[10] 李营, 殷小杭, 吕兆承. 基于FPGA的VGA汉字显示器设计[J]. 延安大学学报(自然科学报), 2018, 44(4): 365-368+374.
[11] 胡艳茹. 基于FPGA车牌图像识别的设计与实现[J]. 物联网技术, 2023, 13(10): 29-32.
[12] 郭靖丰. 基于FPGA和SD卡的VGA图片显示与切换装置[J]. 计算机软件及计算机应用, 2022, 36(7): 98-100.
[13] 兰唯, 扈啸. 基于FPGA的上电时序控制[J]. 自动化应用, 2023, 64(16): 213-215.
[14] 黄姣英, 赵如豪, 高成. 基于FPGA的DDR3 SDRAM控制器设计[J]. 现代电子技术, 2022, 45(22): 68-74.
[15] 江瑜, 朱铁柱, 蒋青松. 基于FPGA的卷积神经网络硬件加速器设计[J]. 电子器件, 2023, 46(4): 973-977.
[16] 孙百洋, 冷建伟, 赵嘉祺. 基于FPGA的Sobel边缘检测算法研究与实现[J]. 化工自动化及仪表, 2018, 45(3): 180-183+231.
[17] 卢晶, 胡钢. 基于PCNN算法图像边缘检测及系统级实现[J]. 沈阳工业大学学报, 2019, 41(1): 73-78.
[18] 刘怡俊, 曹宇, 叶武剑. 基于FPGA并行加速的脉冲神经网络在线学习硬件结构的设计与实现[J]. 华南理工大学学报(自然科学报), 2023, 51(5): 104-113.
[19] 李亚利. 基于FPGA的实时彩色图像边缘检测系统设计和实现分析[J]. 电子设计工程, 2019, 27(12): 168-172.