OpenCV-Match-Vorlage

8

Ich versuche, ein Logo (Vorlage) mit einigen Bildern zu vergleichen. Meine Bilder sind alle in der Natur gefärbt und die Art, wie ich es mache, verwendet die cvMatchTemplate () von openCV und läuft die Vorlage (Logo) über mein Quellbild. Ich skaliere die Vorlage auf mehrere Ebenen, um die beste Übereinstimmung zu finden. Bitte beachten Sie, dass ich nur die digital geprägten Logos auf dem Bild und nicht die Logos in der Szene finde. ZB: Erkennen von Himmel Sport von diesem Bild Ссылка (Das Bild ist rein zur Darstellung und Klarheit meiner Aufgabe und ist nicht Bilder, die ich arbeite mit

Meine Bilder haben keine feste Auflösung, daher skaliere ich sie auf einen Standard 800x600. Jetzt, wenn meine Quellbildauflösung sehr schlecht ist, sagen wir 300x300, sind die Ergebnisse sehr gewöhnlich. Ich verwende die Methode = CV_TM_CCOEFF_NORMED im Template-Parameter und die Punktzahl sogar für genaue Übereinstimmungen ist ziemlich niedrig (so niedrig wie 0.4 auf einer Skala von 0 bis 1.0), so dass es mir schwer fällt zu sagen, ob das Logo vorhanden ist oder nicht. Ich habe zwei Fragen dazu:

1 - In opencv Vorlagenvergleich, wie behandelt es farbige Bilder. Ich habe versucht, aus dem Dokument zu verstehen und meine Schlussfolgerung war, dass es die Punktzahl für jeden Kanal separat berechnet und das Beste genommen wird. Wenn dies der Fall ist, wäre es besser, alle drei Kanäle für bessere Ergebnisse zu berücksichtigen

2 - Jeder alternative Ansatz !! :)

Lassen Sie mich wissen, wenn etwas nicht klar ist!

BEARBEITEN (Zusätzliche Informationen): Wie in den Kommentaren beschrieben, füge ich meine aktuelle Matching-Technik an, die skalierte Template-Matching ist. Bitte beachten Sie, dass die angehängten Bilder rein zu Testzwecken sind und nicht meine eigentliche Bildgruppe sind, mit der ich arbeite (kann nicht posten, da die Bilder proprietär sind) Quellbild Logo Bild Ausgabebild mit Vorlage passend zu

Obwohl die Vorlage angepasst wurde, beträgt die hier erzielte Punktzahl 0,59 für diese beste Übereinstimmung. Obwohl es relativ ein gutes Ergebnis für ein Spiel ist, aber immer noch nicht gut genug für mich, um sicher zu sagen, dass das gewünschte Logo existiert oder nicht. In meinen Testbildern, wenn das Logo auf dem Bildschirm transparent ist, würde es immer noch das Logo erkennen, aber mit einem schlechten Ergebnis von 0,3-0,4. Kann mit SURF / SIFT ein besseres Ergebnis erzielt werden?

BEARBEITEN (Versuch mit SURF) Ich habe versucht, einen SURF-Code zu erstellen, der bereits als Beispiel in der opencv-Dokumentation (minHessian = 2000) angegeben wurde. Link hier Hier ist die Ausgabe. Ich bin mir nicht sicher, wie ich das interpretiere (2,3 Punkte scheinen innerhalb der erwarteten Grenze zu liegen. Wird das als gut angesehen? Irgendwelche weiteren Vorschläge? Danke

    
Ajay Nair 15.01.2013, 05:22
quelle

1 Antwort

3

Haben Sie versucht, einen Gaußschen Weichzeichner in Ihrem Quellbild zu verwenden, bevor Sie einen Vorlagenvergleich durchführen? Dies kann Ihnen genauere Ergebnisse liefern, da ich glaube, dass die Qualität des Quellbildes eine schlechtere Übereinstimmung ergibt.

Link zu Gaußscher Unschärfe in OpenCV Docs:

OpenCV Python Gaussian Blur

versuchen Sie könnten alternativ eine Histogramm Vergleichstechnik auf dem Template-Matching schon sagt, für eine zusätzliche Bestätigung, dass die Template Match Korrelation zurückgegeben, auch wenn klein ist, ist der korrekte Wert:

Zeichnung Histogramme

Das Zeichnen der Histogramme ist optional, es kann für Ihre eigene Anwendung nützlich sein

Vergleicht man die Histogramme

^ Diese Methode berechnet die Histogramme Ihrer Bilder (Quelle und Vorlage) und die Korrelation zwischen ihnen ... Allerdings müssen Sie nicht ein Histogramm der gesamten Quelle will, genau dort, wo Ihre Template Matching denkt, dass die beste Korrelation ist, oder eine andere Stelle im Bild, so dass Sie wollen stattdessen ein Histogramm einer Region of Interest (ROI) bekommen, Siehe den folgenden C ++ Code:

%Vor%

Damit können Sie das Histogramm einer Region von Interesse berechnen. Sie sollten ein Histogramm der Vorlage und ein Histogramm für die Region, wo Template Matching denkt Ihre Vorlage in der Quelle und vergleichen sie die Template Matching Ausgabe

zu bestätigen oder zu widerlegen     
MattTheHack 12.03.2013 16:40
quelle

Tags und Links