35 votes

Modification d'images formées pour former un réseau de neurones

Je suis en train d'essayer de faire un programme pour différencier pourri oranges et comestibles oranges basé uniquement sur l'apparence extérieure. Pour ce faire, je suis à la planification sur l'utilisation d'un Réseau de Neurones à Convolution de s'entraîner avec des oranges pourries et normal oranges. Après quelques recherches j'ai pu trouver une base de données de l'env. 150 pourri oranges et 150 normal oranges sur un fond noir (http://www.cofilab.com/downloads/). De toute évidence, une machine modèle d'apprentissage auront besoin au moins de quelques milliers d'oranges pour obtenir une précision de plus de 90 pour cent. Cependant, puis-je modifier ces 150 oranges, d'une certaine façon à produire plus de photos d'oranges? Par alter, je veux dire l'ajout de différentes nuances d'orange sur les agrumes à faire un "autre orange." Serait-ce une méthode efficace de la formation d'un réseau de neurones?

9voto

Dellein Points 273

C'est un très bon moyen d'augmenter le nombre de jour que vous avez. Ce que vous ferez dépendra de vos données. Par exemple, si vous êtes de formation sur des données obtenues à partir d'un capteur, vous pouvez ajouter du bruit à la formation de données de sorte que vous pouvez augmenter votre jeu de données. Après tout, vous pouvez vous attendre un peu de bruit venant du capteur plus tard.

En supposant que vous formera sur les images, voici un très bon github qui fournit des moyens d'utiliser ces techniques. Cette bibliothèque python vous aide à augmenter des images pour votre machine à des projets d'apprentissage. Il convertit un ensemble d'images de l'entrée dans une nouvelle, beaucoup plus large de quelque peu modifié les images. Lien: https://github.com/aleju/imgaug

Caractéristiques:

  • La plupart des techniques d'augmentation disponibles.

  • Techniques peuvent être appliquées à la fois des images et des keypoints/repères les images. Définir votre augmentation de la séquence une fois au début de la expérience, puis l'appliquer à de nombreuses reprises.

  • Définir flexible stochastique varie pour chaque augmentation, par exemple, "faire tourner chaque image par une valeur comprise entre -45 et 45 degrés" ou "faire pivoter chaque image par une valeur échantillonnés à partir de la distribution normale N(0, 5.0)".

  • Facilement convertir tous stochastique plages de valeurs déterministes à compléter les différents lots d'images dans la exactement de la même manière (par exemple, des images et de leurs cartes de chaleur).

enter image description here

3voto

crodriguezo Points 335

Données de l'augmentation mammaire est ce que vous cherchez. Dans votre cas vous pouvez faire différentes choses:

  1. Appliquer des filtres pour obtenir de l'image légèrement différente, comme il a été dit, vous pouvez utiliser le flou gaussien.

  2. Coupez l'orange et le mettre dans des milieux différents.

  3. L'échelle des oranges avec des échelles différentes facteurs.

  4. Faire pivoter les images.

  5. créer synthétique pourri oranges.

  6. Mélanger tous les différentes combinaisons des précédentes. Avec ce genre d'augmentation, vous pouvez facilement créer des milliers de différents oranges.

J'ai fait quelque chose comme ça avec un jeu de données de 12.000 images et je peux créer des échantillons de 630.000

2voto

Lucas Borsatto Points 158

C'est en effet un bon moyen d'augmenter votre ensemble de données. Vous pouvez, par exemple, appliquer un flou gaussien aux images. Ils deviendront flous, mais différents de l'original. Vous pouvez également inverser les images. Ou, dans le dernier cas, recherchez de nouvelles images et appliquez les techniques citées.

0voto

pratsJ Points 663

Les données de l'augmentation est vraiment une bonne façon de stimuler l'ensemble de formation, mais pas encore assez pour former un réseau profond de bout en bout sur son propre compte tenu de la possibilité qu'il overfit. Vous devriez regarder d'adaptation de domaine où vous prenez un modèle de pré-entraîné comme la création, qui est formé imagenet jeu de données et de contrôler votre problème. Puisque vous avez à apprendre seuls les paramètres nécessaires pour classifier votre cas d'utilisation, il est possible d'atteindre une bonne précision avec relativement moins de données d'apprentissage disponibles. J'ai organisé une démonstration de classification avec cette technique ici. Essayer avec votre jeu de données et voir si ça aide. La démo prend soin de pré-entraîné modèle ainsi que les données d'augmentation pour le jeu de données que vous pourrez télécharger.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X