水下图像识别是一个较为复杂的问题,常规的地面和空中的识别算法用于水下都会出现很多问题,由于水下光照强度弱和浑浊等,一般水下识别都需要做一些前处理的工作才能继续下去,也就是本章最初所讨论的内容。水下目标物识别一般分为几类,比如水雷或者管道探测一般都采用声呐来完成,而水下机器人近距离作业或者海产品捕捞以及检测等都是基于光视觉来完成。
鱼类迁徙需要全年跟踪监测,从而为研究鱼类对环境变化的行为反应提供有价值的信息。目前大多数监测都是由人类观察者完成的,如果采用自动识别和可迁移的自动监测系统将会是更有效的,并且可以提供更准确的数据。Lee等人研发的系统包括自动鱼图像采集、轮廓提取、鱼类分类和数据存储功能[202]。形状是鱼类识别的一个重要特征,该方面大多数研究都主要集中在使用曲率函数分析鱼形状的关键形状点,基于标志点的鱼类识别已经取得了较为满意的效果。然而,这种方法的主要困难是地标点有时不能非常精确地定位,Lee等人采用的是整体形状匹配方法进行鱼类识别,测试了几种形状描述符,如傅里叶描述符、多边形近似和线段。为了提高基于归一化长度空间轮廓的分类速度,有学者提出了一种幂倒谱方法,同时还讨论了图像采集、轮廓提取和鱼群分类的设计与集成设计方法,包括基于形状分析和形状匹配的鱼类分类结果。
White等人开发了一种基于计算机视觉来识别鱼的种类的机器[203]。鱼沿着数码相机下面的传送带运输,通过图像处理算法利用不变矩法确定鱼的方位,实验结果中能够做到以100%的准确度识别鱼是比目鱼还是圆鱼,以1.2 mm的标准偏差测量长度,以99.8%的分类可靠性识别7种鱼。使用一个单一输送机,该机器理论上可以处理高达30 000条/h。Larsen等人以形状和纹理为基础,对鱼类分类进行了案例研究[204],汇总考虑了三种鱼类,从一组训练数据的外观模型中导出形状和纹理特征,对训练图像中的鱼进行手动勾勒,并对包括眼睛和骨骼轮廓在内的一些特征进行注释。从这些注释导出最优最小描述长度线(minimal description length,MDL)曲线和随后的图像配准,同时还分析了一系列的形状和纹理以及组合的形状和纹理模式的变化情况,以了解它们区分鱼种的能力,并对它们进行了初步的分类。在基于两种最佳组合模式的线性判别分析中得到了76%的再置换率。Huang等人提出了一种新的方法在不受限制的自然环境中从水下视频中识别鱼类,使用平衡保证优化树(balance guarantee optimization tree,BGOT)来帮助解决误差累积问题,并确定鱼类之间的类内相似性[205]。
Yi-Hao Hsiao等人在台湾南部开发了一套分布式实时水下影像观测系统,该系统可以应用于珊瑚礁生态系统的视觉环境监测[206],该方法将鱼类识别和分类技术用于真实世界的水下自动观测系统中。研究表明,先进的鱼类识别和分类技术可用于研究鱼类种群和识别首次出现在特定感兴趣区域的鱼类物种,观测系统积累了大量的万亿级视频数据,可用于珊瑚礁鱼类的长期研究。该系统具有从视频数据集中高效和准确地识别鱼类的能力,该视频数据集记录在珊瑚礁生态系统中生物丰度的设置中。研究者团队还开发了一种从视频数据中检测鱼的简单有效的预处理方法,其中引入多个边界包围盒来区分鱼和其他移动物体,如移动的海葵和漂流水植物,数据中还包括从不同角度和光照条件下拍摄的多种鱼类物种的各种特征的图像,可以构成鱼类数据库的基础。该方法提出了一种基于稀疏表示的最大概率部分排序分类方法(sparse representation classification-maximum probability,SRC-MP),用于真实鱼群的识别和分类。通过鱼群数据库,利用特征脸和鱼脸提取特征数据,采用特征空间维数和部分排序值两个参数对算法进行优化,识别率和准确率分别达到81.8%和96%。
Qin等人通过稀疏低秩矩阵分解提取前景图像,然后采用深层结构提取前景鱼图像的特征[207]。在该体系结构中,主成分分析(principal component analysis,PCA)被用于两个卷积层,然后是非线性层中的二进制散列和特征池化层中的分块直方图。利用空间金字塔池化(space pyramid pooling,SPP)提取对大姿态不变的信息,最后利用线性支持向量机(support vector machine,SVM)分类器进行分类。该深层网络模型能有效地进行训练,在现实鱼群识别数据集上达到了98.64%的最优识别率。该研究旨在寻找一种解决水下目标识别的方法,提出一种无约束自然环境下的水下活体鱼识别框架,该框架由海洋中的水下摄像机捕获,并设计了深层结构,并且作者们提供了详细的程序代码供参考[3]。
Gordan等人提出了一种基于支持向量机的水下目标识别结构,利用形状描述因子进行细化分类。通过两步求解物体识别问题,首先利用SVM对原始颜色特征进行训练,对测试实例进行分类。然后应用模糊c均值分割、边缘检测和细化、圆形度计算和阈值化等算法对分类结果进行细化[208]。
George Kattawar等人对偏振光在具有散射和吸收特性的类似海水介质中探测模型目标进行了理论分析[209]。采用蒙特卡罗数值模拟方法计算了描述散射过程的有效Mueller矩阵。一个盘状目标被分成三个区域,每个区域具有相同的反照率但不同的简化Mueller矩阵。在由普通辐射产生的图像中,通过Mueller矩阵的各种元素以及这些元素的某些适当组合,分析目标和背景的各个部分之间的对比度。结果表明,与采用非偏振光相比,偏振光在目标检测和表征方面具有明显的优势。M.Dubreuil采用主动极化成像和光学相关方法相结合的方法研究水下目标检测。实验在装有稀释牛奶的自来水或海水的玻璃罐中进行,玻璃罐中有任意偏振响应的目标。当使用相关关系作为检测准则时,通过两个正交偏振态的成像获得的目标估计总是能够提高检测性能。这一实验研究阐明了偏振成像在水下目标检测中的潜力,并为水下成像系统的发展开辟了有趣的前景[210]。Sylvain Jay等人提出了不同水深的过滤器,基于著名的匹配滤波器(matched filter,MF),自适应MF和自适应余弦/相干估计探测器,通过高光谱遥感探测水下目标的检测[211]。在未知水特性的情况下,提出了基于深度过滤器GLRT(一个广义似然比检验为基础的过滤器)估计这些参数同时完成目标检测。
Leonard等人探索了基于光学相关性识别方法在水下人造物体(如水雷)的识别和定位中的应用[212]。相关技术可以定义为观察图像(要识别的图像)和参考图像之间的简单比较,这种方法可以非常快速地实现识别。然而,为了执行一个好的相关决策,应该将观测图像与一个巨大的参考数据库进行比较,覆盖所搜索的对象的所有外观。引入物体的所有外观会影响速度和/或识别质量。为了克服这个限制,Leonard建议使用复合滤波技术,从而大大减少识别观察图像所需的比较次数。这些技术还没有被利用在水下的识别算法中;在相关滤波器制造步骤中直接集成一些预处理可以提高对象的可见性;通过避免不必要的傅里叶变换及其逆运算,在一步中应用所有的预处理来减少运算量;为了获得与水下视频中的所有噪声和对比度问题无关的滤波器,使用3D计算机生成的图像作为参考创建了包含所有尺度和视点的数据库。
Stéphane Bazeille等人提出了一种新的方法应用于机器人水下环境中的物体识别[213],该方法把颜色作为一个有吸引力的特征,因为颜色特征具有的简单性和对比例变化、对象位置和部分遮挡的鲁棒性。在水下介质中,颜色通过衰减而改变,并且水深不同变化差异较大。为了对物体进行基于颜色的识别,研究者开发了一种对衰减具有鲁棒性的算法,该算法考虑了光源和摄像机之间的路径中的光修改。因此,通过检测与先前已知颜色兼容的所有颜色,可以在图像中识别给定的水下目标。该方法在快速性和鲁棒性方面效果较好,只需要很少的计算机资源就能够实现。实验验证了该方法适合于在各种嵌入式设备和共享计算机资源的机器人应用,这种新颖的概念使得颜色在许多应用中得以使用,例如目标拦截、目标跟踪或障碍物检测。
在水下识别领域,Abraham Eapen最早提出了一种将神经网络用于检测存在随机噪声的场景下的水下目标[214]。训练神经网络来分析输入信号的固定时间帧以检测目标的存在与否,在此期间网络适应于局部环境,学会识别目标的好坏。通过训练多层神经网络,在目标信号存在和不存在的情况下,对多个样本模式进行正确分类,并采用反向传播学习规则更新输入帧的每个表示的权重。输入样本的输入帧包含任何目标的标签。如果用硬件实现,网络就能够利用其并行分布式处理能力实时进行分类。
Gian Luca Foresti等人提出了一种利用基于神经网络的分类器构成层次结构系统来实现水下目标识别[215],该系统已被设计用于辅助自主水下航行器在海底调查操作,例如管道检查。输入图像被分成正方形区域(宏像素),并且使用神经树将每个区域分类为不同的对象类(管道、海底或阳极),然后根据几何和环境约束对每个宏像素进行分析:将疑点分类的宏像素分为四个部分进行重新分类,重复该过程一直到达到期望的精度。通过对不同海况下采集的大量真实水下图像进行实验验证了系统的鲁棒性和准确性。
人工神经网络的方法在现阶段已经在图像识别方面取得非常广泛的应用,但是在水下目标识别和分类方面应用还较少,并没有形成成熟的应用体系。神经网络的开发源于人类对人体和动物体的视觉与大脑的研究,在20世纪60年代,Hubel等人通过对猫的视觉研究发现动物的视觉系统内存在着感受野(receptive field)[216],即视觉细胞能够感受到光的刺激会出现一个兴奋区域。1943年美国神经生理学家McCulloch和数理逻辑学家W.Pitts根据神经元基本结构提出了数学抽象模型,被称为MP模型[217],该模型的结构如图5-19所示。在这个基本单元的基础上可以搭建出更加深层次网络模型,从而完成机器学习的过程。
图5-19 神经元数学结构模型
随后,计算机科学家Rosenblatt提出了由两层神经元构成的网络,这也就是最早的感知器(perception)的概念,由于当时计算机硬件的限制,Marvin Minsky[218]提出了感知器只有在解决简单的线性分类问题上可以提供帮助,而对于其他问题则因计算量过大根本无法完成。从此,人工智能(artificial intelligence,AI)的概念被大多数学者放弃,这个时期被称为人工智能冰冻期(AI Winter)。随着计算机硬件的飞速发展,神经网络的实现变得不再那么艰难,80年代美国心理学家Rumelhar和英国认知心理学家Hinton针对Minsky提出的两层神经网络不能解决异和或的问题给出了反向传播算法(backpropagation)[219],从此神经网络又得到了广泛的关注,多种神经网络的数学模型被广大学者提出。2006年多伦多大学教授Geoffery Hinton在之前的研究基础上,首次提出“深度信念网络”[220],这个网络采用一个预训练模型(pre-training),在此基础上让神经网络的权值通过迭代找到最优解,再通过微调(fine-turning)来对整个网络进行训练,这样就节省训练神经网络的时间,Hinton把这个多层的神经网络学习框架称为“深度学习”,由此,深度神经网络的概念被广泛采用,在语音识别和图像识别等一些方面都产生了巨大的影响,在目标识别方面主要有以下两个方面的应用。
1)基于候选区域的深度学习方法
与滑动窗口方法相比,候选区域(region proposal)的方法计算效率更高,通过提取图像中特征信息可以降低窗口的数量,在候选区域上进行目标检测是更有优势的。在图像识别方面,2012年Hinton教授的学生Krizhevsky采用卷积神经网络处理分类问题[221],在全球最权威的计算机视觉竞赛(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)上获得冠军,这种方法把top-5的错误率降低到了15.3%,从此卷积神经网络在图像识别方面获得了极大的认可。2014年Facebook的专家Girshick[222]把候选区域和卷积神经网络(convolutional neural network,CNN)结合起来开发了区域卷积神经网络(region-convolutional neural network,R-CNN),该方法在PASCAL VOC2007数据集上的检测结果达到了66%m AP(mean average precision)。在R-CNN的基础上,何凯明提出了SPP-Net(spatial pyramid pooling in deep convolutional networks for visual recognition)模型[223],大幅度地提高了R-CNN的检测效率。Ross B.Girshick又在SPP-NET的基础上加入了损失函数,建立了Fast R-CNN模型[224],训练过程中用多层感知器(multi-layer perceptron,MLP)代替SVM进行分类,在训练步骤和速度上有了显著的提高。何凯明与Girshick联手在Fast R-CNN的基础上加入了RPN(region proposal network)[225],开发了Faster RCNN程序,用RPN代替Fast RCNN中的Selective Search来进行候选框的选择和修正,解决了端到端(end to end)的目标检测问题。2017年,何凯明提出了Mask RCNN网络[226],通过增加一支特定类别对象掩码,Mask RCNN扩展了面向实例分割的Faster RCNN,与已有的边界框回归量和对象分类器并行。由于RoIPool(region of interest pool)并非设计用于网络输入和输出间的像素到像素对齐,Mask RCNN用RoIAlign取代了它。RoIAlign使用了双线性插值来计算每个子窗口的输入特征的准确值,而非RoIPooling的较大池化法。Liu Wei在ECCV2016(European Conference on Computer Vision)提出了SSD(single shot multibox detector)方法[227],相比Faster RCNN有明显的速度优势,该算法是一种直接预测bounding box的坐标和类别的object detection算法,没有生成proposal的过程。(https://www.xing528.com)
基于卷积神经网络的深度学习方法被各行各业所采用,RCNN、Faster RCNN、Faster RCNN等,以及在此基础上的一些修正版本被广泛应用到各个领域,以上一些理论的研发已经引发了一场深度学习和目标识别方面的热潮。
2)基于回归方法的深度学习方法
YOLO(you only look once)回归目标检测算法[228]也是Girshick团队在2016年IEEE国际计算机视觉与模式识别会议(IEEE Conference on Computer Vision and Pattern Recognition)上提出的,该算法在计算速度上有较大优势,解决了深度学习检测中的速度过慢问题,YOLO较之Faster RCNN有以下区别:
(1)Faster RCNN将图像识别分解为分类和回归两个步骤分别求解 首先采用独立的RPN网络专门求取region proposal,即计算图5-20中的P(objectness);然后利用bounding box regression对提取的region proposal进行位置修正,即图5-20中的Box offsets(回归问题);最后采用softmax进行分类(分类问题)。
图5-20 Faster RCNN与YOLO的区别
(2)YOLO将物体检测作为一个回归问题进行求解 输入图像经过一次网络计算,便能得到图像中所有物体的位置和其所属类别及相应的置信概率,而RCNN/fast RCNN/faster RCNN将检测结果分为两部分求解:物体类别(分类问题),物体位置即bounding box(回归问题)。
YOLO算法刚被提出时在计算准确率和速度上不及SSD算法。华盛顿大学的Redmon提出V2版本,该版本通过一系列的方法对原来的YOLO多目标检测框架进行了优化,在保持原有速度的优势之下,精度得以提升。2018年初,Redmon又给出YOLO V3版本[229],YOLO V3利用了一个预训练模型,在计算准确率和速度上又有了大幅提高。
本书作者尝试用以上提到的Faster RCNN和YOLO V3进行了水下海参、海胆和扇贝的识别,Faster RCNN的识别结果如图5-21~图5-23所示。
用YOLO V3方法识别结果如图5-24所示。
从以上的识别结果可以看出,采用Faster RCNN和YOLO都能得到较好的识别结果,在安装了NVIDIA GTX1080ti显卡的GPU工作站上,Faster RCNN的识别速度可以达到22帧/s,YOLO V3的识别速度可以达到50帧/s,两种方法的识别准确率(m AP)都能达到90%以上,Faster RCNN的准确率略高于YOLO方法,但是识别速度上,YOLO表现出了较大的优势。
图5-21 基于Faster RCNN的远距离视景图像识别
图5-22 基于Faster RCNN的近距离视景图像识别
通过以上的分析可以看出,虽然水下光视觉图像识别已经有了长足的进步,但是与常规的图像识别的发展速度相比还是落后很多,这主要是由水下图像的特点所决定的。水下的光视觉图像识别不能单纯地照搬常规图像识别的方法,需要首先对图像做一个预处理来实现增强、降噪、颜色补偿等,然后在此基础上进行图像识别。所以,未来应主要围绕图像预处理和图像识别的有效结合来进行深入研究,在水下实现不失真的实时检测是未来水下光视觉识别的关键点。
图5-23 基于Faster RCNN的阴雨天海底图像识别
图5-24 基于YOLO V3的海底图像识别
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
