提升 Kongsberg Maritime 海上导航解决方案图像识别的性能

Kongsberg Maritime 致力于运用自动和辅助导航解决方案确保船舶在海上的安全。 英特尔帮助该公司优化其基于英特尔® 至强® 可扩展处理器的物体识别性能。

简介:

  • Kongsberg Maritime 正在开拓自动驾驶船舶领域,并运用人工智能为船员提供海上导航支持。该公司过去的人工智能解决方案都基于 GPU,但他们更希望使用 CPU,以便能够更轻松地简化和整合服务器。他们推出了 Intelligent Awareness,该解决方案基于英特尔® 至强® 铂金 8153 处理器,采用机器学习开源框架 TensorFlow,并选择使用基于区域的全卷积网络模型执行物体识别,在后端使用 ResNet-101 进行图像分类。

  • 英特尔与 Kongsberg Maritime 联手优化了该解决方案,由该公司提供预先训练好的人工智能模型供英特尔使用。英特尔® OpenVINO™ 工具套件分发版在无损准确度的情况下帮助提升了吞吐量,结果大大超出预期。

执行概要

Kongsberg Maritime 正在开拓自动驾驶船舶领域,并运用人工智能 (AI) 为船员提供海上导航支持。该公司过去的人工智能解决方案都基于 GPU,但他们更希望使用 CPU, 以便能够更轻松地简化和整合服务器。通过与英特尔合作,Kongsberg Maritime 在公司一个示范项目中得以将在标准服务器硬件上运行的解决方案的性能提升了 4.8 倍1

挑战 

  • 优化人工智能性能,以便提高 Kongsberg Maritime 海上导航物体识别解决方案处理图像的速度 
  • 通过满足 Kongsberg Maritime 对于解决方案在标准服务器上的性能预期,支持服务器整合与冗余 

解决方案

  • 采用英特尔® OpenVINO™ 工具套件分发版提升 Kongsberg Maritime 的 TensorFlow* 模型在英特尔® 至强® 铂金处理器上运行时的性能表现
  • 采用英特尔® Python* 分发版在双路服务器的 64 个线程间分配任务 
  • 英特尔专家团队通过优化服务器设置和调整 OpenVINO™ 来增强性能 

结果

  • 与未经优化的基准配置相比,图像处理吞吐量提升 4.8  倍1
  • Kongsberg Maritime 可以考虑利用标准服务器硬件承载其海上导航解决方案、增加架构中的冗余以及为海事认证扫平道路 

实现快速人工智能推理

过去 10 年间,有 1,129 艘船舶在海上失踪2。在某些地区,海上拥堵可能是一个重大 风险因素;2011 至 2016 年间,有四分之三的航运保险损失是人为错误造成的,共计损失 16 亿美元3。 

Kongsberg Maritime 希望提高航运安全和效率。他们计划使用人工智能为船上水手提供指引,实现岸上远程控制,最终为自动驾驶远洋轮船导航。

该公司计划到 2025 年让远程自动控制装置驱动的近海运输船舶成功下水。除此之外,国际监管规定将会是公海试航的巨大障碍。 

Kongsberg Maritime 已在芬兰水域展示过全自动驾驶汽车渡轮4。 在此次演示中,去程船上载有 80 位 VIP,使用 Kongsberg Maritime 技术自动导航,运用传感器和摄像头检测并避开障碍 物。轮渡自动靠泊,返航时采用远程控制引导。

Kongsberg Maritime 迈向全自动驾驶船的第一步,同时也是其首款上市的产品叫做 Intelligent Awareness*。它采用雷达探测远距离物体,以激光雷达对船体附近区域进行高精度分析,并用高清摄像头拍摄船舶前方海域 180 度视野景象。船员可以通过仪表盘观察船舶周围水域情况,而 Intelligent Awareness 解决方案会高亮显示任何潜在危险。该解决方案可帮助降低航海者的风险,尤其是在黑暗环境或恶劣天气条件下,或是进行复杂操作(如在拥挤海域)以及进出船坞之时。

目前,该解决方案采用 GPU 执行实时人工智能分析,即人工智能推理。Kongsberg Maritime 项目经理 Jaakko Saarela 表示: “我们不想再使用 GPU。其中一个重要原因是海事认证问题。如果不用 GPU,我们的服务器会更容易通过认证。 而且,我们还想降低功耗。我们理想的方案是使用差不多相同的通用服务器系统。我们并不是每台服务器都需要 GPU,所以没有服务器用 GPU 会更好,这样我们就获得了冗余,并能在任何服务器上运行任何应用程序。”

该解决方案基于大约 10 台服务器级计算机,每台负责运行应用程序的不同部分,各个组件以高速内部网络实现连接。Kongsberg Maritime 现在希望整合服务器,所以一直在研究如何用 CPU 而非 GPU 进行图像处理。Saarela 表示: “神经 网络推理是最具挑战的部分。”

其难点在于优化基于 CPU 的解决方案,使其速度快到足以检测到海面上可能出现的高速移动物体,比如从船头疾驰而过的摩托艇。

解决方案详情

Intelligent Awareness 解决方案采用热门的机器学习开源框架 TensorFlow*。Kongsberg Maritime 选择使用基于区域的全卷 积网络 (R-FCN) 模型执行物体识别,在后端使用 ResNet-101* 进行图像分类。Saarela 说: “我们尝试了多个架构,发现 R-FCN 能比较好地平衡计算性能(速度)和推理准确度。缩放比例是一个巨大挑战。视距离远近,相同物体可能呈现不同大小, 从 10 个像素块到 10 万个像素块不等。”

英特尔与 Kongsberg Maritime 联手优化了该解决方案,由 Kongsberg Maritime 提供预先训练好的人工智能模型供英特尔使用。英特尔® OpenVINO™ 工具套件分发版在无损准确度的 情况下帮助提升了吞吐量。OpenVINO™ 将经过训练的模型转换为中间表示 (IR),去除了任何仅与训练相关的运算并将部分推理运算融合在一起,以便能够更快地进行计算推理。然后,由 OpenVINO™ 推理引擎处理中间表示,并将所识别的物体的信息返回给 Kongsberg Maritime 应用程序,如图 1 所示。他们对 OpenVINO R4 进行了修改,现已并入 OpenVINO R5。

此解决方案基于两个英特尔® 至强® 铂金 8153 处理器,每个处理器有 16 个内核。每个内核可处理两个线程,所以总共可并行处理 64 个模型(2 个处理器 × 16 个内核 × 2 个线程)。为了跨线程分配任务,英特尔使用了包含在英特尔® Python* 分发版中的 mpi4py* 库,此库更常用于跨不同服务器分配任务。

为进一步提升性能,英特尔团队微调了处理器默认设置,修改了超参数,包括将线程锁定到特定内核。

图 1. 使用 OpenVINO™ 的高级推理过程。浅蓝色表示深度学习框架中执行的任务,蓝色表示 OpenVINO™ 任务,橙色表示用户应用。

英特尔助力转型

上述优化由英特尔人工智能产品事业部帮助实现。该部门的数据科学家与客户合作,协助客户创建基于英特尔® 技术的有效人工智能解决方案。另外,英特尔还提供硬件支持 Kongsberg Maritime 测试解决方案。

Saarela 表示: “英特尔团队在英特尔® 至强® 平台优化解决方案方面拥有所有相关专业知识,合作起来轻松愉快。我现在已经和英特尔多个部门的人员合作了两年,他们的专业能力和积极态度给我留下了深刻印象。英特尔为我们提供了新工具和新的做事方法,让我们能够挖掘更多可能性。我们一直在频繁使用 TensorFlow,但他们通常假定你一定会使用 GPU。与英特尔合作让我们能够针对 CPU 优化解决方案,收获使用更为标准化的服务器平台的种种好处。”

结果

经过优化,在 Kongsberg Maritime 的一个示范项目中吞吐量(以每秒帧数计)提升了 4.8 倍1

为证明这些改进可推广至 R-FCN 拓扑之外,英特尔还用准确度通常低于 R-FCN 的单次多盒检测器 (SSD) 拓扑测试了这些优化。与未经优化的平台相比,经优化的平台的吞吐量提升了 4.5 倍1。而单靠英特尔® OpenVINO™ 工具套件分发版,就使性能提升了 2.4 倍1

Saarela 表示: “结果让我十分震惊。我原以为我们永远都摆脱不了 GPU,但这些结果改变了我的想法,让我看到了使用 CPU 的可能性。”

图 2. 在经优化的平台上使用英特尔® OpenVINO™ 工具套件分发版和多线程,性能(以每秒帧数  FPS 计)提升了 4.8 倍1

解决方案的技术组件

  • 英特尔® 至强® 铂金处理器:英特尔® 至强® 铂金处理器是安全敏捷的混合云数据中心的基石。该款处理器具备出色的多路处理性能,专为关键业务、实时分析、机器学习、人工智能和多云工作负载而生。该处理器家族提供可信的硬件增强型数据服务,在 I/O、内存、存储 和网络技术方面实现了巨大飞跃,让用户在这个日益由数据驱动的世界里从获得的可行洞察中受益。 
  • 英特尔® OpenVINO™ 工具套件分发版:依托卷积神经网络 (CNN),此工具套件可跨英特尔® 硬件(包括加速器)扩展工作负载,大幅提高性能,帮助开发人员创建模拟人类视觉的解决方案。 
  • 英特尔® Python* 分发版:使用英特尔® Python* 分发版,只需微调代码即可提高 Python 应用程序的性能; 加速 NumPy*、SciPy* 和 scikit-learn* 库;访问最新的矢量化和多线程指令。