2016-06-15 17 views
7

Mein Ziel ist es, bekannte Logos in statischen Bildern und Videos zu finden. Ich möchte das erreichen, indem ich Feature-Erkennung mit KAZE oder AKAZE und RanSac benutze.Proper Ansatz zur Feature-Erkennung mit opencv

ich für ein ähnliches Ergebnis bin mit dem Ziel zu: https://www.youtube.com/watch?v=nzrqH ...

Während mit den detection example from the docs experimentiert, die btw groß ist, ich einige Probleme konfrontiert war:

  • Objektauflösung: Unterschiede in der Größe zwischen das bekannte Objekt und die Auflösung der Szene, wo das Objekt sein soll, bricht manchmal den Erkennungsalgorithmus - das Objekt wird nicht in Bildern mit einer niedrigen Auflösung erkannt, obwohl die Bildqualität ist für ein menschliches Auge noch in Ordnung.
  • Farbkontrast mit dem Hintergrund: Es scheint, dass die Erkennung durch verschiedene Hintergrundkontraste leicht abgelenkt werden kann (zB: Objekt ist Logo schwarz auf weißem Hintergrund, Logo in Szene ist weiß auf schwarz Hintergrund). Wie kann ich die Erkennung robuster gegen verschiedene Luminationen und Hintergrundkontraste machen?
  • Vorverarbeitung: Sollte irgendeine Art von Vorverarbeitung des Objekts Objekt/Szene durchgeführt werden? Zum Beispiel vergrößern Sie die Szene bis zu einer bestimmten Größe? Gibt es eine Richtlinie, wie Sie die Feature-Erkennung in in mehreren Schritten angehen, um die besten Ergebnisse zu erhalten?
+0

Überprüfen Sie den letzten Teil von [this] (http://stackoverflow.com/a/31370006/5008845) – Miki

Antwort

4

Ich denke, Ihr Problem ist komplizierter als Feature-Descriptor-Matching-Homographie-Prozess. Es ist eher auf Mustererkennung oder Klassifizierung ausgerichtet.

Sie dies, verlängert Papier Überprüfung der Formschluss:

http://www.staff.science.uu.nl/~kreve101/asci/vir2001.pdf

Erstens ist die Auflösung von Bildern sehr wichtig, , weil in der Regel passenden Betrieb eine Intensität Pixel macht Kreuzkorrelation zwischen Probe Bild (Logo) und Ihr Prozessbild, so erhalten Sie den besten Kreuzkorrelierten Bereich.

In gleicher Weise ist die Hintergrundfarbintensität sehr wichtig, da die Hintergrundbeleuchtung das Endergebnis unterschiedlich beeinflussen könnte.

Feature-basierende Methoden sind weitgehend erforscht:

http://docs.opencv.org/2.4/modules/features2d/doc/feature_detection_and_description.html

http://docs.opencv.org/2.4/modules/features2d/doc/common_interfaces_of_descriptor_extractors.html

So zum Beispiel, können Sie alternative Methoden versuchen, wie zum Beispiel:

Hog descritors: Histogramm orientierten Gradienten: https://en.wikipedia.org/wiki/Histogram_of_oriented_gradients

Mustervergleich oder eine Vorlage passende http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html

Ich denke, die neueste (Pattern Matching) ist der einfachste Ihren Algorithmus zu überprüfen.

Hoffe diese Hinweise hilft.

Prost.

Unai.