用户故事

Drass开发用于海上环境中实时目标检测的深度学习系统

挑战

帮助船舶操作员监测海洋环境,检测物体、障碍物和其他船舶

解决方案

创建一个可以部署在船上并实时运行的对象检测深度学习模型

结果

  • 数据标注自动化
  • 开发时间缩短
  • 建立了灵活和可复制的框架

“从数据注释到选择、训练、测试和微调我们的深度学习模型,MATLAB拥有我们所需的所有工具,而GPU Coder使我们能够快速部署到NVIDIA GPU上,尽管我们的GPU经验有限。”

瓦莱里奥·因布里奥罗,德拉斯集团
德拉斯团队的两名成员在用他们的设备进行目标探测测试时俯瞰一个港口。

第一天用光电系统原型进行目标探测测试。


为了确保安全通过,船舶操作员必须在整个航程中跟踪物体、障碍物和其他船只。然而,探测海上物体具有挑战性,因为海浪的不断运动改变了背景,而公海提供的参考点很少。

为了应对这些挑战,海事技术公司Drass开发了一种用于海上实时目标检测的深度学习模型。尽管这是该团队的第一个深度学习应用程序MATLAB®使他们能够在截止日期前两个月训练和验证YOLOv2模型,然后将其与船上运行的c++应用程序集成。

“从原型设计到集成,MATLAB的工具使项目的每一步都变得简单,”德拉斯大学的计算机视觉工程师瓦莱里奥·因布里奥罗(Valerio Imbriolo)说。“我们在7个月内完成了目标检测应用程序,并在10个月内准备好进行测试。在剩下的两个月里,我们开发了其他功能。”

挑战

目前还没有预先训练好的海洋环境目标检测模型,这意味着Drass团队必须从头开始开发和训练他们自己的深度学习网络。传统的物体检测系统使用单一的视觉输入源。相比之下,Drass团队的深度学习模型需要合并来自多个来源的输入,包括日光和热成像摄像机,这需要对网络架构和数据预处理管道进行额外的调整。

由于Drass想要在多个海洋目标上测试物体检测模型,团队必须创建、预处理和标记他们自己的数据集,这是一项费时费力的任务。

该团队必须以一种可以集成到船舶上使用的主要对象检测应用程序的方式开发他们的模型,该应用程序是用c++编写的。考虑到它们应用程序的特殊性质,需要进行大量计算密集型测试和调整才能找到性能最佳的模型配置。

所有这些任务都需要在12个月内完成,这是一个紧迫的期限,因为这将是他们的第一个深度学习项目。

解决方案

Drass团队使用深度学习工具箱™来创建和训练他们的神经网络原型和GPU Coder™,并将其集成到他们的c++应用程序中。

研究小组从5000帧从海上拍摄的未经标记的原始镜头开始着手。使用图像处理工具箱™,他们对图像进行预处理,去除噪声和镜头失真。小波工具箱™帮助他们将日光和热敏相机的数据合并到一个数据源中。

该团队用视频标签应用程序标记了他们数据集的一小部分。他们在深度学习工具箱中创建了YOLOv2对象检测模型,并在标记数据的子集上进行训练。经过部分训练的模型帮助他们在Video Labeler中自动注释其余数据集的过程。然后,该团队通过创建训练示例的副本并通过添加噪声、翻转图像或改变颜色来修改它们来扩充他们的数据集。

为了加快为目标应用程序配置网络的过程,Drass团队使用并行计算工具箱™在大容量CPU和GPU集群上运行多个训练和优化过程实例。

GPU Coder将原型模型转换为CUDA®NVIDIA的代码®舰船上使用的GPU。然后,用c++编写的代码被传递给编程团队,用于与船上应用程序集成。

结果

  • 数据标注自动化.Imbriolo说:“手动标记每帧需要3分钟,或者整个数据集需要249小时。”“通过在视频标签器中使用自动标签过程,我们将每帧时间缩短到0.3秒。我们能够在42小时内标记和验证5000帧图像。”
  • 开发时间缩短.Imbriolo说道:“我们在10个月内完成了项目,并利用最后期限前剩下的两个月为客户实现了额外的功能。“如果没有MATLAB和GPU Coder,一个完整的c++工程师团队可能需要18个月的时间,每周工作40小时,从头开始开发和测试模型。”
  • 建立了灵活和可复制的框架。Imbriolo说:“在未来,我们将能够使用我们的MATLAB框架,以最小的努力修改、更新、再训练和重新集成应用程序中的模型。”“例如,如果有人让我介绍YOLOv3模型而不是YOLOv2模型,我可以在大约三天内展示结果。”
Baidu
map