Annotation der Roboterbahn: Herausforderungen, Methoden und Qualitätsstandards
Wie man Demonstrationsdaten von Robotern annotert <unk> Sprachetiketten, Erfolgs-/Fehler-Etiketten, Kontaktveranstaltungen und Qualitätsstandards für für Ausbildung bereit Datenmengen.
Teil von: [Roboter-Daten-Sammlungsanleitung]
[← Blog]
Rohdaten von Teleoperationen sind keine Trainingsdaten. Annotation verwandelt Trajektorien in strukturierte Etiketten, die tatsächlich Richtlinien lehren. So sieht eine gute Annotation aus.
Warum Noten wichtig sind
Eine Roboter-Teleoperationssitzung erzeugt eine Bahn: eine zeitindexte Sequenz von gemeinsamen Zuständen, Kamera-Rahmen und End-Effektor-Posen. Dies sind Daten im physischen Sinne, aber es ist noch nicht Training Daten im Sinne, dass die meisten Politik Lernalgorithmen erfordern. Algorithmen wie ACT, Diffusionspolitik und Verhaltensklonung müssen wissen, welche Episoden erfolgreich waren (zu trainieren) und welche nicht (zu ausschließen oder zu abnehmen). Algorithmen für das Lernen von Kontakten erfordern Zeitstempel für den ersten Kontakt, stabile Erfassen und Veröffentlichung von Ereignissen.
Annotation ist der Prozess, diese strukturierten Informationen hinzuzufügen. Es ist zeitaufwendig, erfordert menschliches Urteilen und es ist leicht, auf eine Weise zu falsch zu handeln, die die Qualität der Politik abschwächt. Ein Datensatz mit inkonsistenten Erfolgsetiketten wird eine Politik erzeugen, die gelernt hat, einige Fehler zu imitieren. Ein Datensatz mit vage Sprachanweisungen erzeugt eine Politik, die sich zur Zeit der Schlussfolgerung nicht auf Anweisungen verallgemeinern kann.
Die fünf Annotationsarten
- 1. Aufgabe Erfolg / Misserfolg: Binäre Pass / Misserfolg ist das Minimum. Für Ausbildungszwecke reicht binär oft aus, aber eine 0
100 Teilkredit-Score fügt Informationen hinzu: Ein Erfolgreiches, aber langsames und unangenehmes Gespür unterscheidet sich von einem schnellen und sauberen. Die Teilkreditpunkte von 0 30 (klares Scheitern), 31 69 (Teil/Marginal) und 70 100 (Erfolg mit Qualitätsgradiment) geben ein besseres Signal für das Lernen des Lehrplans und die Datenwagen. - 2. Sprachenanweisung: "Die rote Tasse hochziehen" ist besser als "das Objekt hochnehmen". "Die zylindrische rote Plastiktasse aus ihrem Körper, nicht aus dem Rand, und auf die weiße Schachtel legen" ist noch besser für feinen Aufgaben. Die Anweisung sollte die Aufgabenrelevanten Objektattribute (Farbe, Form, Material, falls relevant), die gewünschte Grappestrategie, wenn spezifisch, und den Zielzustand angeben. Vermeiden Sie nur Objektnamen-Anweisungen ("Pick up the cup") für Datensätze für die Grundmodell-Feinabstimmung.
- 3. Segmentlabels: Die Aufteilung jeder Episode in Phasen (Reich, Halte, Transport, Ort) ermöglicht phasengestützte Politiken und zielgerichteter Datenanalyse. Mindestens vier Phasen für Standard-Pick-Place-Aufgaben.
- 4. Kontakt-Event-Zeitstempel: Bei Kontaktlernungsaufgaben (Einsetzen, Montage, Oberflächenfolgen) sind präzise Zeitstempel für den ersten Kontakt (Greifer berührt Objekt), stabile Greifung (Kontaktkraft stabilisiert sich über der Schwelle) und Freisetzung (Greifer öffnet sich, Objekt frei) für das Lernen von Kontaktkonditionierten Verhaltensweisen unerlässlich. Der manuelle Anmerkungsfehler auf Kontaktzeitstempeln sollte <5 Bilder (167 ms bei 30 fps) betragen.
- 5. Qualitätspunkte: Neben dem Erfolg/Fehler informieren Qualitätsmetriken pro Episode die Datengewichtung während des Trainings.
Annotationsmethoden Vergleiche
| 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 |
Vereinbarung zwischen den Anzeigern
Cohen's Kappa ist das Standardmaß der Inter-Annotator-Vereinbarung, angepasst für Zufallvereinbarung.
- Kappa > 0,8 (starke Einigung): Die Aufgabendefinition und das Annotationsprotokoll sind klar genug, dass Annotatoren sie konsequent anwenden. Dies ist das Ziel für Produktionsannotationsleitungen. Die meisten einfachen Erfolg/Niederlage-Aufgaben erreichen dieses Niveau mit angemessener Ausbildung.
- Kappa 0.6
0.8 (gemäßig vereinbarte): Aufmerksamkeit erfordert. Zwangsvereinbarungssitzungen, bei denen Anmerker uneinstehende Fälle diskutieren und das Protokoll aktualisieren, bis die Definition von Randfällen explizit ist. Versenden Sie keinen Datensatz mit kappa in diesem Bereich ohne Vereinbarung. - Kappa < 0.6 (schlechte Übereinstimmung): Die Aufgabendefinition ist zweideutig. Stoppen Sie Anmerkungen, gestalten Sie das Protokoll mit klareren Erfolgskriterien neu und geben Sie erneut Anmerkungen von Grund auf.
Automatisierte Annotation
Zwei automatisierte Anmerkungen sind in der Produktion bereit:
- ** Erfolgsklassifizierer CNN:** Fein abgestimmt ResNet-50 auf den letzten 10 Bildern jeder Episode, binäre Erfolg/Niederlage-Ausgabe. Der interne Classifier von RCSV erreicht 92% Genauigkeit bei ausgehaltenen Testsätzen über standardmäßige Manipulationsarbeiten hinweg. Es benötigt 100+ markierte Beispiele pro Aufgabe, um zuverlässig zu trainieren. Verwendung für große Datensätze nach dem Aufbau eines von Menschen markierten Trainingssets.
- Segmentdetektor (HMM auf Gelenkschnelligkeit + F/T): Verborgenes Markov-Modell, das auf Gelenkschnelligkeitsprofilen und F/T-Leseanzeigen ausgebildet ist, um Phasengrenzen zu erkennen. Funktioniert ohne visuelle Verarbeitung, wodurch es schneller und robuster für Kameraprobleme ist. Erreicht bei Standard-Pick-Place-Aufgaben eine Segmentgrenzpräzision von etwa 85% innerhalb von ±3 Rahmen.
Annotation Komplexität nach Aufgabenart
| Task Type | Annotation Types Needed | Time per Episode | 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 |
| Präzision 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 |
Die Kostenmultiplizer von einfacher Pick-Place bis zu zweimanuale Anmerkung ist ungefähr 8x. Teams, die Anmerkung Zeit auf der Grundlage ihrer einfachsten Aufgaben budgetten und dann auf kompliziertere Aufgaben zu wechseln sind konsequent überrascht durch die realen Kosten. Planen Anmerkung Ressourcen pro Aufgabe Art, nicht pro Episode zählen.
Herausforderungen bei der Einrichtung der Zeitmarken
Die Demonstrationsdaten der Roboter stammen aus mehreren asynchronen Quellen: Kameras mit 30-60 fps, Gelenkstandsmessungen bei 100-500 Hz, F/T-Sensoren bei 500-1000 Hz und Griffzustand bei variablen Geschwindigkeiten. Ein Kontakt-Event-Zeitstempel ist nutzlos, wenn der Kamerarahmen, dem er entspricht, um 50 ms vom tatsächlichen Kontakt entfernt ist, weil die Kamera und die gemeinsamen Zustanduhren abgeschoben sind.
Der Standardansatz ist die hardware-ausgelöste Synchronisierung: Eine Master-Uhr erzeugt einen Auslöserpulse, der gleichzeitig die Kamera-Rahmen-Fassung und Zeitstempeln des gemeinsamen Zustands und der F/T-Sensor-Lese auslöst. Ohne Hardware-Synchronisierung haben softwarebasierte Zeitstempeln ein typisches Jittern von 5-20ms auf einem Standard-Linux-System und 1-5ms auf einem Echtzeit-Kernel (PREEMPT_RT). Für Anmerkungen ist die Software-Synchronisierung für Erfolg/Niederlage und Sprachlabels ausreichend, aber nicht ausreichend für Kontaktveranstaltungszeitstempel bei Aufgaben mit engen Zeitbedingungen (Einsetzen, Schnellmontage).
Häufige Ausrichtungsschwierigkeiten zu beobachten: USB-Kameras, die interne Pufferrahmen (mit 30-100 ms unbekannter Latenz) hinzufügen, Netzwerkkameras (IP-Kameras), die variable Verschlüsselungsverzögerungen hinzufügen, und ROS2-Themenzeitstempeln, die die Veröffentlichungszeit anstatt tatsächliche Messzeit widerspiegeln. Überprüfen Sie immer die Ausrichtung, indem Sie ein bekanntes physisches Ereignis (Ein Objekt mit einem F/T-Sensor auf eine Oberfläche fallen lassen) aufzeichnen und überprüfen, ob der visuelle Kontaktrahmen und der F/T-Spitz innerhalb Ihrer erforderlichen Toleranz ausgerichtet sind.
Anmerkende Versagen: Teilweise Erfolge und nahezu Versäumnisse
Die binäre Erfolgs-/Fehler-Anmerkung ist das Minimum, aber sie verwirft kritische Informationen darüber, wie und warum Episoden versagt haben. Eine Politik, die nur auf binären Filterdaten ausgerichtet ist, behandelt alle Fehler als gleich wenig informativ, wenn es tatsächlich ein Spektrum von "Roboter in die falsche Richtung bewegt" (niedrige Informationen) bis zu "Roboter hat das Objekt erfasst, aber es während des Transports fallen gelassen" (hohe Informationen - die Strategie der Erfassung war korrekt, die Transportphase muss gearbeitet werden).
Eine praktische Teilschuss-Taxonomie für Manipulationsarbeiten:
- Score 0-20 (kompleter Ausfall): Der Roboter hat sich dem Objekt nicht nähert oder sich völlig falscher Region nähert.
- Score 21-40 (korrekt angeht, nicht ergreift): Der Roboter erreichte die richtige Region, konnte jedoch keinen stabilen Zugriff aufweisen.
- Score 41-60 (Griff erfolgreich, Aufgabe fehlgeschlagen): Roboter hat das Objekt erfasst, aber während des Transports, der Platzierung oder einer nachfolgenden Phase nicht.
- Score 61-80 (Aufgabe meist vollständig, unpräzise): Roboter hat die Aufgabe abgeschlossen, aber mit schlechter Qualität - Gegenstand in ungefähr der richtigen Gegend, aber nicht genau, oder Aufgabe mit schlagkräftigen Bewegungen langsam abgeschlossen.
- Score 81-100 (Erfolg mit Qualitätsgradiment): Aufgabe erfolgreich abgeschlossen. Höhere Punkte zeigen eine reibungslose, schnellere, präzisere Ausführung.
Bei den Experimenten des RCSV ergab sich ein gewichtiger Training auf einem Datensatz mit 30% teilweisen Fehlern, das 8-12% robuster war als die Politik, die nur bei den 70% der Episoden mit den besten Punkten ausgebildet wurde.
Qualitätsschranken: Wann man Annotationen ablehnt
Nicht alle Anmerkungen sind nutzbar. Definieren Sie explizite Qualitätsgate, die eine Neuanmerkung oder Ausnahme von Episoden auslösen:
- Wir lehnen ab, wenn: der Anmerker vor der Kennzeichnung weniger als 80% des Episodengebildes angesehen hat (über die Analyse des Anmerkungswerkzeugs nachweisbar).
- Wir lehnen ab, wenn: die Anmerkungszeit unter 60% des erwarteten Minimums liegt (die Anmerkungen zur Geschwindigkeit sind unzuverlässig - eine 30-Sekunden-Episode, die in 5 Sekunden überprüft wurde, wurde nicht ordnungsgemäß bewertet).
- Wir lehnen ab, wenn: Erfolg/Niederlage-Tagel mit der automatischen Klassifizierungsleistung nicht übereinstimmt und der Anmerker die Episode nicht als Grenzlinie markiert hat (deutet auf Unachtung hin, nicht auf echte Uneinigkeit).
- Wir lehnen ab, wenn: Sprachanweisungen nicht mit der sichtbaren Aufgabe im Video übereinstimmen (allgemeine Kopieren-Paste-Etikette sind überraschend häufig mit Crowdsource-Annotationen).
- Wir lehnen ab, wenn: für jede Phase die Grenzen der Segmentanmerkungen fehlen (unvollständige Anmerkungen sind schlimmer als keine Anmerkungen, weil sie Ausbildungsartefakte erzeugen).
- Flagge zur Überprüfung, wenn: zwei Anmerker sich über Erfolg/Niederlage nicht einig sind. Beide Anmerkungen gehen in eine Versöhnungsschlange, in der ein leitender Anmerker entscheidet, und das Anmerkungsprotokoll wird aktualisiert, wenn die Meinungsverschiedenheit eine Zweideutigkeit aufweist.
Bei RCSV scheitern etwa 8-12% der ersten Anmerkungen Qualitätsporten und werden neu anmerkt. Diese Ablehnungsrate ist normal und gesund - es zeigt an, dass die Qualitätsporten funktionieren. Eine Ablehnungsrate von 0% bedeutet, dass die Pforten zu zulassen sind.
Annotationswerkzeuge Vergleich
| 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 |
Für roboterspezifische Anmerkungen erfordern allgemeine Werkzeuge (Label Studio, CVAT) eine signifikante Anpassung zum Umgang mit synchronisierten multimodalen Daten. Das wichtigste Fehlende in den allgemeinen Werkzeugen ist das synchronisierte Wiedergeben von Video, gemeinsamen Zustandsplots und F/T-Sensordaten auf einer gemeinsamen Zeitlinie.
ROS2 Zeitstempel-Synchronisierung: praktische Umsetzung
Für Teams, die ROS2 als ihre Datenerhebungs-Middleware verwenden, ist hier der empfohlene Ansatz, um eine Zeitstempel-Ausrichtung unter 5 ms über alle Sensormodäten zu erreichen.
# 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
]),
})
Wichtige Implementierungsmerkmale: (1) Verwenden Sie
Erweiterte Qualitätsöffnungen: Pipeline für die Annotation der Produktion
Neben den grundlegenden Qualitätsvorgaben sollten diese zusätzlichen Kontrollen in Produktionsanmerkungen umgesetzt werden.
| 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 |
| Episode 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 |
| Greifer 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 |
Die Implementierung dieser Qualitäts-Tore als automatisierte Kontrollen in Ihrer Datenleitung erfasst 70-80% der Datenqualitätsprobleme vor menschlicher Überprüfung. Die restlichen 20-30% erfordern menschliches Urteilsvermögen und werden durch den Standard-Annotations-QA-Prozess behandelt. RCSV führt alle diese Kontrollen automatisch auf jeder gesammelten Episode durch, bevor die Annotation beginnt.
Automatische Erkennung von Kontaktvorfällen aus F/T-Daten
Die Zeitstempel für Kontaktereignisse gehören zu den zeitaufwendigsten Anmerkungen, die manuell erstellt werden können. Für Hardware-Setups, die F/T-Sensoren enthalten, kann automatisierte Erkennung mit minimalem menschlichen Aufsicht eine Rahmen-Genauigkeit erreichen.
# 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
Dieser Detektor erreicht bei Standard-Pick-Place-Aufgaben mit den Standardparametern 90%+ Genauigkeit. Bei Einfügungsaufgaben reduzieren Sie
Annotation Pipeline-Architektur
Eine Produktionsanmerkungen für Roboterdaten sollten sich nach dieser Architektur erstellen, die von der Sammlung bis zur Ausgabe der Ausbildung bestellt ist:
- Sammlungslag: Synchronisierte Aufzeichnung aller Modalitäten (Kamera, Joint-State, F/T, Greifer) in HDF5-Dateien mit Hardware-Zeitstempeln.
- Automatische Vorverarbeitung: Führen Sie automatisierte Qualitätsgate (Zeitmarken-Ausrichtung, Bildfallerkennung, Verschmutzungserkennung) und automatisierte Klassifizierer (Sieges-/Fehler-CNN, Kontaktereignisdetektor) aus. Diese Schicht markiert oder schließt ~15-20% der Episoden aus, bevor sie von Menschen überprüft werden.
- Eine Anmerkung der Stufe 1 (automatischer + Spot-check): Für einfache Aufgaben mit hoher automatischer Klassifizierungsgenauigkeit (> 90%) akzeptieren Sie Automarkierungen mit 10% menschlicher Spot-check.
- Tier 2 Anmerkung (menschliche Primär): Für komplexe Aufgaben, Grenzfälle und Sprachanmerkungen. Jede Episode wird von zwei unabhängigen Anmerkern überprüft.
- Vermittlung: Episoden, in denen sich die Anmerker nicht einig sind, werden von einem leitenden Anmerker überprüft. Das Protokoll wird aktualisiert, wenn die Meinungsverschiedenheit Zweideutigkeit aufweist. Vermittlungspapiere sind endgültig.
- Export: Annotierte Episoden, die im Trainingsaufbau-Format (LeRobot HDF5 oder RLDS) mit Annotationsmetadaten (Annotator-ID, Annotationszeit, Vertrauen, Kappa-Score für die Satz) exportiert werden.
Anmerkungen zur Fehleranalyse: Für versagte Demonstrationen fügen Sie ein strukturiertes Fehlerursachen-Label aus einer vordefinierten Taxonomie hinzu: (a) Wahrnehmungsversagen (Objekt nicht falsch erkannt oder lokalisiert), (b) Greifversagen (Objekt gesprungen oder nicht erworben), (c) Transportversagen (Objekt während der Bewegung fallen gelassen), (d) Platzierungsversagen (Objekt in falscher Lage oder Orientierung), (e) Timeout (Aufgabe nicht innerhalb der Frist abgeschlossen). Diese Ausfallskatalogie ermöglicht eine automatisierte Analyse der Sammelqualität und gezielte Datenerfassung. Wenn beispielsweise 40% der Ausfälle Ausfall sind, muss der Betreiber eher über die Technik der Erfassung umschulen als mehr Demonstrationen der vollständigen Aufgabe.
RCSV führt diese Pipeline für alle Datenerhebungsabläufe durch, wobei die automatisierten Schichten die Routine-Annotation und die menschlichen Annotatoren sich auf die Fälle konzentrieren, die Urteil erfordern.
Die besten Praktiken zur Sprachenannotation
Die Qualität Ihrer Sprachetiketten hat einen direkten Einfluss auf die Fähigkeit der Politik, die Anweisungen zum Zeitpunkt der Bereitstellung zu befolgen.
- Sprechen Sie das Objekt mit mindestens zwei Attributen. "Pick up the cup" ist unzureichend. "Pick up the red plastic cup" ist minimal. "Pick up the tall red plastic cup from the left side of the table" ist ideal für mehrobjektiven Szenen.
- Bereichliche Referenzen enthalten, wenn dies zutrifft. "Platz auf der Schachtel" ist zweideutig. "Platz in der Mitte der weißen Schachtel" oder "Platz auf der Schachtel links vom Schachtel" bieten eine räumliche Grundlegung, die der Politik hilft, räumliche Argumente zu lernen.
- Verschiedene Sprachen natürlich. Verwenden Sie nicht die gleiche Vorlage für jede Episode. Wechseln Sie zwischen "Pick up", "grap", "grab" und "take" für die gleiche Aktion. Verwenden Sie sowohl "set down" als auch "place". Diese Variation lehrt die Politik, die natürliche Sprachvielfalt zu bewältigen, wenn man eine Schlussfolgerung macht.
- Lebell auf der Aufgabenstufe, nicht auf der Schrittstufe, für die meisten Aufgaben. "Holt die rote Tasse auf und leg sie auf die Schublade" ist eine einzelne Aufgabenanleitung für eine Auswahl- und Veranstaltungsstufe.
- Verwenden Sie Vorlagevalidierung. Definieren Sie eine Reihe gültiger Objektnamen, Farben und räumlichen Referenzen für Ihre Aufgabe. Überprüfen Sie alle Anmerkungen gegen dieses Vokabular. Rechtschreibfehler und inkonsistente Benennung (mit "Mug" in einigen Anmerkungen und "Cup" in anderen für das gleiche Objekt) schaffen für den Sprachcoder unnötiges Geräusch.
- Negative Anweisungen enthalten. Für mehrobjektische Szenen enthalten Sie Anweisungen, die angeben, welches Objekt nicht zu wählen ist ("die rote Tasse, nicht die blaue Tasse") Träinieren mit negativen Anweisungen verbessert die Fähigkeit der Politik, zwischen ähnlichen Objekten zu unterscheiden, und bietet eine Verbesserung der Erfolgsraten für mehrobjektische Szenen um 8-12% gegenüber nur positiven Anweisungen.
- Anmerken nach der Sammlung, nicht während. Manche Teams bitten die Betreiber, während der Teleoperation Aufgabenanweisungen zu sprechen. Dies trennt die Aufmerksamkeit des Betreibers und schlechtert die Qualität der Demonstration. Ein dedizierter Anmerker, der Episodevideos ansieht, kann bessere Anweisungen (später, konsistent) schreiben als ein Operator, der während der Teleoperation mehrtätig ist.
Annotationskosten nach Aufgabenkomplexität
Die Kosten für die Annotation variieren stark je nach Aufgabenkomplexität und dem erforderlichen Detaillierungsgrad.
| Annotation Type | Time per Episode | Cost per Episode | 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 |
Für die meisten Imitations-Lernprojekte sind binäre Erfolgs-/Fehler-Labels sowie Sprachunterricht-Labels das minimal praktikable Anmerkungen-Set. Dies kostet 0,35-1,00 USD pro Episode im Maßstab, wobei 60-80% der Anmerkungen automatisiert sind. Phase-Segmentierung bietet einen Mehrwert für Lehrplan-Lernansätze, verdoppelt jedoch die Anmerkungenkosten. Eine vollständige 6-DOF-Posenanmerkung ist nur für spezifische Forschungszwecke gerechtfertigt - für Standard-Politik-Schulungen bietet sie einen minimalen Nutzen gegenüber den günstigeren Anmerkungen.
Skalierungsanmerkung mit VLMs: Verwendung von GPT-4V und Gemini für Roboterdaten
VLMs sind zunehmend nützlich für die Automatisierung von Anmerkungen, die zuvor menschliches Urteilsvermögen erforderten.
Sprachenanweisungen-Generation. Senden Sie den ersten und letzten Rahmen einer Episode an GPT-4V oder Gemini mit dem Anruf: "Beschreiben Sie die in diesen Vor-/Nachbildern gezeigte Manipulationsarbeit. Seien Sie spezifisch über das Objekt (Farbe, Material, Form) und die ausgeführte Aktion. Verwenden Sie 10-15 Wörter". Das VLM erzeugt natürliche Spracheanweisungen mit 85-90% Genauigkeit bei Standard-Pick-Place-Aufgaben. Ein menschlicher Rezensionator korrigiert die restlichen 10-15% in 5-10 Sekunden pro Episode (Checking ist schneller als von Grund auf zu schreiben).
Erfolg/Niederlage-Verifizierung. Schicken Sie den letzten Rahmen mit dem Hinweis: "Der Roboter wurde gebeten, [Task-Instruktion]. Beantworten Sie ja oder nein mit einer Vertrauens-Score". VLMs erreichen bei der binären Erfolgsklassifizierung für Pick-Place- und Stapel-Tätigkeiten eine Genauigkeit von 88-93%, während sie bei Einfügung- und Montage-Tätigkeiten auf 75-82% sinken, wo der Erfolg visuell subtil ist.
Fehlermoduskategorisierung. Für fehlerhafte Episoden kann das VLM den Fehlertyp kategorisieren: "Habt der Roboter (a) das Objekt nicht erfasst, (b) das Objekt während des Transports fallen gelassen, (c) das Objekt an einem falschen Ort oder (d) andere gelegt?" Diese Kategorisierung führt zur Fehleranalyse, die die Zieldatenerfassung leitet. Genauigkeit: 80-85% für die vier Standardkategorien.
Kostenwirkung: VLM-gestützte Anmerkung reduziert die menschliche Anmerkungstunde pro Episode um 40-60% für Sprachetiketten und um 70-80% für binäre Etiketten. Bei der aktuellen API-Preise (GPT-4V bei ~ $0,01 pro Bildpaar, Gemini bei ~ $0,005), ist die VLM-Abschlusskosten im Vergleich zur gespartenen menschlichen Zeit vernachlässigbar.
Qualitätssicherungsmesswerte: Was zu verfolgen und was zu zielen ist
Die Qualität der Annotationen muss im Laufe der Zeit quantifiziert und verfolgt werden. Dies sind die Messwerte, die der RCSV für jeden Datenerhebungsabbau überwacht, wobei die Zielschwellen auf unserer Erfahrung in mehr als 50 Projekten beruhen.
- Inter-Annotator-Vereinbarung (Cohen's kappa). Für binäre Etiketten: Zielkappa > 0,90 (nahe perfektes Übereinkommen). Für Sprachetiketten: Berechnen Sie semantische Ähnlichkeit zwischen den Beschreibungen der Annotatoren mit Satz-BERT-Einbetungen; Zielkosinus Ähnlichkeit > 0,85. Für Phasengrenzen: Zielvereinbarung innerhalb von +/- 3 Bildern (100ms bei 30fps).
- **Annotationsdurchsatz.**Spuren Episoden, die pro Stunde pro Annotator annotert werden. Durchsatz unter 80% der erwarteten Rate (basierend auf der Komplexität des Annotationstyps) zeigt entweder Aufgabenzweideutigkeit, die eine Protokollklarifizierung erfordert, oder Annotatorermüd, die eine Pause erfordert.
- ** Korrekturrate.** Überwachen Sie den Anteil der von menschlichen Rezensenten korrigierten VLM-generierten Etiketten. Eine Korrekturrate über 20% zeigt an, dass die VLM-Anforderung verfeinert werden muss oder dass die Aufgabe zu komplex ist, um eine automatisierte Anmerkung zu erledigen.
- Impendenz der Weiterbildung im Nachhinein. Die ultimative Qualitätsmessung: eine Politik auf der Grundlage der annoterten Daten ausbilden und die Erfolgsrate messen.
RCSV-Annotationspipeline
Der Datenerhebungservice des RCSV enthält als Standard eine Anmerkung. Alle gesammelten Episoden erhalten: binäre Erfolgs-/Fehler-Tiegel (automatische + menschliche Überprüfung für Grenzfälle), Sprachanweisungs-Tiegel (pro-Task-Protocol-definiert), Vierphasegmentgrenzen (Reich/Grape/Transport/Platz) und Kontakt-Ereisezeitstempel, bei denen F/T-Sensoren vorhanden sind. Zusätzliche Anmerkungsarten (Teilkredit-Score, erweiterte Segment-Sets, Qualitäts-Score) sind als Ergänzungen verfügbar.
Alle Anmerkungen werden von den Inter-Annotator-Agreement-Metriken (Kappa-Score pro Anmerkungstyp) und dokumentierten Versöhnungsschriften für Kappa < 0,8 Fälle begleitet.
Annotationswerkzeuganforderungen für Roboterdaten
Off-the-shelf-Bild-Annotations-Tools (Labelbox, CVAT, Label Studio) sind für die Einmalbild-Klassifizierung und Begrenzung-Box-Aufgaben konzipiert.
- Multi-modal Synchronisation. Das Anmerkungswerkzeug muss synchronisiertes Video von mehreren Kameras neben proprioceptive Zeitreihen (Gelenkwinkel, F/T-Lesewerte) und Aktionssignale anzeigen. Anmerker müssen den vollen Kontext sehen - ein Greifer-Schließereignis ist in der Handgelenkkamera, proprioceptive Daten und manchmal der Oberkamera gleichzeitig sichtbar.
- Zeitliche Anmerkung. Im Gegensatz zu Bildanmerkungen, die einen einzelnen Bildrahmen markieren, erfordert die Roboteranmerkung die Markierung zeitlicher Grenzen (Phasestart/Ende, Kontaktereignisse) durch das Scrollen durch eine Videotymeline.
- Episode-Level Metadaten. Jede Episode benötigt strukturierte Metadaten: Erfolg/Niederlage, Aufgabenanweisung, Qualitätsscore, Operator-ID, Sammelbedingungen. Das Tool sollte maßgeschneiderte Metadaten-Schemata unterstützen, die sich je nach Aufgabe ändern.
- Batscheinschätzung von Workflow. Der Prüfer sollte in der Lage sein, Episoden nach automatisierten Qualitätsscores, Flagg-Anstimmungen und Massen-Abstimmung von Batches zu sortieren, die automatisierte Kontrollen bestanden.
Die Anmerkungenplattform von RCSV ist speziell für Roboterdaten entwickelt und unterstützt alle vier Anforderungen. Für Teams, die ihr eigenes Anmerkungswerkzeug bauen, ist Label Studio mit benutzerdefinierten Frontend-Erweiterungen der flexibelste Startpunkt für Open-Source-Entwicklungen - ein Budget von 2-4 Wochen für die Entwicklung des Frontends, um die multimodale Synchronisierung und die zeitlichen Kennzeichnungsfunktionen hinzuzufügen.
Verwandte Lesungen
- [Ausbildungsschulden für Roboter: Von der Demonstration bis zur Bereitstellung]
- [Roboter-Lernen: Kosten pro Demonstrationsanalyse]
- [LeRobot-Framework: Anfängerführer]
- [Roboterpolitik-Generalisierung: Warum Ihr Roboter bei neuen Objekten versagt]
- [Offene X-Body: Der Roboter Datensatz, der alles verändert hat]
- RCSV-Datenerhebungsdienste
- [RCSV Datenplattform]
Annotationsdaten-Sets, die für die Ausbildung bereit sind
RCSV liefert vollständig annotate Roboterdemonstrationsdatenmengen mit dokumentierten Qualitätsmessungen und Vereinbarungsberichten zwischen den Anmeldern.
[Erforschung der Datendienste]







