Anotado de la trayectoria del robot: retos, métodos y estándares de calidad
Cómo anotar los datos de demostración de robots <unk> etiquetas de lenguaje, etiquetas de éxito/fallo, eventos de contacto y estándares de calidad para conjuntos de datos preparados para la formación.
Parte de: [Guía de recogida de datos de robots]
[← Blog]
Los datos de teleoperación no son datos de entrenamiento. La anotación transforma las trayectorias en etiquetas estructuradas que realmente enseñan políticas.
Por qué es importante la anotación
Una sesión de teleoperación robótica produce una trayectoria: una secuencia indecida en el tiempo de estados conjuntos, marcos de cámara y poses de efecto final. Los algoritmos como ACT, la política de difusión y la clonación de comportamiento necesitan saber qué episodios tuvieron éxito (para entrenar) y cuáles no (para excluir o reducir el peso). Los algoritmos de aprendizaje de contacto requieren sellas de tiempo del primer contacto, captura estable y eventos de liberación.
La anotación es el proceso de agregar esta información estructurada. Es lento, requiere juicio humano y es fácil hacer errores de manera que degradan la calidad de la política. Un conjunto de datos con etiquetas de éxito inconsistentes producirá una política que ha aprendido a imitar algunos fracasos. Un conjunto de datos con instrucciones de lenguaje vagas producirá una política que no puede generalizarse a las instrucciones en el momento de la inferencia.
Los cinco tipos de anotación
- 1. Éxito / fracaso de la tarea: El paso / fracaso binario es el mínimo. Para fines de entrenamiento, el binario a menudo es suficiente, pero una puntuación de crédito parcial de 0
100 agrega información: una comprensión que tuvo éxito pero fue lenta y incómoda es diferente de una que fue rápida y limpia. Las puntuaciones de crédito parciales de 0 30 (fallo claro), 31 69 (parcial/margenal), 70 100 (éxito con gradiente de calidad) proporcionan una mejor señal para el aprendizaje de los planes de estudios y la ponderación de datos. - 2. Instrucción de lenguaje: "Coger la taza roja" es mejor que "recoger el objeto". "Coger la taza de plástico roja cilíndrica de su cuerpo, no del borde, y colocarla verticalmente en la bandeja blanca" es aún mejor para tareas de granos finos. La instrucción debe especificar los atributos de objetos relevantes para la tarea (color, forma, material cuando corresponda), la estrategia de captura deseada si es específica y el estado de objetivo. Evite las instrucciones de nombre de objeto ("recoger la taza") para conjuntos de datos destinados a la ajuste fino del modelo de base.
- 3. Etiquetas de segmentos: Dividir cada episodio en fases (alcanzamiento, captura, transporte, lugar) permite políticas de fase condicionada y análisis de datos más dirigidos. Un mínimo de cuatro fases para las tareas estándar de selección de lugar. Las tareas de ensamblaje pueden requerir 8
12 segmentos. Los límites de los segmentos deben marcarse a nivel de video, no solo el índice de acción. - 4. Tempos de contacto: Para las tareas de aprendizaje de contacto (inserción, montaje, seguimiento de superficie), los tempos precisos para el primer contacto (el agarre toca el objeto), el agarre estable (la fuerza de contacto se estabiliza por encima del umbral) y la liberación (el agarre se abre, el objeto libre) son esenciales para aprender comportamientos condicionados al contacto. El error de anotación manual en las marcas de tiempo de contacto debe ser <5 cuadros (167 ms a 30 fps).
- 5. Puntuaciones de calidad: Más allá del éxito/fallo, las métricas de calidad por episodio informan la ponderación de los datos durante el entrenamiento.
Métodos de anotación Comparación
| 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 |
Acuerdo entre los anotadores
La kappa de Cohen es la medida estándar del acuerdo entre los anotadores, ajustado para el acuerdo casual.
- Kappa > 0.8 (concordanza fuerte): La definición de tareas y el protocolo de anotación son lo suficientemente claros como para que los anotadores los apliquen de manera consistente.
- Kappa 0.6
0.8 (acordo moderado): Requiere atención. Reuniones de reconciliación forzadas en las que los anotadores discuten casos en desacuerdo y actualizan el protocolo hasta que la definición de casos de borde sea explícita. No envíe un conjunto de datos con kappa en este rango sin reconciliación. - Kappa < 0.6 (pauvre acuerdo): La definición de tarea es ambigua. Detener la anotación, rediseñar el protocolo con criterios de éxito más claros y volver a anotear desde cero. La capacitación en datos anotados con kappa < 0.6 produce políticas con comportamiento inconsistente que es extremadamente difícil de deshacer.
Anotamiento automático
Dos enfoques de anotación automática están listos para la producción:
- Clasificador de éxito CNN: ResNet-50 afinado en los últimos 10 cuadros de cada episodio, salida binaria de éxito/fallo. El clasificador interno de RCSV logra una precisión del 92% en los conjuntos de pruebas realizados en tareas de manipulación estándar. Requiere más de 100 ejemplos etiquetados por tarea para entrenar confiablemente. Utilización para grandes conjuntos de datos después de que se establezca un conjunto de entrenamiento etiquetado por humanos.
- ** Detector de segmentos (HMM en velocidad conjunta + F/T):** Modelo de Markov oculto entrenado en perfiles de velocidad conjunta y lecturas de F/T para detectar límites de fase. Funciona sin ningún procesamiento visual, lo que lo hace rápido y robusto para los problemas de la cámara.
Complejidad de anotación por tipo de tarea
| Task Type | Annotation Types Needed | Time per Episodio | 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 |
| Precisión 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 |
El multiplicador de costos desde el simple lugar de selección hasta la anotación bimanual es aproximadamente 8x. Los equipos que presupuestan el tiempo de anotación basado en sus tareas más simples y luego se mueven a tareas más complejas se sorprenden constantemente por el costo real. Planifique los recursos de anotación por tipo de tarea, no por conteo de episodios.
Los desafíos de la alineación de las marcas de tiempo
Los datos de demostración del robot provienen de múltiples fuentes asincronas: cámaras a 30-60 fps, lecturas de estado de articulación a 100-500 Hz, sensores F/T a 500-1000 Hz y estado de agarre a velocidades variables. Alinear estas corrientes a una línea de tiempo común es un requisito previo para una anotación significativa. Una marca de tiempo de evento de contacto es inútil si el marco de la cámara al que corresponde se compensa en 50 ms del contacto real porque la cámara y los relojes de estado conjunto se desplazaron.
El enfoque estándar es la sincronización activada por hardware: un reloj maestro genera un pulso de disparador que activa simultáneamente la captura de fotogramas de la cámara y las lecturas de tiempo del sensor F/T. Sin sincronización de hardware, las marcas de tiempo basadas en software tienen un temblor típico de 5-20 ms en un sistema Linux estándar y 1-5 ms en un núcleo en tiempo real (PREEMPT_RT). Para fines de anotación, la sincronización de software es adecuada para el éxito/fallo y las etiquetas de lenguaje, pero insuficiente para las fichas de tiempo de los eventos de contacto en tareas con requisitos de tiempo ajustados (inserción, montaje de ajuste instantáneo).
Trampas de alineación comunes para observar: cámaras USB que almacenan enmarcos internos (agregando 30-100 ms de latencia desconocida), cámaras de red (cámaras IP) que añaden retraso en codificación variable y timestamps de temas ROS2 que reflejan el tiempo de publicación en lugar de tiempo de medición real. Verifique siempre la alineación registrando un evento físico conocido (arresto de un objeto en una superficie con un sensor de F/T) y comprobando que el marco de contacto visual y el picón de F/T se alineen dentro de la tolerancia requerida.
Los casos de fracaso: éxitos parciales y casi errores
La anotación binaria de éxito/fallo es el mínimo, pero descartará información crítica sobre cómo y por qué los episodios fallaron. Una política entrenada sólo en datos filtrados binarios trata todos los fallos como igualmente poco informativos, cuando de hecho hay un espectro de "robot movido en la dirección equivocada" (información baja) a "robot agarrado el objeto pero se cayó durante el transporte" (información alta - la estrategia de agarramiento era correcta, la fase de transporte necesita trabajo).
Una taxonomía práctica de éxito parcial para las tareas de manipulación:
- Punto 0-20 (fallo completo): El robot no se acercó al objeto o se acercó a una región completamente incorrecta.
- Punto 21-40 (aproximación correcta, captura fallida): El robot alcanzó la región correcta pero no logró establecer una captura estable.
- Punto 41-60 (apagado exitoso, tarea fallida): El robot agarró el objeto pero no logró durante el transporte, la colocación o una fase posterior.
- Punto 61-80 (tarea en su mayoría completa, imprecisa): Robot completó la tarea pero con mala calidad - objeto colocado aproximadamente en el área correcta pero no con precisión, o tarea completada lentamente con movimientos tirantes. Incluye a un peso reducido (0.7x) o uso para el entrenamiento consciente de la calidad.
- **Punto 81-100 (successo con gradiente de calidad):**Trabajo completado con éxito.
En los experimentos de RCSV, el entrenamiento ponderado en un conjunto de datos con fallas parciales del 30% produjo políticas que eran 8-12% más sólidas que las políticas entrenadas solo en el 70% de los episodios con puntajes superiores.
Puertas de calidad: cuándo rechazar las anotaciones
No todas las anotaciones son utilizables. Definir puertas de calidad explícitas que desencadenan la re-anotación o exclusión de episodios:
- Rechazar si: el anotador ha visto menos del 80% del vídeo del episodio antes de etiquetarlo (detectable mediante análisis de herramientas de anotación).
- Rechazar si: el tiempo de anotación es inferior al 60% del mínimo esperado (las anotaciones de velocidad no son confiables - un episodio de 30 segundos revisado en 5 segundos no fue evaluado adecuadamente).
- Rechazar si: etiqueta de éxito/fallo no está de acuerdo con la salida automática del clasificador Y el anotador no marcó el episodio como límite (indica falta de atención, no un desacuerdo genuino).
- Rechazar si: la instrucción de idioma no coincide con la tarea visible en el video (las etiquetas genéricas de copia y pegada son sorprendentemente comunes con la anotación de crowdsource).
- Rechazar si: faltan anotaciones de los límites del segmento para cualquier fase (las anotaciones incompletas son peores que las no anotaciones porque crean artefactos de entrenamiento).
- Banderada para revisión si: dos anotadores no están de acuerdo sobre el éxito/fallo. Ambas anotaciones van a una cola de reconciliación donde un anotador superior decide y el protocolo de anotación se actualiza si el desacuerdo revela ambigüedad.
En RCSV, aproximadamente el 8-12% de las anotaciones iniciales fallan en las puertas de calidad y se vuelven a anotear. Esta tasa de rechazo es normal y saludable - indica que las puertas de calidad están funcionando. Una tasa de rechazo del 0% significa que las puertas son demasiado permisivas.
Herramientas de anotación Comparación
| 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 |
Para la anotación específica de robots, las herramientas de propósito general (Label Studio, CVAT) requieren una personalización significativa para manejar datos sincronizados multimodal. La característica clave que falta en las herramientas generales es la reproducción sincronizada de video, gráficos de estado conjunto y datos de sensores F / T en una línea de tiempo común. La interfaz de anotación de RCSV fue construida específicamente para este caso de uso.
Sincronización de marcas de tiempo ROS2: implementación práctica
Para los equipos que utilizan ROS2 como su middleware de recopilación de datos, aquí está el enfoque recomendado para lograr la alineación de timestamp sub-5ms en todas las modalidades de sensores.
# 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
]),
})
Nota clave de implementación: (1) Use
Puertas de calidad ampliadas: Anotado de producción
Además de las puertas de calidad básicas, las líneas de producción de anotación deben aplicar estos controles adicionales.
| 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 |
| Episodio 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 |
| Gripper 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 |
Implementar estas puertas de calidad como controles automatizados en su pipeline de datos capta el 70-80% de los problemas de calidad de datos antes de la revisión humana. El restante 20-30% requiere juicio humano y se manejan a través del proceso de calificación de anotación estándar. RCSV ejecuta todos estos controles automáticamente en cada episodio recogido antes de comenzar la anotación.
Detección automática de eventos de contacto a partir de datos de F/T
Las marcas de tiempo de eventos de contacto son algunas de las anotaciones más tardías para producirlas manualmente. Para las configuraciones de hardware que incluyen sensores F/T, la detección automática puede lograr una precisión de nivel de marco con una supervisión humana mínima.
# 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
Este detector logra una precisión superior al 90% en tareas de pick-place estándar con los parámetros predeterminados. Para tareas de inserción, reduzca
Anotation Arquitectura de tuberías
Una línea de anotaciones de producción para los datos de los robots debe seguir esta arquitectura, ordenada desde la recopilación hasta la salida preparada para la formación:
- Collección de capa: Grabación sincronizada de todas las modalidades (cámara, estado de unión, F/T, agarre) en archivos HDF5 de episodio con sello de tiempo de hardware.
- ** Preprocesamiento automático:** Ejecutar puertas de calidad automatizadas (alineamiento de timestamps, detección de caídas de fotogramas, detección de borros) y clasificadores automatizados (suceso/fallo de CNN, detector de eventos de contacto). Esta capa señala o excluye el ~15-20% de los episodios antes de que los revise un ser humano.
- Anotamiento de nivel 1 (automático + control de punto): Para tareas simples con una alta precisión de clasificación automática (> 90%), acepta etiquetas automáticas con un control de punto humano del 10%.
- Anotamiento de nivel 2 (primaria humana): Para tareas complejas, casos fronterizos y anotaciones lingüísticas. Cada episodio revisado por dos anotadores independientes.
- Conciliación: Los episodios en los que los anotadores no están de acuerdo son revisados por un anotador superior.
- Exportación: Episodios anotados exportados en formato preparado para la formación (LeRobot HDF5 o RLDS) con metadatos de anotación (ID del anotador, tiempo de anotación, confianza, puntaje de kappa para ese lote).
Anotadas del análisis de fallos: Para las demostraciones fallidas, añada una etiqueta de causa de fallos estructurados de una taxonomía predefinida: (a) fallos de percepción (objeto no detectado o localizado incorrectamente), (b) fallos de agarre (objeto deslizado o no adquirido), (c) fallos de transporte (objeto caído durante el movimiento), (d) fallos de colocación (objeto colocado en una posición o orientación incorrecta), (e) tiempo de espera (tarefa no completada dentro del plazo). Esta taxonomía de fallos permite un análisis automatizado de la calidad de la recogida y la recogida de datos dirigidos. Por ejemplo, si el 40% de las fallos son fallos de captura, el operador necesita una nueva formación sobre la técnica de captura en lugar de más demostraciones de la tarea completa.
Este enfoque de niveles reduce el costo de anotación humana en un 60-70% en comparación con la anotación humana completa mientras se mantiene la calidad. RCSV dirige esta tubería para todos los compromisos de recopilación de datos, con las capas automatizadas que manejan la anotación de rutina y los anotadores humanos que se centran en los casos que requieren juicio.
Las mejores prácticas para la anotación lingüística
Las anotaciones de idiomas son fundamentales para el ajuste de las políticas de VLA y la formación de las políticas en el idioma.
- Especifique el objeto con al menos dos atributos. "Coger la taza" es insuficiente. "Coger la taza de plástico roja" es mínimo. "Coger la taza de plástico roja alta del lado izquierdo de la mesa" es ideal para escenas de múltiples objetos.
- Incluir referencias espaciales cuando sea pertinente. "Locar en la bandeja" es ambigua. "Locar en el centro de la bandeja blanca" o "Locar en la bandeja, a la izquierda del tazón" proporciona una tierra espacial que ayuda a la política a aprender el razonamiento espacial.
- Lenguaje natural diferente. No use la misma plantilla para cada episodio. Alterna entre "recoger", "agarrar", "agarrar" y "tomar" para la misma acción. Utilice tanto "poner" como "ubicar". Esta variación enseña a la política a manejar la diversidad de lenguaje natural en el momento de la inferencia.
- Etiquetas a nivel de tarea, no a nivel de paso, para la mayoría de las tareas. "Coger la taza roja y colocarla en la bandeja" es una sola instrucción de tarea para un episodio de selección y ubicación. Las etiquetas a nivel de paso ("llegar a la taza," "garrapa cercana," "lift," "mover a la derecha," "garrapa abierta") son necesarias solo para las políticas de segmento.
- Use validación de plantilla. Definir un conjunto de nombres de objetos válidos, colores y referencias espaciales para su tarea. Compruebe todas las anotaciones en relación con este vocabulario. Erróneos de ortografía y nombres inconsistentes (utilizando "mug" en algunas anotaciones y "cup" en otras para el mismo objeto) crean ruido innecesario para el codificador de lenguaje.
- Incluir instrucciones negativas. Para escenas de múltiples objetos, incluya instrucciones que especifiquen cuál objeto NO debe ser elegido ("coge la taza roja, no la azul").
- Anotar después de la recogida, no durante. Algunos equipos piden a los operadores que hablen instrucciones de tareas durante la teleoperación. Esto divide la atención del operador y degrada la calidad de la demostración. Un anotador dedicado que ve videos de episodios puede escribir mejores instrucciones (más específicas, más consistentes) que un operador multi-tareas durante la teleoperación.
Desglose de los costes de anotación por complejidad de tarea
El coste de la anotación varía considerablemente con la complejidad de la tarea y el nivel de detalle de anotación requerido.
| Annotation Type | Time per Episodio | Cost per Episodio | 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 |
Para la mayoría de los proyectos de aprendizaje de imitación, las etiquetas binarias de éxito/fallo más las etiquetas de instrucción de idiomas son el conjunto de anotaciones mínimo viable. Esto cuesta $0.35-1.00 por episodio a escala, con 60-80% de la anotación automatizada. La segmentación de fase agrega valor para los enfoques de aprendizaje del currículo pero duplica el costo de anotación. La anotación completa de la postura de 6-DOF solo se justifica para necesidades específicas de investigación - para la formación de políticas estándar, proporciona un beneficio mínimo sobre los tipos de anotación más baratos.
Anotado de escala con VLM: uso de GPT-4V y Gemini para datos de robots
Los modelos de lenguaje de visión (VLM) son cada vez más útiles para automatizar las tareas de anotación que previamente requerían juicio humano.
Generación de instrucciones de lenguaje. Envía el primer y último cuadro de un episodio a GPT-4V o Gemini con el aviso: "Describa la tarea de manipulación que se muestra en estas imágenes antes/después. Sé específico sobre el objeto (color, material, forma) y la acción realizada. Utilice 10-15 palabras". Un revisor humano corrige el restante 10-15% en 5-10 segundos por episodio (la verificación es más rápida que escribir desde cero).
** Verificación de éxito/fallo.** Envía el marco final al VLM con el mensaje: "El robot fue solicitado a [instrucción de tarea]. Responda sí o no con una puntuación de confianza". Los VLM alcanzan una precisión del 88-93% en la clasificación binaria de éxito para las tareas de pick-place y apilamiento, bajando al 75-82% para las tareas de inserción y montaje donde el éxito es visualmente sutil.
** Categoría de modo de falla.** Para los episodios fallidos, el VLM puede categorizar el tipo de falla: "¿El robot (a) no logró agarrar el objeto, (b) dejó caer el objeto durante el transporte, (c) colocó el objeto en el lugar equivocado o (d) otro?" Esta clasificación alimenta el análisis de fallos que guía la recolección de datos dirigidos.
** Impacto de costes:** La anotación asistida por VLM reduce el tiempo de anotación humana por episodio en un 40-60% para las etiquetas de lenguaje y en un 70-80% para las etiquetas binarias.
Metricas de garantía de calidad: qué rastrear y qué apuntar
La calidad de la anotación debe ser cuantificada y seguida a lo largo del tiempo. Estas son las métricas que monitorea el RCSV para cada compromiso de recopilación de datos, con umbrales objetivos basados en nuestra experiencia en más de 50 proyectos.
- Contrato entre los anotadores (kappa de Cohen). Para las etiquetas binarias: objetivo kappa > 0,90 (acordo casi perfecto). Para las etiquetas lingüísticas: calcular la similitud semántica entre las descripciones de los anotadores utilizando incrustaciones de oraciones-BERT; similitud cosina objetivo > 0,85. Para los límites de fase: acuerdo objetivo dentro de +/- 3 cuadros (100 ms a 30 fps).
- Duración de la anotación. Episodios de seguimiento anotados por hora por anotador. La velocidad inferior al 80% de la tasa esperada (basada en la complejidad del tipo de anotación) indica la ambigüedad de la tarea que requiere una aclaración del protocolo o la fatiga del anotador que requiere un descanso.
- Rata de corrección. Rastrear la fracción de etiquetas generadas por VLM corregidas por revisores humanos. Una tasa de corrección superior al 20% indica que el aviso de VLM necesita refinamiento o que la tarea es demasiado compleja para una anotación automatizada.
- Infusión de la formación en el flujo de abajo. La métrica de calidad final: formar una política sobre los datos anotados y medir la tasa de éxito.Si la adición de más anotaciones (por ejemplo, límites de fase) no mejora la política en al menos un 3%, el coste adicional de anotación no está justificado para esa tarea.
Línea de la ANOTACIÓN RCSV
El servicio de recopilación de datos del RCSV incluye anotación como estándar. Todos los episodios recogidos reciben: etiqueta binaria de éxito/fallo (revisón automática + humana para casos fronterizos), etiqueta de instrucción de idioma (definida por protocolo por tarea), límites de segmentos de cuatro fases (alcanzamiento/agarra/transporte/lugar) y timestamps de eventos de contacto donde estén presentes sensores F/T. Los tipos de anotaciones adicionales (scores de crédito parciales, conjuntos ampliados de segmentos, puntuaciones de calidad) están disponibles como complementos.
Todas las anotaciones se acompañan de métricas de acuerdo entre los anotadores (puntos de kappa por tipo de anotación) y registros documentados de reconciliación para los casos de kappa < 0,8.
Requisitos de las herramientas de anotación para los datos de los robots
Las herramientas de anotación de imágenes disponibles (Labelbox, CVAT, Label Studio) están diseñadas para las tareas de clasificación de imágenes únicas y de límite de cuadro.
- ** Sincronización multimodal.** La herramienta de anotación debe mostrar el video sincronizado de varias cámaras junto a las series de tiempo propioceptivas (ángulos conjuntos, lecturas de F/T) y señales de acción. Los anotadores deben ver el contexto completo - un evento de cierre de agarre es visible en la cámara de muñeca, datos propioceptivos y, a veces, la cámara aérea simultáneamente.
- Anotamiento temporal. A diferencia de la anotación de imagen que etiqueta un solo marco, la anotación de robots requiere marcar los límites temporales (fase de inicio/finales, eventos de contacto) mediante el desplazamiento a través de una línea de tiempo de vídeo.
- Metadatos a nivel de episodio. Cada episodio necesita metadatos estructurados: éxito/fallo, instrucción de tarea, puntuación de calidad, ID del operador, condiciones de recogida.
- ** Flujo de trabajo de revisión de lote.** El revisor debe poder ordenar los episodios por puntajes de calidad automatizados, desacuerdos de bandera y lotes de aprobación masiva que pasan los controles automatizados.
La plataforma de anotación de RCSV está diseñada específicamente para los datos de robots y admite los cuatro requisitos. Para los equipos que construyen sus propias herramientas de anotación, Label Studio con extensiones personalizadas de frontend es el punto de partida de código abierto más flexible: presupuesto de 2-4 semanas de desarrollo frontend para agregar las características de sincronización multimodal y marcado temporal.
Lectura relacionada
- [Aprendizaje por imitación para robots: desde las demostraciones hasta la implementación]
- [Aprendizaje robótico: coste por análisis de demostración]
- [Marco LeRobot: Guía para comenzar]
- [Generalización de la política de robots: por qué su robot falla en nuevos objetos]
- [Abrir el cuerpo X: el conjunto de datos del robot que cambió todo]
- [Servicios de recogida de datos del RCSV]
- [Plataforma de datos del RCSV]
Datos anotados preparados para la formación
El RCSV proporciona conjuntos de datos de demostración de robots completamente anotados con métricas de calidad documentadas y informes de acuerdos entre los anotadores.
[Explorar los Servicios de Datos]







