J'aimerais utiliser un réseau de neurones pour la classification des images. Je vais commencer par préparer CaffeNet et le former pour mon application.
Comment dois-je préparer les images d'entrée?
Dans ce cas, toutes les images sont du même objet mais avec des variations (pensez: contrôle de qualité). Ils sont à des échelles / résolutions / distances / conditions d'éclairage quelque peu différentes (et dans de nombreux cas, je ne connais pas l'échelle). De plus, chaque image comporte une zone (connue) autour de l’objet d’intérêt qui doit être ignorée par le réseau.
Je pourrais (par exemple) rogner le centre de chaque image, ce qui garantit de contenir une partie de l'objet d'intérêt et aucune partie de la zone ignorée; mais il semble que cela jetterait des informations, et les résultats ne seraient pas vraiment à la même échelle (peut-être une variation de 1,5x).
Augmentation du jeu de données
J'ai entendu parler de la création de plus de données d'entraînement par recadrage aléatoire / miroir / etc., existe-t-il une méthode standard pour cela? Des résultats sur l’amélioration de la précision du classificateur?
import scipy.misc
. stackoverflow.com/questions/13581593/…Bien que la réponse de wacax soit complète et très explicative, je voudrais ajouter quelques éléments au cas où quelqu'un trébucherait sur cette réponse.
Tout d' abord, la plupart des
scipy.misc
fonctions connexes d'image (imread
,imsave
,imresize
erc) sont devenus dépréciée en faveur de l'une ou l' autre ImageIO ou skimage .Deuxièmement, je recommanderais fortement la bibliothèque python imgaug pour toute tâche d’augmentation. Il est vraiment facile à utiliser et dispose de pratiquement toutes les techniques d'augmentation que vous pourriez souhaiter utiliser.
la source