最近,人类的好奇心已经扩展从土地到天空和大海。除了派人去探索海洋和太空,机器人被设计为一些任务危险的生物。海洋勘探为例。有许多项目或比赛在自主水下航行器(AUV)的设计吸引了许多利益。本文的作者学会了平台升级的必要性从先前的水下机器人设计项目,并希望分享一个任务的经验扩展检测领域的鱼。因为大多数嵌入式系统提高了快速增长的计算和传感技术,这使得他们可以将更多的和更复杂的算法。在一个水下机器人,从传感器获取周围的信息后,如何更好地感知和分析相应的信息判断的一个挑战。处理程序可以模拟人类的学习例程。一个先进的系统有更多的计算能力可以促进深度学习的特性,利用许多模拟人类大脑神经网络算法。本文基于卷积神经网络(CNN)的鱼提出了检测方法。 The training data set was collected from the Gulf of Mexico by a digital camera. To fit into this unique need, three optimization approaches were applied to the CNN: data augmentation, network simplification, and training process speed up. Data augmentation transformation provided more learning samples; the network was simplified to accommodate the artificial neural network; the training process speed up is introduced to make the training process more time efficient. Experimental results showed that the proposed model is promising, and has the potential to be extended to other underwear objects.
大海充满了神秘和水下勘探一直是一个令人兴奋的主题。如今,机器人已经广泛采用为我们的日常生活。水下机器人是一种类型的机器人,这是获得越来越多的关注gydF4y2Ba
AUV和竞争环境。gydF4y2Ba
本研究的主要贡献是引入深度学习方法完成海水鱼识别模糊。结果,改进的计算机视觉的方法到一个水下机器人系统通过一个适用的神经网络。gydF4y2Ba
计算机视觉与成像传感器使用电脑模仿人类的视觉功能,从获得的数据集,提取特征分析和分类他们协助决策。它通常涉及许多领域的知识如高级计算机编程、图像处理、人工智能(AI),等等。例如,制造行业用它来检查变节或改善从大量的产品质量gydF4y2Ba
深度学习和神经网络的概念出现了几十年前。它最初由勒存研究员等人(1998年gydF4y2Ba
深基础倾斜的方法越来越多地应用在许多领域,和显著优于传统算法在计算机视觉和目标检测。许多机器人系统的性能提高了将深度学习。以谷歌AlphaGo为例,研究了人类的学习行为,回报与著名的球员(gydF4y2Ba
能够促进深度学习在计算机视觉中,事先从图片收集足够的例子是至关重要的。ImageNet就是一个很好的例子(gydF4y2Ba
在过去的几年中,神经网络在深度学习是越来越受欢迎的。2012年,研究员Krizhevsky等人采用CNN来完成图像的分类ImageNet大规模视觉识别的挑战[gydF4y2Ba
本文介绍了CNN模型与图像分割在模糊的海水鱼检测。特定的数据集是支持本研究开发的。采用数据增加转换方案获得更多的学习资源,因为原始图像在特定环境中不能满足训练的目的。解决过度拟合问题,辍学的算法。因为我们的目标是这个系统合并到一个水下机器人需要实时应用程序,讨论了一些取舍,以减少处理时间。在本节中,详细系统设计与优化的方法解决。gydF4y2Ba
CNN模型通常由许多层,如一个输入层,卷积与非线性单元层,和完全连接层(gydF4y2Ba
在RGB彩色图像卷积操作(gydF4y2Ba
数据集由RGB彩色图像的256年水平。3×3矩阵,W0下面,被称为内核或一个过滤器。在实践中,卷积操作上执行的R, G, B通道分别,然后结果总结获得每个元素的功能映射,如图gydF4y2Ba
为了更准确地提取对象的特点,大量的过滤器是用于每个卷积层。例如,提取特征,如边缘、纹理,等等,相应的过滤器是可用的,如图gydF4y2Ba
卷积运算应用在图像特征苛捐杂税(gydF4y2Ba
当执行卷积操作,功能图的大小正在考虑之中。有三个主要的因素影响其大小:深度、步幅和填充。图gydF4y2Ba
特征提取器使用卷积操作。gydF4y2Ba
对于一个复杂的神经网络,通常有两种类型的两个相邻层之间的连接。他们是完全连接层和局部神经连接层分别如图gydF4y2Ba
完全连接神经网络和本地连接神经网络(gydF4y2Ba
CNN中的卷积层使用本地连接,如图gydF4y2Ba
卷积操作使用本地连接。gydF4y2Ba
参数完全或本地连接的所有层CNN表中列出gydF4y2Ba
CNN模型中参数与图像分割。gydF4y2Ba
| 层gydF4y2Ba | 输入的大小gydF4y2Ba | 过滤器的大小gydF4y2Ba | 步gydF4y2Ba | 输出的大小gydF4y2Ba |
|---|---|---|---|---|
| Conv。1gydF4y2Ba |
|
(7×7×3×64)gydF4y2Ba | 2gydF4y2Ba |
|
| Maxpool 1gydF4y2Ba |
|
(2×2)gydF4y2Ba | 2gydF4y2Ba |
|
| Conv。2gydF4y2Ba |
|
(3×3×32×192)gydF4y2Ba | 1gydF4y2Ba |
|
| Maxpool 2gydF4y2Ba |
|
(2×2)gydF4y2Ba | 2gydF4y2Ba |
|
| Conv。3gydF4y2Ba |
|
(3×3×128×256)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。4gydF4y2Ba |
|
(3×3×128×256)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。5gydF4y2Ba |
|
(1×1×256×256)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。6gydF4y2Ba |
|
(3×3×256×512)gydF4y2Ba | 1gydF4y2Ba |
|
| Maxpool 3gydF4y2Ba |
|
(2×2)gydF4y2Ba | 2gydF4y2Ba |
|
| Conv。7gydF4y2Ba |
|
(1×1×256×256)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。8gydF4y2Ba |
|
(1×1×256×256)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。9gydF4y2Ba |
|
(1×1×256×256)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv 10。gydF4y2Ba |
|
(1×1×256×256)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。11gydF4y2Ba |
|
(3×3×256×512)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。12gydF4y2Ba |
|
(3×3×512×512)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。13gydF4y2Ba |
|
(3×3×512×512)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv 14。gydF4y2Ba |
|
(3×3×512×512)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。15gydF4y2Ba |
|
(1×1×512×512)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。16gydF4y2Ba |
|
(3×3×512×1024)gydF4y2Ba | 1gydF4y2Ba |
|
| Maxpool 4gydF4y2Ba |
|
(2×2)gydF4y2Ba | 2gydF4y2Ba |
|
| Conv 17。gydF4y2Ba |
|
(1×1×512×256)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv 18。gydF4y2Ba |
|
(3×3×256×1024)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。19gydF4y2Ba |
|
(1×1×1024×512)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。20gydF4y2Ba |
|
(3×3×512×1024)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv 21。gydF4y2Ba |
|
(3×3×512×1024)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。22gydF4y2Ba |
|
(3×3×1024×1024)gydF4y2Ba | 1gydF4y2Ba |
|
| Conv。23gydF4y2Ba |
|
(3×3×1024×1024)gydF4y2Ba | 2gydF4y2Ba |
|
| Conv。24gydF4y2Ba |
|
(3×3×1024×1024)gydF4y2Ba | 1gydF4y2Ba |
|
| 完全conn.1gydF4y2Ba |
|
(1024×4)gydF4y2Ba | 多gydF4y2Ba | (1×4096)gydF4y2Ba |
| 完全康涅狄格州。2gydF4y2Ba | (1×4096)gydF4y2Ba | (4096×7×7×30)gydF4y2Ba | 多gydF4y2Ba | (7×7×30)gydF4y2Ba |
系统可以通过简化图可视化gydF4y2Ba
CNN架构对象标识(gydF4y2Ba
应用此系统前向海洋鱼本研究开发的数据集,作者从著名的下载图片ImageNet ILSVRC [gydF4y2Ba
使用ImageNET CNN模型的输出。gydF4y2Ba
预测一个图像的目标位置,目标是显示在一个边界框。总是有错误在地面实况和预测。损失函数是测量错误包括三个部分:开发协调错误,(十字路口在联盟)借据错误,和类的错误。方程(gydF4y2Ba
在这里,借据是用来测量位置精度,如图gydF4y2Ba
十字路口在联盟。gydF4y2Ba
每个网格单元在一个图像将预测gydF4y2Ba
公关(对象)的概率表示感兴趣的对象。如果有一个物体在网格单元,公关(对象)是1;否则,它是0。gydF4y2Ba
通常,损失函数的平方之和的形式错误如下所示(gydF4y2Ba
在哪里gydF4y2Ba
对象分类结果ImageNET数据集。gydF4y2Ba
与完美的图像测试CNN系统后没有噪音。下一步是构建我们自己的数据集海洋中的鱼。因为它是很难获得图像从其他类型的对象如海龟、珊瑚等。这部分的研究中,鱼是唯一反对被探测到。410年收集的图片,他们中的许多人有多个鱼在一个图像,检测是具有挑战性的。选择相同的方法来创建地面实况图像。之前介绍过的参数保持不变,只有类信息是由1×1×18向量而不是1×1×30因为减少的类。图gydF4y2Ba
贴上地面真理。gydF4y2Ba
由于深度学习是基于大系统学习和训练数据集建立识别知识,必须作为学习资源提供足够的数据来提取对象特征(gydF4y2Ba
通过随机角度旋转,旋转的图像;gydF4y2Ba
规模:图像缩放根据规模大小不同因素集;gydF4y2Ba
作物:作物的图像;gydF4y2Ba
镜面对称:水平或垂直翻转原始图像。gydF4y2Ba
数据增加转换。gydF4y2Ba
深度学习的常见问题之一是过度拟合,是指测试的精度远低于训练精度。在这种情况下,一个模型与高性能特性是使用真实世界的训练数据构建。如果事实证明过度拟合问题,模型的鲁棒性是值得考虑。除了学习数据的缺乏,这也将导致过度拟合问题,大量的参数在一个神经网络会导致过度拟合问题。因此,辍学算法(gydF4y2Ba
辍学意味着我们删除某些节点暂时从网络根据概率设置的过程中学习。在实践中,一些功能可以提取只有当存在一些隐藏的关系,减少深度学习模型的鲁棒性。另一方面,辍学删除一个隐藏的固定节点之间的关系,可以提高抗干扰能力,在一定程度上可以解决过度拟合问题。L1和L2正则化是通过修改成本函数,而辍学是通过修改神经网络实现的本身,这是一个技术训练网络时使用。在每个迭代中训练的过程中,作者随机下降的一些神经元,并设置消除节点的概率神经网络的每一层的网络。例如,值设置为0.5,如图gydF4y2Ba
一个标准的神经网络模型(A)和一个网络模型与辍学(b) (gydF4y2Ba
YOLO改进意思损失函数从方程(gydF4y2Ba
在这篇文章中,作者精炼损失函数适合多个鱼应用程序。提出了损失函数正规化,以减少小数据集和过度拟合问题,L2正规化是添加一个正则化函数后,成本函数中列出方程(gydF4y2Ba
最后一项是L2正则化项,这是所有参数的平方的总和gydF4y2Ba
实验的实现是基于公开Tensorflow工具箱和Python语言编程。硬件平台是建立在一个GeForce GTX 745 GPU 4 g内存。实验是由上述三个标准,性能,培训损失和测试损失分别进行比较。gydF4y2Ba
图像的数量翻了一番通过数据增加转换方法,这意味着这种方法可以更准确地帮助学习功能的机器。我们使用的测试数据集来评估我们的模型。原来的数据增加,机器可以识别感兴趣的对象更准确地比结果没有数据,实验结果显然是如图gydF4y2Ba
提高识别精度的数据扩充。gydF4y2Ba
从图gydF4y2Ba
从图gydF4y2Ba
比较训练的损失。gydF4y2Ba
图gydF4y2Ba
数据增加过度拟合的效果。gydF4y2Ba
在该测试中,隐藏层神经元被随机选择从这个网络。在这种谨慎,一个简化的深层神经网络。图gydF4y2Ba
提高识别精度与辍学。gydF4y2Ba
培训辍学如图的损失gydF4y2Ba
辍学对训练的影响损失。gydF4y2Ba
进行了辍学的方法后,我们可以看到从图gydF4y2Ba
辍学的影响过度拟合。gydF4y2Ba
作者使用了CNN模型与图像分割和back-propagated精炼损失函数的梯度和更新网络中的参数。损失函数的优化,预测更准确清楚地显示在图gydF4y2Ba
提高识别精度损失函数的改进。gydF4y2Ba
如图gydF4y2Ba
损失函数对训练的影响损失。gydF4y2Ba
设计和选择的优化,基于深度学习鱼检测模块的设计和模拟。提高精度和减少处理时间,是很有前途的采用该方法为实现一个水下机器人。Tensorflow工具箱和Python编程接口兼容当前先进的单片机平台。gydF4y2Ba
在本文中,作者建立了一个神经网络模型来实现鱼检测。支持培训过程有足够的数据集,数据扩增方法。辍学选择算法来解决过度拟合的问题。此外,损失函数是精制更新网络内的参数。通过这些方法,训练时间和训练损失显著降低。总结本文的贡献:(1)建立数据集,包括真正的模糊海水条件;(2)修改损失函数和其他参数在CNN探索一种适用的解决方案鱼检测;(3)对AUV系统是针对嵌入式系统设计与所有可能的优化。gydF4y2Ba
程序和图像数据用于支持本研究的发现可以从相应的作者。gydF4y2Ba
作者宣称他们没有利益冲突有关的出版。gydF4y2Ba
这项工作是由美国国家科学基金会资助# 1332566,# 1827243,# 1411260。gydF4y2Ba