本文经AI新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处。有一件事一直让我很感兴趣:都2021年了,现在海上有无人驾驶船吗?带着这个疑问,我打开谷歌,输入“Autonomousship”。没想到现在的自驾船技术刷新了我的认知:今年将有一艘完全无人驾驶的自驾船横渡大西洋;零排放自驾船正在研发中...△准备横渡大西洋的“五月花号”自驾船(图自IBM),除了在实验室的成果,其商业化进程更是超乎想象我的想象:原来早在2018年,RR(又名劳斯莱斯)就用无人驾驶船成功运送了80位VIP客户的汽车漂洋过海。RR的技术来自一家挪威公司——康士伯海事(KongsbergMaritime)。他们使用雷达和摄像头来检测和避开障碍物,在途中自动驾驶,并在进入港口时自动停车。RRCommercialMarine随后于2019年4月被Kongsberg收购。而这个Kongsberg就是前面提到的开发零排放自动驾驶船舶的航海巨头。在Kongsberg的技术蓝图中,挪威企业生产的化肥未来将在这三个港口之间装船、航行和卸货。整个过程不需要人工现场干预。△康士伯正在研发世界上第一艘自动驾驶集装箱船(图片来自官网)。根据国际海事组织(IMO)的定义,目前的无人驾驶船舶技术正在从L2向L3演进。至此,我对无人驾驶船舶的商业化流程有了一个大致的了解,那么剩下的问题也就来了。船是如何自己驱动的?自动驾驶汽车使用了多种技术和芯片,有的坚持只使用图像识别,有的结合了激光雷达;有的是自研芯片,有的是购买第三方计算平台。Kongsberg使用了什么解决方案?与大多数无人驾驶车辆类似,Kongsberg的解决方案使用了多种传感器:用于探测远处物体的雷达、用于对船体周围区域进行高精度分析的激光雷达,以及用于捕捉180度海洋视野的高清摄像头。船的前面。这是他们第一个上市的全自动船解决方案,智能感知(IntelligentAwareness)。三个传感器收集的信息经过算法处理后显示在屏幕上,机组人员可以通过仪表板看到突出显示的潜在危险区域。Kongsberg表示,“智能感知”可以帮助降低水手的风险,尤其是在黑暗环境、恶劣天气条件或拥挤的海面,以及进出码头时。当然,其中使用的图像识别和分类比自动驾驶汽车要复杂得多。由于海上搜索距离更远,因此缩放图像中的对象是一个巨大的挑战。同一个物体在不同距离的大小差别很大,小到10个像素块,大到10万像素块。△海上目标检测由于距离问题导致模型精度下降,必然对硬件要求高。他们实际上只使用了CPU,但令人意外的是,Kongsberg在这个解决方案中并没有使用独立GPU或NPU等AI推理加速硬件,而是完全依赖英特尔的CPU(以及内部集成的GPU)。即使是在计算量较小的自动驾驶汽车中,不使用专用的AI芯片也是不可想象的。此外,Kongsberg过去的AI解决方案并不是没有使用GPU。为什么他们不在船上使用GPU?令人困惑。随后,该公司项目经理Saarela在接受采访时解释了原因:其中一个重要原因是海事认证的问题。如果我们不使用GPU,我们的服务器将更容易通过认证。此外,我们还想降低功耗。我们理想的解决方案是使用大致相同的通用服务器系统。我们不需要在每台服务器上都安装GPU,如果没有GPU,所有服务器都会更好,因此我们获得了冗余并且可以在任何服务器上运行任何应用程序。工业领域严格的认证体系和商业用户节约成本的需求,使得全CPU方案成为“自驾船”的首选。事实上,CPU也完全有能力进行AI推理。对于此解决方案,Kongsberg使用了两个IntelXeonPlatinum8153处理器,每个处理器有16个内核。每个核心可以处理两个线程,因此总共可以并行处理64个模型。硬件规格绝对够豪华。问题是,CPU能否满足自动驾驶的计算需求?对于这一点,一开始就连项目经理萨雷拉本人也不自信。如果CPU不能足够快地处理图像,自动驾驶船可能会撞上其他快速移动的船只。对于商业航运而言,此类事故造成的经济损失不容小觑。谁说CPU不适合AI推理?为了解决这个问题,康士伯找来CPU供应商英特尔共同优化“智能感知”方案。Kongsberg负责提供预训练的AI模型供英特尔使用。另一方面,英特尔提供了OpenVINO“加速包”,以帮助在不牺牲准确性的情况下加快数据处理速度。OpenVINO(OpenVisualInferenceandNeuralNetworkOptimization)是英特尔于2018年推出的用于深度学习优化和部署的开源工具包,旨在帮助开发者更轻松地在英特尔硬件平台上部署AI模型。OpenVINO支持Caffe、TensorFlow、MXNet、ONNX等主流深度学习框架,支持转换为ONNX的框架如PyTorch、PaddlePaddle也可以间接使用,覆盖绝大多数AI开发者。当然,使用TensorFlow开发自动驾驶船舶的Kongsberg也不例外。OpenVINO通过模型优化器将经过训练的模型转换为中间表示(IR)文件(*.bin和*.xml)。由于去除了模型中任何与训练相关的操作,将一些推理操作融合在一起,大大加快了推理计算的速度。下图显示了OpenVINO(深蓝色)在模型中的作用,它就像是假设的深度学习框架(浅蓝色)和用户应用程序(橙色)之间的桥梁。OpenVINO针对Intel硬件深度优化训练好的模型,然后重新部署,这个过程不需要重新训练AI模型。优化后,在Kongsberg的一个物体识别benchmark项目上,CPU每秒处理的图片数量提升了4.8倍。看到这个结果后,Kongsberg项目经理Saarela表示:这个结果让我震惊。我原以为我们永远不会摆脱GPU,但这些结果改变了我的想法,让我看到了使用CPU的可能性。打开OpenVINO的介绍页面,你会发现这套工具为IntelCPU带来了巨大的AI技术红利。最新版本2021.2非常强大,支持图像分类、语义分割、目标检测、人脸识别、单目深度估计、图像修复等几乎所有CV应用模型。作为工业领域可以安全使用的工具包,Intel考虑到稳定性也提供了LTS版本,保证了性能、接口向后兼容、7x24稳定性和压力测试。借助英特尔提供的Python发行版,您只需对代码进行微调即可提升Python应用程序的性能,并加速NumPy、SciPy和Scikit-learn等科学计算和机器学习库。根据官方文档,Python发行版可以带来高达数倍的性能提升。现在,我终于明白康士伯为什么能开发出一艘只有一个CPU的自动驾驶船。其实不仅是轮船,类似的场合还有很多。以很多个人开发者为例,一台开发电脑可以没有独立显卡,但一定没有CPU。在OpenVINO工具包的加持下,有限的硬件环境也能发挥出AI的性能。说到这里,突然想起了我在英特尔开发者大会上获得的奖品——二代神经计算棒。这家伙在我的抽屉里已经很久了。去官网才知道这个Intel硬件也支持OpenVINO,最近买了个树莓派开发板,正在纠结怎么用。没想到解决了自驾船的问题,还帮我解决了另一个问题——如何防止树莓派吃灰。现在是时候使用OpenVINO和神经计算棒重新部署我的YOLO模型了。
