舰船科学技术  2022, Vol. 44 Issue (23): 132-136    DOI: 10.3404/j.issn.1672-7649.2022.23.026   PDF    
基于改进DCP水下图像增强算法研究
伍哲, 郭文勇, 曹承昊     
海军工程大学 动力工程学院,湖北 武汉 430033
摘要: 为提高舰员对舰船的维修保障能力,尤其是舰船水下部分及附属装置的检查、清洗、切割或维修等,需借助水下视觉辅助设备,但利用视觉设备在水下所取得的图像存在着清晰度低模糊、色偏严重对比度不高、亮度偏暗等缺点。为解决这一问题,在深入分析常用图像增强算法的基础上,经过筛选采用改进后的暗通道优先算法对水下图像进行增强,提高水下图像的对比度和对水下图像进行颜色校正,以适应人眼对图像信息的获取。首先使用传统的暗通道先验算法对图像颜色校正,使图像看起来颜色更加均匀对比度更高,随后利用改进的暗通道先验算法进行改进。改进后的算法模型传输率更高,PSNR更均衡,图片中噪声更小,更清晰,可以满足水下图像的观测要求,为实际舰船水下检修提供可靠的帮助。
关键词: 舰船维修保障     水下图像     对比度     颜色校正     传输率    
Research on underwater image enhancement algorithm based on improved DCP
WU Zhe, GUO Wen-yong, CAO Cheng-hao     
College of Power Engineering, Naval University of Engineering, Wuhan 430033, China
Abstract: In order to improve the maintenance support ability of shipmen to ships, especially the inspection, cleaning, cutting or maintenance of underwater parts and auxiliary devices of ships, and underwater visual aids are needed. In view of the shortcomings of underwater images, such as low definition, fuzzy, serious color deviation, low contrast, dark brightness and so on. Based on the in-depth analysis of common image enhancement algorithms, after screening, the improved dark channel first algorithm is used to enhance the underwater image, improve the contrast of underwater image and correct the color of underwater image to adapt to the acquisition of image information by human eyes. Firstly, the traditional dark channel a priori algorithm is used to correct the image color, so that the image looks more uniform and has higher contrast. Then the dark channel prior algorithm is improved, and the transmission rate of the improved algorithm model is higher, PSNR is more balanced, the noise in the picture is smaller and clearer, which can meet the observation requirements of underwater images.
Key words: ship maintenance support     underwater image     contrast ratio     color correction     transmit rate    
0 引 言

舰船水下设备的正常运转是舰船正常航行的基本保障,水下船体破损、海水阀堵塞以及螺旋桨、舵、翼等传动装置的损坏都会降低舰船的在航率。为了提高水下维修保障能力,设计一套应用于水下应急维修的机械臂系统,在不靠港不进坞的情况下就能完成简单的检修任务。本文研究依托于水下维修机械臂,在机械臂的末端装有多个工装位,可搭配多种末端执行器,其中水下摄像机就位于机械臂末端,执行着水下照明和水下摄像的任务,便于上位机能观察水下作业环境和设计水下作业方案。水下作业促进了水下目标检测和水下图像识别技术的快速发展,虽然水下目标识别技术的研究基于声视觉占有主导地位,但这种非接触的识别技术取得的结果不直观,因此光视觉能给人最直观与丰富的视觉感知,所以在近距离水下作业中有着不可替代的作用[1-2]

文献[3]利用优化后的MSRCR算法估计图像光照量并消除水下噪声对图像质量的影响,同时将改进的YOLOv3目标检测算法,加深检测网络深度,突出目标物特征,提高对海参目标的检测精度。文献[4]提出了一种用于改善水下图像对比度,提高图像特征匹配数量的方法。利用常见的直方图算法对水下图像进行增强使其均衡,得到亮度和对比度分布均匀图像,特征匹配数量明显增加,特征点提取结果一致。文献[5]针对水下图像退化严重,首先基于暗通道先验与颜色校正的增强算法,并引入2个控制参数估计波长,利用颜色校正纠正颜色偏差,提升水下图像质量,改善视觉效果。

1 影响水下图像质量的因素

当舰船水下设备受到损伤时,可能会直接威胁到舰船的生存能力。从实际现状及需求出发,解决舰船在港口的日常检查和海上应急水下抢修的问题。受不同海域水质的影响,海水中含有的溶解物和颗粒物浓度、种类都不相同,因此对光在水中传播的方式也有很大影响。一方面由于水的吸收效应会衰减变暗,另一方面由于悬浮物和水体会发生发散和吸收,改变光的传播方向和减少光量[6]。对于水下图像,光在水中的传播有向前散射和向后散射,水下图像的形成过程如图1所示。

图 1 水下图像形成过程 Fig. 1 Underwater image formation process

水体会对光进行散射和吸收改变光的传播方向和光量。散射和吸收效应造成光在水下传播的衰减效应,根据Lambert-Beer经验定律,得到水下光的衰减模型为:

$ L = {L_0}{e^{ - cr}}。$ (1)

其中: $ L $ 为传播后的光照强度; $ {L_0} $ 为水初始光照强度; $ c $ 为水体的衰减系数; $ r $ 为传播距离。

光在水下的散射函数计算公式为:

$ L\left( {x,\lambda } \right) = {L_0}\left( {x,\lambda } \right){e^{ - a\left( \lambda \right)r\left( x \right)}}。$ (2)

式中: $ \lambda $ 为波长; $ a\left( \lambda \right) $ 为总散射系数; $ r\left( x \right) $ 为光在水中传播的距离; $ {L_0}\left( {x,\lambda } \right) $ 为初始光照强度; $ L\left( {x,\lambda } \right) $ 为水中传播距离 $ r\left( x \right) $ 后的光照强度。

光在水下的散射函数计算公式为:

$ L\left( {x,\lambda } \right) = {L_0}\left( {x,\lambda } \right){e^{ - b\left( \lambda \right)r\left( x \right)}},$ (3)

式中, $ b\left( \lambda \right) $ 为水体的吸收系数。

综上,光在水体下衰减的计算公式为:

$ L\left( {x,\lambda } \right) = {L_0}\left( {x,\lambda } \right){e^{ - c\left( \lambda \right)r\left( x \right)}}。$ (4)

式中: $ c\left( \lambda \right) $ 为总的衰减系数,由 $ a\left( \lambda \right) $ $ b\left( \lambda \right) $ 决定。

2 传统暗通道先验算法的应用

水下图像的获得在实验室中进行,如图2所示。采用升降设备将水下机械臂送入装有水的水箱,并利用上位机检测真实水下情况。

图 2 实验水箱 Fig. 2 The water tank

构建水下图像物理模型,根据水体对水下图像的影响,物理模型一般将前向散射的影响忽略不计,将水下图像物理模型改写为:

$ {I_\lambda }\left( x \right) = {J_\lambda }\left( x \right){t_\lambda }\left( x \right) + {B_{\lambda ,\infty }}\left( {1 - {t_\lambda }\left( x \right)} \right)。$ (5)

其中: $ {I_\lambda }\left( x \right) $ 为获得的观测图像; $ {J_\lambda }\left( x \right) $ 为待恢复的图像的真实场景, $ {t_\lambda }\left( x \right) $ 为传输率,两者的乘积 $ {J_\lambda }\left( x \right){t_\lambda }\left( x \right) $ 为直接传输部分; $ {B_{\lambda ,\infty }} $ 为背景光常量, $ {B_{\lambda ,\infty }}\left( {1 - {t_\lambda }\left( x \right)} \right) $ 后向散射部分。

起初暗通道先验算法被用作图像去雾,可以直接从图像的暗像素中估计雾和光的相关信息,简单且高效。图像中单个像素中的三通道中必定存在一个通道的值最低,将所有最低值集合的图像称为暗通道图像[7]

首先利用DCP算法构建图像退化模型,利用暗通道算法对其定义如下式:

$ {J^{dark}}\left( x \right) = \mathop {\min }\limits_{y \in \Omega \left( x \right)} \left( {\mathop {\min }\limits_{c \in \left\{ {r,g,b} \right\}} {J^c}\left( y \right)} \right)。$ (6)

其中: $ {J^{dark}}\left( x \right) $ 为暗通道图像; $ x $ 为图像中的像素坐标向量 $ x = {\left( {x,y} \right)^{\rm{T}}} $ $ {J^c}\left( y \right) $ 为原图中单个通道图像; $ c $ 为图像中的3个通道; $ \varOmega \left( x \right) $ 为一个中心窗口。

图3可以看到暗通道图的大部分像素具有很低的亮度值,少数的亮度较高区域由背景光或湖面反射的自然光造成的[8]

图 3 原图及暗通道图 Fig. 3 Original drawing and dark channel drawing

根据式(5)可知,对于一幅图像的物理模型, $ {J_\lambda }\left( y \right) $ $ {t_\lambda }\left( x \right) $ $ {B_{\lambda ,\infty }} $ 都是未知量,要求得场景灰度值 $ {J_\lambda }\left( y \right) $ ,需求出传输率 $ {t_\lambda }\left( x \right) $ 以及背景光 $ {B_{\lambda ,\infty }} $ ,使用暗通道先验算法的流程如图4所示。

图 4 暗通道先验算法流程图 Fig. 4 Flow chart of dark channel a priori algorithm

有关学者认为有雾图像中最亮的点即为图像背景光,但是当图像中有光源存在时背景光的估计会出现错误;有的学者认为在有雾图像中,背景光的估计出现在雾最浓的地方,而该思路符合暗通道先验算法,因此在检测有雾图像背景光时,确定暗通道中亮度较亮的一部分点的集合为背景光[9-11]

对背景光的估计完成后还需要对图像的传输率进行估计,对式(5)取2次最小滤波运算得到下式:

$\begin{aligned}[b] & \mathop {\min }\limits_{x \in \varOmega \left( y \right)} \left( {\mathop {\min }\limits_{\lambda \in \left( {r,g,b} \right)} {I_\lambda }\left( x \right)} \right) = \mathop {\min }\limits_{x \in \varOmega \left( y \right)} \left[ {\mathop {\min }\limits_{\lambda \in \left( {r,g,b} \right)} \left( {{J_\lambda }\left( x \right){t_\lambda }\left( x \right)} \right)} \right] + \\ & \mathop {\min }\limits_{x \in \varOmega \left( y \right)} \left[ {\mathop {\min }\limits_{\lambda \in \left( {r,g,b} \right)} \left( {{B_{\lambda ,\infty }}\left( {1 - {t_\lambda }\left( x \right)} \right)} \right)} \right]。\end{aligned}$ (7)

传输率是指在一个区域缓慢变化的量,并与深景相关。设某个区域传输率是一个常量,根据算法的有关理论有 $ \mathop {\min }\limits_{x \in \Omega \left( y \right)} \left( {\mathop {\min }\limits_{\lambda \in \left( {r,g,b} \right)} {J_\lambda }\left( x \right)} \right) = 0 $ ,因此传输率的估计为下式:

$ t\left( x \right){\text{ = }}1 - \mathop {\min }\limits_{x \in \varOmega \left( y \right)} \left( {\mathop {\min }\limits_{\lambda \in \left( {r,g,b} \right)} \frac{{{I_\lambda }\left( x \right)}}{{{B_{\lambda ,\infty }}}}} \right)。$ (8)

在实际图像中或多或少会存在雾化效果,如果直接完全去除雾对图像的影响,会使得图像看起来不自然,颜色不均衡,因此引入一个参数控制雾气的去除程度如下式:

$ t\left( x \right){\text{ = }}1 - \omega \mathop {\min }\limits_{x \in \varOmega \left( y \right)} \left( {\mathop {\min }\limits_{\lambda \in \left( {r,g,b} \right)} \frac{{{I_\lambda }\left( x \right)}}{{{B_{\lambda ,\infty }}}}} \right)。$ (9)

得到图像的背景光和透射率后,图像的场景灰度就可以还原处理了。当 $ {t_\lambda }\left( x \right) $ 趋近于0时,直接传输部分近似于0,局部区域会出现噪声干扰,因此需要对传输率设定一个最小值,假设为 $ {t_0}{\text{ = }}0.1 $ ,整理后得到下式:

$ {J_\lambda }\left( x \right) = \frac{{{I_\lambda }\left( x \right) - {B_{\lambda ,\infty }}}}{{\max \left( {t\left( x \right),{t_0}} \right)}} + {B_{\lambda ,\infty }} 。$ (10)

图5为水下机械臂末端所拍摄的水下压力表画面,水下场景图像原图和用传统暗通道先验算法处理后的图像。

图 5 水下图像处理结果 Fig. 5 Underwater image processing results

图 6 改进后算法流程图 Fig. 6 Flowchart of the improved algorithm

从仿真后所得出的结果可以对比,仿真图虽然能有效改善水下对图片影响使图片更加清晰,但是处理后的图像色偏严重,不自然,影响图像的视觉感受,因此使用常规的暗通道先验算法直接处理水下图像,很难做到符合人眼视觉效果,需对算法改进后处理水下图像。

3 改进暗通道先验理论

国内目前关于水下视觉的研究比较少,尤其是在军事方面的应用几乎空白,但是在水下养殖方面水下视觉却有大量的直接应用。对于水下图像来说,未改进的暗通道先验算法无法准确估计出水下图像三个颜色通道的传输图,会降低图像还原的质量,为了更加适合处理水下图像,需对先验算法进行改进。改进的方式是通过引入变量,估计各个颜色通道间的系数比,依据所得系数比估计RGB三通道传输图,从而改善水下图像的处理效果[12]

按照改进算法的流程,对图像的背景光进行估计,水下图像可以近似的处理成雾化效果,处理后的暗通道图亮度较高,使用该方法容易出错。

依照暗通道先验理论估计水下图像背景[13]。图像中的任何区域都可以看成三颜色通道组合而成,而亮度较高的区域颜色比较均衡;与一般图像不同的是水下图像的背景区域,3个颜色通道的亮度不均衡,一般呈蓝色或绿色调。故有色饱和度的定义,如下式:

$ satuationg{\text{ = max}}\left( {R,G,B} \right) - \min \left( {R,G,B} \right)。$ (11)

其中: $ {\text{max}}\left( {R,G,B} \right) $ $ \min \left( {R,G,B} \right) $ 分别为三通道像素RGB的最大值和最小值。如果使用双边滤波器对图像进行处理,可以将色饱和度用于暗通道图中,降低图中高亮度对背景光的不利影响。

设定阈值是因为背景光色饱和度高于平均色饱和度,如下式:

$ satuation{g_{low}}=\rho \bullet {\text{avg}}\left( {satuationg} \right)。$ (12)

式中: $ satuation{g_{low}} $ 为色饱和度的最小值; $ {\text{avg}}\left( {satuationg} \right) $ 为平均色饱和度; $ \rho \succ 1 $ 为给定参数。

背景光的计算很难获得准确值,因此需要对其进行估计。背景光估计的流程图:首先取暗通道图像中亮度为前0.1%的点,同时选出亮度最高点作为预估背景光 $ {B_{prew}} $ ;其次计算 $ {B_{prew}} $ 的色饱和度,若其饱和度的值低于预先设定的背景光饱和度 $ satuation{g_{low}} $ ,则认为 $ {B_{prew}} $ 不是背景光,重复上述步骤,直至预估背景光的色饱和度高于 $ satuation{g_{low}} $ ,由此可得背景光,图6为改进后的算法流程图。

为了更好地对水下图像进行还原,还需要得到3个颜色通道的传输图[13]。对式(5)两端同时除以背景光 $ {B_{\lambda ,\infty }} $ 得到下式:

$ \mathop {\min }\limits_{x \in \varOmega \left( y \right)} \frac{{{I_\lambda }\left( x \right)}}{{{B_{\lambda ,\infty }}}} = \mathop {\min }\limits_{x \in \varOmega \left( y \right)} \frac{{{J_\lambda }\left( x \right){t_\lambda }\left( x \right)}}{{{B_{\lambda ,\infty }}}} + 1 - {t_\lambda }\left( x \right),$ (13)

对等式两端3个颜色通道取最小值,得到下式:

$\begin{aligned}[b] \mathop {\min }\limits_{\lambda \in \left\{ {r,g,b} \right\}} \left[ {\mathop {\min }\limits_{x \in \varOmega \left( y \right)} \frac{{{I_\lambda }\left( x \right)}}{{{B_{\lambda ,\infty }}}}} \right] = & \mathop {\min }\limits_{\lambda \in \left\{ {r,g,b} \right\}} \left[ {\mathop {\min }\limits_{x \in \varOmega \left( y \right)} \frac{{{J_\lambda }\left( x \right){t_\lambda }\left( x \right)}}{{{B_{\lambda ,\infty }}}}} \right] +\\ & 1 - \mathop {\min }\limits_{\lambda \in \left\{ {r,g,b} \right\}} \left[ {{t_\lambda }\left( x \right)} \right] ,\end{aligned}$ (14)

根据暗通道先验理论 $ \mathop {\min }\limits_{x \in \Omega \left( y \right)} \dfrac{{{J_\lambda }\left( x \right){t_\lambda }\left( x \right)}}{{{B_{\lambda ,\infty }}}} = 0 $ ,有下式:

$ \mathop {\min }\limits_{\lambda \in \left\{ {r,g,b} \right\}} \left[ {{t_\lambda }\left( x \right)} \right]{\text{ = 1}} - \mathop {\min }\limits_{\lambda \in \left\{ {r,g,b} \right\}} \left[ {\mathop {\min }\limits_{x \in \varOmega \left( y \right)} \frac{{{I_\lambda }\left( x \right)}}{{{B_{\lambda ,\infty }}}}} \right]。$ (15)

根据光在水中的传播特性,红光的衰减系数最大,因此传输率最小,使用暗通道先验算法估算出红色通道的传输图。估计三通道(RGB)中的R传输率,还需要对G和B的传输率进行估计,才能还原水下图像场景辉度,图7为3个颜色通道的传输图。

图 7 三通道颜色传输图 Fig. 7 Three- channel color transmission diagram

不同的水质、不同的水域以及不同的光照条件对水下图像的质量影响很大,从北到南,我国海域的海水越来越清晰。随着自然条件的变化,图像退化程度也出现很大的差异,导致退化函数必须符合当地水质。在实验室模拟自然光照下的海水成像,假设背景光为定值。

3.1 水下图像场景还原

得到水下图像颜色通道的传输图和背景光后就可以还原图像的场景辉度,还原后的水下图像视觉效果更容易被接受,各要素更加突出,如图8所示。

图 8 场景还原图 Fig. 8 Scene restoration diagram
3.2 颜色校正

为对水下图像色偏现象进行校正,在获取衰减系数时无法通过计算直接获得,必须通过实验测量,而且难度较大较复杂,因此通过引入2个未知参数估计衰减系数对图片色彩校正,提升整体视觉效果。

3.3 水下图像试验

与传统的图像处理算法比较。传统算法通过计算三颜色通道的最大值,并将其作为主要通道,而另外2个值比较小多的颜色通道作为次通道。通过改进,本文计算RGB三通道颜色通道的平均值,选出主颜色通道,另外2个进行放大处理,如下式:

$ {R_{avg}} = \frac{1}{{MN}}\sum\limits_{i = 1}^M {\sum\limits_{j = 1}^N {{I_r}\left( {i,j} \right)} } ,$ (16)
$ {G_{avg}} = \frac{1}{{MN}}\sum\limits_{i = 1}^M {\sum\limits_{j = 1}^N {{I_g}\left( {i,j} \right)} },$ (17)
$ {B_{avg}} = \frac{1}{{MN}}\sum\limits_{i = 1}^M {\sum\limits_{j = 1}^N {{I_b}\left( {i,j} \right)} }。$ (18)

其中: $ MN $ 为单个颜色通道的像素数,计算得到的最大均值作为主要通道,其余的2个通道进行放大,放大因子如下式:

$ gainA = \frac{{\max \left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right)}}{{\min \left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right)}},$ (19)
$ gainB = \frac{{\max \left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right)}}{{{m} ed\left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right)}}。$ (20)

最后对2个次通道进行放大,平衡图像的色彩,如下式:

$ \begin{gathered} {{\tilde I}_{\min }}\left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right) = gainA \times \\ {I_{\min }}\left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right),\\ \end{gathered} $ (21)
$ \begin{gathered} {{\tilde I}_{{m} {\text{ed}}}}\left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right) = gainB \times \\ {I_{{m} ed}}\left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right)。\\ \end{gathered} $ (22)

其中: $ {I_{\min }}\left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right) $ 为均值最小的颜色通道; $ {I_{{m} ed}}\left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right) $ 为均值为中间的颜色通道; $ {\tilde I_{\min }}\left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right) $ $ {\tilde I_{{m} {\text{ed}}}}\left( {{R_{avg}},{G_{avg}},{B_{avg}}} \right) $ 为放大后的对应的颜色通道值。

改进算法后的处理结果如图9所示。

图 9 改进后算法处理结果 Fig. 9 Processing results of improved algorithm
4 结 语

通过对算法的改进,为舰船水下部分及附属装置的检修清洗等维修任务提供方案制定的依据,同时为水下检测、水下应急维修和水下可视化提供参考。

峰值信噪比(PSNR)是一种常用的评价算法处理图像效果好坏的指标,是图像信号与图像噪声功率谱的比值,信噪比越高,信号中的噪声越小,图像效果越好。在Matlab中计算后得到PSNR值分别为16.20 dB和13.88 dB,如表1所示。

表 1 对比2种算法 Tab.1 Compare the two algorithms
参考文献
[1]
朱振杰. 基于视觉的水下目标识别系统研究[D]. 镇江: 江苏科技大学, 2010, 46(9): 19–25.
[2]
孙贝. 基于视觉的水下目标识别算法研究[D]. 哈尔滨: 哈尔滨工业大学, 2017.
[3]
郝琨, 王阔, 赵璐, 等. 基于图像增强与改进YOLOv3的生物检测算法[J]. 吉林大学学报(工学版), 2022, 52(5): 1088-1097.
HAO KUN, WANG KUO, ZHAO LU, et al. Biological detection algorithm based on image enhancement and improved yolov3 [J]. Journal of Jilin University (Engineering and Technology Edition), 2022, 52(5): 1088-1097.
[4]
张阳, 徐爽, 朱建军, 等. 水下视觉SLAM图像增强研究[J]. 信息技术, 2015(5): 25-30.
ZHANG Yang, XU Shuang, ZHU Jian-jun, et al. Research on underwater visual slam image enhancement[J]. Information technology, 2015(5): 25-30.
[5]
陈超. 水下图像增强算法研究及其应用[D]. 大连: 大连理工大学, 2016.
[6]
宋鑫, 熊淑华, 何小海, 等. 基于HSI空间的Retinex低照度图像增强算法[J]. 图像与信号处理, 2017, 6(1): 29-36.
SONG Xin, XIONG Shu-hua, HE Xiao-hai, et al. Retinex low illumination image enhancement algorithm based on HSI space[J]. Image and Signal Processing, 2017, 6(1): 29-36. DOI:10.12677/JISP.2017.61004
[7]
宋绍剑, 朱靖旭. 基于Mask R-CNN和迁移学习的水下生物目标识别研究[J]. 计算机应用研究, 2020, 31(S02): 386-388+391.
Song Shaojian, Zhu Jingxu. Research on underwater biological target recognition based on mask r-cnn and transfer learning [J]. Computer Application Research, 2020, 31(S02): 386-388+391.
[8]
徐萌. 基于机器视觉的水下海参图像识别技术研究[D]. 济南: 山东大学, 2020.
[9]
张琦, 张荣梅, 陈彬. 基于深度学习的医疗影像识别技术研究综述[J]. 河北省科学院学报, 2020, v.37(133): 5-12.
[10]
周星宇. 水下目标运动要素辨识及搜索策略研究[D]. 哈尔滨: 哈尔滨工程大学.
[11]
YU S C, KIM T W , MARANI G , et al. Real-time 3D sonar image recognition for underwater vehicles[C]// Symposium on Underwater Technology & Workshop on Scientific Use of Submarine Cables & Related Technologies. IEEE, 2007: 142–146.
[12]
JIN L, HONG L. Deep learning for underwater image recognition in small sample size situations[C]// Oceans. IEEE, 2017.
[13]
ZHAO M, HU C, WEI F, et al. Real-time underwater image recognition with FPGA embedded system for convolutional neural network[J]. Sensors, 2019, 19(2): 350. DOI:10.3390/s19020350