當我們談到自動技術時,你可能首先想到Waymo自動駕駛汽車、本田(Honda)Asimo人形機器人,或是亞馬遜的送貨無人機。但你可曾認識到,自動技術正在拓展到越來越廣泛的領域?比如New Holland的可自動收割玉米並餵養家畜的收割機、Baker Hughes開發的用於油氣開採設備的預測性維護服務,或是Bigfoot的自動檢測糖尿病人血糖值並供給胰島素的糖尿病管理系統…

日前,在MATLAB EXPO 2017上,MathWorks諮詢工程師Loren Shure發表一場題為「如何構建無處不在的自動技術(How to build an autonomous anything?)」的演講,很是精彩。MathWorks為「自動技術」下了的精確定義,解析了其中包含的四個重要組成部分,並分享了自動技術衍生到汽車/機器人以外場景的各種案例。

首先,我們要搞清楚什麼是「自動技術」?MathWorks的定義是——系統提供在未經預演的(unrehearsed)情況下獨立於人類直接控制的能力。自動控制技術出現已經有很多年了,但要實現真正的自動控制,還有一個要素,即未經預演的條件,因為我們不可能事先知道可能發生的任何情況。然而,我們希望設備能夠正確工作。隨著過去幾年機器學習、人工智慧(AI)等技術的迅速發展,自動技術正在成為可能。

自動技術的開發涉及哪些工作?

以梅賽德斯賓士(Mercedes-Benz)的概念車為例,首先它需要安裝攝影機來獲取周圍情況,需要有GPS已得知位置資訊。此外,它還需要安裝雷達用於測距和測量物件的相對速度,還需要有光達(Lidar)來對周邊環境和地形等進行3D建模。資料獲取(即感測)只是系統開發的第一步,有了這些資料後,系統還需要去感知,即利用感測器產生的資料去教導汽車去觀察其他汽車的位置、車道的位置、人的位置及移動。Shure解釋:「因為我們無法預演每一種可能的情形,所以我們必須使汽車在沒有人類的幫助下能自動明白。這就是自動控制系統和一般控制系統的區別。」

20170907NT02P1 圖1 Mercedes-Benz的概念車。

有了感知後,下一步便是決策和計畫。比方說,車道前方有靜止物體,這時汽車就需要去決定是停下還是轉彎。需要利用深度學習/機器學習技術去為汽車應用制定策略,去對各種新的情況做出回應。例如Google Waymo現已行駛數百萬英哩,目的是要盡可能多地訓練各種情況,以便獲得足夠好的模型來使用。此外,汽車還需要提供道路優化技術,以便在某條道路壅塞的時候去找另一條路。

換言之,汽車決策為的是控制系統,去做刹車、加速、變換車道等等相應動作。這就是Simulink的用武之地——它結合學習演算法和控制系統,這對開發的成功與否具有關鍵作用。Shure表示,自動技術即將控制權從人轉移到電腦,最終我們將實現完全自動駕駛的汽車。

綜上所述,自動系統包含四個部分,即感測、感知、決策和計畫,以及執行。

以下看幾個自動系統的具體案例。首先來看Baker Hughes的油氣開採系統。這套系統,一台泵車就價值150萬美元,其上佈滿了許多的泵和閥門,僅這些泵和閥門的價值就達10萬美元。如果某個泵壞了,就需要去更換泵車(150萬美元)並對其進行維修(10萬美元)。而泵壞的原因通常只是價格僅為200美元的某個閥門損壞所引起,如果能在閥門壞前予以替換就可以節省這些費用,然而由於情況差異很大,決定何時更換閥門並不容易。

這套系統中有多台泵車同時工作,並且它們工作在不同的速度,由於油氣種類不同,速度、溫度、壓力等參數也都不同,因此閥門的工作壽命也不相同(從額定壽命的一半到2倍額定壽命)。閥門的更換非常耗時而且需要按照計畫進行,該公司也不希望過早進行更換。他們希望最好是在閥門失效前進行更換,因此,他們對每台泵車安裝了25個感測器,去測量溫度、壓力、振動、正時等各種參數(不知道哪個參數重要)。如此,使每台泵車上採集的資料量高達100GB。

MathWorks透過統計和頻域分析,幫助他們確定了只有3個感測器具備關鍵作用,即時的正確時間、振動和壓力。因此,他們可以取消其他感測器,並基於模型來預測閥門的未來情況。

問題的關鍵是如何找到最佳的預測器,但這可能很難。Baker Hughes的案例是根據資料得到最佳的預測器,而在有些案例中則是根據模型來獲得。例如,賽峰集團(Safran)就是根據基於模型的設計方法設計噴氣引擎,他們結合基於資料的預測學和基於模型的預測學,以對引擎進行分析。

另一個案例是數位畫庫的應用。人們把來自世界各地數個世紀的油畫製作成數位格式掛到網上。你可曾注意到某個藝術家可能影響到另一個藝術家?圖2這個案例中有兩幅畫,分別來自不同大陸(法國和美國)和不同年代(前後相差80年)。數位油畫的數量如此之多,以至於我們不可能通過人工的方式把所有藝術家的所有作品一一比對。這兩幅畫裡有許多共性,例如中間都有三個人,都有一把椅子、一個窗戶、一個靜止物、一根線條,且這兩幅畫的結構也非常類似。

20170907NT02P2 圖2 羅格斯大學對數位畫作的藝術風格進行自動分類。

那麼這是如何發現的?羅格斯大學(Rutgers University)的研究人員設計了一套系統,用來自動分類藝術風格。首先他們能夠瀏覽所有資料,然後他們需要感知。他們對每幅畫測試了許多不同模型,使用了兩種機器學習模型——無監督學習(發現在角落的東西)和監督學習(發現椅子和人等物體),然後用機器學習分類演算法,根據視覺特徵來對風格、體裁和藝術家等進行分類。他們使用支援向量機器來進行判定,因此能夠找到不同油畫之間的關係,一旦這個項目找到某種聯繫的話,歷史學家就可以據此做更多研究去瞭解其出現的原因。

研究人員使用電腦感知去為各種意想不到之處添加自動能力。Shure認為:「如果系統能夠像人類一樣好地去感知資訊,但卻能以更快的速度去處理更大量的資料的話,我們將產生很多機會。例如我們有一個客戶,他們的音訊工程師透過訓練電腦去聽測試資料,去測試揚聲器的品質,而如果由人來做,每天測試的數量和可耗費的精力有限,電腦去做則可以提高測試數量和品質。另一個是ASML的晶圓生產線,他們需要確定晶片的好壞,從而對生產線的資訊進行校準。他們過去需要人工判斷,並反覆停止裝配線去重新校準,現在他們能夠線上進行判斷並重新校準。透過增加自動能力,他們節省了75%的停機時間,並因此提高了產量。」

再來是Bigfoot Biomedical葡萄糖水平自動管理系統。這個案例中可以看到自動系統所包含的所有四個部分。Bigfoot使用MATLAB/Simulink來開發自動系統,管理糖尿病人的葡萄糖狀態。這是個典型的控制系統——測量葡萄糖濃度,進而提供胰島素,而糖尿病人是這個系統的被控物件。該公司開發了一個手機應用程式(App),用於管理病人起居飲食等各種活動,進而決定胰島素注射量,但是系統電池損壞、胰島素包更換、監視器脫落等情況也需要小心考慮。他們使用Simulink的Stateflow模型對這些系統進行建模,而無需去擔憂系統之間的交流。此外,他們使用Polyspace Bug Finder和Polyspace Code Prover對程式碼進行分析,來確保涵蓋到所有可能的使用情況,從而增加病人使用安全。

此外,每個病人的病情、生理條件、年齡及患病時間等也各不相同,系統都需要全面瞭解。而Bigfoot不可能等上數年再推出系統,也不可能馬上獲得夠多的病例,因此,他們開發了一個虛擬診所,並透過統計機器學習工具箱和系統識別工具箱,對所有不同情況和類型的病人進行模擬。但其獲得的病人數量仍然有限,因此,他們將這套系統子加到亞馬遜的網路服務上,從而可以同時進行256例模擬,並且一天可以模擬5,000萬個病患。

20170907NT02P3 圖3 Bigfoot Biomedical葡萄糖水平自動管理系統。

可以從哪裡獲得資料?——可透過模擬、公共資源庫、實驗室、現場或物聯網(IoT)獲得。

再從New Holland的收割機案例來看,系統的操作員不用花太多心思在太多事上。收割機對拖車進行裝料,其上的感測器用於檢測拖車是否裝滿,裝滿後移到下一個拖車進行裝料。然而每個拖車尺寸和形狀都不同,這需要透過攝影機檢測,而且需要能夠處理各種環境場景(如強光、黃昏和很多灰塵等),並且任何時候都不需要調整和校準,這對於操作員來說工作量太大。系統的首個挑戰是檢測拖車中的飼料散佈及裝滿情況,該公司評估了許多不同的感測器,比如傳統的攝影機、立體視覺、雷射、GPS,但通通無效。他們最終選擇了3D近紅外線攝影機,可以測量距離、檢測拖車類型,並處理滿是灰塵及不同光照的場景。

他們利用攝影機對飼料散佈情況生成3D點雲資料,並使用電腦視覺來獲取關鍵參數,從而控制噴嘴的角度和方向。然而這還不夠,因為收割時間往往非常短,而且收割作物沒有時間可以浪費,他們也不可能透過實驗室去模擬各種條件,因此該公司創建了一個3D場景模擬器(嵌入式平台),並將其放到閉環系統中來類比現場情況。所以他們能夠快速開發並測試電腦視覺演算法、狀態機演算法,以及控制演算法。透過CAN匯流排將該平台與引擎控制單元(ECU)相連,便實現了執行機構的控制,操作員也可以在顯示器上查看。此外,其可對演算法進行微調,並使用MATLAB Embedded Coder來生成程式碼,且該嵌入式控制軟體與在筆記型電腦上工作如出一轍,因此,這套系統可以透過筆記型電腦或嵌入式程式碼實現控制,並根據新的情況進行調整。

Shure介紹的最後一個案例是DLR的Agile Justin機器人。此機器人的皮膚由紡織品製成,具有觸覺,他的眼睛則由立體視覺攝影機構成。他能夠根據手上的標記進行視覺校準,因此,他能透過視覺使用3D點雲來瞭解房屋、桌椅和管道等物體,並實現物體放置和投接球等動作。

20170907NT02P4 圖4 DLR的Agile Justin機器人。

最後,Shure在接受本刊專訪時補充,MATLAB/Simulink近年來已將運算應用擴展到任何地方,比如筆記型電腦、GPU、FPGA等,MathWorks在機器學習和深度學習領域也進行了大量投資。從控制來講,Simulink的功能增強主要是考慮用戶在使用時能夠有更清晰的思路去做驗證、測試和模型管理,並更有效率地去做控制系統的開發。

MATLAB/Simulink涉及到多域物理建模,即可以將其應用到各個不同領域和各個不同產品的控制系統的開發中。現在的系統越來越複雜,技術領域融合的趨勢越來越明顯,工程師也不可能全面瞭解系統設計的各方面。這種情況下,如果企業要建一個很大的團隊,去做融合系統,其在成本和溝通效率上都不划算,他們需要有一種統一的工具,即使不是某個領域的專家,也可以借助這個工具進行建模和模擬。而MATLAB/Simulink現在提供對C和FPGA的自動程式碼生成支援,即便工程師在C語言和硬體描述語言設計上有所欠缺,也可以透過基於模型的方法生成C程式碼或硬體描述語言等,進而部署到微處理器或FPGA中運作。