只用CPU開發(fā)自動駕駛輪船,他們居然做到了
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯(lián)系出處。
有件事情一直令我感到好奇:
都2021年了,現(xiàn)在有自動駕駛船在海上行駛嗎?
帶著這個問題,我打開谷歌,輸入“Autonomous ship”,沒想到現(xiàn)在的自動駕駛輪船技術刷新了我的認知:
完全無人的自動駕駛輪船今年將橫渡大西洋;零排放的自動駕駛輪船正在研發(fā)中……
△ 準備橫渡大西洋的“五月花號”自動駕駛船(圖片來自IBM)
除了實驗室里的成果,其商業(yè)化進度更是超出我的想象:
原來,早在2018年,RR(也就是勞斯萊斯)曾用自動駕駛輪船成功跨海運送了80名VIP客戶的汽車。

RR的技術來自一家挪威公司——Kongsberg Maritime(康斯博格海事)。他們運用雷達和攝像頭檢測并避開障礙物,在途中自動行駛,駛入港口后自動停泊。
之后,RR商業(yè)海事部門于2019年4月被Kongsberg收購。
而這家Kongsberg,正是前面提到的開發(fā)零排放自動駕駛船舶的航海巨頭。
在Kongsberg的技術藍圖里,未來挪威公司生產(chǎn)的化肥將在三個港口之間裝船、航行和卸貨。整個過程完全無需人工現(xiàn)場干預。
△ Kongsberg正在開發(fā)的世界第一艘自動駕駛集裝箱貨船(圖片來自官網(wǎng))
按照國際海事組織(IMO)的定義,現(xiàn)在的自動駕駛輪船技術正在從L2向L3演進。
至此,我對自動駕駛輪船的商業(yè)化進程已經(jīng)有大致的了解,那么剩下的問題來了。
輪船如何自動駕駛?
自動駕駛汽車使用的技術和芯片五花八門,有堅持只用圖像識別的,也有結合激光雷達的;有自研芯片的,也有購買第三方計算平臺的。
Kongsberg用的是什么方案?
和大多數(shù)無人車類似,Kongsberg的方案采用了多種傳感器:雷達探測遠距離物體,激光雷達對船體附近區(qū)域進行高精度分析,高清攝像頭拍攝船舶前方海域180度視野景象。
這就是他們首款上市的全自動駕駛船解決方案Intelligent Awareness(智能意識)。

三種傳感器收集到的信息,經(jīng)過算法處理后顯示在屏幕上,船員可以通過儀表盤看到高亮顯示的潛在危險區(qū)域。
按照,Kongsberg的說法,“智能意識”可幫助降低航海者的風險,尤其是在黑暗環(huán)境、惡劣天氣條件下,或是擁擠海域,以及進出船塢之時。
當然,其中用的圖像識別與分類比自動駕駛汽車要復雜得多。
因為海面上的搜索距離更大,因此圖像中物體的縮放比例是一個巨大挑戰(zhàn)。相同物體在不同距離上呈現(xiàn)的大小有天壤之別,可能最小10個像素塊、最大10萬個像素塊。
△海上目標檢測因距離問題導致模型準確率下降
這必然對硬件有很高的要求。
他們居然只用CPU
然而令人吃驚的是,Kongsberg在這套方案里沒有使用AI推理加速硬件,比如獨立的GPU或NPU,而是完全依賴于英特爾的CPU(和內部集成GPU)。
即使在運算量更小的自動駕駛車上,不使用專門的AI芯片都是不可想象的。
況且Kongsberg過去的AI方案也不是沒使用過GPU,為什么在輪船上反而不用了?令人費解。
后來,這家公司的一位項目經(jīng)理Saarela在采訪中道出了緣由:
其中一個重要原因是海事認證問題。如果不用GPU,我們的服務器會更容易通過認證。而且,我們還想降低功耗。
我們理想的方案是使用差不多相同的通用服務器系統(tǒng)。我們并不是每臺服務器都需要GPU,所有服務器都不用GPU會更好,這樣我們就獲得了冗余,能在任何服務器上運行任何應用程序。
工業(yè)領域嚴苛的認證體系,商業(yè)用戶節(jié)約成本的需求,讓全CPU方案成為了“自動駕駛輪船”的首選方案。
實際上, CPU也是完全可以勝任AI推理的。
在這套方案中,Kongsberg使用兩個英特爾至強鉑金8153處理器,每個處理器有16個內核。每個內核可處理兩個線程,所以總共可并行處理64個模型。

硬件規(guī)格絕對夠豪華。問題是,CPU能滿足自動駕駛的計算需求嗎?
對于這一點,就連項目經(jīng)理Saarela本人最初也沒有信心。
如果CPU處理圖像的速度不夠快,那么自動駕駛輪船就可能撞到其他高速移動的船只。對于商業(yè)海運來說,這種事故造成的經(jīng)濟損失不容小覷。
誰說CPU不適合AI推理
為了解決這個難題,Kongsberg找來CPU供應商英特爾聯(lián)手優(yōu)化了“智能意識”解決方案。
Kongsberg負責提供預先訓練好的人工智能模型供英特爾使用。而英特爾則提供OpenVINO“加速包”,在不降低準確度的情況下幫助提升數(shù)據(jù)處理速度。
OpenVINO(開放式視覺推理和神經(jīng)網(wǎng)絡優(yōu)化)是英特爾于2018年推出的深度學習優(yōu)化與部署開源工具包,幫助開發(fā)者更方便地在英特爾硬件平臺上部署AI模型。

OpenVINO支持Caffe、TensorFlow、MXNet、ONNX等主流深度學習框架,而PyTorch、PaddlePaddle等支持轉換為ONNX的框架也可以間接使用,覆蓋了絕大多數(shù)AI開發(fā)者。
當然,用TensorFlow開發(fā)自動駕駛輪船的Kongsberg也不例外。
OpenVINO將訓練好的模型通過模型優(yōu)化器轉換為中間表示 (IR)文件(*.bin和*.xml)。
由于去除了模型中任何僅與訓練相關的運算,并將部分推理運算融合在一起,所以大大加快了推理計算的速度。
下圖展示了OpenVINO(深藍色)在模型中的作用,它就像假設在深度學習框架(淺藍色)和用戶應用(橙色)之間的橋梁。

OpenVINO將訓練后的模型針對英特爾硬件進行深度優(yōu)化,再重新部署,而且這個過程中無需重新訓練AI模型。
經(jīng)優(yōu)化后,在Kongsberg的一個目標識別基準項目上,CPU每秒處理的圖片數(shù)量提升了4.8倍。

看到這個結果后,Kongsberg的項目經(jīng)理Saarela表示:
結果讓我十分震驚。我原以為我們永遠都擺脫不了GPU,但這些結果改變了我的想法,讓我看到了使用CPU的可能性。
打開OpenVINO的介紹頁面,你會發(fā)現(xiàn),這套工具給英特爾CPU帶來了巨大的AI技術加成。
最新的2021.2版功能已十分強大,支持圖像分類、語義分割、目標檢測、人臉識別、單眼深度估計、圖像修補等幾乎所有CV應用模型。
而作為一款可以放心用于工業(yè)領域的工具包,英特爾也考慮到穩(wěn)定性提供LTS版,保證了性能、接口向后兼容性、7x24穩(wěn)定性以及壓力測試。
搭配上英特爾配套提供的Python分發(fā)版,只需微調代碼即可提高Python應用程序的性能,加速NumPy、SciPy和Scikit-learn等科學計算、機器學習庫。
在官方文檔中,Python分發(fā)版最高可以帶來數(shù)倍的性能提升。

現(xiàn)在,我終于明白,Kongsberg為什么只用CPU也能開發(fā)自動駕駛輪船了。
其實不僅是輪船,類似的場合還很多。就拿很多個人開發(fā)者來說,一臺開發(fā)電腦可能沒有獨立顯卡,但是絕對不能沒有CPU。
而有了OpenVINO工具包的加持,受限的硬件環(huán)境一樣能發(fā)揮出AI的性能。
說到這里,我突然想起來之前在英特爾開發(fā)者活動上抽中的獎品——第二代神經(jīng)計算棒,這家伙放在我抽屜里很久了。
我特意去官網(wǎng)查詢了一下,這款英特爾硬件也支持OpenVINO,而且我最近還入手了樹莓派開發(fā)板,正愁如何使用。
沒想到解決自動駕駛輪船的疑問,還幫我解決了另一個難題——如何防止樹莓派吃灰,現(xiàn)在是時候用OpenVINO和神經(jīng)計算棒去重新部署一下我的YOLO模型了。