Active Vision 계보 - 전체 목차1편

논문해석 - Eye, Robot: Learning to Look to Act with a BC-RL Perception-Action Loop

들어가며

로봇 조작 정책의 카메라는 대개 붙박이입니다. 작업대를 내려다보는 외부 카메라든 손목에 달린 카메라든, 정책은 주어진 화면을 받아 쓸 뿐 무엇을 볼지는 고르지 못합니다. 사람은 다릅니다. 컵을 집으려 하면 손보다 눈이 먼저 움직여 탁자를 훑고 컵을 찾은 다음에야 손이 따라갑니다. 우리는 무언가를 하려고 보기 때문에 볼 곳도 스스로 정합니다.

능동 시각(active vision)은 센서를 움직여 관측 자체를 고르는 연구 갈래입니다. 이 계보는 그중에서도 로봇이 조작 과제를 배우면서 어디를 볼지도 함께 배우는 연구를 모읍니다. 출발점인 EyeRobot은 로봇 팔 받침에 두 축으로 도는 카메라 하나를 달고 그 시선(gaze)을 사람 시선 데이터 없이 강화학습으로 학습시킵니다. 보상은 눈이 본 화면으로 팔이 시연 행동을 얼마나 잘 맞히느냐 하나뿐인데, 저자들은 그것만으로 팔이 일하기 좋은 곳을 바라보는 습관이 저절로 자리 잡는다고 주장합니다.

📄 Eye, Robot: Learning to Look to Act with a BC-RL Perception-Action Loop — Justin Kerr, Kush Hari, Ethan Weber, Chung Min Kim, Brent Yi, Tyler Bonnen, Ken Goldberg, Angjoo Kanazawa / UC Berkeley, CoRL 2025, 2025-06-12, cs.RO · cs.CV, arxiv 식별자 2506.10968

실행 영상은 프로젝트 페이지 eyerobot.net에서 볼 수 있습니다. 코드와 눈 하드웨어 CAD, 시연 데이터는 github.com/kerrj/eyerobot에 공개돼 있습니다.

초록 요약

EyeRobot의 몸은 자유롭게 도는 기계 안구 하나와 UR5e 팔 하나입니다. 안구를 움직이는 시선 정책을 실물에서 직접 강화학습으로 돌리기는 너무 느리기 때문에, 시연을 모을 때 안구 자리에 360° 카메라를 고정해 원격조작(teleoperation) 궤적과 함께 녹화해 둡니다. 이 영상을 시뮬레이션 환경으로 옮기면 팔 궤적은 녹화된 그대로 재생하면서 안구가 어느 쪽을 봤을 때의 화면이든 만들어 낼 수 있습니다.

그 위에서 팔과 눈을 함께 학습합니다. 팔이 행동 복제(behavior cloning, BC)로 눈이 고른 화면을 보고 시연 행동을 따라 하도록 배우는 동안 눈은 강화학습(reinforcement learning, RL)으로 팔이 시연 행동을 잘 맞힐 때 보상을 받습니다. 이 순환이 돌면 팔이 과제를 끝낼 수 있는 곳을 눈이 찾아 바라보는 손-눈 협응(hand-eye coordination)이 생깁니다. 시각 입력은 화면 중심만 고해상도로 보는 중심와 처리(foveation) 트랜스포머로 다루는데, 계산량을 적게 유지하면서도 대상을 화면 한가운데 붙잡아 두는 주시(fixation)가 안정적으로 나타나고 물체 추적과 방해물(distractor) 무시도 좋아집니다. 팔 주변을 빙 두른 작업공간에서 조작해야 하는 과제 다섯 개로 시험해 보면, 카메라 하나로도 이런 협응이 넓은 작업공간 조작에 실제로 도움이 됩니다.

그림 1 — EyeRobot 개요

그림 1 — 처음 화면에는 수건도 양동이도 보이지 않는 집어-놓기 과제입니다. 눈이 수건을 찾아내고(①) 팔이 수건을 잡은 뒤(②), 시선을 양동이로 옮겨(③) 수건을 넣습니다(④). 시선 시연 없이 행동에 도움이 되는 쪽을 볼 때 받는 보상만으로 생긴 행동입니다.


1. 문제 — 넓은 작업공간과 카메라 배치

실험 과제는 팔 주변 210° 에 걸친 작업공간을 씁니다. 물체가 로봇 정면에서 양옆까지 넓게 흩어져 있는 상황인데, 이런 넓이에서는 흔히 쓰는 두 카메라 배치가 모두 곤란해집니다.

고정 외부 카메라 한 대로 작업공간 전체를 담으면 물체 하나에 돌아가는 픽셀이 너무 적어 정밀하게 잡을 수 없습니다. 손목 카메라는 해상도가 충분하지만 지금 손이 향한 곳만 보여서 다음 목표가 시야 밖에 있으면 찾아 나설 방법이 없습니다. EyeRobot은 로봇 받침에 짐벌(gimbal)로 도는 카메라를 다는 셋째 배치를 택합니다. 이 카메라는 바라보는 곳을 높은 해상도로 보면서도 필요하면 고개를 돌려 작업공간 어디든 볼 수 있습니다.

그림 8 — 카메라 위치별 화면

그림 8 — 외부 카메라, 손목 카메라, 짐벌에 얹은 안구 카메라의 화면입니다. 안구는 짐벌 위에서 돌기 때문에 작업공간 전체를 더 높은 해상도로 볼 수 있습니다.


2. 기계 안구 — 짐벌 위의 카메라

그림 2 — 기계 안구와 BC-RL 순환

그림 2 — 왼쪽은 두 자유도로 도는 기계 안구로, 고속 짐벌에 어안 렌즈와 전역 셔터 카메라를 얹었습니다. 오른쪽은 눈 정책을 강화학습으로, 팔 정책을 행동 복제로 학습하면서 팔의 예측 정확도를 눈의 보상으로 돌려주는 BC-RL 순환입니다.

안구 카메라는 90 fps, 1900x1200 해상도의 전역 셔터(global shutter) RGB 카메라에 110° 시야각의 어안 렌즈(fisheye lens)를 달아 주변부를 넓게 보면서도 빠르게 돌 때 화면이 일그러지지 않습니다. 짐벌은 직접 구동(direct-drive) 브러시리스 DC 모터 두 개가 좌우 회전(pan)과 상하 기울임(tilt)을 따로 맡는 구조로, 60° 범위를 멈췄다 다시 멈추는 단속 운동(saccade)을 20 ms 에 해냅니다. 실제 추론 때는 움직임 흐림을 줄이려고 속도를 제한하고 평활화해서 씁니다. 저자들은 이런 빠른 구동이 명령한 움직임과 실제 움직임의 차이를 줄여 시뮬레이션에서 배운 시선이 실물로 넘어가는 데도 도움이 된다고 봅니다.

공개된 저장소 기준으로 모터는 LKMotor MS5005 직접 구동 서보이고 3D 프린팅용 CAD 파일도 함께 들어 있습니다. 팔은 UR5e에 Robotiq 그리퍼를 단 구성이고 안구는 로봇 받침에 단단히 고정합니다.


3. EyeGym — 360° 영상 위의 시선 시뮬레이션

시선을 강화학습으로 배우려면 경험이 많이 필요한데, 실물 안구로 그만큼 시행착오를 쌓기는 어렵습니다. 게다가 시연은 시선 정책이 생기기 전에 모으므로 나중에 "그때 저쪽을 봤다면 무엇이 보였을까"를 거꾸로 만들어 낼 수 있어야 합니다.

EyeRobot은 360° 카메라로 이 문제를 풉니다. 시연을 모을 때만 안구 자리에 시판 360° 카메라 Insta360 X4를 달고 GELLO로 팔을 원격조작하면서 5.7K, 30FPS 등장방형(equirectangular) 영상을 로봇 궤적과 시간을 맞춰 녹화합니다. 기존 원격조작 장비를 그대로 쓰므로 추가 하드웨어와 데이터 대역폭도 거의 들지 않습니다.

그림 5 — 360° 카메라를 단 원격조작 수집 장치

그림 5 — GELLO로 팔을 조종해 행동을 모으는 동안 시간을 맞춘 360° 카메라로 EyeGym용 영상을 함께 찍습니다. 배포할 때는 같은 자리에 기계 안구를 다시 답니다.

이렇게 모은 영상과 궤적 쌍을 들여오는 강화학습 환경이 EyeGym입니다. 팔 궤적은 녹화 그대로 재생하고 시선 방향에 해당하는 화면만 360° 영상에서 잘라 렌더링합니다. 눈의 행동은 상·하·좌·우·대각선 여덟 방향과 정지 중 하나입니다.

그림 3 — EyeGym

그림 3 — EyeGym은 인터넷의 360° 영상이나 직접 찍은 로봇 영상에서 시점을 잘라 실제 안구 화면을 흉내 냅니다. 가운데는 목표 조각과 닮은 곳을 DINO 특징 유사도로 찾는 장면 탐색, 오른쪽은 지정한 물체를 거리 보상으로 찾는 물체 탐색 과제입니다.

물리 시뮬레이터나 3D 복원으로 화면을 그리는 기존 환경과 달리, EyeGym은 실제 영상을 잘라 쓰기 때문에 텍스처·조명·잡음이 모두 진짜입니다. 그만큼 시뮬레이션과 실물 사이의 간극이 작습니다. 인터넷에 공개된 360° 데이터셋을 그대로 학습에 쓸 수 있고 렌더링 비용도 기존 방식보다 적습니다.

전체 흐름을 정리하면 이렇습니다.


4. BC-RL 순환 — 팔의 예측 정확도를 보상으로 쓰는 시선 학습

이 논문의 중심은 BC-RL 순환(BC-RL loop)입니다. 팔을 움직이는 행동 복제 정책과 시선을 움직이는 강화학습 정책이 서로 맞물리는데, 관측은 눈에서 팔로 흐르고 과제 성능 지표는 팔에서 눈으로 거꾸로 흐릅니다. 최적화 단계마다 눈은 현재 팔 정책이 시연 행동을 더 잘 맞히도록 시선을 고치고 팔은 현재 시선 습관 아래에서 과제를 가장 잘 하도록 배웁니다.

에피소드 하나는 시연 하나에서 뽑은 영상 구간입니다. 시작할 때 시선은 중립 위치에서 방위각 ±90°, 고도 ±15° 안의 무작위 방향으로 둡니다. 각 시연의 처음 30 프레임 동안은 팔 학습 없이 시간을 멈춰 두고 그동안 눈이 먼저 주변을 탐색하게 합니다.

보상은 팔이 예측한 행동 덩어리(action chunk)를 정답 덩어리와 비교해서 줍니다. 관절 공간 오차는 관절마다 규모가 달라 정규화가 어렵습니다. 그래서 두 덩어리를 순기구학(forward kinematics)으로 말단장치 위치 궤적으로 바꾼 뒤 두 곡선 사이의 프레셰 거리(Fréchet distance)에 음수를 붙여 보상으로 씁니다.

rt=− dF(FK(a^t:t+30), FK(at:t+30))r_t = -\, d_{\mathrm{F}}\big(\mathrm{FK}(\hat{a}_{t:t+30}),\ \mathrm{FK}(a_{t:t+30})\big)

팔 쪽은 예측 덩어리와 정답 덩어리 사이의 L1 손실로 평범하게 학습합니다. 눈이 엉뚱한 곳을 보면 팔은 목표 물체를 못 봐서 행동을 틀리게 예측하고 그만큼 눈의 보상이 깎입니다. 아무도 시선 정답을 알려 주지 않지만 이 연쇄를 거치며 눈은 과제에 필요한 곳을 보게 됩니다.

두 정책의 학습 속도도 일부러 다르게 맞춥니다. 학습률은 팔 1e-3, 눈 5e-4로, 눈을 더 천천히 움직여 팔이 현재 시선에 수렴할 시간을 줍니다.


5. 능동 시각 사전학습 — BC-RL 초기화

BC-RL 순환을 무작위 초기화에서 바로 시작하면 처음에는 눈이 아무 데나 보므로 목표 물체가 화면에 없는 경우가 대부분입니다. 그러면 팔이 배울 신호가 거의 없어 학습 목표가 제대로 서지 않습니다.

그래서 능동 시각 사전학습(Active Visual Pretraining, AVP)을 먼저 합니다. 녹화한 360° 영상에서 정지 프레임을 무작위로 뽑아 눈이 두리번거리게 하고 목표 물체를 화면 가운데 놓으면 보상합니다. 보상은 절단 거리 보상(truncated distance reward)으로, 목표가 시야 밖이면 0이고 화면 정중앙에 가까워질수록 1까지 선형으로 커집니다. 탐색 대상은 CLIP 임베딩으로 알려 줘서 여러 물체를 한 정책이 다루게 하고 사전학습이 끝나면 이 입력을 0 토큰으로 바꿉니다. BC-RL 단계에서는 눈과 팔 정책 모두 AVP 가중치에서 출발합니다.


6. FoRT — 중심와 처리 로봇 트랜스포머

눈과 팔은 같은 모양의 트랜스포머를 쓰는데, 저자들은 이를 중심와 로봇 트랜스포머(Foveal Robot Transformer, FoRT)라 부릅니다. FoRT는 모든 관측을 토큰으로 바꾸고 모든 출력도 토큰으로 냅니다. 두 정책은 공통 입력의 투영 행렬만 공유하고 트랜스포머 가중치는 따로 둡니다.

그림 4 — FoRT 구조

그림 4 — 안구 화면을 중심이 같은 여러 크기로 잘라 각각 DINO로 특징을 뽑고 시선 방향과 함께 이어 붙입니다. 능동 시각 사전학습으로 학습한 가중치를 복사해 BC-RL 단계의 눈 모델과 팔 모델을 초기화합니다.

다중 크기 잘라내기로 만든 중심와

사람 망막은 중심와(fovea)만 촘촘하고 주변 시야(peripheral vision)는 성깁니다. FoRT는 이 구조를 단순하게 흉내 냅니다. 화면 중심 픽셀을 기준으로 크기가 다른 정사각형 N장을 잘라 모두 224 해상도로 줄이면, 작은 조각은 가운데를 고해상도로, 큰 조각은 주변을 저해상도로 담게 됩니다. 실험 구성은 224 크기 4장입니다. 조각마다 얼려 둔 DINOv2 ViT-S로 패치를 임베딩해 토큰으로 펼치고 여기에 시선 방향 3차원 벡터, 현재 관절 고유수용 감각(proprioception), 탐색용 목표 토큰을 작은 MLP로 투영해 더합니다. 과적합을 막으려고 고유수용 감각 토큰에는 10% 드롭아웃을 겁니다.

정교한 다중 해상도 구조도 있지만 저자들은 사전학습된 시각 백본을 그대로 쓰려고 이 단순한 방식을 골랐습니다. 같은 토큰 수로 균일 해상도 화면을 넣는 것보다 목표 물체에 훨씬 많은 픽셀이 돌아가므로 정책이 물체를 화면 가운데 둘수록 더 잘 보게 됩니다. 뒤의 절제 실험에서 주시가 저절로 생기는 이유가 여기 있습니다.

위치 인코딩과 어텐션 마스크

위치는 3차원 회전 위치 임베딩(rotary positional embedding, RoPE)으로 (t,x,y)(t, x, y) 를 줍니다. 이미지 토큰에는 원본 화면 안에서의 실제 픽셀 좌표를 주기 때문에, 피라미드의 서로 다른 조각에 찍힌 같은 지점이 어텐션에서 자연스럽게 이어집니다. 가까운 물체는 큰 조각을, 먼 물체는 작은 조각을 채우므로 토큰 임베딩 자체는 비슷하게 유지되고 거리는 공간 어텐션으로 읽힙니다. 이미지가 아닌 토큰에는 화면 중심 좌표 (IW2,IH2)(\frac{I_W}{2}, \frac{I_H}{2}) 를 줘서 화면 가운데에 주의를 더 두도록 유도합니다.

어텐션은 많이 가립니다. DINOv2 출력은 이미 자기 어텐션을 거쳤으므로 이미지 토큰끼리의 어텐션은 막습니다. 최대 100 타임스텝 길이의 롤아웃은 이동 창(sliding window) 어텐션으로 학습합니다. 창 크기는 눈이 10이라 움직임 이력을 볼 수 있고 팔은 1이라 사실상 한 프레임만 봅니다. 구현에는 FlexAttention을 씁니다.

출력은 종류별로 학습 가능한 토큰 하나를 두고 가벼운 투영 헤드로 풉니다. 눈의 행동은 방위각-고도 여덟 방향과 정지 위의 범주 분포이고 팔의 행동은 [-1, 1] 로 정규화한 관절 위치입니다.


7. 학습과 추론 설정

항목값
눈 최적화PPO, 엔트로피 정규화 계수 0.01
최적화기눈·팔 따로, 둘 다 AdamW (β2\beta_2 = 0.95)
학습률팔(BC) 1e-3, 눈(RL) 5e-4, 코사인 감쇠로 1/10까지
학습량환경 스텝 7M
행동 덩어리30스텝 = 실제 1초
에피소드130스텝, 앞 30스텝은 정지
영상 재생2배속, 롤아웃 하나가 15fps 100프레임 = 6.7초
병렬 환경16개, NVIDIA A6000
추론 주기30 Hz, 시간적 앙상블 k = 0.05

팔 행동은 절대 관절 명령과 상대 관절 명령 중 과제에 맞는 쪽을 씁니다. 비상정지 버튼 따라가기·수건 옮기기·드라이버 맞추기처럼 큰 움직임이 이어지는 과제는 절대 명령이 낫습니다. 상대 명령은 관절 공간에서 길을 잃기 쉬운데 그런 상태에서 돌아오는 데이터가 없기 때문입니다. 지우개 올리기나 붓 건네기처럼 움직임이 짧은 과제는 상대 명령이 더 정밀합니다.

추론 때는 눈과 팔의 행동을 30 Hz 로 예측하고 ACT의 시간적 앙상블(temporal ensembling)로 팔 행동을 보간합니다. 눈 행동은 모터 속도로 바꾼 뒤 지수 이동 평균으로 평활화해 보냅니다. 눈 행동은 분포에서 무작위로 뽑는데, 학습과 시험 사이의 분포 이동(distribution shift)을 줄이려는 선택입니다. 팔이 움직이기 전에는 눈이 2초 동안 먼저 탐색하게 둡니다. 시뮬레이션보다 1초를 더 준 값으로, 실물 안구가 관성 때문에 시뮬레이션 속 안구보다 조금 느리게 움직이는 것을 감안했습니다.


8. 실험 과제와 데이터

그림 6 — 실험 과제

그림 6 — 넓은 작업공간에서 평가한 다섯 과제입니다. 위는 비상정지 버튼 따라가기(E-Stop), 붓 건네기(Brush), 드라이버 맞추기(Screwdriver), 아래는 지우개 올리기(Eraser), 수건 옮기기(Towel)입니다.

  • E-Stop — 그리퍼가 비상정지 버튼 위에 계속 떠 있도록 따라가는 과제입니다. 버튼을 최대 180° 까지 옮깁니다. 느린 시험은 20° 간격의 10곳으로 차례로 옮기고 빠른 시험은 같은 10곳을 최대 90° 씩 건너뛰는 적대적 순서로 옮깁니다. 지표는 옮긴 뒤 자리 잡는 데 걸린 정착 시간(settling time)과 그리퍼 끝-버튼 거리입니다.
  • Screwdriver — 7cm 드라이버를 쥐고 3mm 굵기의 가는 축 끝을 나무판의 검은 점에 맞춥니다. 판은 평평한 상태부터 45° 기울인 상태까지 바뀝니다.
  • Eraser — EXPO 지우개를 집어 선반에 올립니다. 집는 곳과 놓는 곳의 방향은 ±45° 무작위입니다. 두 물체 위치가 로봇 주변 180° 에 걸쳐 바뀌는 정지 조건과 잡은 뒤 선반을 좌우 40cm 옮기는 교란 조건으로 나눠 시험합니다.
  • Towel — 수건을 양동이에 넣습니다. 두 물체 위치가 모두 180° 범위에서 바뀌어 탐색이 가장 어려운 과제입니다. 처음에 무엇이 보이느냐에 따라 네 단계로 나눠 단계마다 10회씩 시험하고 수건이 일부만 들어가면 절반 점수를 줍니다.
  • Brush — 붓을 집어 사람에게 내밀고 사람이 손잡이를 잡았을 때만 놓습니다. 붓 방향은 ±90°, 위치는 테이블 가운데 75cm 선 위에서 바뀝니다.

모든 시행은 같은 자세에서 시작하도록 로봇을 프로그램으로 초기화하고 비교 대상과 절제 모델도 같은 시작 자세를 씁니다. 학습에 쓴 원격조작 데이터는 다음과 같습니다. E-Stop과 Screwdriver는 사람이 목표를 옮기는 동안 긴 시연 몇 개로 모아서 총 시간만 적었습니다.

과제시연 수총 시간 (h)
Eraser2420.95
E-Stop–0.50
Screwdriver–0.71
Towel5991.69
Brush2650.83

9. 결과 — 고정 카메라·손목 카메라 비교

비교 대상은 외부 고정 카메라(Exo), 손목 카메라(Wrist), 둘을 합친 구성(Wrist+Exo)입니다. 같은 데이터와 같은 구조로 학습하되 눈 관련 토큰만 뺐습니다. 세 구성 모두 FoRT보다 입력 이미지 토큰이 많고 매개변수 수는 같습니다.

과제EyeRobotExoWristWrist+Exo
Eraser 정지 조건 성공률60%0%100%60%
Eraser 교란 조건 성공률100%-10%40%
E-Stop 느린 시험 성공률100%100%80%100%
E-Stop 빠른 시험 성공률100%100%60%100%
E-Stop 느린 시험 목표 거리4.0cm7.8cm5.3cm7.1cm
E-Stop 빠른 시험 목표 거리4.7cm9.9cm4.7cm5.5cm

손목 카메라는 지우개가 보이기만 하면 강해서 정지 조건에서 100% 로 EyeRobot의 60% 를 앞섭니다. 그런데 잡은 뒤 선반을 옮기는 교란 조건에서는 10% 로 무너지는데, 손목 화면 밖으로 사라진 선반을 찾아 나설 방법이 없기 때문입니다. EyeRobot은 시점을 바꿔 선반을 계속 시야에 두고 교란 조건에서 100% 를 냅니다. 외부 카메라는 해상도가 낮아 지우개를 자주 건드리기는 해도 끝내 한 번도 잡지 못했습니다. 두 카메라를 합친 구성은 교란된 선반을 가끔 찾아내지만 따라가기 정밀도가 손목 카메라 단독보다 떨어집니다. 저자들은 여러 카메라의 이미지 토큰을 합치는 어려움을 원인으로 꼽습니다. 프로젝트 페이지는 여기에 데이터가 적을 때 무관한 이미지 토큰이 많아져 과적합 위험이 커진다는 가설을 덧붙입니다.

비교 실험에 들지 않은 과제의 수치도 있습니다. Screwdriver에서는 판이 평평할 때 평균 오차 4.0cm, 45° 기울였을 때 5.2cm 이고 시험 영역은 좌우로 115cm 에 걸칩니다. Brush는 올바른 방향으로 집기에 20회 중 15회 성공했고 그 15회 중 14회를 사람에게 건넸습니다. Towel 결과는 11절의 사전학습 절제 표에 단계별로 실려 있습니다.


10. 저절로 생긴 시선 행동

그림 7 — 저절로 생긴 시선 행동

그림 7 — 왼쪽: 팔의 상태에 따라 수건을 잡기 전에는 수건을, 잡은 뒤에는 양동이를 봅니다. 가운데: 중심와 처리를 쓰면 물체를 화면 가운데 두는 주시가 생기지만 균일 해상도 모델은 물체를 시야 안에 느슨하게만 둡니다. 오른쪽: 시선이 손과 무관하게 목표 물체를 따라갑니다.

보상은 팔의 예측 정확도뿐인데 눈은 세 가지 행동을 스스로 익힙니다. 여러 단계 과제에서는 로봇 상태에 따라 다음에 필요한 물체로 시선을 옮기는 전환을 배웁니다. 다음 목표가 시야에 없으면 찾아 나서는데 대개 좌우로 훑으며 오가는 모양입니다. 물체가 일부만 보일 때는 주시를 조금씩 고칩니다. 놓기 도중 목표 위치를 옮기면 팔과 상관없이 새 위치를 따라가는 독립 추적도 나타납니다. 더 동적인 과제에서는 사람이 목표 물체를 내려놓는 동작처럼 앞일을 알려 주는 단서에 눈길을 주기도 합니다.

실패 양상도 구체적입니다. Towel 실패는 대부분 수건을 아슬아슬하게 놓치는 경우이고 양동이에서 수건으로 시선을 돌리는 쪽이 더 어렵습니다. 수건 모서리만 잡아 절반이 양동이 밖으로 늘어지는 경우도 있습니다. E-Stop에서는 버튼을 한 번도 놓치지 않았지만 주된 오차가 안구 쪽을 향하는 깊이 방향 거리에서 나옵니다. 카메라 하나로 깊이를 가늠하기 어렵기 때문입니다. Eraser 실패도 지우개를 아깝게 놓치는 경우가 대부분입니다.


11. 절제 실험 — 중심와 처리와 사전학습

중심와 처리

중심와 처리의 효과를 보려고 균일 해상도 화면을 받는 모델을 같은 BC-RL로 학습했습니다. 토큰 수를 맞추려고 224 크기 4장 대신 448 크기 1장을 넣습니다. 지표는 오차와 정착 시간이고 둘 다 낮을수록 좋습니다.

과제EyeRobot중심와 처리 없음
E-Stop 느린 시험4.0cm / 4.2s5.9cm / 5.3s
E-Stop 빠른 시험4.7cm / 5.8s6.9cm / 7.1s
평균4.4cm / 5.0s6.4cm / 6.2s

균일 해상도 모델은 모든 지표에서 나빠지고 시점이 불안정해 자리 잡는 데도 훨씬 오래 걸립니다. 중심와 모델은 목표를 꾸준히 화면 가운데 붙잡아 두는 반면 균일 해상도 모델은 시야 안에 느슨하게 둘 뿐입니다.

방해물에도 차이가 납니다. 사람이 노란 컵을 장면에 놓으면 균일 해상도 모델은 컵과 버튼 사이에서 주의가 갈리고 사람 손에 더 눈길을 줍니다. 이때 컵을 천천히 움직이면 버튼을 완전히 놓칩니다. 중심와 모델은 컵을 무시하고 버튼에 고정된 채 남습니다. 저자들은 토큰이 물리적으로 목표 쪽에 몰려 있어 올바른 곳에 주의를 두기 쉬워진 덕분으로 해석합니다.

물체가 멀어질 때의 강건성도 달라집니다. 곰 인형을 안구에서 천천히 멀리 옮기면 균일 해상도 모델은 약 2 m 에서 곰이 입력 토큰에서 사라지며 추적을 놓치지만 중심와 모델은 그보다 약 5배 먼 곳까지 따라갑니다. 피라미드 표현이 멀리 있는 곰도 곰으로 알아볼 만한 토큰을 남겨 주기 때문입니다.

능동 시각 사전학습

Towel 과제에서 AVP를 뺀 모델과 비교했습니다. 처음에 무엇이 보이느냐로 나눈 성공률입니다.

시작 시 보이는 물체EyeRobotAVP 없음
둘 다80%73%
수건만95%40%
양동이만50%70%
둘 다 안 보임60%60%
평균72.2%(±13.1%)62.1%(±14.2%)

AVP를 빼도 먼 거리 탐색은 과제 보상만으로 생깁니다. 다만 잡기 성능이 떨어지는데, 저자들은 그 원인의 일부를 나쁜 초기 가중치에서, 일부를 초기화 직후 눈이 제대로 주시하지 못해 BC-RL 초반의 학습 데이터 분포가 나빠지는 데서 찾습니다. 단계별로 보면 수건만 보이는 경우가 95% 대 40% 로 차이가 가장 크고 양동이만 보이는 경우는 오히려 AVP 없는 모델이 높습니다. AVP는 처음부터 과제에 관련된 물체 쪽을 보게 만들어 BC-RL 수렴도 빠르게 합니다.


12. 시각 탐색 — 강화학습 단독 실험

팔 없이 눈만 강화학습으로 학습해 EyeGym 자체가 쓸 만한지도 따로 봅니다.

물체 탐색에서는 로봇 시연 영상으로 절단 거리 보상을 써서 수건 찾기를 학습한 뒤 실물 안구에 올렸습니다. 수건은 일부러 처음 시야 밖에 두고 오른쪽·가운데·왼쪽에 각 5회씩 총 15회 시험했습니다. 성공률은 87%, 평균 탐색 시간은 1.8초이고 실패는 수건이 작업공간 맨 가장자리에 있을 때 났습니다. 곰 인형으로 학습한 정책은 던지는 것 같은 빠른 움직임도 따라갑니다.

장면 탐색은 목표 조각과 닮은 곳을 찾는 더 느슨한 과제입니다. 360-indoor 데이터셋의 360° 이미지 2,000장으로 학습하고 보지 않은 이미지 500장에서 평가했습니다. 장면을 고도 4줄 × 방위각 6칸, 조각당 40° 시야로 나눈 24개 위치를 S자로 돌며 목표를 옮기고 위치마다 정책에 20스텝을 줍니다. 마지막 스텝에서 CLIP 유사도와 목표를 시야 안에 넣은 비율(정확 일치)을 잽니다.

그림 9 — 장면 탐색 평가 경로

그림 9 — 장면 탐색 평가에서 목표를 S자 경로로 조각에서 조각으로 옮겨 탐색 행동을 살핍니다.

방법CLIP ↑정확 일치 ↑
무작위 이동0.62928.1%
거리 보상0.70464.8%
DINO 보상0.71560.2%
DINO+거리0.71166.5%

학습한 정책은 의미상 비슷한 시점 쪽으로 눈을 돌리지만 비슷한 모양이 반복되는 장면이 많아 정확히 같은 곳을 찾는 데는 애를 먹습니다. AVP에는 절단 거리 보상을 골랐습니다. 목표를 찾았을 때만 보상을 주는 구조라 탐색 행동을 더 많이 끌어내기 때문입니다.


13. 저자가 밝힌 한계

저자들이 꼽은 가장 큰 한계는 운동 시차(motion parallax)입니다. 사람은 목을 움직여 가린 물체 뒤를 들여다보지만 한 점에서 찍은 360° 영상으로는 그런 시점 이동을 흉내 낼 수 없습니다.

시뮬레이션에는 잘 맞지만 실물에서는 실패하는 전략을 쉽게 배운다는 문제도 있습니다. Towel 과제의 "보지 않고 잡기"가 대표적인데, 왼쪽을 보고 수건이 없으면 오른쪽의 평균 위치를 그냥 잡아 버립니다. 작업공간 가장자리의 시연이 적은 데이터 분포에서 나온 습관입니다.

두 모델이 서로의 학습 고리 안에 들어가 있어서 BC-RL은 일반 행동 복제보다 훨씬 느리게 수렴합니다. 지금 시스템은 고정 작업대에 묶여 있어 저자들은 안구를 이동 로봇에 올리는 것을 다음 방향으로 꼽습니다. 두 번째 눈을 달아 양안 시각을 쓰거나 단안 깊이 추정기를 붙이면 지금의 깊이 지각 한계를 넘어 더 세밀한 조작도 할 수 있으리라는 전망도 덧붙입니다.


14. 정리 — 계보의 출발점

EyeRobot이 세운 것은 세 가지입니다.

  • BC-RL 순환 — 팔의 행동 예측 정확도를 눈의 보상으로 돌려 시선 시연이나 손으로 짠 보상 없이 과제에 필요한 시선을 배웁니다.
  • EyeGym — 안구 자리에 둔 360° 카메라로 시연을 찍어 두면, 시선 정책이 생기기 전에 모은 데이터 위에서도 어느 방향의 화면이든 나중에 렌더링할 수 있습니다.
  • 중심와 처리 — 같은 토큰 예산에서 해상도를 화면 중심에 몰아주면 주시가 저절로 생기고 방해물과 거리 변화에 강해지며 오차와 정착 시간도 함께 줄어듭니다.

모든 조건에서 앞선 것은 아닙니다. 지우개가 보이는 정지 조건에서는 손목 카메라가 100% 로 EyeRobot의 60% 를 앞섰고 깊이 방향 오차 때문에 더 세밀한 조작도 아직 어렵습니다. 그래도 EyeRobot은 넓은 작업공간에서 물체를 찾고 따라가는 일을 카메라 하나로 해냈습니다. 그 시선을 누구에게도 배우지 않고 행동의 필요에서 끌어냈다는 데서 이 계보가 출발합니다.

다음 편 EyeRobot 2.0은 이 논문이 스스로 남긴 숙제를 받습니다. EyeRobot은 주된 오차를 단안 시점의 깊이 추정에서 찾고 두 번째 눈으로 더 세밀한 조작을 하자고 제안했는데, 2.0은 머리 쪽에 고정한 스테레오 카메라로 두 눈이 3D 한 점에 수렴하는 주시를 만듭니다. 시점을 렌더링하는 방법도 360° 영상 대신 보정된 스테레오 영상을 변환하는 방식으로 바꿔서 수집·학습·배포에 같은 카메라를 씁니다. BC-RL 순환은 그대로 두되 시선을 두 층으로 나눕니다. 목표 물체를 받으면 그 물체로 시선을 맞추는 정책을 PPO로 먼저 학습하고 다음에 볼 물체를 고르는 선택기를 BC-RL 순환으로 함께 학습합니다. 중심와 처리는 DINOv3 다중 잘라내기 토큰으로 이어지며 팔의 행동은 주시 좌표계 기준 SE(3)로 표현합니다. 이렇게 해서 1편보다 훨씬 세밀한 양팔 조작 과제를 손목 카메라 없이 다룹니다.