大數據文摘出品
來源:IEEE spectrum
編譯:lin
想像一下,工人正在修復路面上一個大坑洞,因此擁有四條車道的馬路縮小為兩車道。一名工人左手鬆松地舉著停車標誌,用右手揮手示意汽車通過。如果是人來開車的話,自然不會考慮是否要遵循手勢或標誌,而是會平穩前進。
然而,這種情況可能會讓自動駕駛汽車停下來。它會理解停止的標誌並停下來,但是那個手勢呢?這對於自動駕駛系統來說要複雜得多。
在這些情況下,解讀肢體語言是關鍵。
所以,要想在不影響交通流量的情況下,安全、無縫地應對這些挑戰,就需要自動駕駛系統了解用於引導人類司機應對意外情況的常見手勢,以及行人處理事情時的手勢和肢體語言。
世界各地的自動駕駛汽車開發人員多年來一直致力於讓自動駕駛汽車至少理解一些基本的手勢,最初的重點是自行車手發出的信號。一般來說,開發人員依靠機器學習來提高車輛識別現實環境並了解如何應對的能力。
Cruise,一家為城市設計自動駕駛汽車服務的初創公司,他們從200多輛自動駕駛汽車中收集數據。在過去的七年里,這些汽車每年行駛數十萬英里;在疫情爆發之前,它們晝夜不停地在路上行駛,只有在充電(他們的汽車是全電動的)和定期維護時才會休息。我們的汽車學習速度很快,因為它們正在舊金山的丘陵街道上行駛,舊金山是美國最複雜的駕駛環境之一。
但他們意識到,機器學習模型並不總是有足夠的訓練數據,因為汽車在現實世界中體驗重要手勢的次數不夠多。汽車需要從不同的角度、不同的距離以及在不同的光照條件下識別出每一種情況——這些限制因素的組合產生了大量的可能性。如果僅僅依靠汽車的真實體驗,將需要數年時間來獲得這些事件的足夠信息。
他們在Cruise找到了一個創造性的解決方案:人類手勢的動作捕捉(mo-cap),一種遊戲開發者用來創造角色的技術。Cruise一直在僱傭遊戲開發者,以獲得模擬詳細世界的專業技能,他們中的一些人則承擔起捕捉數據的挑戰,以便教他們的車輛理解手勢。
首先,他們的數據收集團隊會建立一份完整的清單,列出人們使用身體與世界和他人互動的方式,比如打計程車,走路時打電話,或者走到街上躲避人行道施工。從自動駕駛汽車可能會誤解為指令本身的動作開始——例如,行人向朋友揮手。接著,他們又做了其他一些靠近車輛但不是針對它的手勢,比如停車人員在車輛旁邊的車道上揮手示意車輛開進車庫,建築工人舉著要求車輛暫時停車的牌子。
最終,他們提出了一個用手勢傳達的五個關鍵信息的初始列表:停、走、左轉、右轉,以及我們常說的「不」——也就是那些與過路車輛無關的常見動作,比如自拍或取走背包。研究人員使用了普遍接受的美國手勢,假設汽車會在右邊行駛,因為他們是在舊金山進行測試。
當然,人們用來發送這些信息的手勢並不是統一的,所以研究人員從一開始就知道他們的數據集必須包含遠不止五個例子。到底有多少,他們不確定。
創建這個數據集需要使用動作捕捉技術。有兩種類型的mo-cap系統:光學和非光學。光學版的mo-cap使用分布在一個巨大網格狀結構上的相機,這個結構圍繞著一個舞台;來自這些攝像機的視訊流可以用來三角定位演員穿著的全身套裝上的視覺標記的3D位置。該系統有幾種變體,可以產生非常詳細的捕捉,包括那些面部表情。這種技術允許電影演員扮演非人類角色,比如2009年的電影《阿凡達》,也允許遊戲行業記錄運動員的動作,以開發以體育為主題的電子遊戲。
然而,光學運動捕捉必須在工作室中使用複雜的多攝像頭設置來完成。因此,Cruise選擇了一種非光學的、基於傳感器的動作捕捉版本。這項技術依賴於微機電系統(MEMS),攜帶方便,無線,不需要專門的工作室空間。這給了研究人員很大的靈活性,允許他們把它帶出工作室,放到現實世界的位置。
他們的動作捕捉每一套都有19個傳感器包,它們附著在身體的關鍵部位,包括頭部、胸部、臀部、肩膀、上臂、前臂和腿部。每個包裹大約是一枚銀幣大小,包含一個加速計、一個陀螺儀和一個磁強計。這些設備都被連接到一條包含電池組、控制總線和Wi-Fi收發器的皮帶上。傳感器數據無線傳輸到一台運行專用軟體的筆記本電腦上,讓工程師實時查看和評估數據。
研究人員從Cruise工程團隊中招募了5名身體特徵各異(包括身高、體重和性別的差異)的志願者,讓他們穿上套裝,並把他們帶到相對沒有電子干擾的地方。每個工程師兼演員首先擺出t形(站直,雙腿併攏,手臂伸向一側)來校準動作捕捉系統。從那裡,演員做了一個又一個手勢,這些手勢來自他們團隊從真實數據中創建的手勢列表。
在7天的過程中,研究人員讓這5位演員一遍又一遍的使用這套手勢,每隻手分別使用,有時也一起使用。他們還要求演員們表達不同的強度。例如,對於在施工區內超速行駛的汽車發出緊急停車信號的手勢,其強度可能會很高。當運動表明汽車應該減速並逐漸停止時,強度會降低。研究人員最終得到了239個30秒的剪輯。
Cruise使用來自動作捕捉系統的數據來生成簡筆畫(下圖)和道路工人的動畫(上圖),作為教會自動駕駛車輛識別人類手勢的努力的一部分。
然後,工程師準備數據,輸入到機器學習模型中。首先,他們驗證了所有的手勢都被正確記錄下來,沒有額外的噪音,並且沒有旋轉錯誤的傳感器提供了錯誤的數據。然後工程師通過軟體對每個手勢序列進行運行,以確定序列中每一幀的關節位置和方向。由於這些位置最初是三維捕獲的,軟體可以計算每個序列的多個二維透視圖;該功能允許我們通過遞增地旋轉點來擴展手勢設置,以模擬10個不同的視點。
研究人員創造了更多的變化,通過隨機放下身體的不同點來模擬真實世界中某些東西隱藏了這些點,然後再一次遞增地旋轉剩下的點來創造不同的視角。
除了提供不同的人從不同的角度所做的各種各樣的手勢,動作捕捉也給研究人員提供了非常乾淨的數據:人體姿勢的骨骼結構是一致的,無論服裝的風格、顏色或光線條件可能是什麼。這些乾淨的數據讓他們更有效地訓練機器學習系統。
一旦汽車接受了動作捕捉數據的訓練,它們就能更好地駕馭城市駕駛呈現的各種場景。其中一個例子就是道路建設。舊金山總是有過多的建設項目在進行中,這意味著汽車經常面對著指揮交通的工人。使用cruise的手勢識別系統,汽車將能夠在理解他們各自的手勢的同時,安全地繞過多個工作人員。
舉個例子,三名公路工人擋住了一輛自動駕駛汽車計劃行駛的車道。其中一名工作人員負責指揮交通,另外兩名工作人員負責評估道路損壞情況。指揮交通的工人手裡拿著一個牌子;它有八條邊,像個停車標誌,但上面寫著「慢點」。他用另一隻手示意車輛向前走。為了安全通過十字路口,自動駕駛汽車將識別這個人是控制交通的人。車輛將正確地理解他的手勢,即它應該轉到另一條車道,向前行駛,並忽略在十字路口對面停車但似乎擁有路權的汽車。
在另一種情況下,車輛會意識到,有人進入十字路口,無視閃爍的「禁止行走」標誌,實際上是在指揮交通,而不是一個闖紅燈的行人。汽車會注意到這個人是面對著它的,而不是表現出他的立場,就像準備過馬路的人會做的那樣。它會注意到這個人的一隻手是抬起的,另一隻手在移動,以便給車輛發出信號讓它過馬路。它甚至會記錄武斷的行為。所有這些使汽車明白,即使在十字路口看到有人,它也可以繼續向前行駛。
訓練自動駕駛汽車理解手勢只是一個開始。這些系統必須能夠探測到不僅僅是一個人的基本運動。研究人員正在繼續測試手勢識別系統,使用測試車輛在現實世界中行駛時收集的視頻。與此同時,研究人員已經開始訓練系統來理解人類搬運或推其他物體的概念,比如自行車。這一點很重要,因為推自行車的人通常與騎自行車的人行為不同。
研究人員還計劃擴大數據集,以幫助汽車更好地理解騎自行車的人的手勢——例如,左手向上,肘部呈90度角,意味著騎自行車的人要右轉;右臂直向外也有同樣的意思。自動駕駛汽車已經能識別騎自行車的人,並自動減速為他們騰出空間。然而,知道他們的手勢意味著什麼,可以讓汽車確保給騎自行車的人足夠的空間來執行有信號的操作,而不會完全停下來,造成不必要的交通堵塞。(當然,汽車仍然會注意那些沒有表明意圖的自行車手的意外轉彎。)
在未來幾年,自動駕駛汽車將改變人們的生活方式。機器學習在這方面已經幫助研究人員走了很長的路。但是創造性地使用像動作捕捉這樣的技術可以讓研究人員更快地教會自動駕駛車更好地在城市中共存,讓我們的道路更加安全。
相關報道:
https://spectrum.ieee.org/transportation/self-driving/selfdriving-cars-learn-to-read-the-body-language-of-people-on-the-street