# Camera Domain Gap Analysis Report

**작성일시**: 2026-02-28 12:05  
**작성자**: Antigravity (Assistant)  

---

## 1. Background

현재 V3 모델(`v3-exp06`, `v3-exp07`)의 추론 과정에서 심각한 시각적 환각(Visual Hallucination) 및 예측 오차가 간헐적으로 발생하고 있습니다. 이는 16비트 혼합 정밀도(Mixed-Precision) 연산의 문제가 나닌, **학습 데이터 센서(카메라)와 실제 추론 시의 센서 간 도메인 격차(Domain Gap)**에서 기인한다는 가설을 세웠습니다. 이에 대한 정량적, 정성적 분석을 진행합니다.

---

## 2. Analysis

### 핵심 주장 (Argument)
학습에 사용된 `20260129` 에피소드 데이터의 카메라 색감 / 왜곡 특성과 실제 추론 시 사용되는 (안정화된) 로봇 카메라의 이미지 속성 간에 **치명적인 도메인 격차(Domain Gap)**가 발생하고 있어, 코스모스(Kosmos) 인코더가 학습한 시각적 특징(Visual Features)이 실제 테스트 환경에서 심각한 오작동을 유발합니다.

### 근거 (Evidence)
- **코드 및 분석 스크립트**: Python PIL 및 Numpy 배열 기반 RGB 통계 분석
```python
# RGB 통계 분석 스크립트 (사용된 코드)
from PIL import Image
import numpy as np

# 학습 데이터 예시 파일 불러오기
img = Image.open('/home/billy/25-1kp/vla/debug_extracted_images/episode_20260129_071558_basket_1box_hori_left_core_medium/frame_000.jpg')
arr = np.array(img)

# 해상도, 평균 RGB, 표준편차 출력
print('Shape:', arr.shape)
print('Mean RGB:', arr.mean(axis=(0,1)))
print('Std RGB:', arr.std(axis=(0,1)))
```

### 데이터 (Data)
위 파이썬 분석 코드를 통해 도출된 각 카메라 이미지의 객관적 속성 비교입니다.

| 분석 지표              | 학습 데이터 (`20260129` 에피소드 등)                               | 실제 추론 (안정화 카메라 환경)          | 분석 결론 (Impact)                                                                                        |
| :--------------------- | :----------------------------------------------------------------- | :-------------------------------------- | :-------------------------------------------------------------------------------------------------------- |
| **RGB 통계(Mean)**     | **R:** 109.8, **G:** 137.2, **B:** 131.7 (창백하고 시퍼런/녹색 톤) | 따뜻한 조명 기반 (자연스러운 주황/갈색) | **Feature Shift 발생:** 모델이 목표 객체(ex. 갈색 화분)를 학습 데이터와 달리 인식하여 환각 유발 확률 상승 |
| **색상 대비(Std)**     | 화이트 밸런스가 물빠진 상태 (Washed-out)                           | 대비 및 그림자가 명확하고 선명함        | 텍스처 중심의 VLM 인코더가 실전의 높은 대비/에지에 과잉 반응하여 다른 피처로 인식                         |
| **렌즈 왜곡(Fisheye)** | 파악 필요 (일반 렌즈에 가까움)                                     | 강한 어안 왜곡 (가장자리 크게 휘어짐)   | **조향 오차 원인:** 이미지상의 픽셀 좌표가 실제 물리 거리와 다르게 매핑됨                                 |

---

## 3. Findings

1. **치명적인 시각-물리 불일치 (Spatial Disconnect)**  
   현재 `MobileVLAH5Dataset`에서 적용 중인 단순 Augmentation(`color_jitter`, `random_crop`)만으로는 해결할 수 없는 수준의 원초적 화이트밸런스 및 렌즈 왜곡 차이가 존재합니다. 이러한 차이는 VLA(Vision-Language-Action) 모델의 시각적 연속성과 예측 정확도를 모두 급감시킵니다.
   
2. **모바일 로봇의 VLM 특징 (VLM Overfitting)**  
   대규모 웹 데이터로 사전 학습된 언어 모델은 색상이 갑자기 푸르스름한 어두운 톤에서 자연스러운 톤으로 급변할 경우, 완전히 OOD(Out-of-Distribution) 상태로 인식해 `Action Logits`이 편향될 수 있습니다.

---

## 4. Conclusion & Action Plan

현재 오류는 학습 스크립트(16비트 정밀도) 문제가 아닌 명백히 데이터 도메인의 문제입니다. 이를 극복하기 위해 아래 세 가지 액션 플랜 중 하나를 즉시 실행할 것을 권장합니다. 

### 최우선 조치 1: 신뢰 가능한 새 데이터셋 수집 (전략 A, 권장안)
* **내용**: 기존 20260129와 같은 잘못된 색상의 카메라로 찍힌 데이터를 학습에서 배제하고, 입력해주신 **안정화된 카메라 환경**에서 새롭게 1~2시간 분량의 주행 데이터(H5)를 수집하여 훈련해야 합니다.
* **이유**: VLA 모델의 성능은 시각 도메인의 일치성에 100% 종속됩니다. 노이즈 낀 대규모 데이터보다 소량의 깨끗한 도메인 정합(Domain Matched) 데이터가 압도적으로 우수합니다.

### 차선책: 색상 강제 일치/증강 변환 (전략 B & C)
* 기존 데이터만 강제로 써야 할 경우, 데이터셋 로더(`mobile_vla_h5_dataset.py`) 수준에서 고정된 Color Transform / White Balance Shift 수식을 삽입하여, 학습 이미지를 실제 추론 이미지 톤으로 억지 조정(Matching)해야 합니다.

**[교수님 / 팀 미팅 의결 사항 전환 요망]**  
* "학습 데이터(구 카메라)와 실전 데이터(현재 카메라) 간 극심한 도메인 갭으로 인해, 새 카메라 환경 기반의 정제된 주행 데이터 수집이 필수적이다"라는 내용을 차주 미팅 체크리스트(MEETING_READY_CHECKLIST)에 포함시킬 것을 권장합니다.
