Les données vidéo peuvent aider à entraîner des robots, y compris des humanoïdes, à comprendre et exécuter des tâches physiques. Cela inclut les modèles VLA, qui relient les observations visuelles et les instructions linguistiques aux actions, et les modèles World, qui apprennent comment un environnement évolue dans le temps. Le web public contient des millions de vidéos de personnes effectuant ces tâches, et trouver une action spécifique parmi elles est difficile, car un titre décrit le sujet général d’une vidéo sans nommer les actions présentes dans les images. Les descriptions et les tags ne sont généralement pas plus utiles.
Pour cette étude, nous avons utilisé l’API de recherche vidéo de Bright Data. L’API de recherche vidéo est un outil qui permet de rechercher visuellement des moments à l’intérieur de vidéos web.
Vous lui fournissez une description en langage naturel d’une action, elle recherche le contenu visuel des vidéos publiques plutôt que le texte qui leur est associé, et elle renvoie des vidéos candidates avec les horodatages indiquant où l’action peut apparaître. La recherche par mots-clés conventionnelle fonctionne à l’inverse, en faisant correspondre vos mots au titre, à la description et aux tags d’une vidéo, de sorte que les deux approches aboutissent à des images très différentes.
Nous lui avons soumis 141 actions physiques et avons obtenu en retour 10 828 moments dans 7 549 vidéos. Pour chaque moment conservé, nous avons vérifié si un mot du nom de l’action apparaissait dans le titre, la description ou les tags de sa vidéo. Dans 90,8 % des cas, aucun ne l’était.
Si vous collectez des images d’entraînement par mots-clés, ces 90,8 % représentent les données que vous manquez, et cela rend la collecte de l’API 10× plus grande que ce que la recherche textuelle pourrait atteindre. Ces moments supplémentaires montrent les mêmes actions que vous avez demandées, dans des vidéos dont les titres parlent d’autre chose, et ils restent invisibles pour un pipeline textuel, peu importe le nombre de requêtes effectuées sur ces champs.
Nous avons comparé des sous-chaînes littérales au titre, à la description et aux tags, et nous avons compté dans le corpus renvoyé par l’API elle-même, donc le ratio est valable sous ces deux conditions. La recherche sémantique, la recherche multilingue, la recherche dans les transcriptions et le classement propre à YouTube sont en dehors de ce que nous avons testé.
Le résultat en trois chiffres
| 10,9× | plus de moments que la correspondance littérale | la recherche de contenu a retourné 10 828 ; 992 contiennent un mot du nom de l’action dans leurs métadonnées |
| 90,8 % | non nommé nulle part | 9 836 des 10 828 moments ne contiennent aucune mention de l’action dans leur titre, description ou tags |
| 56,1 % | aucun indice dans le titre | un test plus souple que la recherche. Nous avons demandé à google/gemini-2.5-flash si quoi que ce soit dans le titre était lié à l’action, même vaguement, y compris des indices trop vagues pour être recherchés. Il n’a rien trouvé dans 6 071 des 10 828 cas |
D’où viennent ces trois chiffres
Les deux premiers sont la même division : 9 836 des 10 828 moments ne contiennent aucun mot de l’action dans aucun champ, et les 992 qui en contiennent un sont ce qu’un matcher littéral atteint, 10 828 ÷ 992 = 10,9. Les quatre catégories (titre, description, tags, aucun) sont mutuellement exclusives et s’additionnent pour atteindre le total vérifié. Les deux sont comptés par ligne de correspondance ; si on les regroupe par les 8 849 secondes vidéo distinctes, le ratio est de 8,9×.
Le troisième compte les titres que le modèle a jugés sans rapport : 6 071 des 10 828, une ligne par moment sur 7 549 vidéos distinctes.
Les horodatages ont une deuxième conséquence. En accordant à chaque moment au maximum 10 secondes d’action, les 5 066,5 h de vidéo source dans lesquelles ces correspondances se trouvent deviennent 24,58 h de clip, ce qui réduit ce qui doit être déplacé, stocké et examiné de 206,1×.
Ce que la récupération a réellement retourné. La confiance de la récupération n’est pas la même chose que son exactitude, nous avons donc extrait une vraie image de presque chaque correspondance et l’avons fait évaluer par un modèle de vision. La section 3.5 contient les taux. Cet audit met en évidence des images candidates pour la découverte et la curation, et aucune politique, aucun modèle de monde ou robot n’a été entraîné sur ces données.
Exemple de six vidéos et leurs titres sur YouTube
Ce qu’un modèle de vision a vu, montré l’image sans le titre, comparé au titre de la vidéo, traduit en anglais lorsqu’une langue source est indiquée. Un juge IA a lu chaque titre du corpus pour y trouver le moindre indice de son action, et il a jugé ces six sans rapport : une simple date, un verset du Coran, un bulletin d’actualité économique. Nous avons confirmé chaque image à l’œil nu et chaque vidéo est en ligne. Cliquez sur une image pour lire la vidéo à cette seconde.
90,8 % des moments récupérés ne sont nommés nulle part dans leurs métadonnées
Cette proportion représente l’écart entre ce que la récupération de contenu a atteint sur ce corpus et ce que la correspondance littérale des métadonnées aurait atteint.
L’objection évidente est la langue, puisque nous testons des mots d’action en anglais contre des titres qui ne sont souvent pas en anglais. En se limitant aux titres en anglais confirmés par le modèle, le chiffre reste à 85,8 % ; la section 3.3 montre chaque découpe.
Où l’action est nommée, sur l’ensemble des 10 828 moments récupérés
Format tableau
| Catégorie | Moments | Part | Ce que cela signifie pour un pipeline textuel |
|---|---|---|---|
| nommé dans le titre | 386 | 3,6 % | le matcher littéral le trouve |
| description uniquement | 531 | 4,9 % | seulement si vous lisez les descriptions |
| tags uniquement | 75 | 0,7 % | seulement si vous lisez les tags |
| nommé nulle part | 9 836 | 90,8 % | le matcher littéral ne le trouve pas |
Un vrai moment de chaque catégorie, parce que « 531 moments sont nommés uniquement dans la description » est une affirmation, et un titre réel avec le mot correspondant marqué est une preuve :
| Catégorie | Action | Titre de la vidéo (s’ouvre à la seconde correspondante) | Correspondance |
|---|---|---|---|
| nommé dans le titre | pour |
Teaching a beginner how to pour latte art patterns (Expert Barista Guide) | correspondance sur « pour » |
| description uniquement | take |
GENTLE SOY SAUCE SOUP RAMEN (SHOYU RAMEN) | A Real Japanese Dad Cooks | Japanese cooking | correspondance sur « take » |
| tags uniquement | fold |
ورقة واحدة .. طيّات قليلة .. بدون لاصق.. وعالمٌ هرميٌ كامل! | correspondance sur « fold » |
| nommé nulle part | take |
# viral video in social media # viral koriyaan # sad story of koriyan romance | aucun mot de « take » n’apparaît dans ses métadonnées |
Part invisible, par domaine
Chiffres en format tableau
| Domaine | Nommé nulle part | Moments vérifiés |
|---|---|---|
| Tabletop (DROID) | 98,1 % | 1 836 |
| Extérieur | 95,9 % | 217 |
| Corps entier | 95,4 % | 866 |
| Domestique | 92,0 % | 402 |
| Construction | 91,1 % | 987 |
| Industriel | 89,6 % | 4 612 |
| Automobile | 83,8 % | 1 908 |
Chaque vidéo correspondante dans chaque domaine portait des métadonnées scrapées, donc chaque n est l’ensemble complet récupéré pour ce domaine. Personne ne titre une vidéo « mettre un bloc dans un bol » ; les vidéos de réparation annoncent bien ce qu’elles réparent, ce qui explique pourquoi l’automobile est le seul domaine qu’un matcher littéral peut partiellement atteindre.
1 Ce qu’un horodatage retire du pipeline
Supposons que vous vouliez dix secondes de quelqu’un en train de souder un joint. La méthode habituelle comporte cinq étapes, et chacune d’elles s’exécute sur un fichier vidéo complet : trouver une vidéo par son titre, l’extraire entièrement, rechercher dans votre propre copie le moment souhaité, découper ce moment, puis étiqueter ce qu’il montre.
La première étape manque 90,8 % de ces moments. Rechercher dans les images renvoie la vidéo et la seconde à l’intérieur, et l’une des cinq étapes cesse d’exister. Il n’y a rien à rechercher dans la vidéo extraite, puisque vous savez déjà où se trouve le moment. La découpe doit toujours avoir lieu, car l’API Media Data livre des vidéos entières, de l’audio, des sous-titres et des storyboards sans prendre d’horodatage, mais vous découpez sur un décalage connu plutôt que de le rechercher. Cinq étapes deviennent quatre.
Les pipelines de collecte hors ligne divisent généralement ce travail entre plusieurs systèmes : déplacer la vidéo vers un stockage cloud, l’annoter image par image manuellement ou semi-automatiquement, et convertir entre les formats robotiques tels que ROS ou MCAP et les formats vidéo généraux. Chaque transfert est un endroit où le débit est perdu et où l’alignement temporel entre les flux de caméra et les commandes moteur peut dériver. Nous n’avons rien mesuré de tout cela ici. C’est le contexte qui rend un horodatage retourné précieux.
Méthode conventionnelle (cinq étapes, payé sur des vidéos entières) :
- Trouver des vidéos · recherche par mots-clés dans les titres
- Extraire · 5 066,5 h de vidéo source (l’étape coûteuse, mesurée à partir de la durée scrapée de chaque vidéo correspondante)
- Lancer une recherche · un deuxième outil, sur votre propre copie
- Découper · rogner chaque clip au moment souhaité
- Étiqueter · annoter ce que vous avez découpé
Avec la récupération de moments (quatre étapes, payé à la seconde) :
- Trouver des scènes · la recherche de contenu renvoie la seconde
- Récupérer · ~24,58 h autour des décalages retournés (estimation : suppose que chaque moment dure au maximum 10 secondes d’action)
- Découper · rogner localement, sur un décalage connu
- Étiqueter · une image par moment
2 Méthode
Nous avons rédigé une phrase décrivant chacune des 141 actions et les avons envoyées à l’API de recherche vidéo. Celle concernant la soudure se lisait :
l’une des 141 phrases que nous avons envoyées
gros plan d’une main tenant un fer à souder sur un joint de circuit imprimé tout en alimentant le fil de soudure avec l’autre main, éclairage par lampe de bureau
Nous avons ensuite scrapé le titre, la description et les tags de chaque vidéo retournée. Bright Data documente l’index comme correspondant sur des images échantillonnées plutôt que sur le titre, la description ou les tags, donc les champs que nous avons évalués ne devraient pas être ce qui a trouvé les images. Nous n’avons pas testé cela indépendamment.
Nous avons tiré 22 noms d’actions des chaînes de tâches de DROID, que nous avons lues pour la fréquence des verbes, et avons ajouté les 119 actions restantes comme actions rédigées manuellement pour élargir l’audit au-delà de la couverture de DROID.
3 Résultats
3.1 Ce que coûte chaque méthode
Tout ici est en heures sur ce corpus, avec des durées additionnées depuis le scraper, donc le chiffre source est un décompte plutôt qu’une estimation. Nous n’avons extrait aucune vidéo, nous ne revendiquons donc aucun nombre d’octets.
Deux décomptes se cachent derrière les 206,1×. Les 5 066,5 h sont une somme réelle sur 7 549 vidéos. Le chiffre du clip compte chaque (vidéo, seconde) une fois, sur 8 849 secondes distinctes, et multiplie par la fenêtre de 10 secondes.
Le ratio repose sur deux choix, la durée d’un clip et si la longue traîne compte, et la longue traîne est le plus grand levier des deux : 483 vidéos de trois heures ou plus représentent ~6 % de l’ensemble et portent ~60 % des heures. Le tableau de sensibilité complet :
Chiffres en format tableau
| Supprimer les vidéos de plus de | Vidéos | Heures du corpus | Secondes distinctes | Heures de clip (10 s) | Réduction |
|---|---|---|---|---|---|
| 1 h | 6 554 | 1 113,5 | 7 605 | 21,12 | 52,7× |
| 2 h | 6 873 | 1 563,8 | 8 017 | 22,27 | 70,2× |
| 3 h | 7 066 | 2 031,3 | 8 247 | 22,91 | 88,7× |
| 6 h | 7 364 | 3 272,8 | 8 609 | 23,91 | 136,9× |
| 12 h | 7 546 | 5 012,3 | 8 846 | 24,57 | 204,0× |
| tout conserver (publié) | 7 549 | 5 066,5 | 8 849 | 24,58 | 206,1× |
Le même corpus, obtenu de l’une ou l’autre façon : 10 828 lignes de correspondance tombant sur 8 849 secondes vidéo distinctes. Compter chaque correspondance plutôt que chaque seconde distincte donnerait 30,08 heures de clip et une réduction de 168,4×. Le même ratio s’applique au temps de révision uniquement si l’alternative examine chaque vidéo source en entier, si le temps de révision évolue linéairement avec la durée, et si parcourir 8 849 clips séparés n’entraîne aucun surcoût par clip.
3.2 La règle de correspondance, et l’effet de son resserrement
Pour chaque moment candidat conservé, nous avons vérifié le titre, la description et les tags de la vidéo, les principaux champs de métadonnées disponibles dans cet audit.
Un moment est considéré comme nommé si un mot du nom de l’action de plus de deux caractères apparaît comme sous-chaîne insensible à la casse, donc « change » seul marque change_tire_wrench et « car » se trouve dans « carpet ». C’est la règle la plus permissive que nous aurions pu choisir, ce qui fait du titre une valeur plancher. Resserrez-la et elle monte :
Chaque règle plus stricte que la règle publiée fait monter le chiffre, ce qui fait de 90,8 % une valeur plancher plutôt qu’un cas optimal : 395 des 992 moments que la règle publiée compte comme nommés le doivent à un fragment à l’intérieur d’un mot plus long. Chaque valeur est mesurée, quatre passes réelles sur le corpus (supply_gap.py _variants()).
3.3 Une grande partie est titrée dans une autre langue
Nous avons lu une langue de titre pour chacun des 10 828 moments correspondants, donc c’est l’ensemble du corpus plutôt qu’un échantillon. Parmi eux, 4 863 (~45 %) se trouvent dans une vidéo titrée dans l’une des 77 langues non anglaises nommées, plus un titre que le modèle n’a pas pu identifier. Les mêmes descriptions d’actions en anglais ont retourné 423 moments de vidéos titrées en hindi et 509 de vidéos titrées en portugais. Aucun champ géographique n’a été collecté, donc cela ne dit rien sur l’endroit où les vidéos ont été réalisées.
Langue du titre de chaque moment correspondant, sur l’ensemble des 79 langues trouvées.
Ce mélange explique pourquoi nous avons découpé le corpus vers l’anglais avant de faire confiance au chiffre principal. En se limitant aux titres que nous savons être en anglais, le chiffre se déplace de quelques points et la majeure partie reste valable, donc une partie de l’écart est un décalage linguistique et le reste est un échec de description qui persiste une fois le décalage supprimé :
Les mêmes chiffres sous forme de tableau
| Découpe | Nommé nulle part | n |
|---|---|---|
| tous les moments | 90,8 % | 10 828 |
| titres en ASCII pur | 87,6 % | 5 560 |
| titres en anglais confirmés par le modèle | 85,8 % | 5 965 |
| audio en anglais confirmé | 95,0 % | 317 (trop peu pour s’y fier) |
3.4 Par action
Triés par la part sans terme d’action littéral dans les métadonnées disponibles. 17 actions n’ont aucun moment conservé dont les métadonnées nomment l’action cible. Sur l’ensemble des 141 actions avec au moins 8 moments vérifiés, la part va de 50,0 % à 100,0 %, médiane 94,1 %. Les 12 moins cachées :
Chiffres en format tableau
| Action | Domaine | Trouvés | Mentionné dans son texte | Nommé nulle part |
|---|---|---|---|---|
wash_car |
Automobile | 72 | 36 | 50,0 % |
wash_car_panel |
Automobile | 78 | 36 | 53,8 % |
car_door_open |
Automobile | 92 | 38 | 58,7 % |
car_door_close |
Automobile | 91 | 36 | 60,4 % |
car_door |
Automobile | 93 | 36 | 61,3 % |
pack_box |
Industriel | 73 | 28 | 61,6 % |
grinder_use |
Industriel | 69 | 23 | 66,7 % |
hand_saw_cut |
Industriel | 77 | 25 | 67,5 % |
jack_up_car |
Automobile | 78 | 24 | 69,2 % |
tape_box |
Industriel | 75 | 23 | 69,3 % |
sit_stand |
Corps entier | 28 | 8 | 71,4 % |
impact_driver |
Industriel | 70 | 19 | 72,9 % |
Les 141 actions · trouvés / mentionnés / nommés-nulle-part, plus l’extrapolation à l’échelle de l’index par action
| Action | Domaine | Trouvés | Mentionnés | Nommé nulle part | Moments estimés à l’échelle de l’index | Taux utilisable | Base du taux |
|---|---|---|---|---|---|---|---|
climb_ladder |
Corps entier | 93 | 0 | 100,0 % | 188 790 | 26,1 % | action |
crane_hook |
Industriel | 84 | 0 | 100,0 % | 170 436 | 9,5 % | action |
flip |
Tabletop (DROID) | 87 | 0 | 100,0 % | 176 523 | 26,7 % | action |
lift |
Tabletop (DROID) | 89 | 0 | 100,0 % | 180 581 | 24,7 % | action |
load_cart |
Industriel | 82 | 0 | 100,0 % | 166 460 | 9,8 % | action |
pick_up |
Tabletop (DROID) | 72 | 0 | 100,0 % | 146 088 | 47,9 % | action |
push |
Tabletop (DROID) | 91 | 0 | 100,0 % | 184 639 | 23,3 % | action |
push_heavy_cart |
Corps entier | 70 | 0 | 100,0 % | 142 100 | 24,3 % | action |
push_trolley |
Industriel | 65 | 0 | 100,0 % | 131 950 | 20,0 % | action |
refuel |
Automobile | 91 | 0 | 100,0 % | 184 639 | 26,4 % | action |
refuel_nozzle |
Automobile | 88 | 0 | 100,0 % | 178 552 | 27,6 % | action |
seatbelt_buckle |
Automobile | 87 | 0 | 100,0 % | 176 523 | 29,9 % | action |
slide |
Tabletop (DROID) | 82 | 0 | 100,0 % | 166 378 | 32,1 % | action |
sort_parcel |
Industriel | 82 | 0 | 100,0 % | 166 460 | 37,8 % | action |
stack |
Tabletop (DROID) | 65 | 0 | 100,0 % | 136 958 | 21,9 % | action |
unfold |
Tabletop (DROID) | 79 | 0 | 100,0 % | 160 291 | 57,0 % | action |
ziptie_bundle |
Industriel | 82 | 0 | 100,0 % | 166 460 | 48,8 % | action |
carry_upstairs |
Corps entier | 87 | 1 | 98,9 % | 176 610 | 25,6 % | action |
hang |
Tabletop (DROID) | 92 | 1 | 98,9 % | 181 596 | 12,1 % | action |
pull |
Tabletop (DROID) | 87 | 1 | 98,9 % | 176 523 | 18,4 % | action |
pull_trolley |
Corps entier | 92 | 1 | 98,9 % | 186 760 | 22,8 % | action |
close |
Tabletop (DROID) | 83 | 1 | 98,8 % | 168 407 | 41,5 % | action |
emergency_stop |
Industriel | 85 | 1 | 98,8 % | 172 465 | 22,6 % | action |
handbrake_pull |
Automobile | 82 | 1 | 98,8 % | 166 378 | 31,7 % | action |
place |
Tabletop (DROID) | 84 | 1 | 98,8 % | 170 436 | 39,3 % | action |
remove |
Tabletop (DROID) | 86 | 1 | 98,8 % | 174 494 | 48,8 % | action |
turn_on |
Tabletop (DROID) | 85 | 1 | 98,8 % | 172 465 | 29,4 % | action |
count_stock |
Industriel | 76 | 1 | 98,7 % | 154 280 | 32,4 % | action |
reach_overhead |
Corps entier | 79 | 1 | 98,7 % | 160 370 | 46,8 % | action |
wipe |
Tabletop (DROID) | 77 | 1 | 98,7 % | 180 581 | 28,0 % | action |
crouch_down |
Corps entier | 65 | 1 | 98,5 % | 131 950 | 34,9 % | action |
seat_chip |
Industriel | 65 | 1 | 98,5 % | 131 950 | 46,9 % | action |
plaster_wall |
Construction | 88 | 2 | 97,7 % | 178 552 | 25,3 % | action |
plug_in |
Domestique | 87 | 2 | 97,7 % | 176 523 | 36,5 % | action |
turn |
Tabletop (DROID) | 86 | 2 | 97,7 % | 174 494 | 27,9 % | action |
unplug_cable |
Industriel | 88 | 2 | 97,7 % | 178 640 | 42,5 % | action |
label_parcel |
Industriel | 85 | 2 | 97,6 % | 172 550 | 45,9 % | action |
move |
Tabletop (DROID) | 82 | 2 | 97,6 % | 166 378 | 34,2 % | action |
press |
Tabletop (DROID) | 83 | 2 | 97,6 % | 168 407 | 42,2 % | action |
spirit_level |
Industriel | 83 | 2 | 97,6 % | 168 407 | 12,5 % | action |
conveyor_pick |
Industriel | 79 | 2 | 97,5 % | 160 291 | 35,4 % | action |
grout_joint |
Construction | 81 | 2 | 97,5 % | 164 349 | 28,4 % | action |
open_hood |
Automobile | 80 | 2 | 97,5 % | 162 320 | 53,8 % | action |
trowel_mortar |
Construction | 79 | 2 | 97,5 % | 160 291 | 28,2 % | action |
balance_load |
Corps entier | 77 | 2 | 97,4 % | 156 310 | 21,1 % | action |
shovel_load |
Extérieur | 74 | 2 | 97,3 % | 150 220 | 31,5 % | action |
scan_barcode |
Industriel | 71 | 2 | 97,2 % | 144 059 | 27,1 % | action |
desolder_remove |
Industriel | 63 | 2 | 96,8 % | 127 890 | 51,6 % | action |
pull_wire |
Construction | 61 | 2 | 96,7 % | 123 769 | 30,0 % | action |
take |
Tabletop (DROID) | 90 | 3 | 96,7 % | 182 610 | 37,8 % | action |
forklift_controls |
Industriel | 59 | 2 | 96,6 % | 119 711 | 27,1 % | action |
open_gate |
Corps entier | 88 | 3 | 96,6 % | 178 640 | 21,6 % | action |
pour |
Tabletop (DROID) | 89 | 3 | 96,6 % | 183 624 | 56,2 % | action |
plug_in_socket |
Industriel | 85 | 3 | 96,5 % | 172 550 | 36,5 % | action |
shrink_wrap |
Industriel | 81 | 3 | 96,3 % | 164 430 | 22,5 % | action |
wipe_windshield |
Automobile | 82 | 3 | 96,3 % | 166 378 | 34,6 % | action |
control_dial |
Industriel | 72 | 3 | 95,8 % | 146 088 | 31,9 % | action |
steering |
Automobile | 72 | 3 | 95,8 % | 146 088 | 59,7 % | action |
open_carton |
Industriel | 69 | 3 | 95,7 % | 140 070 | 31,9 % | action |
put |
Tabletop (DROID) | 91 | 4 | 95,6 % | 184 639 | 41,8 % | action |
plant_seed |
Extérieur | 67 | 3 | 95,5 % | 136 010 | 28,8 % | action |
steering_turn |
Automobile | 43 | 2 | 95,3 % | 87 247 | 60,5 % | action |
pipe_fitting |
Industriel | 83 | 4 | 95,2 % | 168 407 | 44,6 % | action |
open |
Tabletop (DROID) | 79 | 4 | 94,9 % | 173 987 | 44,2 % | action |
dig_soil |
Extérieur | 76 | 4 | 94,7 % | 154 280 | 44,6 % | action |
sweep |
Domestique | 75 | 4 | 94,7 % | 152 175 | 29,3 % | action |
route_cable |
Industriel | 74 | 4 | 94,6 % | 150 220 | 43,8 % | action |
gear_shift |
Automobile | 73 | 4 | 94,5 % | 148 117 | 37,0 % | action |
stack_pallet |
Industriel | 70 | 4 | 94,3 % | 142 100 | 12,9 % | action |
thermal_paste |
Industriel | 69 | 4 | 94,2 % | 140 070 | 19,1 % | action |
ev_charge_plug |
Automobile | 85 | 5 | 94,1 % | 172 465 | 26,2 % | action |
carry_box |
Domestique | 84 | 5 | 94,0 % | 170 436 | 25,0 % | action |
open_trunk |
Automobile | 84 | 5 | 94,0 % | 170 436 | 28,6 % | action |
socket_ratchet |
Industriel | 82 | 5 | 93,9 % | 166 378 | 31,7 % | action |
top_up_fluid |
Automobile | 82 | 5 | 93,9 % | 166 378 | 37,0 % | action |
press_machine_button |
Industriel | 79 | 5 | 93,7 % | 160 291 | 31,6 % | action |
valve_turn |
Industriel | 79 | 5 | 93,7 % | 160 291 | 19,0 % | action |
insert_usb |
Industriel | 78 | 5 | 93,6 % | 158 340 | 46,0 % | action |
caulk_gun |
Industriel | 86 | 6 | 93,0 % | 174 494 | 34,1 % | action |
adjust_mirror |
Automobile | 85 | 6 | 92,9 % | 172 465 | 20,0 % | action |
sand_surface |
Industriel | 85 | 6 | 92,9 % | 172 465 | 55,3 % | action |
cut_pipe |
Construction | 68 | 5 | 92,6 % | 137 972 | 41,8 % | action |
machine_unload |
Industriel | 68 | 5 | 92,6 % | 137 972 | 30,9 % | action |
unload_truck |
Industriel | 68 | 5 | 92,6 % | 138 040 | 35,3 % | action |
machine_lever |
Industriel | 80 | 6 | 92,5 % | 162 320 | 21,2 % | action |
assemble_snap_fit |
Industriel | 77 | 6 | 92,2 % | 156 310 | 51,3 % | action |
measure_tape |
Industriel | 76 | 6 | 92,1 % | 154 204 | 42,1 % | action |
chisel_carve |
Industriel | 49 | 4 | 91,8 % | 99 421 | 42,9 % | action |
wrench_bolt |
Industriel | 85 | 7 | 91,8 % | 172 465 | 34,1 % | action |
hammer_nail |
Industriel | 84 | 7 | 91,7 % | 170 436 | 20,2 % | action |
solder_pipe |
Construction | 70 | 6 | 91,4 % | 142 030 | 37,1 % | action |
step_over |
Corps entier | 70 | 6 | 91,4 % | 142 100 | 28,6 % | action |
gauge_read |
Industriel | 78 | 7 | 91,0 % | 158 262 | 35,9 % | action |
fold |
Tabletop (DROID) | 77 | 7 | 90,9 % | 158 769 | 57,1 % | action |
tile_place |
Construction | 83 | 8 | 90,4 % | 168 407 | 30,1 % | action |
solder |
Industriel | 55 | 6 | 89,1 % | 111 595 | 45,5 % | action |
screwdriver |
Industriel | 72 | 8 | 88,9 % | 146 088 | 43,1 % | action |
bend_lift |
Corps entier | 62 | 7 | 88,7 % | 125 860 | 32,3 % | action |
power_drill_hole |
Industriel | 70 | 8 | 88,6 % | 142 030 | 40,9 % | action |
solder_joint |
Industriel | 61 | 7 | 88,5 % | 123 830 | 55,7 % | action |
mix_cement |
Construction | 68 | 8 | 88,2 % | 137 972 | 43,3 % | action |
nail_gun |
Construction | 68 | 8 | 88,2 % | 137 972 | 29,8 % | action |
drywall_screw |
Construction | 72 | 9 | 87,5 % | 146 088 | 28,2 % | action |
lay_brick |
Construction | 80 | 10 | 87,5 % | 162 320 | 27,5 % | action |
clamp_workpiece |
Industriel | 62 | 8 | 87,1 % | 125 798 | 35,5 % | action |
machine_load |
Industriel | 62 | 8 | 87,1 % | 125 798 | 19,4 % | action |
cut_vegetable |
Domestique | 83 | 11 | 86,7 % | 168 407 | 42,2 % | action |
torque_wrench |
Industriel | 83 | 11 | 86,7 % | 168 407 | 31,3 % | action |
cut_knife |
Domestique | 73 | 10 | 86,3 % | 148 117 | 34,2 % | action |
tire_pressure |
Automobile | 73 | 10 | 86,3 % | 148 117 | 47,9 % | action |
weld_seam |
Industriel | 87 | 12 | 86,2 % | 176 523 | 31,4 % | action |
pliers_grip |
Industriel | 72 | 10 | 86,1 % | 146 088 | 50,7 % | action |
paint_brush |
Construction | 90 | 13 | 85,6 % | 182 610 | 22,2 % | action |
wire_cut |
Industriel | 76 | 11 | 85,5 % | 154 204 | 34,2 % | action |
paint_roller |
Construction | 79 | 13 | 83,5 % | 160 291 | 15,2 % | action |
breadboard_wire |
Industriel | 65 | 11 | 83,1 % | 131 950 | 44,6 % | action |
change_tire |
Automobile | 69 | 12 | 82,6 % | 140 001 | 50,0 % | action |
kneel_work |
Corps entier | 55 | 10 | 81,8 % | 111 650 | 45,5 % | action |
change_tire_wrench |
Automobile | 71 | 13 | 81,7 % | 144 059 | 46,4 % | action |
assemble_part |
Industriel | 70 | 13 | 81,4 % | 142 030 | 64,3 % | action |
check_oil_dipstick |
Automobile | 80 | 15 | 81,2 % | 162 320 | 43,8 % | action |
screw_panel |
Industriel | 81 | 16 | 80,2 % | 164 430 | 37,5 % | action |
lathe_operate |
Industriel | 51 | 11 | 78,4 % | 103 479 | 31,4 % | action |
engine_bay |
Automobile | 77 | 17 | 77,9 % | 156 233 | 56,6 % | action |
probe_test |
Industriel | 63 | 14 | 77,8 % | 127 890 | 54,8 % | action |
machine_control |
Industriel | 78 | 18 | 76,9 % | 158 262 | 36,4 % | action |
screwdriver_drive |
Industriel | 78 | 20 | 74,4 % | 158 262 | 39,5 % | action |
weld |
Industriel | 86 | 22 | 74,4 % | 174 494 | 31,4 % | action |
power_drill |
Industriel | 70 | 18 | 74,3 % | 142 030 | 48,6 % | action |
impact_driver |
Industriel | 70 | 19 | 72,9 % | 142 030 | 35,3 % | action |
sit_stand |
Corps entier | 28 | 8 | 71,4 % | 56 840 | 35,7 % | action |
tape_box |
Industriel | 75 | 23 | 69,3 % | 152 250 | 26,4 % | action |
jack_up_car |
Automobile | 78 | 24 | 69,2 % | 158 262 | 27,3 % | action |
hand_saw_cut |
Industriel | 77 | 25 | 67,5 % | 156 233 | 32,9 % | action |
grinder_use |
Industriel | 69 | 23 | 66,7 % | 140 001 | 42,6 % | action |
pack_box |
Industriel | 73 | 28 | 61,6 % | 148 117 | 50,0 % | action |
car_door |
Automobile | 93 | 36 | 61,3 % | 188 697 | 20,4 % | action |
car_door_close |
Automobile | 91 | 36 | 60,4 % | 184 639 | 26,4 % | action |
car_door_open |
Automobile | 92 | 38 | 58,7 % | 186 668 | 22,8 % | action |
wash_car_panel |
Automobile | 78 | 36 | 53,8 % | 158 262 | 41,6 % | action |
wash_car |
Automobile | 72 | 36 | 50,0 % | 146 088 | 45,1 % | action |
Facilité de découverte par action. « Mentionnés » compte les moments dont le titre, la description ou les tags portent un mot du nom de l’action selon la règle de sous-chaîne publiée. Les colonnes d’extrapolation multiplient le rendement mesuré par shard de chaque action par le nombre de shards de l’index et divisent par le chevauchement inter-actions mesuré ; « base du taux » indique si le taux utilisable a été mesuré sur les images de cette action, hérité de son domaine, ou hérité du taux à l’échelle du corpus.
3.5 Obtenir les images
Pour vérifier que la récupération était correcte, nous avons extrait une vraie image de chaque vidéo correspondante et l’avons examinée. Ce que YouTube expose sans extraire la vidéo est le storyboard, une feuille de sprites de miniatures dont l’intervalle d’échantillonnage s’élargit avec la durée : nous avons mesuré 1 s pour les vidéos jusqu’à 109 s, 2 s de 175 s à 275 s, 5 s de 454 s à 892 s, et 10 s à partir de 1 366 s. Les limites entre ces bandes n’ont pas été résolues par les 12 vidéos que nous avons sondées. L’image que nous avons évaluée est l’échantillon le plus proche à ou avant la seconde correspondante, donc elle peut être en avance d’un intervalle au maximum, 10 s dans le pire des cas et 5 s ou 10 s pour un peu plus de la moitié des images. Mesuré par storyboard_probe.py ; les spécifications par vidéo sont dans data/storyboard_spec.json.
Un modèle de vision a évalué les 10 750 des 10 828 images obtenues, donc chaque taux ici est mesuré sur 99,3 % du corpus plutôt que sur un échantillon. 93,8 % sont de vraies images plutôt que des animations, des jeux ou des enregistrements d’écran ; 25,7 % ont capturé l’action visiblement en cours et 57,4 % l’ont montrée en cours ou préparée ; 34,5 % ont obtenu 3 ou plus sur une échelle d’utilisabilité de 0 à 5. Ce dernier chiffre est un jugement sur un processus d’entraînement en aval que le modèle ne peut pas observer, et il se comporte comme tel : sur un échantillon de 60 images, quatre exécutions de la même configuration ont couvert 3,4 points, et reformuler le critère l’a déplacé de 20. La part d’action visible s’est déplacée de 1,7 sur ce même changement de critère, ce qui en fait le chiffre à comparer entre les exécutions.
Acquisition des images :
Chiffres en format tableau
| Résultat | Moments | Part |
|---|---|---|
| Images obtenues | 10 750 / 10 828 | 99 % |
| Pas de storyboard analysable | 75 | 0,7 % |
| Échec de récupération du sprite | 3 | 0,03 % |
Acquisition des images. Nous avons récupéré les storyboards directement et avons rencontré une limitation de débit sur 863 des 10 828 moments, dont 856 ont été récupérés lors d’une passe ultérieure, donc aucun des 78 moments perdus ne s’est terminé sur un 429 ; l’API Media Data est la route prise en charge pour cette étape et renvoie les storyboards directement. Cet audit n’y a fait aucun appel. Ces moments se trouvent sur 7 549 vidéos, et une vidéo coûte une récupération de page de visionnage plus au moins une feuille de sprites, mise en cache par vidéo.
4 Les moments, lisibles
Les correspondances sont affichées par rapport à l’image de storyboard la plus proche à ou avant la seconde à laquelle elles ont été trouvées. Le classement n’est pas curé. 10 750 des 10 828 moments ont leur propre image, et la galerie complète contient 10 761 lignes car 11 autres partagent une image avec une autre action correspondante à la même seconde. Ces lignes reposent sur 8 792 images distinctes, car le nom de fichier indique une vidéo et une seconde plutôt qu’une action.
Voici les moments correspondants les mieux classés, un par action, directement issus du classement. Cliquez sur n’importe quelle image pour lire la vidéo source à la seconde correspondante.
Chaque cellule : l’action pour laquelle elle a été trouvée et son score de pertinence, puis ce que le modèle de vision a vu dans l’image (montrée sans le titre), puis le titre de la vidéo en anglais. Les horodatages s’ouvrent deux secondes avant pour que le moment entre en jeu.
5 Travaux connexes
La récupération d’un moment par description est une tâche établie : ancrage temporel sur Charades-STA, détection de points forts sur QVHighlights, requêtes en langage naturel dans Ego4D. Nous n’introduisons aucune nouvelle méthode ici.
La construction a des précédents. TVR (2020) a étiqueté ses 108 965 requêtes selon que la vidéo, les sous-titres ou les deux y répondaient, rapportant 74,2 % vidéo uniquement. Ce qui diffère, c’est le corpus et l’objectif : vidéo web ouverte plutôt que six séries télévisées, actions physiques, un sous-échantillon vérifié, et un ratio de coût. Le format de publication suit AVA et HowTo100M : identifiant, horodatage et étiquette, sans redistribution de vidéo. La récupération tout au long utilise l’API de recherche vidéo. Les images ici ont été obtenues en analysant le storyboard YouTube depuis la page de visionnage ; aucun clip n’a été extrait à aucun moment. Pour une exécution en production, la route prise en charge est l’API Media Data.
Ce que l’audit établit est plus étroit qu’un remplacement des démonstrations robotiques. Le web contient une couche importante et mal indexée d’images d’actions physiques, et la recherche visuelle horodatée rend cette couche considérablement plus facile à atteindre. La question de savoir si les images curées de cette façon améliorent de manière mesurable un système de robotique ou de modèle de monde est la prochaine question, et y répondre nécessite une expérience d’entraînement que cet audit n’a pas réalisée.
6 Citation
@misc{webmoments2026,
title = {Finding the Web's Hidden Robot Training Moments in
Public Web Video Data},
author = {Bright Data},
year = {2026},
howpublished = {Technical report},
note = {141 physical actions, 10,828 retrieved match rows over
8,849 distinct video-second moments, and
10,750 frames reviewed by a vision model}
}






















