Ich versuche, ein Objektklassifizierungssystem mit OpenCV einzurichten. Wenn ich ein neues Objekt in einer Szene erkenne, möchte ich wissen, ob das neue Objekt zu einer bekannten Objektklasse gehört (ist es eine Box, eine Flasche, etwas Unbekanntes usw.).Object Classification, wann das Vollbild oder das extrahierte Objekt verwendet werden soll?
Meine Schritte so weit:
- das Bild in den roi Abholzen, wo ein neues Objekt
- Berechnung keypoints für jedes Bild (cv :: SurfFeatureDetector)
- Berechnung Deskriptoren für jeden charakteristischen Punkt erscheinen könnte (cv :: SurfDescriptorExtractor)
- Generieren eines Vokabular Bag of Words (cv :: BOWKMeansTrainer)
- Berechnung Antwort Histogramme (cv :: BOWImgDescriptorExtractor)
- die Antwort Histogramme verwenden ein cv :: SVM für jede Objektklasse
- Mit dem gleichen Satz von Bildern wieder zu trainieren, um die Klassifizierung
ich zu testen, wissen, dass es noch etwas falsch mit meinem Code ist seit die Klassifizierung funktioniert noch nicht.
Aber ich weiß nicht wirklich, wo ich das ganze Bild verwenden soll (runtergeschnitten zum roi) oder wann ich das neue Objekt aus dem Bild extrahieren soll und nur das Objekt selbst verwenden soll.
Es ist mein erster Schritt in die Objekterkennung/-klassifizierung und ich sah Leute, die sowohl volle Bilder als auch extrahierte Objekte benutzten, aber ich weiß einfach nicht, wann was zu verwenden ist.
Ich hoffe, Womeone kann dies für mich klären.
Gibt es einen Grund, die gleichen Bilder nicht für Training und erste Tests zu verwenden? Ich dachte, das sollte eine 100% richtige Klassifizierung bekommen, wenn alles korrekt eingerichtet ist, also habe ich dieselben Bilder verwendet. – Oronar
Ich habe es! Sie wollen nur das Ergebnis sehen, aber denken Sie daran, dass Sie Ihre Trainingsgenauigkeit nicht kennen, oder? Vielleicht ist es sogar niedrig. Natürlich müssen Sie eine hohe Punktzahl erzielen, wenn Sie den Algorithmus mit Trainingsbildern testen. Könnten Sie Ihre Trainingsgenauigkeit teilen? – cagatayodabasi
Wenn ich richtig verstehe, sollte ich eine ROI (AABB) mit dem Objekt von Interesse extrahieren.Dann hätte ich das Objekt mit seiner Orientierung und ein wenig Hintergrund. Beim Testen muss ich das Objekt wahrscheinlich extrahieren, da es mehrere Objekte in der Szene gibt. Ich verwende bereits einen 1vsAll-Klassifikator, also hat jede Objektklasse ihre eigene SVM. Ich benutzte diesen Code als Vorlage: https://github.com/royshil/FoodcamClassifier/blob/master/main.cpp Ich denke, CNN und ImageNet ist nicht geeignet, da ich nur 30 Bilder pro Objektklasse für das Training habe (aber ich brauche nur eine Draufsicht). – Oronar