自動駕駛汽車還未上路,自動駕駛輪船已在乘風破浪

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

帶着這個問題,我打開谷歌,輸入“Autonomous ship”,沒想到現在的自動駕駛輪船技術刷新了我的認知:

△ 準備橫渡大西洋的“五月花號”自動駕駛船(圖片來自IBM)

除了實驗室裡的成果,其商業化進度更是超出我的想象:

原來,早在2018年,RR(也就是勞斯萊斯)曾用自動駕駛輪船成功跨海運送了80名VIP客戶的汽車。

RR的技術來自一家挪威公司——Kongsberg Maritime(康斯博格海事)。他們運用雷達和攝像頭檢測並避開障礙物,在途中自動行駛,駛入港口後自動停泊。

之後,RR商業海事部門於2019年4月被Kongsberg收購。

而這家Kongsberg,正是前面提到的開發零排放自動駕駛船舶的航海巨頭。

在Kongsberg的技術藍圖裡,未來挪威公司生產的化肥將在三個港口之間裝船、航行和卸貨。整個過程完全無需人工現場干預。

△ Kongsberg正在開發的世界第一艘自動駕駛集裝箱貨船(圖片來自官網)

按照國際海事組織(IMO)的定義,現在的自動駕駛輪船技術正在從L2向L3演進。

至此,我對自動駕駛輪船的商業化進程已經有大致的瞭解,那麼剩下的問題來了。

輪船如何自動駕駛?

自動駕駛汽車使用的技術和芯片五花八門,有堅持只用圖像識別的,也有結合激光雷達的;有自研芯片的,也有購買第三方計算平臺的。

Kongsberg用的是什麼方案?

和大多數無人車類似,Kongsberg的方案採用了多種傳感器:雷達探測遠距離物體,激光雷達對船體附近區域進行高精度分析,高清攝像頭拍攝船舶前方海域180度視野景象。

這就是他們首款上市的全自動駕駛船解決方案Intelligent Awareness(智能意識)。

三種傳感器收集到的信息,經過算法處理後顯示在屏幕上,船員可以通過儀表盤看到高亮顯示的潛在危險區域。

按照,Kongsberg的說法,“智能意識”可幫助降低航海者的風險,尤其是在黑暗環境、惡劣天氣條件下,或是擁擠海域,以及進出船塢之時。

當然,其中用的圖像識別與分類比自動駕駛汽車要複雜得多。

因爲海面上的搜索距離更大,因此圖像中物體的縮放比例是一個巨大挑戰。相同物體在不同距離上呈現的大小有天壤之別,可能最小10個像素塊、最大10萬個像素塊。

△海上目標檢測因距離問題導致模型準確率下降

這必然對硬件有很高的要求。

他們居然只用CPU

然而令人吃驚的是,Kongsberg在這套方案裡沒有使用AI推理加速硬件,比如獨立的GPU或NPU,而是完全依賴於英特爾的CPU(和內部集成GPU)。

即使在運算量更小的自動駕駛車上,不使用專門的AI芯片都是不可想象的。

況且Kongsberg過去的AI方案也不是沒使用過GPU,爲什麼在輪船上反而不用了?令人費解。

後來,這家公司的一位項目經理Saarela在採訪中道出了緣由:

工業領域嚴苛的認證體系,商業用戶節約成本的需求,讓全CPU方案成爲了“自動駕駛輪船”的首選方案。

實際上, CPU也是完全可以勝任AI推理的。

在這套方案中,Kongsberg使用兩個英特爾至強鉑金8153處理器,每個處理器有16個內核。每個內核可處理兩個線程,所以總共可並行處理64個模型。

硬件規格絕對夠豪華。問題是,CPU能滿足自動駕駛的計算需求嗎?

對於這一點,就連項目經理Saarela本人最初也沒有信心。

如果CPU處理圖像的速度不夠快,那麼自動駕駛輪船就可能撞到其他高速移動的船隻。對於商業海運來說,這種事故造成的經濟損失不容小覷。

誰說CPU不適合AI推理

爲了解決這個難題,Kongsberg找來CPU供應商英特爾聯手優化了“智能意識”解決方案。

Kongsberg負責提供預先訓練好的人工智能模型供英特爾使用。而英特爾則提供OpenVINO“加速包”,在不降低準確度的情況下幫助提升數據處理速度。

OpenVINO(開放式視覺推理和神經網絡優化)是英特爾於2018年推出的深度學習優化與部署開源工具包,幫助開發者更方便地在英特爾硬件平臺上部署AI模型。

OpenVINO支持Caffe、TensorFlow、MXNet、ONNX等主流深度學習框架,而PyTorch、PaddlePaddle等支持轉換爲ONNX的框架也可以間接使用,覆蓋了絕大多數AI開發者。

當然,用TensorFlow開發自動駕駛輪船的Kongsberg也不例外。

OpenVINO將訓練好的模型通過模型優化器轉換爲中間表示 (IR)文件(*.bin和*.xml)。

由於去除了模型中任何僅與訓練相關的運算,並將部分推理運算融合在一起,所以大大加快了推理計算的速度。

下圖展示了OpenVINO(深藍色)在模型中的作用,它就像假設在深度學習框架(淺藍色)和用戶應用(橙色)之間的橋樑。

OpenVINO將訓練後的模型針對英特爾硬件進行深度優化,再重新部署,而且這個過程中無需重新訓練AI模型。

經優化後,在Kongsberg的一個目標識別基準項目上,CPU每秒處理的圖片數量提升了4.8倍。

看到這個結果後,Kongsberg的項目經理Saarela表示:

打開OpenVINO的介紹頁面,你會發現,這套工具給英特爾CPU帶來了巨大的AI技術加成。

最新的2021.2版功能已十分強大,支持圖像分類、語義分割、目標檢測、人臉識別、單眼深度估計、圖像修補等幾乎所有CV應用模型。

而作爲一款可以放心用於工業領域的工具包,英特爾也考慮到穩定性提供LTS版,保證了性能、接口向後兼容性、7x24穩定性以及壓力測試。

搭配上英特爾配套提供的Python分發版,只需微調代碼即可提高Python應用程序的性能,加速NumPy、SciPy和Scikit-learn等科學計算、機器學習庫。

在官方文檔中,Python分發版最高可以帶來數倍的性能提升。

現在,我終於明白,Kongsberg爲什麼只用CPU也能開發自動駕駛輪船了。

其實不僅是輪船,類似的場合還很多。就拿很多個人開發者來說,一臺開發電腦可能沒有獨立顯卡,但是絕對不能沒有CPU。

而有了OpenVINO工具包的加持,受限的硬件環境一樣能發揮出AI的性能。

說到這裡,我突然想起來之前在英特爾開發者活動上抽中的獎品——第二代神經計算棒,這傢伙放在我抽屜裡很久了。

我特意去官網查詢了一下,這款英特爾硬件也支持OpenVINO,而且我最近還入手了樹莓派開發板,正愁如何使用。

沒想到解決自動駕駛輪船的疑問,還幫我解決了另一個難題——如何防止樹莓派吃灰,現在是時候用OpenVINO和神經計算棒去重新部署一下我的YOLO模型了。