每日最新頭條.有趣資訊

不會做菜?你需要能理解菜單的烹飪機器人

作者:張雨嘉

編輯:Joni

本文主要介紹與用戶和廚房互動的烹飪機器人:多模態的烹飪輔助、自學習菜單的系統以及以人為反饋的優化烹飪方法。

在人們對未來生活的幻想中,「自動化」佔據非常大的比重。除了已經有的家居自動化、辦公自動化外,烹飪自動化可以說是 90 後、00 後的一個福音。

烹飪機器人的研究,多數以日本的研究者為主,比如日本的 Ogura 等人 [1] 開發了一個機器人系統,可以用多種方式切菜。Kormushev 等人 [2] 在 2010 年 IEEE 上的 Robot Motor Skill Coordination with EM-based Reinforcement Learning 論文中提出了一種向機器人傳授翻轉煎餅的方法,並通過強化學習來改善動作準確率。

作為一個整合的系統,Yamaguchi 總結了烹飪機器人在不同部分的難點和挑戰:一是如何正確操作可形變物體(如敲雞蛋、剝香蕉等),這需要對物體建立具有魯棒性的動力學模型;二是為了使用多種烹飪技能,機器人必須具備一個靈巧的機械手並會像人類學習;最後我們的目的是製作美味的食物,所以機器人也得具備強大的觸覺、味覺或特殊用途傳感器,以優化烹飪過程。

但該文沒有提到的是,通過我們的日常經驗可以知道,烹飪不同於利用機械臂裝配,它並不是一種標準化的過程。不同的人有不同的烹飪技巧和烹飪風格,而這種不確定性對執行固定操作的機器人來說是很難實現的。以現有的技術看,我們已經可以利用機器人(臂)進行一些簡單烹飪。但機器人烹飪系統和用戶、智能家居等能做到真正結合,還需要繼續努力。

大家想象中的烹飪機器人可能都是擁有一對(隻)機械臂,但實際研究或者工程中這樣能完成完整的烹飪難度太大,因此不少研究只是開發烹飪的輔助系統(或者輔助機器人),幫助不懂做菜的當代人。這篇文章主要介紹與用戶和廚房互動的烹飪機器人:多模態的烹飪輔助,自學習菜單的系統以及以人為反饋的優化烹飪方法。

1. 烹飪輔助機器人

一般菜單都是基於文本的說明、難以理解,而視覺教學對烹飪新手來說更加有效。Suzuki 等人 [3] 在 Cooking Support with Information Projection onto Ingredient 中提出的烹飪輔助系統,可以在食材上疊加切割線來提供烹飪的實時說明,也可以通過對話機器人「Phyno」提供對話和交流。

圖 1:對話機器人「Phyno」

輔助系統的圖像疊加功能是將烹飪指南覆蓋在食材上,以指導廚師進行烹飪。指導圖像的類型又可分為三類:過程指令圖像、過程圖像和進展圖像。過程指令圖像主要指在食物上疊加切割位置,並附有刀具如何移動的圖像。過程圖像提供操作步驟的文本或圖形描述,如翻轉物品。進度圖像則是要將一個食材轉移到一個地方(如盤子)時顯示。

而對話機器人「Phyno」則採用作者之前在日本 National Institute for Computer Technology(NICT)機構中根據傳統機器人研究出的系統。該系統可以在用戶烹飪出錯時,通過與機器人對話來確定錯誤。此外,它還能記錄用戶烹飪的視頻,並與預裝的視頻比較是否正確烹飪。研究者認為,用對話機器人取代原來的文本或視頻形式的菜單可以讓烹飪過程更加有趣,使機器人的角色從「人形互動夥伴」轉變為「人」這一社會實體。

圖 2:廚房示意圖

廚房環境 (圖 2) 配備了水槽、烹飪台和爐子。天花板上安裝了可以捕捉整個廚房畫面的兩個攝影機和用於 CG 投影的三個投影儀。出於安全考慮,廚房總是保持高度照明,並使用大功率投影儀提供畫面細節。烹飪輔助系統包括投影在烹飪台上 CG 投影和指導烹飪的 Phyno 機器人,作者以處理魚類為例進行驗證,其基本步驟如下:

因為該系統是 2012 年的發明,所以當時主要採用簡單的背景差分技術和模版匹配方法(圖 3)檢測菜板上的食材。背景差分是利用烹飪前後圖像(a、b)來對比出不一樣的前景對象(c),然後提取對象輪廓(e、f)。之後在預先存儲有的大量目標模板中,檢測出與輪廓匹配度最高的那類。

圖 3:檢測方法

然後根據投影在魚上的切割線進行去鱗,通過「Phyno」語音和過程圖像對魚進行翻轉。

在魚的腹部投影切割方法,並移除內髒,再根據語音指導將魚移動到水槽中洗淨剩餘的內髒。

圖 4:投影示意圖

根據投影切掉魚頭,後將刀插入魚腹和魚背,切斷魚肉。

語音提示「完成烹飪」。

不過該系統也有一個最大的問題:很難確定烹飪過程是否完成,並進入下一步驟。就這一問題,作者採用了兩步解決:

第一步,在 Hashimoto 的 Smart kitchen:A user centric cooking support system [4] 論文基礎上,提出一種結合圖像處理和語音識別的混合技術。它首先捕捉烹飪過程的圖像,以確定廚師是否接觸食材。該系統認為在廚師接觸食材時是在烹飪過程中;而在遠離食材時為烹飪過程的完成。

第二步利用語音互動,「Phyno」通過詢問「你完成這一步了嗎?」來提示廚師做出回應,並確定烹飪是否完成。

最後,該系統在與人合作烹飪的試運行中,也表現出一些有待改進的地方。比如該系統仍然缺乏在烹飪的某些環節中對新手的詳細輔助,還有系統提供的切割位置和方法不足以讓用戶正確操作等。這些問題的主要原因是該系統隻包含人 5 種感覺中的視覺和聽覺,無法提供與觸覺和聲學感官相關的指令。

作者認為該系統雖然還有待改進,但它不止能提供烹飪輔助,還有助於增強新手廚師的安全。比如看菜單的話,廚師必須多次在烹飪台和書 / 手機之間移動視線,分散廚師的注意力並帶來危險。雖然這種烹飪輔助系統還不夠完善,但已經可以透過這種可視化操作看到未來烹飪生活的一角。

不過現在隨著深度學習的發展,我們完全可以利用 VGG、ResNet 等圖像分類高性能網絡代替模板匹配功能。用準確率較高的兩階段 Faster R-CNN 檢測網絡,或者速度更快的 YoLo 系列來解決背景差分帶來的問題。而且網絡上存在大量的烹飪視頻,所以我們完全可以讓其模仿,而不僅僅是指導。

2. 能理解菜單的烘焙機器人 BakeBot

以上系統對於懶人或沒時間烹飪的人來說並不是最佳選擇,我們更希望有一個能自主烹飪的機器人,而不僅僅是輔助。Kunze 等人研究過一個製作煎餅的機器人系統,麻省理工學院和可口可樂公司也開發過一款智能手機控制的機器人調酒師。Bollini 等人在 Interpreting and Executing Recipes with a Cooking Robot [5] 中,在他們發表的一個烘焙餅乾的機器人廚師 BakeBot [6] 基礎上添加了食譜分析功能,將食譜解析為一系列簡單操作,並為其人類夥伴執行。

想要按照菜單烹飪需要通過以下幾個步驟:首先將烹飪台中未使用的食材 S_^的集合定義為 state 空間 S_k,比如攪拌碗 S_^、烤盤 S_^和烤箱 S_^等。actions (S_k) 則是給定 S_k 下可以執行的一組操作:

這種簡化是認為在這個廚房區域的有限 state-action space 中,可以遵循特定的動作軌跡就完成各種樣式的菜。而如果某條菜單指令沒有支持的機器人動作存在,機器人會通過終端以可視化和聲音的方式提示用戶執行該動作。

其次,為了生成烹飪菜肴最有可能的動作序列,需要根據菜單輸入文本定義一個獎勵函數 R。作者將獎勵函數定義為使用對數線性模型參數化的概率分布,公式中的 d_j 是菜單中的每個句子,s_m...s_n 是系統推斷出的結果。因此,模型的目的就是使推斷出的結果更接近真實句子 d_j。該模型是從一個帶有正確注釋的食譜數據集中使用梯度下降算法訓練出來的。然後使用前向搜索找到使函數最大值的動作序列和操作。

之後,推導出的動作序列被解釋成的機器人需要執行的 baking primitives 計劃。每一條計劃對應一個單獨的烹飪動作,由一組帶有 STRIPS-style 先決條件的運動原語和對目標的描述組成。如果動作序列中的動作不受機器人系統的支持,就進入用戶互動狀態並將其插入到 state 機制中,從而使系統能夠執行菜單。

最後,機器人按順序執行這些動作序列。系統會使用算法來查找桌面上的對象,並給出對象和食材名稱之間的映射。然後機器人就會使用末端執行器位置和順應性控制技術來執行操作這些對象的動作,完成菜肴。其總體框架如圖 5。BakeBot 採用 PR2 機器人系統,採用 Rusu 等人研究的低級操作和感知系統。機器人首先閱讀自然語言的文字菜單 recipe,並使用它推斷製作菜肴所需的動作序列 instructions。對於每一條指令,機器人根據 Symbolic planner 的運動計劃在 PR2 系統上通過末端執行器位置和順應性控制技術來執行具體操作。

圖 5:BakeBob 系統結構

作者從互聯網上收集到 60 種食譜,描述了如何製作簡單的菜肴,如果仁餅乾、黃桃餡餅等。其中,45 種用於訓練,15 種用於測試。以烘焙餅乾作為實驗,我們假設初始時每個物品的相對位置都在程序中有所標注。

作者一共測試了 27 次該菜肴的製作,其中 16 次可以執行到最後,平均烹飪時間為 142 分鐘。一些失敗如手指在打開烤箱門時滑下來,更嚴重的失誤是將配料溢出或將碗中食材刮到地板或桌子上,導致測試的終止。儘管烹飪比人類要慢,失敗的次數也多得多,但也證明機器人有勝任烹飪工作的能力。

圖 6:烘焙過程

之後在 Joy of Cooking 菜單中進行定量評價,該系統能夠執行這些食譜中 120 條指令的 67%,不支持的指令包括磕雞蛋和抹黃油等。在簡單烘焙食譜中則有 76% 得到了 BakeBot 機器人系統的支持,不支持的句子包括「等待餅乾冷卻」,或是描述性的陳述句「不要過度烘烤」。

最後,還評估了不同訓練集大小下的測試集菜單推斷性能。實驗中,測試集菜單不變。隨機選擇訓練集的菜單訓練系統,然後使用測試集評估系統的性能。每次在訓練集中添加 5 個隨機菜單(最多 45 個),在測試集上展現的指令級評估結果如圖 7 所示。它反映了訓練集大小對系統的影響:當向訓練集添加菜單時,菜單推理性能有巨大改進;但隨著訓練集越來越大,這種提高就會隨之減少。

圖 7:菜單推斷結果

不過任何一個有抱負的廚師都可以證明,僅僅按照菜單烹飪不足以保證食物的美味。味道是由許多不同的因素決定的,包括鹽度、含糖量和酸度等化學狀態,而且只有人類可以評價它的味道。為了讓機器人烹飪的更有水準,就必須對製作出的美食有定量評價,從而制定新的優化策略。

3. 機器人烹飪的定量研究

烹飪質量優化是一個尚未探索完全的課題,一直有很多人在該領域不斷研究。劍橋大學的研究者 Junge 等人 [7] 在 ICRA2020 上發表一篇名為 Improving Robotic Cooking Using Batch Bayesian Optimization 的文章,為烹飪機器人的參數定量化給出一些建議。該文融入了用戶對於烹飪結果的反饋,並且利用用戶的反饋來優化模型參數。之後簡單對比了兩種不同的優化方法,提出了一個讓 human-in-the-loop 機器人學習的可能性。

作者首先對輸入參數的優化過程進行改進,提出用 Batch Bayesian Optimisation(BO)代替原來的 Sequential BO 方法。貝葉斯優化(BO)是一種理想的低維隨機函數。文章通過 BO 可以擬合人類的主觀品味,類似神經網絡的優化過程,兩種方法的關鍵區別在於優化樣本的更新過程(圖 8):

圖 8:兩種貝葉斯優化過程

第一種 Sequential BO 方法進行順序抽樣和優化,第二種 Batch BO 使用預先定義的采樣點和高斯過程模型來估計預期的最優值。Sequential BO 是進行全局無導數的尋優,只有當解收斂時,尋優才終止。因此無法先驗地知道樣本數量,也不允許對之前樣本進行重新評估。並且有限的試驗次數和較大的控制輸入範圍,導致調整函數的超參數是另一個具有挑戰性的問題。

而 Batch BO 利用高斯過程來擬合先驗分布,再從分布中估計出最優期望。這種方法可以固定樣本數,並且更重要的是,可以對樣本進行重新評估並隨時修改用戶的反饋。這種方法帶來的實際好處就是,不需要花費時間準備大量煎蛋餅,而是對同一個煎蛋餅進行多次評價。

實驗使用的是一個可以煎蛋餅的 UR5 機器人臂,依靠末端執行器操縱廚房中的所有工具。機器人的兩根手指通過兩直流電機獨立控制,並裝有矽膠墊以抓取各種形狀的工具。串口通信允許從傳感器讀取數據並與控制 UR5 的 python 腳本通信,以協調機械臂的各種動作。

實驗前,作者對各控制參數(見圖 9)對食品最終效果的影響進行測試。挑選的四個志願者首先得到一個機器人烹飪好的標準煎蛋餅,輸入參數設置為範圍內的中間值。隨後,將其中一個輸入參數增到最大,其他參數不變,重新製作煎蛋餅並進行評估。志願者的反饋分為 flavour、appearance 和 texture 三方面,分別給出 0-10 的得分。

圖 9:輸入參數表

輸入對輸出的影響通過計算靈敏度表示,代表在修改輸入後,輸出相對於標準煎蛋餅的平均相對變化。公式中,Y_n,j 是指用戶 n 對變量 j 的得分,x_i 是相應的輸入控制參數,Y_base 是基準得分,σ 表示用戶得分的標準差。

結果發現,控制參數和用戶反饋的關係為:鹽、胡椒粉和混合影響味覺指標,混合、攪拌和烹飪時間影響外觀、紋理。實驗中一共準備了 73 個機器人製作的煎蛋餅,進行了 6 次實驗以測試實驗設置和我們的優化算法。四次測試是針對 Sequential BO 方法進行順序抽樣和優化,剩餘兩次實驗使用預先定義采樣點和高斯模型估計最優值的 Batch BO 方法。每次測試有 1~4 個評價者,但優化會隨機選擇其中的個體。而且在機器人平台使用相同的輸入參數就可以獲取重複的樣本,這是人類無法做到的準確性。

從輸入參數與輸出反饋的關係(圖 10 左)發現,在輸入參數大幅改變時,輸出反饋的範圍較小,波動情況不大。而右圖的 Batch BO 輸入參數近似均勻分布,可以實現更大範圍的探索。而且輸出反饋的高波動性,意味著受噪聲的影響可能更低。樣本間較高的可分辨性導致主觀反饋更加真實,從而更好地擬合機器人烹飪的目標函數。

圖 10:輸入參數對食品的影響

從 Sequential BO 實驗的最後幾個樣本和 Batch BO 的中間樣本中,可以很明顯地觀察到三個輸出反饋似乎是直接相關的。所以,在迭代過程中應該逐步增加輸入方差,來減少這種相關影響。根據輸入輸出關係調整最優的輸入參數,也能使烹飪出的菜肴更加美味。

這種食品定量化的方法可以應用到機器人廚師的可量化改進上,也可以在足夠的樣本數據上繼續對主觀數據進行合理量化、不斷優化。不過,人們對食品的主觀評價也不僅僅包括味覺和視覺。烹飪過程中的聲音信息、廚房的乾淨整潔程度都可能影響我們對食物的整體評價,而將這些狀態綜合考慮是非常困難的。

並且,如何讓機器人理解並熟練使用人類的各種烹飪工具是非常難以建模的動力學問題。對於該問題,大部分研究者認為可以採用神經網絡解決。還可以讓機器人向人類學習某些技能,比如握住機器人臂翻轉煎餅,通過強化學習或者示教讓機器人建立對應模型。或者觀看大量烹飪視頻,然後對這些行為進行推理、學習。

2015 年英國科技公司 Moley Robotics 在倫敦建成了一個機器人廚房系統,稱這套「世界上第一款自動化廚房」可實現完全自動化的烹飪體驗。機器人手臂上的 20 個馬達、24 個接合點和 129 個感應器讓它能夠模仿人類雙手,抓住各類瓶罐、餐具,也能夠使用攪拌機、菜刀、灶台。但是由於 Moley 沒有視覺識別系統,無法對目標準確定位。所以研究者需要通過手機 App 給 Moley 機器人下達任務命令,同時將食材、調味料等準確地擺放在恰當的位置,Moley 才可以進行烹飪。

如今,市面上也有許多可供挑選的烹飪機器人,但他們大多隻具有翻炒、攪拌等功能。需要人們在選擇菜品後,根據烹飪要求將食材洗淨切片、切絲或切塊。並將這些原料、調味品放到指定盒子裡,才能放心讓機器人開始烹飪。而這離全自動化智能化的烹飪明顯還有一段距離。

我們更希望有一種可以根據個人品味、偏好製作菜肴的定製機器人,讓其烹飪風格不再千篇一律,而是像人一樣讓美食擁有自己的「味道」。烹飪機器人在未來生活中一定是不可或缺的角色。而讓它們能與一般用戶和生活結合,如何讓其像人類一樣熟練操作各種工具、配有一個可以「品嚐」食物味道的舌頭,能不斷學習新菜單,以及最後怎樣評價等,都是需要研究者克服的難題。

參考文獻

[1] Takashi Ogura, Kei Okada, and Masayuki Inaba. Cutting vegetables tasks by humanoid robot using vision and force sensors, In in The 24th Annual Conference on Robotics Society of Japan, p. 1H25, 2006.

[2] Kormushev P, Calinon S, Caldwell D G. Robot motor skill coordination with EM-based reinforcement learning[C]//2010 IEEE/RSJ international conference on intelligent robots and systems. IEEE, 2010: 3232-3237.

[3] Suzuki Y, Morioka S, Ueda H. Cooking support with information projection onto ingredient[C]//Proceedings of the 10th asia pacific conference on Computer human interaction. 2012: 193-198.

[4] Hashimoto A, Mori N, Funatomi T, et al. Smart kitchen: A user centric cooking support system[C]//Proceedings of IPMU. 2008, 8: 848-854.

[5] Bollini M, Tellex S, Thompson T, et al. Interpreting and executing recipes with a cooking robot[C]//Experimental Robotics. Springer, Heidelberg, 2013: 481-495.

[6] Bollini, M., Barry, J. and Rus, D., 2011, September. Bakebot: Baking cookies with the pr2. In The PR2 workshop: results, challenges and lessons learned in advancing robots with a common platform, IROS.

[7] Junge K, Hughes J, Thuruthel T G, et al. Improving Robotic Cooking Using Batch Bayesian Optimization[J]. IEEE Robotics and Automation Letters, 2020, 5(2): 760-765.

分析師介紹:

本文作者為張雨嘉,在西安理工大學攻讀模式識別的碩士學位,主要研究深度學習的圖像視頻處理,對機器學習也有極大興趣,希望能跟各位一起探討共同學習。

獲得更多的PTT最新消息
按讚加入粉絲團