ControlVLA: Few-shot Object-centric Adaptation for Pre-trained Vision-Language-Action Models

ControlVLA: Few-shot Object-centric Adaptation for Pre-trained Vision-Language-Action Models

Task

  • 적은 demonstration(10~20개) 만으로 새로운 로봇 manipulation task에 빠르게 적응시키기
  • 입력
    • RGB image
    • language instruction
    • proprioception(로봇 내부 상태)
  • 출력
    • 로봇 action sequence / motor command

문제의식

  • 기존 few-shot manipulation 방식은 보통 아래 한계가 있음
    • simulation augmentation, CAD model, 정확한 pose estimation 등에 의존 → 실환경 적용 어려움
    • object-centric representation을 써도 수백 개 demonstration 이 필요한 경우가 많음
  • 반면 pre-trained VLA는 일반적인 action prior는 좋지만, downstream task에 맞게 fine-tuning하려면 여전히 데이터가 많이 듦
  • 그래서 논문 핵심 질문은:
    • “pre-trained VLA의 action prior + object-centric hint를 결합하면 few-shot adaptation이 가능하지 않나?”

핵심 아이디어

  • Pre-trained diffusion-based VLA에 object-centric condition을 ControlNet-style zero-init branch로 주입해서 few-shot adaptation을 안정적으로 만든다

전체 구조

1. Large-scale VLA pre-training

  • 먼저 일반-purpose policy (\pi_g)를 large-scale manipulation dataset으로 pre-train
  • 논문 appendix 구현 기준
    • DROID dataset 사용
    • wrist camera RGB
    • end-effector pose, gripper width
    • language description 사용
  • backbone
    • Diffusion Transformer policy
    • 이미지/텍스트/로봇상태를 condition으로 받아 action sequence 생성

2. Object-centric representation 만들기

  • task-relevant object를 찾고 mask를 뽑음
    • GroundingDINO + SAM2 사용
  • 각 object mask에서 아래 두 feature를 만듦
    • positional feature
      • mask 평균 좌표를 positional encoding
    • geometrical feature
      • mask에 CNN을 적용해 shape/local geometry feature 추출
  • 둘을 concat해서 object representation (z_i) 생성
  • 여러 object를 모아 (Z={z_i}) 생성

3. ControlNet-style fine-tuning

  • 기존 observation branch와 별도로 object-centric branch를 추가
  • 기존 cross-attention에 대해 추가로
    • (K_z, V_z = W_z Z + B_z)
    • 를 통해 object-centric condition을 넣음
  • 여기서 (W_z, B_z)를 0으로 초기화(zero-init)

diffusion transformer architecture

  • action을 한 번에 회귀하는 대신
  • Gaussian noise에서 시작해서 action sequence를 점점 denoising 하여 생성하는 policy
    • 이미지 diffusion: noise → image
    • 여기서는: noise → action trajectory
  • diffusion을 쓰는 이유
    • action이 multi-modal해서 단순 regression보다 유리함
    • 여러 가능한 trajectory 분포를 더 잘 표현할 수 있음
  • transformer는
    • noisy action + observation condition을 받아
    • 각 diffusion step에서 denoising하는 backbone 역할

zero init

  • 새로 붙인 branch의 가중치를 처음엔 0으로 두는 것
  • 이 논문에서는 object-centric branch용 (W_z, B_z)를 0으로 둠
  • 그러면 처음에는
    • (K_z = 0)
    • (V_z = 0)
    • 이라서 object branch 영향이 없음
  • 의미
    • fine-tuning 첫 단계에서는 pretrained policy와 동일하게 동작
    • 기존 action prior를 안 망가뜨리고 시작
    • 이후 학습되면서 object condition을 점진적으로 반영

ControlNet과의 연관성

  • 이 논문에서 “ControlNet-style”이라는 말의 핵심은
    • mask를 그냥 넣었다 가 아니라
    • 새로운 condition을 pretrained 본체를 망가뜨리지 않게 zero-init branch로 추가했다 는 점
  • Stable Diffusion의 ControlNet과 비교하면
    • Stable Diffusion + depth/pose/sketch condition
    • ControlVLA + object-centric representation condition
  • 둘 다 공통적으로
    • pretrained 본체 유지
    • 새 condition을 zero-init branch로 점진 주입
    • 하는 구조임

GroundingDINO와 SAM2는 뭐고, 왜 같이 쓰나

GroundingDINO

  • 텍스트를 보고 그 텍스트에 해당하는 object 위치(box)를 찾는 open-vocabulary detector에 가까움
  • 예:
    • “green toy”
    • “blue bowl”
    • “black handle”
    • 같은 표현을 보고 이미지에서 대응 위치를 찾음
  • CLIP처럼 텍스트-이미지 정렬을 더 region/box 수준으로 한 느낌으로 이해하면 됨

SAM / SAM2

  • promptable segmentation model
  • 점/박스/힌트가 주어지면 해당 대상을 정교하게 mask로 따는 모델
  • 즉 SAM 자체가 “green toy”라는 class를 분류한다기보다,
    • 누가 대상 위치를 알려주면
    • 그 대상을 정확하게 분할하는 역할에 가까움

둘의 관계

  • 원래 별개 모델
  • 보통 파이프라인으로 연결함
    • GroundingDINO: 텍스트 보고 box 찾기
    • SAM2: box를 바탕으로 mask 생성
    • 찾기: GroundingDINO
    • 정교하게 자르기: SAM2

SAM raw output → Z로 바꾸는 과정

  • policy에 raw mask를 그대로 image channel처럼 넣는 건 아님
  • 흐름
      1. GroundingDINO + SAM2로 object mask (M_i) 획득
      1. mask 평균 좌표 → positional feature (z_i^{pos})
      1. mask 자체를 CNN에 넣어 geometry feature (z_i^{geo}) 추출
      1. concat해서 (z_i=[z_i^{pos}, z_i^{geo}])
      1. 여러 object를 모아 (Z={z_i})
      1. (Z)를 추가 attention condition으로 사용
    • mask → object token 비슷한 representation → attention branch
    • 구조임

  • 위치 힌트가 중요하고 segmentation이 과하면
    • box condition이 더 실용적일 수 있음
  • 반대로
    • 가위
    • 손잡이
    • pouring
      • 처럼 geometry/contact가 중요하면 mask가 유리할 가능성이 큼
Share article