Maison >Périphériques technologiques >IA >Sept étapes pour préparer des ensembles de données pour les projets Image AI
Traducteur | Chen Jun
Chonglou | Révisé
Je me demande si vous avez remarqué que l'ensemble de données est peut-être la partie la plus négligée du projet d'apprentissage automatique. Pour la plupart des gens, un ensemble de données n’est rien de plus qu’une collection d’images prédéfinies qui ont été rapidement assemblées ou téléchargées. En fait, les ensembles de données sont la pierre angulaire de tout projet d’intelligence artificielle (IA) basé sur l’image. Pour tout projet d’apprentissage automatique visant à atteindre une grande précision, la création et la gestion d’un ensemble de données équilibré et bien structuré sont cruciales.
Cependant, créer un ensemble de données n'est pas aussi simple que de collecter des centaines d'images. Lorsque nous essayons de démarrer un projet d’IA, nous sommes susceptibles de rencontrer divers dangers cachés. Ci-dessous, je discuterai de sept étapes typiques que vous pouvez suivre pour créer votre propre ensemble de données afin que vous puissiez mieux comprendre l'importance de la taille de l'ensemble de données, les éventuelles omissions de données et la conversion d'un ensemble de données en base de données.
Remarque : Ces étapes s'appliqueront principalement aux projets de détection et de classification d'objets contenant des ensembles de données d'images. D'autres types de projets tels que le PNL ou les projets graphiques nécessitent une approche différente.
Normalement, les réseaux de neurones ne peuvent gérer que des images d'une taille spécifique, et les images dépassant un seuil seront obligées d'être réduites. Cela signifie qu'avant d'utiliser l'ensemble de données, nous devons choisir un réseau neuronal approprié et redimensionner l'image en conséquence
Comme vous le savez, si vous réduisez la taille de l'image, cela peut entraîner une énorme baisse de précision, même si elle est petite les objets sur l'image disparaissent, endommageant ainsi tout le processus de reconnaissance. Comme indiqué ci-dessous, vous devez détecter le numéro de plaque d'immatriculation dans l'image capturée par la caméra de sécurité, et la plaque d'immatriculation n'occupe qu'une petite partie de l'image entière. Par conséquent, lorsque le réseau neuronal réduit l'image, le numéro de plaque d'immatriculation peut devenir très petit et ne peut pas être reconnu
Comme le montre la figure ci-dessous, si la taille de l'image que le réseau peut utiliser peut être comprise , Vous aide à recadrer l'image de l'ensemble de données appropriée.
Bien que la plupart des réseaux de neurones puissent gérer des images de plus petite taille, les derniers réseaux de neurones, tels que Yolo v5x6, sont capables de traiter des images de plus grande résolution. Par exemple, Yolo v5xs6 est capable de traiter des images jusqu'à 1280 pixels de large.
Afin de garantir que l'ensemble de données reflète avec précision les images réelles que le réseau neuronal doit reconnaître pendant le fonctionnement, nous collectent Les facteurs suivants doivent être pris en compte lors de la configuration des données :
Avec une compréhension claire des images réelles à traiter par le réseau neuronal, nous pouvons créer un ensemble de données qui reflète avec précision ces objets d'intérêt et leur environnement.
La collecte d'images courantes auprès de Google peut être considérée comme le moyen le plus simple et le plus rapide d'assembler un grand ensemble de données. Cependant, cette méthode est en réalité difficile à satisfaire aux exigences de haute précision. Comme le montre la figure ci-dessous, par rapport aux images prises par de vrais appareils photo, les images de Google ou des bases de données de photos sont généralement « belles » traitées
et un ensemble de données trop « joli » est susceptible d'en résulter. dans une précision de test plus élevée. Cela signifie que le réseau neuronal ne fonctionnera bien que sur les données de test (une collection d'images purifiées à partir de l'ensemble de données), mais qu'il fonctionnera mal dans des conditions réelles et entraînera une faible précision.
Un autre aspect important auquel nous devons prêter attention est : le format de l'image. Avant de commencer votre projet, vérifiez quels formats le framework choisi prend en charge et si vos images peuvent répondre à ces exigences. Bien que le framework actuel puisse prendre en charge plusieurs formats d'image, des problèmes subsistent avec des formats tels que .jfif.
Les données d'annotation peuvent être utilisées pour spécifier des cadres de délimitation, des noms de fichiers et différentes structures qui peuvent être adoptées. Généralement, différents réseaux et frameworks de neurones nécessitent différentes méthodes d'annotation. Certains nécessitent des coordonnées absolues contenant l'emplacement du cadre englobant, d'autres nécessitent des coordonnées relatives ; certains exigent que chaque image soit accompagnée d'un fichier .txt distinct contenant les annotations, tandis que d'autres nécessitent uniquement un seul fichier .txt
contenant tous les fichiers d'annotations. Comme vous pouvez le constater, même si votre ensemble de données contient de bonnes images, cela ne servira à rien si votre framework ne peut pas gérer les annotations.
"voir ". Qu'il s'agisse d'une supposition correcte ou fausse, sa structure permet au réseau neuronal d'apprendre davantage en profondeur.
Bien que cette approche ait été largement utilisée et ait fait ses preuves pour obtenir de bons résultats, nous préférons une approche différente en divisant l'ensemble de données en sous-ensembles comme suit :
.
Si les données que vous utilisez pour entraîner un algorithme d'apprentissage automatique contiennent les informations que vous essayez de prédire, une fuite de données peut se produire. Comme le montre la figure ci-dessous, du point de vue de la reconnaissance d'images, une fuite de données se produit lorsque les photos du même objet dans les sous-ensembles de formation et de validation sont très similaires. Évidemment, les données manquantes sont extrêmement préjudiciables à la qualité des réseaux de neurones.
L'une des méthodes de segmentation d'ensembles de données les plus couramment utilisées consiste à mélanger les données de manière aléatoire, puis à sélectionner les premiers
70 %des images dans le sous-ensemble d'entraînement et les
restants 30 % Ensuite, placez-le dans le sous-ensemble de vérification. Cette méthode peut facilement conduire à des omissions de données. Comme le montre la figure ci-dessous, notre priorité immédiate est de supprimer toutes les photos « en double » de l'ensemble de données et de vérifier si des photos similaires existent dans les deux sous-ensembles.
Pour cela, nous pouvons utiliser un simple script pour effectuer automatiquement la suppression des doublons. Bien entendu, vous pouvez ajuster le seuil de duplication, par exemple : supprimer uniquement les images complètement en double, ou les images présentant une similarité allant jusqu'à 90% , etc. En général, plus le contenu en double est supprimé, plus le réseau neuronal sera précis.
Si votre ensemble de données est assez volumineux, par exemple : plus de 10 millions images, et combien pour dix classes et sous-classes d'objets, nous vous recommandons de créer une base de données simple pour stocker les informations sur les ensembles de données. La raison derrière cela est en fait très simple : avec de grands ensembles de données, il est difficile de suivre toutes les données. Par conséquent, sans un traitement structuré des données, nous ne serons pas en mesure de les analyser avec précision.
Grâce à la base de données, vous pouvez rapidement diagnostiquer l'ensemble de données et découvrir que : trop peu d'images dans une catégorie spécifique rendront difficile la reconnaissance des objets par le réseau neuronal ; assez ; dans une catégorie spécifique. Il y a trop d'images Google, ce qui entraîne un faible score de précision pour cette catégorie.
Avec une simple base de données, nous pouvons inclure les informations suivantes :
La base de données est indispensable pour collecter des ensembles de données et outils de données statistiques. Cela nous aide à voir rapidement et facilement à quel point l'ensemble de données est équilibré et combien d'images de haute qualité se trouvent dans chaque catégorie (du point de vue du réseau neuronal). Avec des données comme celle présentée visuellement ci-dessous, nous pouvons les analyser plus rapidement et les comparer avec les résultats de reconnaissance pour découvrir la cause profonde de la faible précision
Le contenu qui doit être réécrit est : Un Le problème à noter est que la faible précision peut être due à un plus petit nombre d'images ou à une proportion plus élevée de Google Photos dans une certaine catégorie. En créant une telle base de données, le temps de production, de test et de recyclage du modèle peut être considérablement réduit. images Technologie, l'augmentation des données est le processus d'exécution de transformations simples ou complexes sur les données, par exemple par retournement ou transformation de style, nous pouvons améliorer la validité des données. L'ensemble de données efficace obtenu sur cette base ne nécessite pas de formation excessive. Comme le montre l'image ci-dessous, ce type de transformation de données peut être aussi simple que de simplement faire pivoter l'image de de 90
degrés, ou aussi complexe que d'ajouter une éruption solaire à l'image pour simuler une photo rétroéclairée ou une lumière parasite.spécifiquement pour l'augmentation des données. Actuellement, il existe deux types d'augmentation des données : Augmentation avant l'entraînement
-Avant le début du processus d'entraînement, les données sont augmentées et ajoutées au sous-ensemble d'entraînement. Bien entendu, nous ne pouvons effectuer de tels ajouts qu’après que l’ensemble de données ait été divisé en sous-ensembles de formation et de validation afin d’éviter les omissions de données mentionnées précédemment.
Amélioration en formation- utilise un cadre similaire à
Bien que pour ceux qui cherchent à appliquer l'IA aux entreprises, l'ensemble de données est la partie la moins excitante. Mais il est indéniable que les ensembles de données constituent une partie importante de tout projet de reconnaissance d’images. De plus, dans la plupart des projets de reconnaissance d’images, la gestion et l’organisation des ensembles de données prennent souvent beaucoup de temps à l’équipe. Enfin, résumons comment vous pouvez obtenir les meilleurs résultats de vos projets d'IA en éliminant correctement vos ensembles de données :
Julian Chen, rédacteur de communauté 51CTO, a plus de dix ans d'expérience dans la mise en œuvre de projets informatiques et est doué pour la mise en œuvre interne et ressources et risques externes Gestion et contrôle, en mettant l'accent sur la diffusion des connaissances et de l'expérience en matière de sécurité des réseaux et de l'information.
Titre original : 7 étapes pour préparer un ensemble de données pour un projet d'IA basé sur l'image, auteur : Oleg Kokorin
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!