Le découpage ("Slicing") de Dataset en computer vision

Le découpage ("Slicing") de Dataset en computer vision

La vision par ordinateur (VA) traite des modèles intelligents qui comprennent et interprètent les ensembles de données d'images à des fins diverses. Parmi les tâches courantes de computer vision, on peut citer la classification des images, la détection des objets et la segmentation des images. Nous utilisons ces modèles quotidiennement. Par exemple, le déverrouillage de votre iPhone via l'identification faciale implique de nombreux traitements liés à la computer vision (CV).

La vision par ordinateur comprend également des applications plus complexes, telles que les voitures auto-conduites, qui sont formées sur des datasets massifs. Le traitement de ces données à grande échelle est un problème important pour les ingénieurs spécialisés dans la vision par ordinateur. Les images occupent beaucoup plus de mémoire que les autres formes de données, et même un ensemble de données de base vaut quelques gigaoctets. L'un des moyens les plus courants de traiter des fichiers aussi volumineux est le découpage des datasets. Parlons-en plus en détail.

Qu'est-ce que le découpage de datasets ?

Le découpage ("slicing") consiste à diviser un dataset en plusieurs parties. Le découpage peut être effectué de manière aléatoire ou selon une clé prédéfinie et peut être effectué sur des lignes, des colonnes ou toute autre dimension.

Par exemple, si nous avons un tableau de 1000 lignes et 5 colonnes (1000 x 5), nous pouvons le découper en tranches sur les colonnes et créer des divisions de 1000x3 et 1000x2. Nous pouvons également placer des tranches le long des lignes pour former deux tableaux plus petits avec une dimension de 500x5 pour chacun d'entre eux.

Le nombre de tranches et la dimension à découper dépendent uniquement de votre cas d'utilisation.

Pourquoi découper les datasets ?

Le découpage des données est couramment utilisé pour les tâches de science des données et de machine learning. Voici pourquoi les praticiens de la science des données ont besoin du découpage des jeux de données.

1. Séparation de l'entraînement et du test

Lors des entraînements de machine learning, les données sont entraînées en utilisant une partie du dataset, puis testées sur un sous-ensemble inédit. Cet ensemble de données inédites, appelé ensemble de données "test", est généré en divisant les données primaires en deux parties. L'ensemble le plus important (généralement 80 % de l'ensemble des données) est appelé "ensemble d'entraînement" et l'ensemble le plus petit (généralement 20 % de l'ensemble des informations) est appelé "ensemble de test". L'ensemble d'entraînement entraîne le modèle et l'ensemble de test l'évalue.

Source : Michael Galarnyk

2. Exploration et analyse

L'une des techniques les plus courantes d'analyse exploratoire est le masquage et le découpage des données. Elle est utilisée pour analyser des parties spécifiques d'un dataset. Les analystes peuvent découper les données en colonnes pour ne visualiser que les champs pertinents ou en lignes lorsque des points spécifiques doivent être mis en évidence. Les datasets qui comprennent des séries temporelles sont découpés à différents intervalles pour une analyse basée sur le temps.

3. Traitement par lots

Lors de l'entraînement d'un réseau neuronal, les données sont souvent divisées en morceaux (tranches) avant d'être introduites dans le réseau. Cette méthode est utile dans les scénarios à mémoire limitée, où un petit morceau est chargé, traité et déchargé pour faire de la place au suivant. Le chargement incrémentiel des données permet aux réseaux neuronaux de s'entraîner sur de grands datasets sans rencontrer de problèmes de saturation de la mémoire.

4. Détection de la dérive ("drift") du modèle

La dérive des modèles ("drift") est le résultat direct de la dérive des données, c'est-à-dire des changements graduels dans le dataset sur une certaine période. Ackerman et al démontrent une technique de détection du drift des modèles en utilisant des tranches de données faibles. Leur approche analyse des tranches de données largement mal classées et détecte les déviations dans les informations.

5. Amélioration de la précision des modèles grâce à l'apprentissage par tranches

Les modèles de machine learning sont rarement aussi performants sur l'intégralité du dataset. Les performances du modèle sont moins bonnes sur certains sous-ensembles de données. Les approches modernes utilisent l'apprentissage par tranches pour former des modèles plus performants sur les tranches faibles. L'approche crée une fonction de tranche qui identifie les sous-ensembles de données critiques et entraîne le modèle à leur accorder un poids plus important. Le modèle est ensuite utilisé en conjonction avec des blocs d'attention conscients de ces tranches critiques.

6. Validation et équité du modèle

Pour évaluer l'uniformité d'un modèle, les praticiens en ML utilisent une technique appelée validation croisée k-fold. Le dataset est divisé en k tranches, l'une étant utilisée pour la validation et les autres pour l'entraînement. Après la formation, une tranche différente est choisie pour la validation et l'entraînement, et ce jusqu'à ce que toutes les tranches soient validées. Cette approche permet de confirmer que le modèle formé fonctionne de la même manière sur toutes les tranches de données.

En outre, l'équité d'un modèle est évaluée en le testant sur différentes tranches de données. Les données sont découpées en fonction d'informations essentielles telles que la race. Les différentes tranches contiennent uniquement des données relatives à une race particulière. Les tests effectués de cette manière garantissent au praticien que le modèle ne présente aucun biais.

Découpage des datasets de vision par ordinateur

Les datasets de vision par ordinateur sont constitués d'images ; bien que le concept global reste le même, celles-ci sont traitées de manière légèrement différente. Contrairement aux données traditionnelles, chaque image est chargée sous la forme d'une matrice bidimensionnelle ou tridimensionnelle (RVB).

La nature multidimensionnelle des datasets de Computer Vision pose de nouveaux défis en matière de traitement et de découpage. Ces datasets sont découpés selon leur première dimension, c'est-à-dire que si nous avons des images en niveaux de gris (2 dimensions), le dataset aura la forme suivante 200x380x380. Avec ces dimensions, nous avons 200 images de formes 380x380. L'opération de découpage fonctionne généralement sur la première dimension (200) puisque nous voulons conserver les images individuelles intactes et séparer une partie.

Pour RVB (3 dimensions), une nouvelle dimension est ajoutée (200x3x380x380) représentant les canaux de couleur, mais le découpage est toujours effectué sur la première dimension.

Source : Communauté Pytorch

Cependant, pour des techniques telles que l'hyperinférence assistée par découpage, le découpage est également effectué sur des images individuelles à des fins d'augmentation.

SAHI : découpage d'images pour la détection de petits objets

Les modèles conventionnels de détection d'objets tels que YOLO ont souvent du mal à fonctionner avec de petits objets tels que des personnes dans un espace encombré. La technique d'hyperinférence assistée par tranches utilise des images en tranches (augmentées) pour affiner les modèles existants afin d'améliorer leurs performances sur les petits objets dans les images à haute résolution. Les images découpées en tranches sont également utilisées pendant l'inférence, car la détection d'objets est effectuée sur chaque tranche.

Source : Hyperinférence assistée par tranche

Découpage automatisé des données

La détermination manuelle des tranches de données peut s'avérer difficile, en particulier si le dataset est volumineux. Des outils comme Slice Finder utilisent des techniques statistiques pour isoler les sous-ensembles de données susceptibles d'être intéressants. Le système prend en entrée les données d'entraînement, un modèle et un seuil de taille d'effet et utilise des techniques statistiques pour trouver les K plus grandes tranches problématiques. Le seuil de l'ampleur de l'effet (K) peut être modifié pour changer le nombre de tranches de données en vue d'une expérimentation détaillée.

Tirer parti de la plate-forme de vision par ordinateur de Picsellia pour rationaliser l'exploitation des données

Le découpage des datasets divise les données en plusieurs parties et est essentiel à la routine d'exploration des données et à l'entraînement des modèles. Il offre plusieurs avantages aux praticiens en machine learninig (ML), notamment l'évaluation des modèles, la détection du drift es données et des modèles et l'analyse des données.

Les datasets de vision par ordinateur posent un léger défi en raison de leur complexité spatiale et de leur nature multidimensionnelle. Ils peuvent être découpés dans la dernière dimension pour créer des partitions entre les images, ou les images elles-mêmes peuvent être recadrées pour être augmentées. La première technique facilite la gestion des ensembles de données et l'évaluation des modèles, tandis que la seconde permet d'améliorer les performances.

Picsellia fournit une plateforme de gestion de données pratique pour traiter les fichiers non structurés tels que les images et les vidéos. Elle offre un outil d'annotation intégré et un contrôle des versions de données et modèles pour tous vos besoins en matière de machine learning.

Pour en savoir plus, réservez votre démo dès aujourd'hui.

Gérez vos données d'IA de la bonne manière

Obtenir un essai

Recommandé pour vous:

english language
EN
french language
FR