2017-01-27 1 views
-2

Ich arbeite in einem Projekt über die Erkennung der Innenumgebung Objekte (z. B. Stuhl, Tisch). Ich bin neu in der Maschine, lehnend mit opencv (mit C++). Mein Plan ist, die SURF-Feature-Erkennungsmethode zu verwenden und dann die Objekte mithilfe der SVM-Klassifizierung zu kategorisieren.So verwenden Sie SVM in Objekterkennung

Ich habe viele Beispielcodes gesehen und immer noch konnte ich nicht herausfinden, wie man die Daten zur Verfügung stellt, sie 1 oder 0 beschriftet, wie man ein Modell macht und das zum Trainieren usw. verwendet. Ich wäre dankbar, wenn mir jemand mit den klaren Schritten helfen kann. Es ist wirklich verwirrend für mich.

+0

Das ist viel zu weit von einer Frage. Sie sollten sich auf einen Aspekt Ihrer Frage konzentrieren, den Code bereitstellen, den Sie ausprobiert haben, und klar erklären, was nicht funktioniert. Ich würde vorschlagen, dass Sie die [Tour] (http://stackoverflow.com/tour) besuchen und [Wie Sie Fragen stellen] (http://stackoverflow.com/help/how-to-ask) – Tchotchke

+1

Willkommen bei StackOverflow. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [zum Thema] (http://stackoverflow.com/help/on-topic) und [how to ask] (http://stackoverflow.com/help/how-to-ask) gilt hier. StackOverflow ist kein Codierungs- oder Lernprogramm. – Prune

Antwort

0

Sie können Feature Deskriptoren als Teil des Trainings Ihres maschinellen Lernmodells verwenden. Ich habe mit gearbeitet, aber nicht zum Training meiner Modelle verwendet.

Ich kann Ihnen mit einem Projektbeispiel helfen, wo ich HOG verwendet habe und SVM für das Training verwendet. Bitte überprüfen Sie this repository. Ich weiß, Sie haben für C++ gefordert, und meine Beispiele sind in Python, Sie können dieses Repository als Beispiel und verwendet sie gleichermaßen in Ihrer bevorzugten Sprache.

Es sind vor allem diese Schritte beteiligt: ​​

  1. die Proben von positiven und negativen Bilder Get für die Sie 1 und -1 markieren können (oder 0), die jeweils für die Einstufung. Wenn Sie denken, dass Sie über genügend Daten verfügen, können Sie mit dem Feature-Engineering-Teil fortfahren. Oder Sie können die Hilfe sample_create.py aus dem Repository nehmen und viel größere Datensätze erstellen.

  2. Machen Sie das Feature-Engineering mit dem Beispiel. Suchen Sie nach Merkmalsdeskriptoren und speichern Sie sie irgendwo, wo Sie später Ihr Modell trainieren können. Sie können Hilfe von der Datei feature_engineering.py aus dem Repository nehmen, das alle Bilder liest, HOG-Deskriptoren erstellt und sie in einer Datei speichert.

  3. Und der letzte Schritt besteht darin, die Trainingsdaten an das Trainingsmodell zu übergeben. Ich habe SVM in meinem Beispiel verwendet. Dies wird in der Datei linear_svm.py angezeigt. Ich habe TensorFlow-Bibliotheken dafür verwendet.

  4. Das Modell wird ausgegeben und gespeichert, das für weitere Objekterkennung verwendet werden kann, indem die Bilder direkt an es übergeben werden. Ich werde diese Verwendung sehr bald veröffentlichen.

+0

Vielen Dank für die Sorge. linear_svm bedeutet, dass es Eins-zu-eins-Klassifizierungsrecht ist? Ich wäre Ihnen dankbar, wenn Sie mit mir viele-zu-viele führen könnten. –

+0

Bitte lesen Sie https://en.wikipedia.org/wiki/Support_vector_machine#Linear_SVM für mehr über lineare svm. Ich konnte sehen, dass Sie eine Multi-Class-Klassifikationen, Multi-Klassen-Svm ist möglich. Bitte beziehen Sie sich für mehr hier: https://en.wikipedia.org/wiki/Support_vector_machine#Extensions. FYI, es ist nicht genau eins zu eins oder viele zu viele, es ist immer wie Daten zu Klassen. Sie benötigen lediglich Daten mit einer zugeordneten Klasse (https://github.com/cprakashagr/hog-svm-tf/blob/master/src/feature_engineering.py#L43) und fahren dann mit dem Training fort. – cprakashagr