Un réseau neuronal convolutif peut-il prendre comme images d'entrée de différentes tailles?

10

Je travaille sur un réseau de convolution pour la reconnaissance d'image, et je me demandais si je pouvais entrer des images de différentes tailles (pas très différentes cependant).

Sur ce projet: https://github.com/harvardnlp/im2markup

Ils disent:

and group images of similar sizes to facilitate batching

Ainsi, même après le prétraitement, les images sont toujours de tailles différentes, ce qui est logique car elles ne découperont pas une partie de la formule.

Y a-t-il des problèmes dans l'utilisation de différentes tailles? Si tel est le cas, comment dois-je aborder ce problème (car les formules ne tiennent pas toutes dans la même taille d'image)?

Toute contribution sera très appréciée

Graham Slick
la source

Réponses:

2

Y a-t-il des problèmes dans l'utilisation de différentes tailles? Si tel est le cas, comment dois-je aborder ce problème (car les formules ne tiennent pas toutes dans la même taille d'image)?

Cela dépend de l'architecture du réseau neuronal. Certaines architectures supposent que toutes les images ont la même dimension, d'autres (comme im2markup) ne font pas une telle hypothèse. Le fait que im2markup autorise des images de différentes largeurs ne pose aucun problème, je crois, car ils utilisent un RNN qui balaye la sortie de la couche de convolution.

entrez la description de l'image ici

regrouper des images de tailles similaires pour faciliter la mise en lots

C'est généralement pour accélérer les choses en évitant d'ajouter trop de rembourrage.

Franck Dernoncourt
la source
2

Avez-vous envisagé de simplement redimensionner les images lors de la phase de prétraitement? Intuitivement, un humain face à une image à l'échelle sera toujours en mesure de reconnaître les mêmes caractéristiques et objets, et il n'y a aucune raison évidente pour laquelle un CNN ne pourrait pas faire la même chose sur une image à l'échelle.

Je pense que la mise à l'échelle des images pour avoir la même taille pourrait être plus facile que d'essayer de faire en sorte qu'un réseau convolutionnel gère des images de différentes tailles, ce qui, je pense, serait là-haut dans un pays de `` recherche originale ''. Vous pouvez certainement faire les couches conv d'un convnet gérer des images de n'importe quelle taille, sans recyclage. Cependant, la sortie d'un convnet sera généralement une sorte de classificateur, et cela fonctionnera probablement moins bien, si vous alimentez des entrées de taille différente, j'imagine.

Une autre approche serait de simplement remplir les images avec des zéros. Mais imaginez intuitivement que vous regardez soit une petite photo, rembourrée avec des bordures noires, soit vous pouvez zoomer, de sorte qu'elle sous-tend un arc raisonnable dans votre champ visuel. Que feriez-vous? Qu'est-ce qui est plus facile à voir?

Hugh Perkins
la source
la mise à l'échelle ne réduit pas la qualité de l'image, ce qui introduit des caractéristiques d'erreur et de déformation, si l'image est déjà à basse résolution, la mise à l'échelle réduira la qualité de l'image à un point où même les humains ne peuvent pas reconnaître facilement, mais l'image non mise à l'échelle peut être reconnaissable.
Vikram Bhat
1
avez-vous un exemple d'image qui est reconnaissable aux humains, à moins que vous n'appliquiez une mise à l'échelle, et devienne alors méconnaissable?
Hugh Perkins
Je me le demande aussi. Lorsque j'essaie d'utiliser un modèle formé existant à partir de keras, je pense que je pourrais soit agrandir l'image pour l'adapter à l'interface InceptionV3 (299x299 de 32x32 -> CIFAR10). Je pense que la mise à l'échelle perd de la qualité. Mais je pense que la manière appropriée de le faire serait d'exclure la sortie FC et de spécifier la forme d'entrée à 32x32. Je pense que cela nécessiterait un recyclage, car les poids de la couche d'entrée seraient aléatoires.
Joey Carson
La mise à l'échelle réduit la qualité mais aide à la généralisation: de nombreux articles ont noté un gain notable de reconnaissance lorsque le flou de Gauss a été appliqué avant la formation. Intuitivement, vous avez plus d'échantillons d'entrée différents qui ressemblent à une seule image "floue", ce qui rend la classification plus robuste.
Matthieu