0

Ich habe einen Satz von 16000 Bildern. Ich habe ein Beispielbild, ich muss eines von 16000 Bildern darauf finden. Ich habe bereits den ORB + FLANN Ansatz von OpenCV versucht, aber es ist zu langsam. Ich hoffe einmal trainiertes Netzwerk wird schneller sein als es. Ich weiß nicht, NN Theorie gut, ich habe & Websites einige Artikel gelesen, und ich habe eine Reihe von Fragen bekommen:Neuronale Netzwerk-Bildarchitektur

  1. Soll ich 16k Ausgangsneuronen verwenden Eingangsbild classificate?
  2. Wie kann ich meine NN trainieren, wenn ich nur ein Zugbild pro Klasse habe?
  3. Welche Architektur soll ich verwenden?
  4. Vielleicht sollte ich Trainingsdatensatz durch zufällige Verzerrung der Eingabebilder erhöhen?

leider im Voraus für mein schlechtes Englisch :)

+0

Lassen Sie mich sehen, ob ich verstanden habe. Du hast 16.000 Bilder. Sie haben ein einzelnes Bild von jeder "Klasse". Sie benötigen das Netzwerk, um jedes Bild zu erkennen. Sie müssen also die Netzwerkklassifizierung nicht verallgemeinern, oder? –

+0

@ WillGlück Ja, du hast es richtig verstanden. Aber ich habe deinen letzten Satz nicht verstanden, Entschuldigung. – Ledzz

+0

Normalerweise werden neuronale Netze zur Verallgemeinerung verwendet. Sie zeigen dem Netzwerk einige Bilder von Katzen und es werden andere Katzenbilder, die noch nie zuvor gesehen wurden, als Katzen einstufen. In Ihrem Fall werden Sie nach dem Training Bilder zeigen, die das Netzwerk nie gesehen hat oder nur die Bilder, die für das Training verwendet wurden? –

Antwort

0

Ich bin kein Experte, aber ich denke, dass diese Art von Problem für neuronale Netze nicht der perfekte Anzug ist. Wahrscheinlich sind Merkmalsextraktion, Interessenpunkte und Deskriptoren, die alle in openCV verfügbar sind, die beste Option. Wie auch immer, lass es uns versuchen. Mit den erhaltenen Informationen können Sie Folgendes versuchen:

SOM-Netzwerk - Erstellen Sie ein selbstorganisierendes Karten-Netzwerk mit 16.000 Klassen für die Ausgabe. Ich habe nie ein Beispiel mit so vielen Klassen und nur einem Beispiel pro Klasse gesehen, aber es sollte funktionieren. Vielleicht können Sie versuchen, PCA zu verwenden, um die Bilddimensionalität zu reduzieren. Trainiere weiterhin das Netzwerk mit deinen Bildern (oder PCA-Funktionen). Beginnen Sie mit, ich weiß nicht, 1.000 Epochen. Erhöhen Sie diesen Wert, bis Sie gute Ergebnisse erzielt haben.

Here you can read a bit more about SOM

+0

Womit wenden wir die PCA an? Direkt auf der Matte des Bildes oder auf dem Histogramm des Bildes? Sollten die Bilder Graustufen sein? Vielen Dank! – user1849859

+0

Soweit ich weiß, können Sie beides tun. Die gebräuchlichste Verwendung von PCA sind jedoch die gesammelten Daten des Rohbildes. Wie Histogramme. Über die Graustufen, Wenn es wichtige Funktionen gibt, die mit den Farben erkannt werden können, denke ich, Graustufen ist keine gute Wahl. –