阿里工程師“造人記”
摘要: 比起《西部世界》裡的德洛麗絲,許晨光說自己只是一個製作工具的人。
文/王安憶
9月22日,阿里巴巴在2018杭州·雲棲大會發布AliOS 2.0系統,定義下一代網際網路汽車標準。
無人區裡沒有順風車。從0到1,AliOS研發團隊走得艱辛,就像34歲的許晨光,作為一名AliOS無線開發專家,他揣著領導最初贊助的2000多元,找開原始碼、買3D印表機、DIY零部件、著手打造仿生機器人。有了這個機器人,多模態互動系統的訓練工作才能事半功倍。
許晨光本以為,這項工作難度跟組裝宜家櫥櫃差不多,哪曉得路上的坑一個接著一個,填到現在,他已經解鎖了機電、雕塑、解剖等一堆新技能。在許晨光的努力下,一條機械手臂投入訓練工作,這只是一個階段性的成果,接下去,他還要為機器人添上另一條手臂、整個上半身軀幹,以及頭部和麵部表情。
看得懂人的車
短短2年間,在路上奔跑的AliOS網際網路汽車已有數十萬臺。而網際網路汽車熱銷,多模態互動系統功不可沒。
眼下,大部分車機系統基於手機安卓系統定製,可是安卓從底層、框架到應用的設計,都以近距離小屏觸控的手機場景為出發點,有點先天不足的意思。而AliOS從設計之初,在應用框架和互動體系方面就考慮到了汽車環境的需求。
觸屏、語音、人臉、手勢相結合的多模態互動系統,能夠為司機帶來顛覆性體驗——比如通過人臉識別技術,汽車在認出司機身份後,會按照司機習慣調整好座椅、後視鏡、空調風量以及歌單,就連油門靈敏度和換擋邏輯,也可以根據司機駕駛習慣設定。人車之間,不僅可以通過“語音+觸控”的方式交流,還可以通過“語音+手勢”或“快捷手勢”溝通。
重慶智博會上,AliOS曾展示了神奇的手勢互動,司機輕輕揮一揮手,就能操控多媒體、地圖等場景:做一個“love”手勢,隔空收藏喜愛的音樂;一個食指左右滑動,就能升降音量;兩個手指擺出“耶”,則代表拒接來電……
總之,在一輛網際網路汽車裡,攝像頭是眼睛,麥克風是耳朵,將捕捉到的畫面和聲音,傳遞給AliOS這個大腦,司機不用低頭檢視車機螢幕就能控制汽車,這是一種沉浸式的智慧新體驗。
AliOS還在不斷進化,今年6月下旬,許晨光所在的團隊,主要任務就是支援包括手勢識別、語音識別等多模態互動的升級測試,進一步將工具硬體化和產品化。
當老師的代價
AliOS能看懂人類的手勢,是因為應用了視覺計算技術。和其他AI技術一樣,視覺計算也要通過基於大量樣本的訓練,去不斷優化模型和引數,這樣AliOS才能更準確地識別不同角度的不同手勢。
在訓練的過程中,團隊面臨的最大問題在於,缺少手勢圖形資料,這些手勢圖形不但對定位精度有要求,還要經過人工打標籤才行。
“深度學習的主要特點就是跟資料相關,實際生產中的問題,不是開發一個或者買來一個模型就能解決的。”許晨光想,使用人手的影象資料,需要花大量人力為手勢圖形打標籤,“對於我們這樣成本壓力較大的部門來講,這種方式不是最優解。”
最後,許晨光想到了可控機械手臂的方案,直接讓硬體自動生成資料,來部分替代人工打標,相對現階段其他方案,這個辦法較為省時省力省成本。
可是,要買到一個現成的機械手臂並不容易,許晨光在網上搜尋,最基本的要求是,五個手指是否能分開運動、手腕和胳膊能不能運動。他找到一個機器手臂,卻因為過於機械,定位精度達不到要求;另一個機械手臂動作很擬人,卻因為重量太大,抬不起胳膊。
“機械手”、“仿生機器人”……許晨光用這些關鍵詞搜尋答案,卻意外搜尋到了法國的雕塑家蓋爾·朗葛文,他只花了800美元就自制了一臺真人大小的機器人,所需材料不過是一臺3D印表機、一些電機以及電路板等。
朗葛文每完成機器人身體的一部分,就會在網上與人分享製作過程以及所需的材料等,重點是,朗葛文還說“這件事的難度和組裝宜家櫥櫃差不多。”
廉價解決方案
盯著朗葛文提供的開源專案圖紙,許晨光認為自己找到了一條捷徑。7月中旬,他的辦公桌上多了一臺3D印表機,然後用隨筆記錄了整個專案的程序:
第一週:3D列印及加工手指、手掌、前臂等機械手部件,購置Arduino控制板、舵機、杜邦線、電鑽、鑽頭、膠水、3mmPLA絲等部件。
第二週:列印完畢後,連線機械手手指、手掌、手腕、前臂零件裝配、舵機安裝及傳動線,實現了可以通過arduino(開源電子原型平臺)控制機械手進行單個手指的屈伸及手腕旋轉運動。
3D列印切片軟體上一根手指的橫截面資料
第三週:終於實現了同時控制多個手指運動,並通過leap motion(體感控制器)實時追蹤模仿人手手指運動(手指、手掌、手臂前臂部分基本製作完畢)。
第四周:製作上臂和肩膀部分,期間也在改進手指的機械結構,進一步提升機械的耐用性和控制的精確度。
網購一個完整裝置,可能要花費幾萬元,許晨光的方案廉價地多——3D印表機花了1500元,前臂手指、手掌部分總共成本不到500元,上臂部分成本800元,另外準備整合一個主機,成本500元。
“我的領導馬飛飛和黃宗明自掏腰包,提供了專案資金的支援。”許晨光把手放在連線電腦的leap motion上,比了“耶”的手勢,左手邊的白色機械手也“咔咔”伸出兩根手指。
學解剖找問題
3D列印的過程異常緩慢,許晨光算過,一個5釐米厚的前臂零件,如果一切順利,也要7-8個小時才能完成。
在組裝前臂和肱二頭肌的環節中,肘關節一個連線部位出了問題,只要許晨光想測試收起前臂的動作,總能聽到“啪”一聲脆響,連線部位8毫米厚的塑料零件被掰成了兩半,“為什麼手臂彎曲90度都不行?
許晨光低頭擺弄著零件,在腦子盤算著:是不是零件在列印的時候引數沒調對?3D列印有三四個小時等待時間,他也沒有閒著,把沒捨得扔掉的零件,拿強力膠粘起來再試,這一次前臂只彎曲到80度就斷了。
“啪”“啪”“啪”,當零件第四次斷裂時,許晨光抬起頭,發現辦公室裡空空蕩蕩,就剩下他自己了,時間早就過了零點,他把第五片零件的引數設定好,第二天再趕來測試。
62小時36分鐘的努力全報廢了
回家後,許晨光下載了《奈特人體解剖彩色圖譜》,把這本書中第419頁至第454頁,關於“肘和前臂”以及“腕和手”的解剖圖仔細研究了一遍。在一次又一次的試驗中,許晨光最終找到問題所在,通過調節前臂中電機和零件的距離,便能在手臂彎曲時保全零件。“只能靠一次次試驗,沒有捷徑。”
努力不會白費
重壓之下,有時候一點小挫折就能造成整個人的情緒崩潰。有天早上,許晨光剛坐上班車,同事就發來了照片和資訊,“許晨光,你的裝置好像出錯了,造出了一堆頭髮來。”同事還打趣,這不是在設計一個藝術品吧。
看著滿屏纏繞著的白線,許晨光不敢放大圖片,62小時36分鐘的努力,全部報廢了。本來坐得很挺的許晨光,猛地向椅背一靠,低垂下了腦袋,“什麼都想不了,就想趕緊去看看它。”
看著一堆失敗的“藝術品”,許晨光反而靜下心來,他拿著小鏟子把打歪了的零件一點點剷下來,一邊鏟,一邊找原因,鏟完廢品之後他明白了,列印頭溫度不夠高,並且在一層層疊加的列印中,沒有支撐點讓其附著,一層出錯,全盤皆輸。
調整引數和列印速度,增加支撐力,3D列印再一次啟動。62小時36分鐘的等待,又開始了。
現在,許晨光的機械手臂很靈活了,可以通過手指屈伸完成數字等手勢動作,正在完成上臂及肩部組裝,從而支援絕大部分手勢操作,並通過與語音、手勢、螢幕操作的結合,實現AliOS多模態一體化測試框架,落地到自動化測試的日常檢測中。
有時候,許晨光會想起美劇《西部世界》第二季中的一個場景,女一號德洛麗絲是個機器人,利用深度學習,定量資料訓練以及對抗神經網路,製造並訓練出另一個機器人,男二號伯納德。“比起德洛麗絲,我只是一個製作工具的人。”許晨光說。
接下來許晨光想要和女兒一起製作個機器人