Kann ein Faltungs-Neuronales Netzwerk Bilder unterschiedlicher Größe als Eingabebilder verwenden?

10

Ich arbeite an einem Faltungsnetzwerk für die Bilderkennung und habe mich gefragt, ob ich Bilder unterschiedlicher Größe eingeben kann (allerdings nicht sehr unterschiedlich).

Zu diesem Projekt: https://github.com/harvardnlp/im2markup

Sie sagen:

and group images of similar sizes to facilitate batching

Selbst nach der Vorverarbeitung haben die Bilder immer noch unterschiedliche Größen, was sinnvoll ist, da sie keinen Teil der Formel ausschneiden.

Gibt es Probleme bei der Verwendung unterschiedlicher Größen? Wenn ja, wie soll ich dieses Problem angehen (da nicht alle Formeln in dieselbe Bildgröße passen)?

Jede Eingabe wird sehr geschätzt

Graham Slick
quelle

Antworten:

2

Gibt es Probleme bei der Verwendung unterschiedlicher Größen? Wenn ja, wie soll ich dieses Problem angehen (da nicht alle Formeln in dieselbe Bildgröße passen)?

Dies hängt von der Architektur des neuronalen Netzwerks ab. Einige Architekturen gehen davon aus, dass alle Bilder dieselbe Dimension haben, andere (z. B. im2markup) gehen nicht davon aus. Die Tatsache, dass im2markup Bilder mit unterschiedlichen Breiten zulässt, ist meines Erachtens kein Problem, da sie eine RNN verwenden, die die Ausgabe der Faltungsschicht durchsucht.

Geben Sie hier die Bildbeschreibung ein

Gruppieren Sie Bilder ähnlicher Größe, um das Stapeln zu erleichtern

Dies dient normalerweise dazu, die Dinge zu beschleunigen, indem vermieden wird, dass zu viel Polsterung hinzugefügt wird.

Franck Dernoncourt
quelle
2

Haben Sie darüber nachgedacht, die Bilder in der Vorverarbeitungsphase einfach zu skalieren? Intuitiv kann ein Mensch, der einem skalierten Bild gegenübersteht, immer noch dieselben Merkmale und Objekte erkennen, und es gibt keinen offensichtlichen Grund, warum ein CNN auf einem skalierten Bild nicht dasselbe tun kann.

Ich denke, dass es einfacher sein könnte, die Bilder auf die gleiche Größe zu skalieren, als zu versuchen, ein Faltungsnetzwerk dazu zu bringen, Bilder unterschiedlicher Größe zu verarbeiten, was meiner Meinung nach im Land der "ursprünglichen Forschung" der Fall wäre. Sie können sicher festlegen, dass die Conv-Ebenen eines Convnet Bilder jeder Größe verarbeiten, ohne sie neu zu trainieren. Die Ausgabe eines Convnet ist jedoch normalerweise eine Art Klassifikator, und dies funktioniert wahrscheinlich weniger gut, wenn Sie Eingaben unterschiedlicher Größe eingeben, würde ich mir vorstellen.

Ein anderer Ansatz wäre, die Bilder nur mit Nullen aufzufüllen. Stellen Sie sich jedoch intuitiv vor, Sie betrachten entweder ein winziges Foto mit schwarzen Rändern oder Sie können hineinzoomen, um einen vernünftigen Bogen in Ihrem Gesichtsfeld zu bilden. Was würdest du tun? Welches ist leichter zu sehen?

Hugh Perkins
quelle
Skaliert die Skalierung nicht die Qualität des Bildes, was zu Fehlern und Verformungsmerkmalen führt. Wenn das Bild bereits eine niedrige Auflösung aufweist, verringert die Skalierung die Bildqualität bis zu einem Punkt, an dem selbst Menschen nicht leicht erkennen können, das nicht skalierte Bild jedoch möglicherweise erkennbar ist.
Vikram Bhat
1
Haben Sie ein Beispiel für ein Bild, das für Menschen erkennbar ist, sofern Sie keine Skalierung anwenden und dann nicht mehr erkennbar sind?
Hugh Perkins
Ich frage mich das auch. Wenn ich versuche, ein vorhandenes trainiertes Modell von Keras zu verwenden, denke ich, dass ich das Bild entweder so skalieren kann, dass es zur InceptionV3-Schnittstelle passt (299 x 299 von 32 x 32 -> CIFAR10). Ich denke, Skalierung verliert an Qualität. Aber ich denke, der geeignete Weg wäre, den Ausgabe-FC auszuschließen und die Eingabeform auf 32x32 anzugeben. Ich denke, dies würde jedoch eine Umschulung erfordern, da die Gewichte der Eingabeebene zufällig wären.
Joey Carson
Skalierung verringert die Qualität, hilft aber bei der Verallgemeinerung: Es gibt viele Artikel, die einen spürbaren Erkennungsgewinn verzeichneten, als vor dem Training Gauß-Unschärfe angewendet wurde . Intuitiv haben Sie mehr verschiedene Eingabebeispiele, die einem einzelnen "unscharfen" Bild ähneln, wodurch die Klassifizierung robuster wird.
Matthieu