6

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

 3 years ago
source link: https://www.qbitai.com/2021/01/21368.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

项目经理看到后都惊了

晓查 发自 凹非寺 

量子位 报道 | 公众号 QbitAI

有件事情一直令我感到好奇:

都2021年了,现在有自动驾驶船在海上行驶吗?

带着这个问题,我打开谷歌,输入“ Autonomous ship ”,没想到现在的自动驾驶轮船技术刷新了我的认知:

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

IbY3Ijn.jpg!mobile

 准备横渡大西洋的“五月花号”自动驾驶船(图片来自IBM)

除了实验室里的成果,其商业化进度更是超出我的想象:

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

e2Mrmyf.gif!mobile

RR的技术来自一家挪威公司—— Kongsberg Maritime (康斯博格海事)。他们运用雷达和摄像头检测并避开障碍物,在途中自动行驶,驶入港口后自动停泊。

之后,RR商业海事部门于2019年4月被Kongsberg收购。

VJBnQb7.jpg!mobile

而这家Kongsberg,正是前面提到的开发零排放自动驾驶船舶的航海巨头。

在Kongsberg的技术蓝图里,未来挪威公司生产的化肥将在三个港口之间装船、航行和卸货。整个过程完全无需人工现场干预。

aUbqUzF.jpg!mobile

 Kongsberg正在开发的世界第一艘自动驾驶集装箱货船(图片来自官网)

按照国际海事组织(IMO)的定义,现在的自动驾驶轮船技术正在从L2向L3演进。

至此,我对自动驾驶轮船的商业化进程已经有大致的了解,那么剩下的问题来了。

轮船如何自动驾驶?

自动驾驶汽车使用的技术和芯片五花八门,有坚持只用图像识别的,也有结合激光雷达的;有自研芯片的,也有购买第三方计算平台的。

Kongsberg用的是什么方案?

和大多数无人车类似,Kongsberg的方案采用了多种传感器:雷达探测远距离物体,激光雷达对船体附近区域进行高精度分析,高清摄像头拍摄船舶前方海域180度视野景象。

这就是他们首款上市的全自动驾驶船解决方案 Intelligent Awareness (智能意识)。

3q6FRrR.jpg!mobile

三种传感器收集到的信息,经过算法处理后显示在屏幕上,船员可以通过仪表盘看到高亮显示的潜在危险区域。

按照,Kongsberg的说法,“智能意识”可帮助降低航海者的风险,尤其是在黑暗环境、恶劣天气条件下,或是拥挤海域,以及进出船坞之时。

当然,其中用的图像识别与分类比自动驾驶汽车要复杂得多。

因为海面上的搜索距离更大,因此图像中物体的缩放比例是一个巨大挑战。相同物体在不同距离上呈现的大小有天壤之别,可能最小10个像素块、最大10万个像素块。

3ya6Zn3.jpg!mobile

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

这必然对硬件有很高的要求。

他们居然只用CPU

然而令人吃惊的是,Kongsberg在这套方案里没有使用AI推理加速硬件,比如独立的GPU或NPU,而是完全依赖于英特尔的CPU(和内部集成GPU)。

即使在运算量更小的自动驾驶车上,不使用专门的AI芯片都是不可想象的。

况且Kongsberg过去的AI方案也不是没使用过GPU,为什么在轮船上反而不用了?令人费解。

后来,这家公司的一位项目经理Saarela在采访中道出了缘由:

其中一个重要原因是海事认证问题。 如果不用GPU,我们的服务器会更容易通过认证。而且,我们还想降低功耗。

我们理想的方案是使用差不多相同的通用服务器系统。 我们并不是每台服务器都需要GPU,所有服务器都不用GPU会更好,这样我们就获得了冗余,能在任何服务器上运行任何应用程序。

工业领域严苛的认证体系,商业用户节约成本的需求,让全CPU方案成为了“自动驾驶轮船”的首选方案。

实际上, CPU也是完全可以胜任AI推理的。

在这套方案中,Kongsberg使用 两个英特尔至强铂金8153处理器 ,每个处理器有16个内核。每个内核可处理两个线程,所以总共可并行处理64个模型。

Uj6N32u.jpg!mobile

硬件规格绝对够豪华。问题是,CPU能满足自动驾驶的计算需求吗?

对于这一点,就连项目经理Saarela本人最初也没有信心。

如果CPU处理图像的速度不够快,那么自动驾驶轮船就可能撞到其他高速移动的船只。对于商业海运来说,这种事故造成的经济损失不容小觑。

谁说CPU不适合AI推理

为了解决这个难题,Kongsberg找来CPU供应商英特尔联手优化了“智能意识”解决方案。

Kongsberg负责提供预先训练好的人工智能模型供英特尔使用。而英特尔则提供 OpenVINO “加速包”,在不降低准确度的情况下帮助提升数据处理速度。

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

267FBbR.jpg!mobile

OpenVINO支持 Caffe、TensorFlow、MXNet、ONNX 等主流深度学习框架,而 PyTorch、PaddlePaddle 等支持转换为 ONNX 的框架也可以间接使用,覆盖了绝大多数AI开发者。

当然,用TensorFlow开发自动驾驶轮船的Kongsberg也不例外。

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

由于去除了模型中任何仅与训练相关的运算,并将部分推理运算融合在一起,所以大大加快了推理计算的速度。

下图展示了OpenVINO(深蓝色)在模型中的作用,它就像假设在深度学习框架(浅蓝色)和用户应用(橙色)之间的桥梁。

6ze6Rr.jpg!mobile

OpenVINO将训练后的模型针对英特尔硬件进行深度优化,再重新部署,而且这个过程中无需重新训练AI模型。

经优化后,在Kongsberg的一个目标识别基准项目上,CPU每秒处理的图片数量提升了 4.8倍

2Y3QVb6.jpg!mobile

看到这个结果后,Kongsberg的项目经理Saarela表示:

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

打开OpenVINO的介绍页面,你会发现,这套工具给英特尔CPU带来了巨大的AI技术加成。

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

而作为一款可以放心用于工业领域的工具包,英特尔也考虑到稳定性提供LTS版,保证了性能、接口向后兼容性、7×24稳定性以及压力测试。

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

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

3IRz2me.jpg!mobile

现在,我终于明白,Kongsberg为什么只用CPU也能开发自动驾驶轮船了。

其实不仅是轮船,类似的场合还很多。就拿很多个人开发者来说,一台开发电脑可能没有独立显卡,但是绝对不能没有CPU。

而有了OpenVINO工具包的加持,受限的硬件环境一样能发挥出AI的性能。

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

mm6r6bb.jpg!mobile

我特意去官网查询了一下,这款英特尔硬件也支持OpenVINO,而且我最近还入手了树莓派开发板,正愁如何使用。

没想到解决自动驾驶轮船的疑问,还帮我解决了另一个难题——如何防止树莓派吃灰,现在是时候用OpenVINO和神经计算棒去重新部署一下我的YOLO模型了。

7nYzQzb.png!mobile

版权所有,未经授权不得以任何形式转载及使用,违者必究。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK