互联网资讯 / 人工智能 · 2023年11月28日 0

研发自动驾驶轮船的CPU成功实现

我一直对一个问题感到好奇:

如今已经是2021年,自动驾驶船舶是否已经在海上航行了呢?

带着这个疑问,我在谷歌搜索了”AutonOMOUS shIP”,没想到自动驾驶轮船的最新技术让我大开眼界:

今年,完全无人驾驶的自动驾驶轮船将横渡大西洋;同时,零排放的自动驾驶轮船也在积极研发中……

只用CPU开发自动驾驶轮船,他们居然做到了

△ 即将横渡大西洋的”五月花号”自动驾驶船(图片来自IBM)

除了实验室的技术突破,商业化的进展同样令人惊讶:

早在2018年,劳斯莱斯(RR)就成功用自动驾驶轮船跨海运输了80名VIP客户的汽车。

只用CPU开发自动驾驶轮船,他们居然做到了

RR的技术来自挪威的KongsbeRg MaRITiMe(康斯博格海事),他们利用雷达和摄像头探测障碍物,实现自动行驶,并在进入港口时自动停泊。

2019年4月,劳斯莱斯的商业海事部门被KongsbeRg收购。

只用CPU开发自动驾驶轮船,他们居然做到了

KongsbeRg正是上述提到的致力于开发零排放自动驾驶船舶的行业领军企业。

根据KongsbeRg的计划,未来将实现化肥在三个港口之间的装载、航行和卸货,整个过程无需人工干预。

只用CPU开发自动驾驶轮船,他们居然做到了

△ KongsbeRg正在研发的全球首艘自动驾驶集装箱货船(图片来自官网)

根据国际海事组织(IMO)的定义,目前的自动驾驶轮船技术正在从L2向L3阶段发展。

至此,我对自动驾驶轮船的商业化进程有了清晰的认识,但接下来的问题是:

轮船是如何实现自动驾驶的?

自动驾驶汽车的技术和芯片种类繁多,有的仅依赖图像识别,有的则结合激光雷达;既有自主研发的芯片,也有借助第三方计算平台的方案。

KongsbeRg采用了什么技术呢?

与大多数无人驾驶车辆相似,KongsbeRg的解决方案结合了多种传感器:雷达用于探测远距离物体,激光雷达进行船体附近区域的高精度分析,高清摄像头则提供船舶前方180度的海域视野。

这便是他们推出的全自动驾驶船解决方案Intelligent AwaReneSS(智能意识)。

只用CPU开发自动驾驶轮船,他们居然做到了

通过算法处理,三种传感器获取的信息被显示在屏幕上,船员能够通过仪表盘看到高亮显示的潜在危险区域。

KongsbeRg表示,”智能意识”能够降低航行风险,尤其在黑暗条件、恶劣天气或拥挤海域中,以及进出船坞时。

当然,所用的图像识别与分类技术比自动驾驶汽车更为复杂。

由于海面上物体的搜索距离更长,因此图像中物体的缩放比例是个巨大挑战。相同的物体在不同距离下呈现的大小差异可能从10个像素到10万个像素不等。

只用CPU开发自动驾驶轮船,他们居然做到了

△海上目标检测因距离问题导致模型准确率下降

这对硬件提出了更高的要求。

令人惊讶的是,KongsbeRg在这一方案中并未使用AI推理加速硬件,比如独立的GPU或NPU,而是完全依赖Intel的CPU(及内部集成的GPU)。

即便在运算量较小的自动驾驶汽车上,不使用专门的AI芯片通常是不可想象的。

而KongsbeRg过去的AI方案中也曾使用GPU,为什么在轮船上却选择了CPU呢?这个问题令人费解。

后来,这家公司的项目经理SaaRela在采访中揭示了原因:

其中一个关键原因是海事认证问题。使用CPU使得我们的服务器更容易通过认证,同时也降低了功耗。

我们希望采用相同的通用服务器系统,而不是每台服务器都需配备GPU,这样我们可以实现冗余,确保任何服务器上都能运行任何应用程序。

工业领域严格的认证体系与商业用户的成本节约需求,使得全CPU方案成为”自动驾驶轮船”的优选。

实际上,CPU完全能够胜任AI推理任务。

在这套方案中,KongsbeRg使用了两个Intel至强铂金8153处理器,每个处理器拥有16个内核。每个内核能够处理两个线程,因此总共可并行处理64个模型。

只用CPU开发自动驾驶轮船,他们居然做到了

硬件规格堪称豪华。问题是,CPU能否满足自动驾驶的计算需求呢?

对此,项目经理SaaRela起初并不太有信心。

如果CPU处理图像的速度不够快,自动驾驶轮船可能会与其他高速移动的船只相撞。而这样的事故在商业海运中带来的经济损失是不可小觑的。

谁说CPU不适合AI推理?

为了解决这一难题,KongsbeRg与CPU供应商Intel合作,共同优化了”智能意识”解决方案。

KongsbeRg负责提供预训练的人工智能模型,而Intel则提供OpenVINO”加速包”,在不降低准确度的情况下提升数据处理速度。

OpenVINO(开放式视觉推理和神经网络优化)是Intel于2018年推出的深度学习优化与部署开源工具包,旨在帮助开发者更便捷地在Intel硬件平台上部署AI模型。

只用CPU开发自动驾驶轮船,他们居然做到了

OpenVINO支持CaFFe、TensoRFlow、MXNet、ONNX等主流深度学习框架,同时也兼容PyToRch、PaddlePaddle等可以转换为ONNX的框架,覆盖大多数AI开发者。

当然,KongsbeRg也不例外,使用TensoRFlow开发自动驾驶轮船的他们,同样受益于OpenVINO。

OpenVINO将训练好的模型通过模型优化器转换为中间表示 (IR)文件(*.BIn和*.xMl)。

这一过程去除了模型中仅与训练相关的运算,并将部分推理运算融合,从而大幅提升推理计算速度。

只用CPU开发自动驾驶轮船,他们居然做到了

OpenVINO针对Intel硬件进行深度优化后,重新部署模型,而无需重新训练AI模型。

经过优化后,在KongsbeRg的一个目标识别基准项目中,CPU每秒处理的图片数量提高了4.8倍。

只用CPU开发自动驾驶轮船,他们居然做到了

看到这个结果后,KongsbeRg的项目经理SaaRela感到十分震惊:

结果让我非常意外。我曾以为我们无法摆脱GPU,但这些结果让我改变了想法,看到使用CPU的潜力。

在OpenVINO的介绍页面中,可以看到这一工具为Intel的CPU带来了显著的AI技术增益。

最新的2021.2版功能强大,支持几乎所有CV应用模型,包括图像分类、语义分割、目标检测、人脸识别、单眼深度估计、图像修补等。

作为一款专为工业领域设计的工具包,Intel还考虑到稳定性,提供LTS版,确保性能、接口向后兼容性、7×24稳定性以及压力测试。

搭配Intel提供的Python分发版,仅需微调代码即可提升Python应用程序性能,加速NumPy、SciPy和Scikit-learn等科学计算和机器学习库。

在官方文档中,Python分发版可带来数倍的性能提升。

只用CPU开发自动驾驶轮船,他们居然做到了

现在,我终于理解了KongsbeRg为何仅用CPU也能开发出自动驾驶轮船。

其实,这种情况并非仅限于轮船。在许多个人开发者的场合,开发电脑上可能没有独立显卡,但绝对不能缺少CPU。

有了OpenVINO工具包的支持,即便在受限的硬件环境中,依然能够发挥出AI的潜力。

说到这里,我想起之前在英特尔开发者活动上抽中的奖品——第二代神经计算棒,这个家伙在我抽屉里放了好久。

只用CPU开发自动驾驶轮船,他们居然做到了

我特意查了官网,发现这款Intel硬件也支持OpenVINO,而我最近刚入手了一块树莓派开发板,正愁如何使用。

没想到解决自动驾驶轮船的疑问,还让我找到了另一个难题的答案——如何避免树莓派闲置,现在是时候用OpenVINO和神经计算棒重新部署我的YOLO模型了。