GenDP:3D動態語義對DiffusionPolicy泛化性的提升

Diffusion Policy(Diffusion Policy—基於擴散模型的機器人動作生成策略)是模仿學習領域近些年出現的非常有效的策略,繼去年採訪了Diffusion Policy的作者遲宬博士之後,我也計劃基於Diffusion Policy的提升工作做一個系列,DP3+iDP3:如何利用3D輸入提升Diffusion Policy的泛化性展示了將3D影像輸入替代2D影像輸入可以極大程度的提高Diffusion Policy的泛化性,GenDP: 3D Semantic Fields for Category-Level Generalizable Diffusion Policy則探索了在增加了3D語義資訊之後,Diffusion Policy的效能將如何提升。
Diffusion Policy在執行復雜的機器人操作任務中表現出卓越的能力,但它們缺乏對幾何形狀和語義的明確表徵,這通常限制了它們在未見過的物體和佈局上的泛化能力。為了增強Diffusion Policy的泛化能力,GenDP提出了一個新的模仿學習框架,透過 3D 語義場融入明確的空間和語義資訊,使用 3D 語義實現物體類別級別的泛化性(category-level generalization),同時更加強調語義理解(semantic understanding)的作用。
GenDP關於3D語義資訊的理解基於另外一篇名為D3Fields: Dynamic 3D Descriptor Fields for Zero-Shot Generalizable Robotic Manipulation的工作。 D3Fields是一個將動態3D語義資訊融入機器人操作表徵的工作。在和GenDP和D3Fields一作汪怡暄的訪談過程中,他也詳細的介紹了獨立於模仿學習、強化學習、傳統MPC之外的另外一條路徑:Learned Dynamics+MPC,這條路徑來源於汪怡暄的導師李昀燭。而汪怡暄在GenDP和D3Fields的兩個工作,則融合了他老師的老師MIT Russ Tedrake教授組的Control和斯坦福李飛飛教授組的3D,這大概就是傳承的迷人之處。
汪怡暄目前是哥倫比亞大學計算機科學系的博士生,師從李昀燭教授。在進入哥倫比亞之前,他曾在伊利諾伊大學厄本那-香檳分校攻讀博士學位,並且獲得了密歇根大學和上海交通大學的本科學位。希望以下文字,可以讓你對加入3D語義資訊的Diffusion Policy和Learn Dynamics+MPC有一些瞭解。
以下為本文目錄
👇
1. 關於GenDP
   GenDP的核心思想
   GenDP的效果如何?
  如何獲取3D語義資訊——D3Fields
3. Learned Dynamics+MPC
   D3Fields和GenDP的核心框架
Dynamics+MPC中的MPC
Dynamics+MPC中的Dynamics
   Learn Dynamics+MPC屬於什麼範疇?
4. 空間智慧
   3D動態語義和空間智慧
   空間智慧都包含哪些方面?
   3D空間感知和通用機器人
1. 關於GenDP 
GenDP的核心思想

GenDP 之前,我們有一個名為 D3Fields 的工作,它的特點是能夠在一個空間視角下(比如只有四個RGBD攝像頭)實現 3D 場景的表徵,並同時提供語義資訊。這一過程無需訓練專屬的神經網路,速度也非常快。基於這個高效的表徵能力,我們產生了一個想法:是否可以將 D3Fields與Diffusion Policy 結合,從而提升Diffusion Policy的泛化效能?
Diffusion Policy的一個主要問題是泛化能力相對有限。因此,我們希望透過結合3D和語義資訊的表徵,幫助其在泛化能力上取得突破。這是我們探索的起點。在過程中,我們嘗試了多種方法,並發現如果將3D點雲資料作為輸入,同時融合語義資訊通道,就能夠顯著提升Diffusion Policy的泛化能力。
這背後的動機很大程度上源自我們之前工作的優勢:D3Fields的速度快、表徵效能優越,非常適合用於模仿學習。而這些特點恰好可以與Diffusion Policy的需求相結合,從而推動這一方向的探索。
GenDP的效果如何?
GenDP更關注在未見過的物體上模型的效能表現,diffusion policy在已見環境和物體中表現不錯,GenDP希望提高DP在未見過物體上的表現。我們提出的方案基於3D和語義表徵。這種表徵的優勢在於,當面對不同物體時,如果它們在3D和語義上相似,模型的效能也會保持穩定,從而實現較好的遷移能力。例如,兩個不同的杯子可能在我們的表徵下被描述為相似的,這使得模型可以在不同物體間平穩地轉移。
如果沒有語義資訊僅依賴幾何表徵是不夠的,比如,如果想扶起一個倒置的可樂瓶,幾何表徵只能看出它是一個類似的瓶子,而無法區分瓶口和瓶底,可能導致機械臂錯誤地抓住瓶底,造成液體灑出;如果抓取一把刀,我們希望機械臂能抓住刀把而不是刀刃,而語義表徵可以讓模型區分刀把和刀刃,從而選擇更安全的操作。
因此,我們的工作致力於解決兩個核心問題:第一,如何在未見例項上實現良好的泛化能力;第二,如何透過語義資訊增強幾何表徵,從而讓模型不僅能適應新場景,還能在任務中表現得更加安全和智慧。
如何獲取3D語義資訊——D3Fields
我們的工作利用了之前的 D3Fields,一個顯著的優勢是它不需要額外的訓練。只需按照常規的Diffusion Policy流程收集資料即可,不需要對模型進行專門的重新訓練。語義資訊的提取部分依賴於DINOv2,這是一個大模型,能夠將影像中的每個畫素對映到一個高維的特徵向量。例如,對於一個杯子,它可以將杯子的把手部分和其他杯子把手的特徵對映為相似的高維向量。透過這種方式,我們可以利用這些語義特徵來更有效地表徵場景和物體。
比如說在實際應用中,使用Feature Fields可以實現這樣的效果:即從一張圖片的某個目標位置找到整個場景中所有相似目標的位置。例如,當滑鼠指向杯子邊緣時,系統可以高亮顯示場景中所有的杯子邊緣;或者當滑鼠指向叉子的把手時,它能夠準確找到並標註所有叉子的把手。這種基於特徵對應關係的能力使得我們可以更好地理解物體的語義資訊,比如什麼是“把手”,並在任務中利用這些資訊。
這種語義資訊需要一些簡單的標註,對於同一類物體,只需要標註一次。這種標註過程非常簡單,比如對於一個杯子,只需點選四個點即可完成,操作非常容易。之後的語義提取主要依賴單個 DINOv2 模型,透過它的強大能力自動處理剩餘的部分,從而實現語義資訊的提取和應用。
D3Fields的動機來源於以下觀察:許多基礎模型在某些任務上表現非常優秀,例如Segment Anything和DINOv2。這些模型在無需大量訓練的情況下,就能展現出強大的效能。然而,它們的侷限在於主要聚焦於2D影像相關的任務,而我們在機器人任務中需要對3D環境的理解。
以機器人任務為例,像是將一雙鞋放到鞋架上,不僅需要知道鞋架在哪一層(3D空間理解),還要在動態環境中完成操作。生活中的任務往往是動態的,例如推開一雙鞋或者完成炒飯這樣的操作,它們並非靜態場景。因此,一個好的Representation需要具備以下三個關鍵特性:第一,3D 空間理解(3D Understanding),能夠理解場景的三維佈局;第二,動態環境理解(Dynamic Understanding),能適應環境的動態變化;第三,語義理解(Semantic Understanding),例如擺放鞋子時,需要知道鞋頭和鞋尾的位置,從而正確地對齊擺放。
基於此,我們設計了一個框架:透過多個攝像頭採集觀測資料,並利用基礎模型提取資訊,將這些結果融合到3D表徵中,從而實現對環境的3D、語義和動態理解。這樣的表徵具有以下優勢,首先它不需要額外訓練,能夠直接使用基礎模型,實現即插即用;另外,即使在視角有限的情況下,仍能取得較好的效果。
相比去年同期的一些工作,我們的工作無需重新訓練,也無需依賴密集的攝像頭佈局,就能獲得一個高質量的三維表徵。這就是 D3Fields 的核心理念,有了這樣高效的3D表徵後,我們可以應用於許多工,比如物件檢查和無需訓練的零樣本物件重排(zero-shot object rearrangement)等任務。這種方法不僅簡化了操作,還拓展了其在實際場景中的應用範圍。
3. Learned Dynamics+MPC
D3Fields和GenDP的核心框架:Learned Dynamics+MPC
D3Fields核心框架主要是訓練一個dynamics model,並基於該模型進行規劃。相較於流行的模仿學習和強化學習,dynamics model+MPC有許多獨特的優勢,例如針對一個新的任務,透過改變目標函式,機器人即可以透過解決最佳化問題來完成任務。除此之外,dynamics model+MPC更加的可解釋。具體來說,dynamics model 的作用是預測給定當前的觀察和一個動作後,未來的觀察狀態和物體狀態會是什麼樣子。有了這樣的模型,我們就可以嘗試不同的動作,預測這些動作會導致的未來狀態,從而找到最優的動作。透過解決一個最佳化問題,可以規劃出最理想的 action。這種方法通常是將dynamics model與一個MPC框架結合使用。
這種方法的理論基礎可以追溯到李昀燭老師的一些早期工作,尤其在可變形物體的操作上應用廣泛。而GenDP則採取了更加傳統的模仿學習框架,流程上比較常規:收集資料,直接透過模仿學習的方式訓練模型,與其他模仿學習方法的基本流程類似。這種方式簡單高效,但兩種框架在特定任務上的適用性可能會有所不同。
我覺得他們的核心資訊可以總結為幾個關鍵點。第一個是如何高效地使用基礎模型,在感知層面我們應用了Dino-v2和Segment Anything。第二個關鍵點是,我們不需要非常密集的觀測資料。實際上,只需要四個RGBD攝像頭就足夠了。第三,我們不需要進行額外的訓練。當你獲得一個新的模型時,你可以直接替換舊模型,整個系統都可以繼續正常執行,而且更新過程非常快速,不需要重新訓練。
Dynamics+MPC中的MPC
MPC有很多種,最傳統的MPC是依賴於明確的數學模型,比如已知輸入x和輸出y之間,這個之間的函式可以透過解析式表達出來。這個函式也可能是資料驅動的,我們透過收集資料來訓練一個模型,讓其學會在輸入x的情況下預測輸出y,這樣的一個模型也可以被拿來作為MPC。我們就是後者。這也是李昀燭老師早期的一些工作中經常採用的方式:就是學習一個 dynamics,然後用學到的這個dynamics做MPC。
D3Field 採用的正是這種方法。具體來說,我們首先構建了一個表徵(representation),然後展示如何利用這個表徵來完成downstream task,在任務選擇上,我們選擇了Learn一個dynamics+MPC這樣的方法。
Dynamics+MPC中的Dynamics
關於dynamics的問題,可以分為簡單和複雜兩種情況。最簡單的dynamics可以用明確的方程式描述,例如在開車時,車輛的動態模型是直觀的:踩油門會加速,踩剎車會減速,轉動方向盤會改變車輛行駛的角度。這種情況下,車輛的行為可以透過數學模型直接描述出來。
但在現實世界中,很多場景的動態行為並不容易用明確的方程表達。例如,當你推動一根繩子時,繩子的運動是高度非線性的,很難用人為的方式直接寫出完整的動態模型。同樣,像捏麵糰這樣的任務,形狀變化也無法用一個明確的方程描述清楚。比如,當你捏一下面團,它的形狀會發生變化,但這種變化很難透過公式預測。
對於這種複雜的動態系統,需要收集大量資料來訓練模型。具體來說,透過記錄多次操作過程,獲取連續的狀態變化資料(例如,上一幀麵糰的形狀、捏的動作以及下一幀麵糰的形狀),我們可以透過這些資料訓練出一個動態模型。這樣,當面團處於某種形狀時,系統可以預測在某種捏合動作下它的形狀會如何變化。這種方法被稱為learn dynamics。
這個方法的思路可以追溯到李飛飛組的一些工作,比如RoboCraft和RoboCook都是基於這種框架:收集資料,訓練一個dynamics模型,然後基於模型進行預測和規劃。這種方法確實很有潛力,而且目前在學術界和工業界還不是特別擁擠的領域,仍然有很大的研究空間。
相比於模仿學習,這種方法在某些方面有顯著優勢。模仿學習在實際使用中會遇到很多問題,尤其是在訓練和測試階段。例如,在訓練過程中,你可能會觀察到loss曲線的變化,但根據大家的經驗,這個loss和最終policy的表現往往沒有直接關係。在實際測試之前,完全不知道policy的效果是好是壞。這種不確定性非常令人頭疼。更麻煩的是,很多模仿學習的工作流需要不斷採集資料、訓練模型、測試效果,然後發現問題,再採集更多資料繼續訓練。這種迴圈效率非常低下,尤其是當問題複雜時,可能需要大量的資料,而你甚至不知道採集多少資料才夠。
相較之下,基於dynamics的方法更具直觀性和解釋性。透過dynamics模型,你可以預測系統的未來狀態,並將其與實際結果對比,直接判斷模型的好壞。這種方式使得訓練階段就可以評估模型的準確性。此外,這種方法還可以用來進行更可解釋的規劃和控制。你可以明確知道生成某個action的原因,而不是像黑盒那樣輸出一個結果卻無法理解其背後的邏輯。
實際上,dynamics model也可以理解成是一個world model,只是world model是一個更時髦的名字,之前大家都是叫dynamics model。它的核心理念是,透過學習世界如何變化以及與之互動時會產生什麼反饋,建立對現實世界的理解。我認為這種方法非常有前景。一方面,它具有實際落地的潛力;另一方面,它也吸引了學術界和工業界的廣泛關注。在探索如何透過dynamics模型或world model來實現更高效、更可解釋的規劃和控制時,這個方向仍有許多值得深入研究的空間。
Learn Dynamics+MPC屬於什麼範疇?
這套方法不屬於RL或IL的任何一個範疇,某種程度上它算一點MPC。關於Locomotion,目前主流的方法是要麼MPC,要麼RL。但在Manipulation方面,我們也用MPC,但我們用MPC的方式和locomotion裡面用的MPC是不一樣的。在Locomotion中,機器人本體的某個動作可以透過施加的力和運動的角度、速度之間的關係精確建模,這些方程可以直接寫出來。這種 analytical model 非常適合用於傳統的 MPC 框架。
然而,在 manipulation任務中,MPC的使用方式就有所不同,我們會更多關注和環境互動是什麼樣子。比如,在操作麵糰或橡皮泥時,捏的動作會引起形狀的變化,這種動態關係往往難以用明確的方程式描述。這種情況下,需要透過收集資料,訓練一個 learned model 來學習這些複雜的動態行為。有了這樣的模型之後,也可以將其用於MPC。這說明,MPC是一個非常通用的方法,只要有一個動態模型(無論是解析模型還是學習模型),都可以基於該模型來進行規劃和控制。
總結來說,MPC的核心在於需要一個對環境或物體的動態理解的模型。這個模型既可以是由人手工寫下的解析模型(analytical model),也可以是透過資料驅動學出來的模型(learned model)。一旦有了這個模型,無論是locomotion還是manipulation,都可以用來進行控制任務。
4. 空間智慧
3D動態語義和空間智慧
空間智慧是一個非常廣泛的概念,我們的工作和空間智慧確實有一定的相關性。我們非常專注於場景的3D表徵和理解。儘管2D表徵有它的優勢,比如直觀、無需過多處理等,但在現階段,3D表徵展現了更大的潛力。
3D表徵的一個重要價值在於它可以幫助我們構建整個世界的結構,比如瞭解世界的形狀、位置座標以及如何將多種資訊與3D環境進行關聯。這正是空間智慧的核心部分:如何有效理解環境,並以什麼樣的方式對環境進行建模和表示。只有在具備良好環境表徵的前提下,機器人才能具備相應的能力去完成複雜任務。
這也是我一直比較關注的研究方向,從D3Fields到GenDP都是圍繞如何對環境建立高質量的3D表徵展開。例如,我們最近的一項工作是透過建模一個scene graph(場景圖)來引導機器人探索環境。這個場景圖可以幫助機器人瞭解環境的佈局,比如開櫃子或探索物體所在的位置。這些任務都需要一個可靠的3D表徵作為基礎。
因此,我們的研究確實與空間智慧緊密相關,從環境的三維表徵到如何讓機器人透過這樣的表徵去理解和操作環境,這始終是我們的核心方向之一。
空間智慧都包含哪些方面?
我對空間智慧的理解主要集中在幾個方面。首先是語義的理解,比如說要知道物體是什麼以及它的功能。以杯子為例,杯子的把手是可以用來抓取的,杯子本身可以盛水;又比如在削土豆皮時,需要知道皮可以透過刀削掉。這種理解屬於空間智慧中對語義的感知。同時,空間智慧還包括對物體位置的理解。比如,要知道一個物體現在在哪裡,如果移動後會去哪裡,這種對空間位置的感知非常重要。另一個關鍵方面是動態理解,比如,在削土豆皮的過程中,當刀划過去時,土豆皮會與土豆分離;或者當推動一個物體時,它會移動到新的位置。動態理解的核心是預測環境在動作之後會發生的變化。
總結來說,空間智慧主要包含三方面:幾何、語義和動態理解。幾何是對物體形狀和位置的感知,比如如何以正確的方式抓取一個物體,知道它在空間中的具體位置。語義是對物體及其功能的理解,比如知道門的把手可以推開或者衣服可以摺疊。動態則是對互動結果的預測,比如切割物體會導致分離,或者推動物體會改變其位置。
此外,這三個方向的理解並不是單一的,而是分層的。以語義為例,有高層次的語義,比如機器人需要完成“從車站買票上車並下車”這樣的複雜任務,這需要它識別螢幕、車票並理解如何找到對應站臺;也有低層次的語義,比如識別門把手並知道如何推門。同樣,動態理解也分層次,比如高層次的動作序列預測和底層具體互動的即時變化。
3D空間感知和通用機器人
我對當前機器人智慧的理解是,可能存在兩種主流的解決方案或方向:一種是基於空間智慧,透過對3D環境的理解來構建解決方案;另一種是,像PI,忘記3D,直接image in-action out ,採用端到端的方法,一個大模型來完成所有任務。
在我看來,雖然端到端的方法有很大的潛力,並且能夠帶來一些令人驚豔的演示,但它在短期內(比如五到十年)可能難以真正解決複雜的問題。儘管未來隨著硬體(如GPU)效能的進一步提升,它或許會取得更好的表現,但目前仍然需要對3D環境有更明確的理解來支援複雜任務。
舉例來說,如果機器人進入一個新的環境(比如家裡或公共場所),並被要求完成一個任務,比如幫忙拿一瓶水,它需要知道水的位置,記住茶水間的具體方位,找到茶水間,然後導航過去。這個過程需要它在環境中建立空間記憶,並透過3D表徵來定位和規劃。如果沒有這種空間理解,機器人僅依靠當前的觀測很難完成導航和定位,更不用說動態任務了。
此外,完成任務的過程中,機器人還需要動態記憶。例如,開啟櫃子尋找物品時,它需要記住哪些櫃子已經開啟,哪些櫃子打不開,以及每個櫃子中存放的內容。僅靠端到端模型很難實現這種長時間的動態互動和記憶。
雖然端到端模型在很多場景下非常有用,但將所有計算負擔都放在這種模型上是不現實的,也沒有必要。比如,SLAM(即時定位與地圖構建)技術已經非常成熟,可以高效地實現環境的建圖和定位。如果利用現有的地圖和模型來完成導航,比完全依賴一個大型端到端模型更有效率。
此外,大型模型處理長時間任務的能力目前仍存在侷限性。以GPT類模型為例,儘管它在語言任務中已經能處理很長的上下文,但視覺任務的上下文規模遠遠大於語言任務。比如,一張 128×128 的影像就有1萬多個畫素,影片任務中每秒10幀則意味著每秒需要處理十萬個畫素,若任務持續三分鐘,處理量將達到千萬級別。這遠超當前大模型的上下文處理能力。
因此,把所有計算都依賴於end-to-end模型並不現實。我傾向於認為未來可能會是兩種方式的結合:一種是基於3D表徵和空間智慧的解決方案,用於建立環境理解和定位;另一種是在特定任務中,利用 end-to-end 模型來解決某些具體問題。這種組合方式可能是短期內更可行的方向。當然,這只是我目前的一些猜測,未來可能會有更進一步的發展。
References:
D3Fields
https://robopil.github.io/d3fields/
GenDP
https://robopil.github.io/GenDP/
汪怡暄主頁
https://wangyixuan12.github.io/
李昀燭在mpc+dynamics的代表性工作
https://hshi74.github.io/robocook/
http://dpi.csail.mit.edu/
原創不易,歡迎“點贊”“打賞”“在看”三連
也歡迎加我微信交流!


相關文章