基于FPGA和CNN的水下目标识别系统

2021年第40卷第4期传感器与微系统(Transducer  and  Microsystem  Technologies)
103
DOI : 10.13873/J. 1000-9787(2021)04-0103-03
基于FPGA 和CNN 的水下目标识别系统
陈凯峰,梁鉴如,陈 强,傅伟清,刘贵庆,刘露露
(上海工程技术大学电子电气工程学院,上海201620)
摘 要:水下智能设备由于功率受限,采集的图像数据无法进行实时处理。考虑现场可编程门阵列(FP-
GA)功耗低,计算能力强和灵活性高等特点,基于FPGA 的并行性和流水线技术,利用卷积神经网络 (CNN)强大的图像处理能力,设计了一个低功耗图像实时识别系统。实验使用三个不同水域的水下视频
图像对该系统进行验证。实验结果表明:该系统达到了与PC 工作站相同的精度,实现1 920 X1 080分辨
率和25FPS 帧速率图像的处理,满足水下识别任务的需求。
关键词:卷积神经网络;现场可编程门阵列;图像识别
中图分类号:TN710
文献标识码:A  文章编号:1000-9787(2021)04-0103-03
Underwater  target  recognition  system  based  on  FPGA
and  CNN  *
*收稿日期:2019-10-10
*基金项目:国家自然科学基金资助项目(61272097);上海市科技委员会重点项目(185****1600);上海工程技术大学研究生科研创新资助 项目(E3-0903-18-01051)
CHEN  Kaifeng , LIANG  Jianru , CHEN  Qiang , FU  Weiqing, LIU  Guiqing , LIU  Lulu
(School  of  Electronic  and  Electrical  Engineering , Shanghai  University  of  Engineering  Science , Shanghai  201620, China  )
Abstract : Due  to  the  limited  power  of  underwater  intelligent  device , acquired  image  data  can
not  be  processed  in
real  time. Consider  characteristics  of  low  power  consumption , high  computing  power  and  high  flexibility  of  field
programmable  gate  array  (FPGA ). FPGA-based  parallelism  and  pipeline  technology , use  powerful  image  processing  capability  of  convolutional  neural  network (CNN ) ,a  low  power  consumption  image  real-time  recognition  system  is
designed ・ The  system  is  verified  uses  underwater  video  images  from  three  different  water  regions. Experimental  results  show  that  the  system  achieves  the  same  precision  as  the  PC  workstation,and  realize  processing  of  1 920 x
1 080 resolution  and  25FPS  frame  rate  image  to  meet  the  needs  of  underwater  recognition  tasks.
Keywords : convolutional  neural  network (CNN ) ; field  programmable  gate  array ( FPGA) ; image  recognition亚硫酸铵
0引言
水下智能设备可用于铺设管道,海底探索,数据收集,
钻井支持和水下设备维修等重要工作。由于电磁波无法在 水中长距离通信,地面端难以实时处理水下图像,水下设备
无法及时响应周围环境,容易造成损坏。因此,水下设备需
要具备自主实时图像处理能力。然而,由于功耗限制,水下 设备难以配备GPU 等高功耗处理器。
现场可编程门阵列(field  programmable  gale  array ,
FPGA)拥有高速通信接口,可用于高速信号处理,可以过滤 数据并降低数据速率,使复杂信号易于处理,传输和存储; FPGA 可实现高并行度计算,具有并行性和流水线技术,并 行性可以重复分配计算资源,流水线技术使硬件资源可重
复利用,两者相结合可以显着提高并行计算性能111; FPGA
可进行快速数字信号处理,适用于高实时数据处理,如图
像,雷达信号和医疗信号,比CPU 更有效⑵。
卷积神经网络(convolutional  neural  network , CNN  )是一 种成熟,快速的图像分类算法。从20世纪60年代Hubei
和Wiesel 提出了第一个CNN 至今,CNN 已经成为许多科
学领域的研究热点,特别是在模式识别领域⑶。该算法无
需复杂的图像预处理,可以直接分析原始图像,同时使多个
数据处理单元并联,适用于FPGA 的并行化⑷。
本文提出使用低功耗FPGA 平台实现水下实时图像处
理,使得水下机器能够自动区分海水等安全区域和岩石、藻 类等非安全区域。
1 CNN
CNN 通过卷积减少图像处理的计算量,同时可以有效 地提取特征。CNN 通常包括输入层、池化层、激活层、全连
接层以及输出层等。输入层和输出层的外部通常是不可见
104传感器与微系统第40卷
的,称为隐含层。CNN的主要过程如图1所示2⑹。
Convolution Convolution“Fully Fully小….
+ReLU P°°hng<Re LU Poolln8Connected Connected°>«put PredicHons
watcr(0.01)
rock(0.94)
Tbubble(0.04)
口a lgac(0.02)
图1CNN过程示意
2系统架构
2.1系统总体架构
本文使用Xilinx ZYNQ7020系列FPGA开发板,该板包含两片高性能ARM型CPU,为数据存储、逻辑处理和日志记录提供Linux操作系统。CNN主要包括输入层、隐含层和输岀层,输入层在ARM端实现的,隐含层和输岀层在FP-GA端实现。隐含层由8个卷积单元、8个激活器、8个偶极子和256个神经模块组成。卷积单元对应于卷积层,激活器对应激活层,全连接层对应汇集层。输出层由10个神经层组成。系统结构如图2所示"I。
图2系统结构
雷州市第二中学图2中,ARM是板载CPU,AXI总线负责FPGA和存储器之间的数据传输,因为FPGA中的逻辑单元不能在没有AXI总线的情况下交换数据。Conv代表卷积单位,Acti代表活化剂,Pooler代表池化模块,N代表神经模块。神经模块有256个神经元直接连接到AXI总线,神经元操作通过位宽为16的神经选择寄存器调度。
AXI总线上设计了4个双倍数据速率(double data rate, DDR)控制器,每个32位宽度,可提供128个数据位宽,能够读取8个浮点数,一次16位。在卷积阶段,可以执行深度为8层的图像的快速卷积运算。在全连接层中,可以同时计算8个神经元的乘法。由于FP16的乘法速度比FP32快,能提供更高的吞吐率,因此选用FP16浮点格式。
2.2卷积层
由于卷积层中不同卷积核中相同深度的输入源是相同的,8个卷积核可以读取相同的值并同时计算。卷积过程如式(1)所示
s心』)=5+工(P*W)(%,y)
d
=6+工工》J)(1)
d i j
式中S为卷积后的每个点的结果,「为卷积的标记,即卷积核的数,厶为当前层的卷积深度;X和y分别为水平和纵坐标。P为图像矩阵,W为计算单元所需的权重矩阵,而d为卷积的深度,其最大值是前一层的最大深度(卷积核的数量);巧为卷积核的横纵坐标,5为偏差,通常是训练期间获得的常数。
考虑到不同卷积深度的计算是独立的,前一点的结果对后一点的结果没有影响,计算可以分成不同的卷积深度以提高并行效率。这将减少上述公式中的计算困难,如式(2)所示
=(P
*W)(%,y)
=X X%(%+'』+■/)町J)(2)
i J
公式的参数描述与式(1)相同,并且最后,S“的相加结果与切相同。为此,每个卷积单元设计8个卷积核心单元。
如图3所示,左缓冲区将存储不同深度的/V个图像。Shift_Window是卷积移位窗口,它保存一个3x3卷积矩阵。K表示卷积单元,存储卷积矩阵的权重。在Shift.Window 接收卷积数据后,内积运算立即开始,在内部卷积操作结束时,K向Shift-Window模块发送结束请求,SUM将在此时获得结果。结果缓存在缓冲区中,当内存读取请求结束时,缓存将新点写回内存。
----►(ShiftWindows
4
----a|Shift Windows K
Bufer
lmagexA z----qShift WindowsH手|
----H Shift Windows
图3卷积层结构
鉴于FPGA的计算资源有限,选择相对简单的ReLU功能作为激活功能,如式(3)所示
(x.x>0(3)
0,%<0
该功能可以有效滤除图像中的负点,在FPGA中易于实现⑻。
2.3池化层
池化层选择最大池化方法。最大池化窗口为2X2,选择4点的最大值作为新点。8个处理器可以同时从内存中读取数据,寄存器以零值开始并存储当前最大值。当一次比较结束时,控制逻辑将保存比较器的结果,比较器将读取一个新点并开始新的比较。经过4次比较后,控制逻辑将最大值其写回内存。
2.4全连接层
全连接层在展平后产生了更大的矩阵运算,由于存储器总线只有128位,只能同时获得8个16位浮点数,
每个神经元可以记录16个权重。为了提高效率,本文采取如下策略:先加载0~7位神经元的8X16权重,再加载8~15位神经元的8x16权重;然后0~7位加载8x8图像值并计算。
第4期陈凯峰,等:基于FPGA和CNN的水下目标识别系统105
当0~7位计算时,8~15位同时加载8X8图像值,再计算8~15位。在所有神经元完成工作之前,重新加载所有权重,然后重新加载8个点,计算一直到计算出所有点。
3实验
3.1实验平台
实验使用3个分别来自浅水区(0~3m),中间水域(3~50m)以及深水区(50m~)的水下视频,采集得到2000张图片,其中包含577张浅水区,783张中间水域和640张深水区。对每张图片进行4x4分解,得到32000个样本。将图像分为四类:水、植物、气泡和岩石,对每张图片进行标注。对于难以识别的模糊区域,视作同岩石一样的危险区域。数据集如表1所示。对3个数据集进行训练,将70%的数据随机抽样为训练样本,30%作为测试样本。
表1实验样本
总数水植物岩石气泡
浅9232347723482754753
中12528539827943876460
深102402835358338220实验使用Xilinx Zynq7020平台,该平台包含275K个逻辑单元,900个DSP单元以及一个双核ARM处理器,满足系统对逻辑单元数量和浮动计算能力的需求。该平台可运行Linux系统,易于存储数据和调试。
作为对比,PC工作站采用1080ti GPU O软件配置:Ubuntu18,Python3.7,Tensorflowl.13.1以及Keras2.2.5。嵌入式平台选用Raspberry Pi3B,配置为:Raspbian,2GB Swap 以及与PC工作站相同的软件与学习框架。
3.2评价标准
实验评价标准为准确率和分类交叉爛损失。对于每张图片,输出显示为矩阵,矩阵中k行第k列中的数值对应该图属于k类的概率,如式(4)所示
<0.200)
result=00.70(4)、000丄
其中,第二行为最高概率,因此假设该图片属于第二类。准确率定义为
Accuracy=-y-(5)
K
式中%为类别中的实际样本数&为测试中正确的结果数。
在计算多分类时,预测数据和真实数据之间存在的分类交叉爛损失的差异值越低,获得的模型越好。定义如下
k
loss=_Y九log%+y a logy a+…+y im logy im(6)
i=1
式中佥为样本数,m为类别数,彳为样本预期的概率。图像被标记为某个类,则该类预期概率为1,否则为0。y为测试结果的概率。
3.3实验结果
实验首先在高性能PC工作站上训练模型。实验使用两个3x3卷积内核,并进行3次卷积。卷积深度为8,4,4,步长为1,全连接层有3层,迭代次数为20,激活函数为ReLU,丢失为0.5。训练中使用的损失函数是交叉爛成本函数,训练模型的最优结果,如表2。
表2最优结果
实验区损失值准确率
浅水区0.600.902
中间水域0.460.927
深水区0.440.876不同平台实验结果对比如表3所示。准确率上,FPGA 与其他平台相同。损失值上,FPGA略高于PC工作站,因为使用非标准的16位浮点乘法和加法,在加快处理速度的同时会导致一定的误差;且该误差仅影响损失值,不会对准确率产生太大影响。测试时间上,FPGA和PC工作站之间的差异是显著的;然而,PC工作站需要200W的电源,这是水下设备无法提供的,而FPGA平台的平均功耗仅为&6W。
表3不同平台结果对比
实验FPGA平台树莓派PC工作站
区损失值准确率时间/s损失值准确率时间/s损失值准确率时间/S 浅水0.600.889  4.30.600.892563.50.600.892<1中水0.460.920  4.50.460.925634.80.460.925<1深水0.440.869  4.80.
440.867664.30.440.867<1 FPGA的平均处理速度为每秒317,349,374个图像,最低速度为每秒311,344,367个图像,换算处理1920x 1080图像为25个,可以满足1920X1080分辨率和10FPS 水下摄像机的处理能力要求。虽然树莓派可以实现几乎同样的损失和准确性,但树莓派的处理时间远大于FPGA,无法满足需求。
4结束语
本文从水下智能设备低功耗的限制和实时图像处理的需求出发,结合FPGA的并行性、流水线技术以及卷积神经网络CNN在图像处理领域的应用,设计了水下图像识别系统。实验将PC端训练好的模型移植到FPGA系统中,通过测试,FPGA系统实现了与PC端相同的处理结果,能够在低功耗的条件下满足水下摄像机的要求,即1920xl080的分辨率及每秒10帧图像的处理能力。本文设计的系统可以为水下设备提供实时图像处理能力,增强其对周围环境的感知,具有广泛的应用前景。
参考文献:
[1]牛文举,黄荣玉,韩建强•基于FPGA的微传感器信号采集系
统[J].传感器与微系统,2019,38(5):104-106.
(下转第109页)
第4期袁晨,等:基于STM32的数字式小折射采集节点设计109
混叠的重要指标。测试条件:在仪器自检条件下采集存放于SRAM的标准脉冲方波(«_,=3.3V,/=2Hz),计算节点间的上升沿误差,其结果为系统同步精度。设置节点采样率为1kHz,2000个采样点,仪器的同步性测试如图7所示。
(a)MATLAB绘制的同步采集脉冲方波图(b)示波器测试的同步采集误差
图7同步采集测试
由图7可看出节点间的采集时刻保持高度的一致性。经过多次测量,节点间的同步精度优于10|is。
6.3实际振动信号采集测试
在野外测试仪器实际采集性能,测试条件:12道采集结点(可扩展24/48道)按间距2m排列,采样率设置为4kHz, 2000个采样点,采用夯击式震源触发,任取一组测试的波形效果如图8所示。
(a)上位机绘制的二维地震波形(b)第3号节点采集波形的截取图及频谱
图8实测信号波形
由图8(a)可看岀采集的12道数据同相轴清晰,能量分布均匀,说明该采集节点具有很好的数据采集效果;由图8(b)频谱曲线可以看出信号的主频能量主要集中在60Hz左右的有效反射范围内,并且高频噪声得到很好抑制。移动震源激发点并多次反复敲击测试,12道数据中每一道的2048个点所绘制出的波形都平滑完整,没有岀现数据丢失或缺少的情况,说明节点通信系统具有很高的可靠性。
话剧鹿鼎记
(上接第105页)
[2]ALLOTTA B, CAITI A. al.A new AUV naviga­
tion system exploiting unscented Kalman filter[J].Ocean Eng,
2016,113:121-132.
[3]TOMPSON J J,JAIN A,LECUN Y,el al.Joint training of a convo­
lutional network and a graphical model for human pose estima­
tion2014Proceedings of Neural Information Processing Systems
(NIPS)Conference,Montreal,Canada,2014:1799—1807. [4]王强,曾向阳•深度学习方法及其在水下目标识别中的应
用[C]〃2015年中国声学学会水声学分会学术会议论文集,
武汉,2015.
[5]权稳稳,林明星.CNN特征与BOF相融合的水下目标识别算
法[J].山东大学学报(工学版),2019(1)=107-113.7结论
本文介绍了基于STM32为核心的数字小折射采集节点设计,通过数字信号的传输模式和RS785的总线挂载,解决了传统模拟检波器信号保真度低、相互依赖性高的弊端。精密电路设计及芯片选取高保真地对地震数据进行了预处理,相较传统的单个传感器拾取提高了质量控制能力。经测试结果表明:设计的节点系统采集通道等效噪声水平可达微伏级,道间畸变小于-100dB,节点间的同步采集精度优于10as,在表层结构调查中具有良好的实际运用价值。
参考文献:
[1]陈丹•多波多分量转换波静校正技术的应用[D].成都:西南
石油大学,2013.
[2]李光磊,王军波,陈连宏,等•基于力平衡负反馈的电化学地
震检波器[J].传感器与微系统,2019,38(7):89-91.
[3]潘中印,梁保江,杨恒辉,等.48道高精度地震仪器研发[J].
石油仪器,2008,22(6):1-3,99.
[4]王文良.I/O System Four全数字遥测地震仪的性能、特点及与
以往地震仪器的对比[J].物探装备,2005(4):232-246. [5]李怀良,廣先国,刘明哲.无线遥测式数字地震仪关键技
术[J]•地球物理学报,2013,56(11):3673-3682.
[6]闫林涛•数字电子技术中的数字信号和数字电路[J].电子制
作,2018(16):75-76,82.
[7]丁红斌.地震信号采集传输系统的设计[D]•杭州:杭州电子
科技大学,2009.
[8]邢传玺,朴胜春,宋扬•基于数字水听器的分布式水下声场测
量系统[J]•传感器与微系统,2014,33(12):110-113.
[9]苏振华,刘益成,赵汀,等•地震数据采集系统基础[M].北
京:电子工业出版社,2012.
[10]刘建中,唐春华,左建军•微地震监测技术发展方向及应
用[J]•中国工程科学,2013(10):54-58.
作者简介:
世界人体之最
双螺旋ct袁晨(1995-),男,硕士,研究方向为嵌入式系统设计,E-mail:1550480523@qq0
李怀良(1985-),男,博士,教授,主要从事微地震监测仪器及方法的研究工作,E-mail:leehl@swust.edu o
[6]WANG C, CONG L,YU Q, et al.DLAU:A scalable deep lear­
ning accelerator unit on FPGA[J].IEEE Trans on Comput-Aided
Des Integr Circuits Syst,2017,36:513—517.
[7]王念滨,何鸣,王红滨,等•适用于水下目标识别的快速降维
卷积模型[J].哈尔滨工程大学学报,2019,40(7):1327-1333.
[8]吕清松,许宜申•基于FPGA的目标识别与跟踪系统设计[J]•
现代电子技术,2018(18):12-16.
作者简介:
陈凯峰(1994-),男,硕士研究生,研究方向为人工智能,图像处理及视觉算法,E-mail:158512206182@163。
在家不当小皇帝梁鉴如(1961-),男,高级实验师,研究领域为智能感知,检测与控制,E-mail:Jianru_t@126。
陈强(1985-),男,博士研究生,教授,主要研究领域为机电 一体化,软件开发,软件架构,E-mail:chch7115@126
o

本文发布于:2024-09-22 09:40:38,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/475104.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:卷积   采集   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议