로봇 궤도 해상: 도전, 방법, 품질 표준
로봇 시범 데이터에 대한 해설 방법 <unk> 언어 표지, 성공/실패 표지, 접촉 이벤트 및 훈련 준비된 데이터 세트의 품질 표준
[로봇 데이터 수집 안내서]
[← 블로그]
원료 텔레오퍼레이션 데이터는 훈련 데이터가 아닙니다. 표기법은 궤도를 구조화된 레이블로 변환합니다. 실제로 정책들을 가르칩니다. 좋은 표기법은 이렇습니다.
해설 이 중요 한 이유
로봇 텔레오퍼레이션 세션은 궤도를 생성합니다. 시간 지표 순서로 결합 상태, 카메라 프레임 및 최종 효과자 포즈를 제공합니다. 이것은 물리적 의미에서 데이터이지만 대부분의 정책 학습 알고리즘이 요구하는 의미에서 아직 훈련 데이터가 아닙니다. ACT, 전파 정책, 행동 복제 등의 알고리즘은 어떤 에피소드가 성공했는지 (훈련) 하고 어떤 에피소드가 실패했는지 (제외하거나 중하) 알 필요가 있다. 기초 모델 정렬은 로봇이 무엇을 하고 있는지 설명하는 언어 지침이 필요합니다. 단계 조건 정책은 세그먼트 경계를 필요로 한다. 접촉 학습 알고리즘은 첫 접촉, 안정적인 포착 및 발매 이벤트의 시간표가 필요합니다.
해석은 이러한 구조화된 정보를 추가하는 과정입니다. 그것은 시간이 오래 걸리고 인간의 판단을 필요로 하며 정책 품질을 떨어뜨리는 방식으로 잘못하는 것이 쉽습니다. 불합리한 성공 표지가 있는 데이터 세트는 일부 실패를 모방하는 법을 배운 정책을 생성합니다. 모호한 언어 지침을 가진 데이터 세트는 추론 시 지침으로 일반화할 수 없는 정책을 생성합니다.
다섯 가지 표기 유형
- 1. 작업 성공/실패: 바이너리 합격/실패는 최소이다. 훈련 목적으로 바이너리는 종종 충분하지만 0
100 부분 신용 점수는 정보를 추가합니다. 성공했지만 느리고 어색한 포착은 빠르고 깨끗한 것과 다릅니다. 0 30 (뚜렷한 실패), 31 69 (부정/단계) 및 70 100 (품질 기하급수) 의 부분 신용 점수는 교육과정 학습과 데이터 중량에 더 나은 신호를 제공합니다. - 2. 언어 지침: "붉은 잔을 들어서"는 "물질을 들어서"보다 낫다. "바닥이 아닌 몸에서 원형 붉은 플라스틱 잔을 잡아 흰 트레이에 세게 올려 놓아"는 미세한 곡물 작업에 더 좋습니다. 명령어에는 작업에 관련된 객체 속성 (색, 모양, 관련 있는 경우 재료), 특정 경우 원하는 포착 전략 및 목표 상태가 지정되어야 합니다. 기초 모델 정렬을 위해 의도된 데이터 세트에서 객체 이름만 사용하는 명령어 ("컵을 선택") 를 피하십시오.
- 3. 세그먼트 레이블: 각 에피소드를 단계 (reach, grasp, transport, place) 로 나눌 때, 단계적 조건화 정책과 보다 목표형 데이터 분석이 가능해진다. 표준 선택 장소 작업에 최소 4 단계가 필요합니다. 집합 작업에는 8
12개의 세그먼트가 필요할 수 있습니다. 세그먼트 경계는 비디오 프레임 수준에서 표시되어야 합니다. - 4. 접촉 이벤트 시간표: 접촉 학습 작업 (insertion, assembly, surface following) 에 있어서, 접촉 조건적 행동을 학습하기 위해 첫 번째 접촉 (griper touches object), 안정적인 잡기 (kontak force stabilizes above threshold) 및 방출 (griper opens, object free) 에 대한 정확한 시간표가 필수적이다. 접촉 시간표에 수동 해설 오류는 <5 프레임 (167ms 30fps에서) 이어야 한다. F/T 센서 데이터로부터 자동 검출은 사용 가능한 경우 바람직하다.
- 5. 품질 점수: 성공/실패를 넘어, 에피소드별 품질 매트릭은 훈련 중에 데이터 중량을 알려줍니다. 부드러운 점수 ( 에피소드 평균
스 역), 성공 신뢰 (사실 표기 에 대한 해설자 의 확실성), 그리고 어려움 추정 (전공 교육 계획 학습 우선 순위) 는 가장 유용한 세 가지입니다.
해상 방법 비교
| Method | Accuracy | Cost | Throughput | Best For |
|---|---|---|---|---|
| Expert labeler (domain knowledge) | Highest (95%+) | High ($40–60/hr) | 20–40 episodes/hr | Ground truth, gold standard, contact events |
| Trained crowdsource (MT, Scale) | Medium (80–90%) | Medium ($5–15/episode) | 100–500/hr at scale | Success/failure, language, segment labels |
| Naive crowdsource (MTurk open) | Lower (70–80%) | Low ($1–5/episode) | High | Simple success/failure on clear tasks only |
| Trained classifier (CNN/LSTM) | Medium-high (88–93%) | Very low (compute only) | Thousands/hr | Success/failure at scale, auto-annotation |
| Active learning loop | High (improves with data) | Decreasing per label | High after warmup | Large datasets with expert budget constraint |
해명자 간 협정
코헨의 카파는 우연한 합의에 맞게 조정된 공상자 간 합의의 표준 측정입니다. 로봇 공상자:
- Kappa > 0.8 (강한 합의): 작업 정의와 해설 프로토콜은 해설가들이 일관되게 적용할 정도로 명확하다. 이것은 생산 해설 파이프라인의 목표입니다. 대부분의 간단한 성공/실패 작업은 적절한 훈련으로 이 수준에 도달합니다.
- Kappa 0.6
0.8 (중심적 합의): 주의가 필요합니다. 해설가들이 동의하지 않는 사례를 논의하고 가장자리 사례의 정의가 명시되기 전까지 프로토콜을 업데이트하는 포스 리조리션 회의. 이 범위 내에서 카파를 가진 데이터 세트를 리조리션 없이 전송하지 마십시오. - Kappa < 0.6 (빈협): 작업 정의는 모호하다. 해설을 중지하고, 보다 명확한 성공 기준으로 프로토콜을 재설계하고, 처음부터 다시 해설한다.
자동화된 표기
자동화된 해독 방식은 두 가지 생산 준비가 되어 있습니다.
- ** 성공 분류기 CNN:** 각 에피소드의 마지막 10 프레임에 정렬된 ResNet-50, 바이너리 성공/실패 출력. RCSV의 내부 분류기는 표준 조작 작업에서 수행된 테스트 세트에서 92%의 정확성을 달성합니다. 신뢰할 수 있는 훈련을 위해 작업당 100+ 라벨 된 예제가 필요합니다. 인간 라벨 된 훈련 세트 구축된 후에 큰 데이터 세트에서 사용하십시오.
- 분자 탐지기 (HMM 관절 속도 + F/T): F/T 판을 감지하기 위해 관절 속도 프로파일과 F/T 판을 사용하여 훈련된 숨겨진 마코프 모델. 시각 처리 없이 작동하여 카메라 문제로 빠르고 견고하게합니다. 표준 픽플레이터 작업에서 ±3 프레임 내에서 약 85%의 세그먼트 경계 정확성을 달성합니다.
해설 작업 유형에 따라 복잡성
| Task Type | Annotation Types Needed | Time per 에피소드 | Difficulty |
|---|---|---|---|
| Simple pick-place | Success/fail + language | 30-60 sec | Low |
| Multi-step assembly | Success/fail + segments (8-12) + contact events + language | 3-5 min | High |
| 정밀도 insertion | Success/fail + contact events + quality score + F/T annotation | 2-4 min | High |
| Drawer/cabinet opening | Success/fail + segments (4-6) + language | 1-2 min | Medium |
| Cloth/deformable manipulation | Partial credit (0-100) + segments + quality score + language | 3-6 min | Very high |
| Bimanual coordination | Success/fail + per-arm segments + synchronization labels + language | 4-8 min | Very high |
간단한 선택 장소에서 쌍방향 해설에 대한 비용 곱수는 대략 8x입니다. 가장 간단한 작업에 따라 해설 시간을 예산하고 더 복잡한 작업으로 이동하는 팀은 실제 비용에 의해 지속적으로 놀라게됩니다. 작업 유형에 따라 해설 자원을 계획하고 에피소드 수를 기준으로하지 않습니다.
시간표 조율 과제
로봇 시범 데이터는 여러 비동시적 원천에서 나온다. 카메라가 3060fps, 합동 상태 가수 100500Hz, F/T 센서가 500~1000Hz, 그리고 변수 속도의 지갑 상태. 이러한 스트림들을 공통 시간선에 맞추는 것은 의미 있는 해설을 위한 필수 조건이다. 접촉 이벤트 시간표는 카메라와 공동 상태 시계가 유동되었기 때문에 해당 카메라 프레임이 실제 접촉에서 50ms로 이동되는 경우 쓸모가 없습니다.
표준 접근법은 하드웨어 트리거드 동기화입니다. 마스터 클럭은 동시에 카메라 프레임 캡처 및 F/T 센서 가수 판정을 촉발하는 트리거 파를 생성합니다. 하드웨어 동기화 없이는 소프트웨어 기반 타임 스탬프는 표준 리눅스 시스템에서 5-20ms의 전형적인 진동을 가지고 있으며 실시간 (PREEMPT_RT) 커널에서 1-5ms를 가지고 있습니다. 해설을 목적으로 소프트웨어 동기화는 성공/실패 및 언어 레이블을 위해 적당하지만 엄격한 시간 요구 사항 ( 삽입, 스냅-피트 집합) 을 가진 작업에 대한 접촉 이벤트 시간표에 충분하지 않습니다.
관찰해야 할 일반적인 조율 함정이: 내부적으로 버퍼 프레임을 추가하는 USB 카메라 (알 수없는 지연시간 30-100ms를 추가), 변수 코딩 지연을 추가하는 네트워크 카메라 (IP 카메라) 및 실제 측정 시간보다는 출판 시간을 반영하는 ROS2 주제 시간표. 항상 알려진 물리적 사건을 기록하여 (F/T 센서로 물체를 표면에 떨어뜨리는) 그리고 시각 접촉 프레임과 F/T 스피크가 필요한 용납량 내에서 조화를 이루는지 확인함으로써 조화를 확인합니다.
실패 의 경우 를 기록 하는 것: 부분적 인 성공 과 거의 실패
이진 성공/실패 해석은 최소한의 것이지만, 어떻게 그리고 왜 에피소드가 실패했는지에 대한 중요한 정보를 버립니다. 바이너리 필터링 데이터에만 훈련된 정책은 모든 실패를 똑같이 비정보적이라고 간주합니다. 실제로는 "로봇이 잘못된 방향으로 움직인 것" (저 정보) 에서 "로봇이 물체를 잡았지만 운송 중에 떨어뜨렸" (고등 정보 - 포착 전략이 옳았으며, 운송 단계는 작업이 필요합니다).
조작 작업에 대한 실질적인 부분 성공 분류:
- 점수 0-20 (완전 실패): 로봇은 객체에 접근하지 못하거나 완전히 잘못된 영역에 접근하지 않았습니다. 훈련 데이터에서 제외됩니다.
- 점 21-40 (정확한 접근, 착수 실패): 로봇은 올바른 영역에 도달했지만 안정적인 착수 확립을 하지 못했습니다. 훈련 접근 정책에 유용합니다. 풀 타스크 훈련에서 제외됩니다.
- 점 41-60 (잡는 것이 성공적, 임무는 실패): 로봇은 물체를 잡았지만 운송, 배치 또는 다음 단계에서는 실패했습니다. 훈련에 대한 체중 감소 (0.3-0.5x) 또는 단계별 훈련에 사용되는 것을 포함하십시오.
- 점수 61-80 (사업은 대부분 완료, 정확하지): 로봇은 작업을 완료했지만 품질이 좋지 않은 것 - 대략 올바른 영역에 배치된 물건이지만 정확하지 않거나, 느리게 수행된 작업은
이 운동으로 완료됩니다. 체중이 감소한 (0.7x) 또는 품질을 인식하는 훈련에 사용하십시오. - 점수 81-100 (품질 기하급수와 함께 성공): 작업이 성공적으로 완료되었다. 더 높은 점수는 더 부드럽고 더 빠르고 더 정확한 실행을 나타냅니다. 전체 무게를 포함합니다.
중량 샘플링을 이용한 부분적인 성공 점수를 가진 훈련은 바이너리 필터링을 지속적으로 우월합니다. RCSV의 실험에서 30%의 부분적 실패로 이루어진 데이터 세트에 중량 훈련은 가장 높은 점수를 얻은 70% 에피소드에서만 훈련된 정책보다 8-12% 더 강력한 정책을 생성했습니다.
질의 문: 해명 을 거부 할 때
모든 해설이 사용가능하지 않습니다. 재해설이나 에피소드 배제를 유발하는 명시적인 품질 게이트를 정의하십시오.
- *** 예고기자가 에피소드 비디오의 80% 미만을 예고하기 전에 본 경우 거부 (예고기 도구 분석을 통해 검출된다).
- **** 예견된 최소의 60% 이하의 해설 시간 (속행 해설은 신뢰할 수 없습니다. 5초에 검토된 30초의 에피소드는 제대로 평가되지 않았습니다.)
- **** 성공/실패 표지가 자동 분류자 출력과 동의하지 않는 경우 거부하고 해설자에서는 에피소드를 경계선으로 표시하지 않았습니다 (주의를 기울이지 않는 것을 나타냅니다, 진정한 동의가 아닙니다).
- **어 명령이 비디오에서 보이는 작업과 일치하지 않는 경우 거절합니다 (전용 복사-연착 레이블은 크라우드소스 해설과 함께 놀랍게도 흔합니다).
- ** 어떤 단계에 있어서도:** 세그먼트 경계 해설이 없어진 경우 거절한다 (완전한 해설은 훈련 유물을 만들어 낸다는 이유로 해설이 없는 것보다 더 나쁘다).
- ** 재검토 할 깃발:** 두 명의 해설자가 성공/실패에 대해 동의하지 않는 경우. 두 개의 해설은 상위 해설자가 결정하는 조화 줄을 이동하고, 이 의견의 차이로 모호성이 드러나는 경우 해설 프로토콜이 업데이트됩니다.
RCSV에서, 초기 해석은 약 8-12%가 품질 게이트를 실패하고 다시 해석은 것입니다. 이 거부율은 정상적이고 건강한 것입니다. 그것은 품질 게이트가 작동한다는 것을 나타냅니다. 0% 거부율은 게이트가 너무 허용된다는 것을 의미합니다.
해상 자료 비교 도구
| Tool | Type | Robot-Specific Features | Cost |
|---|---|---|---|
| Label Studio | Open-source | Video timeline annotation; custom label schemas; Python SDK for automation | Free / Enterprise |
| CVAT | Open-source | Frame-level annotation; interpolation; multi-track timeline | Free |
| Scale AI | Managed service | Trained annotator workforce; quality management; custom ontologies | $5-15/episode |
| Supervisely | Cloud platform | Video annotation; neural network-assisted labeling; team management | Free tier / paid |
| RCSV Platform | Integrated | Robot-native: synchronized multi-camera + joint state + F/T playback; auto-classifier pre-labels; kappa tracking | Included with data services |
로봇 특수한 해설을 위해, 일반 목적 도구 (Label Studio, CVAT) 는 동기화된 다모달 데이터를 처리하기 위해 상당한 사용자 정의가 필요합니다. 일반 도구에서 부족한 주요 기능은 일반적인 시간 라인에서 비디오, 공동 상태 음반 및 F / T 센서 데이터를 동기화 재생입니다. RCSV의 해설 인터페이스는이러한 사용 사례를 위해 특별히 구축되었습니다.
ROS2 시간표 동기화: 실용적 구현
ROS2를 데이터 수집 중소 소프트웨어로 사용하는 팀들에서는 모든 센서 모다리티에서 sub-5ms 시간표 조화를 달성하기 위해 권장하는 접근법입니다.
# sync_recorder.py -- ROS2 message_filters for synchronized recording
import rclpy
from rclpy.node import Node
from message_filters import ApproximateTimeSynchronizer, Subscriber
from sensor_msgs.msg import Image, JointState
from geometry_msgs.msg import WrenchStamped
import h5py, numpy as np
class SyncRecorder(Node):
def __init__(self):
super().__init__('sync_recorder')
# Subscribe to all sensor topics
self.cam_sub = Subscriber(self, Image, '/camera/color/image_raw')
self.joint_sub = Subscriber(self, JointState, '/joint_states')
self.ft_sub = Subscriber(self, WrenchStamped, '/ft_sensor/wrench')
# ApproximateTimeSynchronizer: 50ms slop tolerance
self.sync = ApproximateTimeSynchronizer(
[self.cam_sub, self.joint_sub, self.ft_sub],
queue_size=10,
slop=0.05 # 50ms max allowed timestamp difference
)
self.sync.registerCallback(self.synced_callback)
self.episode_data = []
def synced_callback(self, img_msg, joint_msg, ft_msg):
"""Called only when all three messages have near-matching timestamps."""
timestamp = img_msg.header.stamp.sec + img_msg.header.stamp.nanosec * 1e-9
self.episode_data.append({
'timestamp': timestamp,
'image': np.frombuffer(img_msg.data, dtype=np.uint8).reshape(480, 640, 3),
'joint_positions': np.array(joint_msg.position),
'joint_velocities': np.array(joint_msg.velocity),
'wrench': np.array([
ft_msg.wrench.force.x, ft_msg.wrench.force.y, ft_msg.wrench.force.z,
ft_msg.wrench.torque.x, ft_msg.wrench.torque.y, ft_msg.wrench.torque.z
]),
})
주요 구현 메모: (1) 소프트웨어 동기화된 시스템에서 50ms 기울기를 가진
확장된 품질 관문: 생산 표기 파이프라인
기본 품질 관문 이외에도 생산 해설 파이프라인은 이러한 추가적인 검사를 시행해야 한다.
| Quality Gate | Check Method | Threshold | Action if Failed |
|---|---|---|---|
| Timestamp alignment | Max camera-joint offset per episode | < 50ms (software) / < 10ms (hardware) | Discard episode; debug sync pipeline |
| Frame drops | Count gaps > 2x expected frame interval | < 3% of frames dropped | Interpolate if < 3 consecutive; discard episode if > 3 consecutive |
| Joint limit violation | Any joint within 2 deg of hard limit | Flag for review | Include if task succeeded; exclude if triggered safety stop |
| 에피소드 duration outlier | Duration > 3 sigma from task mean | Flag for review | Review video; may indicate operator hesitation or unusual strategy |
| Language label uniqueness | Detect identical labels on visually different episodes | > 20% unique labels in batch | Re-annotate batch; suspect copy-paste |
| 그리퍼 state consistency | Verify gripper open at start, closed during transport | Match expected phase sequence | Flag episodes where gripper sequence is anomalous |
| F/T spike detection | Force exceeds 2x task maximum | Flag for review | May indicate collision or unsafe contact; exclude from training |
| Camera image quality | Laplacian variance (blur detection) | Variance > 100 (focused image) | Discard blurry episodes; re-focus camera |
이러한 품질 게이트를 데이터 파이프라인에서 자동 검사로 구현하면 인간 검토 전에 70-80%의 데이터 품질 문제를 잡습니다. 나머지 20-30%는 인간 판단이 필요하며 표준 해설 QA 프로세스를 통해 처리됩니다. RCSV는 해설 시작하기 전에 수집된 모든 에피소드에서 자동으로 이러한 모든 검사를 실행합니다.
F/T 데이터에서 자동화된 접촉 사건 탐지
접촉 이벤트 시간표는 수동으로 제작하는 가장 많은 시간 소모한 해설물 중 하나입니다. F / T 센서를 포함하는 하드웨어 설정을 위해 자동 검출은 최소한의 인간의 감독으로 프레임 수준의 정확성을 달성 할 수 있습니다.
# contact_detector.py -- Automated contact event detection from F/T data
import numpy as np
from scipy.signal import savgol_filter
class ContactEventDetector:
"""Detect first contact, stable grasp, and release from F/T readings."""
def __init__(self, force_threshold=2.0, stable_window=10, release_threshold=0.5):
self.force_threshold = force_threshold # Newtons
self.stable_window = stable_window # frames
self.release_threshold = release_threshold # Newtons
def detect_events(self, ft_data, timestamps):
"""
Args:
ft_data: (N, 6) array of [fx, fy, fz, tx, ty, tz]
timestamps: (N,) array of timestamps in seconds
Returns:
dict with 'first_contact', 'stable_grasp', 'release' timestamps
"""
force_magnitude = np.linalg.norm(ft_data[:, :3], axis=1)
# Smooth to remove sensor noise
force_smooth = savgol_filter(force_magnitude, window_length=7, polyorder=2)
events = {}
# First contact: force exceeds threshold for the first time
contact_mask = force_smooth > self.force_threshold
if contact_mask.any():
idx = np.argmax(contact_mask)
events['first_contact'] = timestamps[idx]
# Stable grasp: force stays above threshold for stable_window frames
for i in range(idx, len(force_smooth) - self.stable_window):
if all(force_smooth[i:i+self.stable_window] > self.force_threshold):
events['stable_grasp'] = timestamps[i]
break
# Release: force drops below release_threshold after stable grasp
if 'stable_grasp' in events:
grasp_idx = np.searchsorted(timestamps, events['stable_grasp'])
post_grasp = force_smooth[grasp_idx:]
release_mask = post_grasp < self.release_threshold
if release_mask.any():
rel_idx = grasp_idx + np.argmax(release_mask)
events['release'] = timestamps[rel_idx]
return events
이 탐지기는 기본 매개 변수를 가진 표준 픽플레이스 작업에서 90% 이상의 정확성을 달성합니다. 삽입 작업에서는
해상도 파이프라인 건축
로봇 데이터의 생산 해설 파이프라인은 이 구조를 따라야 하며, 수집부터 훈련 준비된 출력까지 순서대로 이루어져야 한다.
- ** 컬렉션 레이어:** 모든 모다리얼 (카메라, 합동 상태, F/T, 지착) 을 하드웨어 타임 스탬프로 HDF5 에피소드 파일로 동기화 기록.
- ** 자동화된 사전 처리:** 자동화된 품질 게이트 (시간표 조율, 프레임 드롭 탐지, 흐릿성 탐지) 및 자동화된 분류기를 실행하십시오 (성공/실패 CNN, 접촉 이벤트 탐지). 이 계층은 인간 검토 전에 에피소드의 ~15-20%를 표시하거나 배제합니다.
- 제1단계 해설 (자동화 + 현장 확인): 높은 자동 분류자 정확도가 (>90%) 있는 간단한 작업에 대해서는 10% 인체 현장 확인을 하는 자동 라벨을 받아 들인다. 자동 라벨과 인간 사이의 의견 차이점은 Tier 2로 이동합니다.
- 제2층 해독 (인류 초등): 복잡한 작업, 경계 사례 및 언어 해독에 대한 경우. 각 에피소드는 독립적인 해독자 2명이 검토한다.
- ** 화해:** 해설자 들 이 동의 하지 않는 에피소드는 상위 해설자 에 의해 검토 됩니다. 이 의견 이 불일치 를 드러내면 프로토콜 이 업데이트 됩니다. 화해 된 라벨 은 최종적 이다.
- 출출: 예고된 에피소드 (LeRobot HDF5 또는 RLDS) 를 훈련 준비 형식으로 수출하여 예고 메타데이터 (예고자 ID, 예고 시간, 신뢰, 해당 배트의 카파 점수) 를 포함합니다.
**실실 분석 해설:**실실실된 시범에 대해 미리 정의된 분류학에서 구조화된실실실의 원인 라벨을 추가하십시오: (a) 인식실실 (물질이 잘못 감지되거나 위치되지 않은), (b) 잡기실실 (물질이 미끄러지거나 획득되지 않은), (c) 운송실실 (물질이 이동 중에 떨어지는), (d) 배치실실 (물질이 잘못된 위치 또는 방향에 배치된), (e) 타임아웃 (사업이 시간 내에 완료되지 않은) 이러한 실패 분류는 수집 품질의 자동 분석과 목표 데이터 회수 기능을 가능하게 합니다. 예를 들어, 실패의 40%가 포착 실패가 있다면, 운영자는 전체 작업의 더 많은 시범보다 포착 기술에 대한 재교육이 필요합니다.
이러한 계층적 접근법은 품질을 유지하면서 완전한 인간 표기 비용과 비교하여 60-70%로 인적 표기 비용을 감소시킵니다. RCSV는 모든 데이터 수집 작업에 대해 이 파이프라인을 운영하며 자동화된 계층이 일상적인 표기 작업을 처리하고 인적 표기자가 판단을 필요로 하는 경우에 초점을 맞추고 있습니다.
언어 표기법 최선 실습
언어 해석은 VLA의 정렬 및 언어 조건 정책 훈련에 매우 중요합니다. 언어 레이블의 품질은 배치 시 지침을 따르는 정책의 능력에 직접적으로 영향을 미칩니다. 이 지침을 따르십시오:
- ** 최소 두 가지 속성으로 객체를 지정하십시오.** "컵을 들어보세요"는 충분하지 않습니다. "붉은 플라스틱컵을 들어보세요"는 최소입니다. " 테이블의 왼쪽에서 높은 빨간 플라스틱컵을 들어보세요"는 다중 객체 장면에서 이상적입니다.
- ** 관련 있는 경우 공간적 참조를 포함하십시오.** "트레이에 있는 장소"는 모호하다. "백 트레이의 중앙에 있는 장소" 또는 "트레이에 있는 장소, 그릇의 왼쪽"는 정책이 공간적 추론을 배우도록 돕는 공간적 지형을 제공합니다.
- 언어 다양하게 사용한다. 각 에피소드마다 동일한 템플릿을 사용하지 마십시오. 같은 동작을 위해 "픽업", "그래스", "그래브", "테이크"를 대기로 사용하세요. "포트"과 "포트"을 모두 사용하세요. 이 변형은 추론 시 자연어 다양성을 처리하는 정책을 가르칩니다.
- ** 대부분의 작업에 있어서 단계 수준이 아니라 작업 수준에 표시하십시오.** "붉은 잔을 들고 트레이에 올려 놓으십시오"는 선택과 장소 에피소드 에 대한 단일 작업 지침입니다. 단계 레벨 레이블 ("잔을 찾아," "밀착 괄호," "리프트," "우측으로 이동," "열린 괄호") 는 세그먼트 조건 정책에서만 필요합니다.
- ** 템플릿 검증을 사용하세요.** 작업에 대한 유효한 객체 이름, 색상 및 공간 참조의 집합을 정의하십시오. 이 어휘에 대한 모든 해설을 확인하십시오. 철자 오류 및 불합리한 명칭 (어떤 해설에서 "mug" 및 다른 개체에서 "cup"를 사용하여) 언어 앵코더에 불필요한 소음을 만듭니다.
- 네게티브 명령어를 포함하십시오. 다중 객체 장면에 대해, 어떤 객체를 선택하지 않는지 명시하는 명령어를 포함하십시오 ("황색 컵을 선택하십시오, 파란색을 선택하지 마십시오"). 부정적인 명령어를 사용하는 훈련은 정책의 유사한 객체 사이의 분분할 능력을 향상시켜서, 긍정적 인 명령어에 비해 다중 객체 장면 성공률을 8-12% 향상시킵니다.
- **수집 후에 게 아니라 수집 후에 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 게 된 에피소드 비디오를 보는 전용 해설자는 원전 작업 중에 멀티태스킹하는 운영자보다 더 나은 지침을 (더 구체적이고 더 일관된) 작성할 수 있습니다.
과제 복잡성별로 해독 비용 분배
해설비 비용은 작업 복잡성과 필요한 해설비의 수준에 따라 크게 달라진다. 이러한 비용을 이해하는 것은 데이터 수집 프로젝트를 예산화하는 데 중요합니다.
| Annotation Type | Time per 에피소드 | Cost per 에피소드 | Automation Potential | Required For |
|---|---|---|---|---|
| Binary success/failure | 5-10 seconds | $0.10-0.25 | 90%+ (CNN classifier) | All training pipelines |
| Language instruction label | 15-30 seconds | $0.25-0.75 | 50-70% (template + VLM) | VLA fine-tuning, language-conditioned policies |
| Phase segmentation (4 phases) | 30-60 seconds | $0.50-1.50 | 60-80% (contact detector + heuristics) | Segment-conditioned training, curriculum learning |
| Partial credit scoring (0-100) | 30-90 seconds | $0.75-2.00 | 20-40% (requires judgment) | Weighted BC training, reward shaping |
| Object 6-DOF pose per frame | 5-15 min | $5-20 | 70-85% (FoundationPose + refinement) | Object-centric policy training, grasp analysis |
| Full semantic scene graph | 10-30 min | $10-40 | 30-50% (VLM + manual review) | Scene understanding, task planning research |
대부분의 모방 학습 프로젝트에서, 바이너리 성공/실패 레이블과 언어 교육 레이블은 최소한의 실행 가능한 해설 집합입니다. 이것은 규모의 에피소드당 0.35-1.00 달러에 달하며, 해설의 60-80%가 자동화됩니다. 단계 세그먼트는 커리 ?? 럼 학습 접근에 대한 가치를 추가하지만 해설 비용을 두 배로 증가시킵니다. 완전한 6-DOF 포즈 해석은 특정 연구 필요에만 정당화됩니다. 표준 정책 교육에서는 더 저렴한 해석은 종류에 비해 최소한의 혜택을 제공합니다.
VLM와 스케일링 해상: 로봇 데이터에 GPT-4V와 Gemini를 이용
시각 언어 모델 (VLM) 은 이전에 인간 판단이 필요한 해설 작업을 자동화하는 데 점점 더 유용합니다. 여기 RCSV는 해설 파이프라인에 VLM를 통합하는 방법입니다.
어 명령 생성. "이전/후 사진에서 보여지는 조작 작업을 설명하십시오. 객체 (색, 재료, 모양) 및 수행된 동작에 대해 구체적으로 설명하십시오. 10-15 단어를 사용하십시오". VLM는 표준 선택 장소 작업에 대해 85-90% 정확도로 자연어 명령어를 생성합니다. 인간 리뷰어는 에피소드당 5-10초에 나머지 10-15%를 수정합니다 (검사는 처음부터 쓰는 것보다 더 빠르다).
** 성공/실패 확인.** 마지막 프레임을 VLM에 보내어: "로봇은 [task instruction]를 요청받았다. 마지막 장면에 따라 작업이 성공적으로 완료되었는가? 신뢰 점수를 가지고 예 또는 아니오로 대답하십시오". VLM는 선택 장소 및 스택 작업에 대해 바이너리 성공 분류에서 88-93%의 정확성을 달성하고, 시각적으로 미묘한 성공이있는 삽입 및 조립 작업에 대해 75-82%로 떨어집니다.
**실종 모드 분류.**실종 에피소드 에 대해 VLM는 오류 유형을 분류 할 수 있습니다. "로봇은 (a) 객체를 잡지 못했고, (b) 운송 중에 객체를 떨어뜨렸거나, (c) 객체를 잘못된 위치에 배치했거나, (d) 다른 것"이 있습니다. 이 분류는 목표 데이터 수집을 안내하는 오류 분석에 공급됩니다. 정확성: 4 개의 표준 카테고리에서 80-85%.
** 비용 영향:** VLM 지원 해석은 언어 레이블에서 40%~60%, 바이너리 레이블에서는 70%로 인간 해석은 시간을 줄입니다. 현재 API 가격 (GPT-4V는 이미지 쌍당 ~0.01달러, Gemini는 ~0.005달러) 에서 VLM 추론 비용은 인간의 시간 절약과 비교하여 무시할 수 있습니다. 순 효과는 에피소드 당 전체 해석은 비용의 30-50% 감소입니다.
품질 보장 측정: 무엇을 추적하고 무엇을 목표로 해야 하는가
기록 질은 시간적으로 수치화되고 추적되어야 합니다. 이것은 모든 데이터 수집 작업에 대한 RCSV 모니터링 메트릭스이며, 50개 이상의 프로젝트에서 우리의 경험을 바탕으로 목표 임대값을 설정합니다.
- 조명자 간 합의 (Cohen's kappa). 바이너리 라벨: 목표 카파 > 0.90 (가 거의 완벽한 합의) 로어 라벨: 문장-BERT 임베디드를 사용하여 표기자 설명들 사이의 의미적 유사성을 계산한다. 목표 코시네 유사성 > 0.85. 단계 경계: +/- 3 프레임 (100ms 30fps에서) 내 목표 합의.
- 노테이션 처리량. 각 노테터당 시간당 노테이션된 트랙 에피소드. 예상 속도 80% 이하의 처리량 (노테이션 타입 복잡성에 기초하여) 는 프로토콜 명확화를 필요로 하는 작업 모호함 또는 휴식을 필요로 하는 노테터 피로움을 나타냅니다.
- 정정비율. 인간 검토자들에 의해 수정된 VLM 생성된 라벨의 분수를 추적한다. 20% 이상의 수정율은 VLM 프롬프트의 정리가 필요하거나 작업이 자동화된 해설을 하기에는 너무 복잡하다는 것을 나타냅니다. 10% 이하의 경우 인간 검토가 종합적인 것이 아니라 샘플링될 수 있음을 암시합니다.
- 하루스트림 교육 효과. 궁극적인 품질 측정: 해고된 데이터에 대한 정책을 훈련하고 성공률을 측정합니다. 더 많은 해고 (예를 들어 단계 경계가) 를 추가하면 적어도 3%의 정책 개선이 되지 않는다면 추가 해고 비용은 그 작업에 정당화되지 않습니다.
RCSV 표기 파이프라인
RCSV의 데이터 수집 서비스는 표준으로 해설을 포함합니다. 수집된 모든 에피소드는: 바이너리 성공/실패 레이블 (자동화 + 국경 사례에 대한 인간 검토), 언어 명령 레이블 (프로토콜에 따라 정의된 작업), 네 단계 세그먼트 경계가 (reach/graasp/transport/place), 그리고 F/T 센서가있는 접촉 이벤트 시간표가 제공됩니다. 추가적인 해설 유형 (부부 신용 점수, 확장된 세그먼트 집합, 품질 점수) 은 추가로 제공됩니다.
모든 해설은 해설자 간 합의 메트릭 (해설 유형당 카파 점수) 과 카파 < 0.8 케이스의 문서화 조화 기록에 의해 함께 제공됩니다.
로봇 데이터에 대한 표기 도구 요구 사항
오프-더-레프트 이미지 아노테이션 도구 (Labelbox, CVAT, Label Studio) 는 단일 이미지 분류 및 경계 상자 작업에 설계되었습니다. 로봇 에피소드 아노테이션은 대부분의 일반적인 도구가 상자 밖으로 지원하지 않는 특정 요구 사항을 가지고 있습니다.
- ** 다 모달 동기화.** 해독 도구는 자기감각 시간 시리즈 (관각, F/T 판독) 및 행동 신호와 함께 여러 카메라에서 동기화 된 비디오를 표시해야합니다. 해독자는 전체 맥락을 볼 필요가 있습니다. 손목 카메라, 자기감각 데이터 및 때로는 상면 카메라에서 동시에 지갑 닫기 이벤트가 보입니다.
- 시간적 해상. 단일 프레임을 표시하는 이미지 해상과 달리, 로봇 해상에는 비디오 시간 라인을 통해 스크래핑하여 시간적 경계를 표시하는 것이 필요합니다. 도구는 프레임 정확한 시간적 표시를 30-50 fps 해상도로 지원해야합니다.
- ** 에피소드 레벨 메타데이터.** 각 에피소드에는 구조화된 메타데이터가 필요합니다. 성공/실패, 작업 명령, 품질 점수, 운영자 ID, 수집 조건. 도구는 작업에 따라 변경되는 사용자 정의 가능한 메타데이터 스케임을 지원해야합니다.
- 배치 검토 작업 흐름.* 리뷰어는 자동화된 품질 점수, 플래그 불일치, 자동화된 검사 통과하는 대량 승인 배치를 기준으로 에피소드를 분류할 수 있어야 합니다. 배치 작업 흐름 지원 없이, 인간 검토는 규모의 병목이 됩니다 (500+ 에피소드).
RCSV의 해설 플랫폼은 로봇 데이터에 맞게 설계되어 네 가지 요구 사항을 모두 지원합니다. 자체 해설 도구를 만드는 팀들을 위해, 사용자 지정 프론트엔드 확장 프로그램을 가진 레이블 스튜디오는 가장 유연한 오픈소스 출발점입니다.
관련 독서
- [로봇의 모방 학습: 시범 시범부터 배포까지]
- [로봇 학습: 시범 분석에 따른 비용]
- [레로봇 프레임워크: 시작 가이드]
- [로봇 정책 일반화: 왜 당신의 로봇이 새로운 물체에서 실패하는 지]
- [오픈 X-체체: 모든 것을 변화시킨 로봇 데이터 세트]
- [RCSV 데이터 수집 서비스]
- [RCSV 데이터 플랫폼]
훈련 준비 된 기록 된 데이터 세트
RCSV는 문서화된 품질 측정표와 표기자 간 합의 보고서를 가진 완전히 표기된 로봇 시범 데이터 세트를 제공합니다.
[데이터 서비스를 탐구]







