Volver a Blog

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] T7)

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 0100 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 030 (fallo claro), 3169 (parcial/margenal), 70100 (é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 812 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.60.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 T2 con una pendiente de 50 ms para sistemas sincronizados con software. Para cámaras activadas por hardware, reduzca la pendiente a 10 ms. (2) Siempre use el sello de tiempo del encabezado del mensaje, no T3, que refleja el tiempo de procesamiento, no el tiempo de medición. (3) Registre las diferencias reales de timestamp entre los mensajes sincronizados - si el promedio supera los 20 ms, investigue si el ancho de banda USB o la carga de la CPU está causando retrasos. (4) Para fines de anotación, almacene los timestamps en el archivo HDF5 junto a los datos para que los anotadores puedan verificar la alineación durante la revisión.

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 T4 a 0.5N y aumenta T5 a 20 cuadros. Para tareas de alta fuerza (por ejemplo, montaje instantáneo con fuerzas de pico de 20-50N), aumenta el umbral proporcionalmente. Siempre valida la detección automática en relación con más de 50 episodios anotados manualmente antes de confiar en ella para la anotación de producción.

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:

  1. 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.
  2. ** 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.
  3. 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%.
  4. Anotamiento de nivel 2 (primaria humana): Para tareas complejas, casos fronterizos y anotaciones lingüísticas. Cada episodio revisado por dos anotadores independientes.
  5. Conciliación: Los episodios en los que los anotadores no están de acuerdo son revisados por un anotador superior.
  6. 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]