Schamlos auf den Zug springen :-)
Inspiriert von Wie finde ich Waldo mit Mathematica und dem Follow-up? Wie finde ich Waldo mit R ? Als neuer Python-Benutzer würde ich gerne sehen, wie dies gemacht werden kann. Es scheint, dass Python dafür besser geeignet wäre als R, und wir müssen uns keine Sorgen um Lizenzen machen, wie wir es bei Mathematica oder Matlab tun würden.
In einem Beispiel wie dem folgenden würde es offensichtlich nicht funktionieren, einfach Streifen zu verwenden. Es wäre interessant, wenn ein einfacher regelbasierter Ansatz für schwierige Beispiele wie dieses entwickelt werden könnte.
Ich habe das Tag [maschinelles Lernen] hinzugefügt, da ich glaube, dass für die richtige Antwort ML-Techniken verwendet werden müssen, wie beispielsweise der von Gregory Klopper im ursprünglichen Thread befürwortete RBM-Ansatz (Restricted Boltzmann Machine). In Python ist RBM-Code verfügbar, der möglicherweise ein guter Ausgangspunkt ist, für diesen Ansatz sind jedoch offensichtlich Trainingsdaten erforderlich.
Auf dem IEEE International Workshop 2009 zum LERNEN VON MASCHINEN FÜR DIE SIGNALVERARBEITUNG (MLSP 2009) veranstalteten sie einen Datenanalyse-Wettbewerb: Wo ist Wally? . Die Trainingsdaten werden im Matlab-Format bereitgestellt. Beachten Sie, dass die Links auf dieser Website tot sind, aber die Daten (zusammen mit der Quelle eines Ansatzes von Sean McLoone und Kollegen finden Sie hier (siehe SCM-Link). Scheint ein Ausgangspunkt zu sein.
Antworten:
Hier ist eine Implementierung mit Mahotas
In rote, grüne und blaue Kanäle aufteilen. Es ist besser, unten Gleitkomma-Arithmetik zu verwenden, also konvertieren wir oben.
w
ist der weiße Kanal.Bauen Sie ein Muster von + 1, + 1, -1, -1 auf der vertikalen Achse auf. Das ist Wallys Shirt.
Falten Sie sich mit Rot minus Weiß. Dies gibt eine starke Reaktion, wo sich das Shirt befindet.
Suchen Sie nach dem Maximalwert und erweitern Sie ihn, um ihn sichtbar zu machen. Jetzt reduzieren wir das gesamte Bild mit Ausnahme der Region oder des Interesses:
Und wir bekommen !
quelle
Sie können versuchen, Vorlagen anzupassen, und dann diejenige entfernen, die die höchste Ähnlichkeit erzeugt, und dann maschinelles Lernen verwenden, um sie weiter einzugrenzen. Das ist auch sehr schwierig, und mit der Genauigkeit des Vorlagenabgleichs kann es einfach jedes Gesicht oder jedes gesichtsähnliche Bild zurückgeben. Ich denke, Sie brauchen mehr als nur maschinelles Lernen, wenn Sie dies konsequent tun möchten.
quelle
Vielleicht sollten Sie damit beginnen, das Problem in zwei kleinere zu unterteilen:
Das sind immer noch zwei sehr große Probleme ...
Übrigens würde ich c ++ wählen und den Lebenslauf öffnen, es scheint viel besser dafür geeignet zu sein.
quelle
Dies ist nicht unmöglich, aber sehr schwierig, da Sie wirklich kein Beispiel für ein erfolgreiches Spiel haben. Es gibt häufig mehrere Zustände (in diesem Fall mehr Beispiele für Zeichnungen von Walleys). Sie können dann mehrere Bilder in ein Bildrekonstruktionsprogramm einspeisen und es als verstecktes Markov-Modell behandeln und so etwas wie den Viterbi-Algorithmus für die Inferenz verwenden ( http: / /en.wikipedia.org/wiki/Viterbi_algorithm ).
So würde ich es angehen, aber wenn Sie mehrere Bilder haben, können Sie ihm Beispiele für die richtige Antwort geben, damit es lernen kann. Wenn Sie nur ein Bild haben, tut es mir leid, dass Sie vielleicht einen anderen Ansatz wählen müssen.
quelle
Ich habe erkannt, dass es zwei Hauptmerkmale gibt, die fast immer sichtbar sind:
Also würde ich es folgendermaßen machen:
Suche nach gestreiften Hemden:
Wenn es mehr als ein "Hemd" gibt, um mehr als eine Gruppe positiver Korrelationen zu finden, suchen Sie nach anderen Merkmalen wie dem dunkelbraunen Haar:
Suche nach braunen Haaren
quelle
Hier ist eine Lösung mit neuronalen Netzen, die gut funktioniert.
Das neuronale Netzwerk wird an mehreren gelösten Beispielen trainiert, die mit Begrenzungsrahmen markiert sind, die angeben, wo Wally im Bild erscheint. Das Ziel des Netzwerks ist es, den Fehler zwischen der vorhergesagten Box und der tatsächlichen Box aus Trainings- / Validierungsdaten zu minimieren.
Das oben genannte Netzwerk verwendet die Tensorflow-Objekterkennungs-API, um Schulungen und Vorhersagen durchzuführen.
quelle