open-vocabulary 3D scene graph
instance segmentation
을 적용하여 -> semantic feature vectors를 추출한 후ConceptGraph 란?
open-vocabulary 3D scene graph
물체 중심의 ConceptGraph는
scene graph 표현:
요약 설명으로 시작 하겠다!
object candidates mask
를 얻고,object candidates mask
에 Depth image와 pose 정보를 결합해 3D 공간에 투영한 후,object candidates
와유사도
측정을 통해 겹치는게 있는지 체크하고, "describe the central object in the image"의 text prompt
와 함꼐) LVM에 통과시켜서, 그래프 edge에 반영하기 위해
LLM을 사용 (스포임, 아래에 자세히 설명 나옴)3D scene graph (Mt)
3D point clouds Poj
+ semantic feature vector foj
object 후보군
을 object set Ot_1
들과 비교해서, (어떻게 비교하는지는 아래 글에 자세히 나옴)candidate object masks
= {mt,i}i=1...M = Seg(I_t^rgb)
ft,i = Embed(I_t^rgb, mt,i)
visual descriptor
, ft,i) 를 구한다는 수식semantic feature vector
로 최종적 도출candidate object masks
는 DBSCAN clustering을 이용하여 노이즈가 제거된 후, 3D 공간에 투영됩니다. (3D world 좌표계로 좌표변환 한다는 뜻)semantic & geometric 유사도를 계산
하여, 유사도가 δ_sim(1.1)을 넘는지 확인함geometric 유사도 측정
semantic 유사도 측정
10개 captions를 일관되고 정확한 final caption으로 요약해달라는
추가 text query와 함께)물리적으로 가까운 거리에 있는 노드
끼리 연결하고,그들의 spatial overlaps로 측정
minimum spanning tree(MST)
를 만듦즉, 많이 겹치는(물체)들만 연결하려고 노력
object captions and 3D location
를 text로 입력요구사항: 물체 2개 간 공간적 관계를 묘사해주세요!(예: "a on b"? "b in a"?)
옷장
에 보관되어 있는 가방
쓰레기통
에 있는 재활용 가능한 종이 한장
이제, 이렇게 완성한 ConceptGraph를 이용해서 Robotic Task planning을 수행해보자!
로봇 사용자가 임의의 자연어로 묘사한 task
를 수행할 수 있게 하려면,
scene graph M_T
를 LLM의 input으로 같이 넣을 수 있어야 한다.각 노드(object) O_T에 대해,
자연어로 묘사한 task
를 받았을 때, LLM은 그래프에서 가장 관계있는 물체를 찾는다.
단계 1: LLM에게 ConceptGraph와 user query(something to wear for a space party) 던지면 -> most relevant object
를 찾아줌
단계 2: VLM을 이용해서, most relevant object
이 기대된 위치에 있는지 가봄
단계 3: 가봤는데 없으면, LLM에게 다시, 가장 가능성 있는 위치
에 대해 물어봄
목적지로 가는 길이 물체로 인해 막혀 있을 때,
LLM에게 물어봐서, 어떤 물체는 밀고 지나가도 되는지 판단할 수 있음
LLM은 traversability prediction을 하기 위해, ConceptGraph의 node caption에 의존함.