Ich bin ein Anfänger in opencv mit Python. Ich habe viele 16-Bit-Graustufenbilder und muss jedes Mal das gleiche Objekt in den verschiedenen Bildern erkennen. Erprobter Template-Abgleich in opencv python, musste aber verschiedene Templates für verschiedene Bilder erstellen, was nicht wünschenswert sein könnte. Kann jemand mir irgendeinen Algorithmus in Python vorschlagen, um es effizient zu machen?opencv-python objekterkennung
Antwort
Ihre Frage ist viel zu allgemein. Feature-Matching ist ein sehr weites Feld. Die Art des zu verwendenden Algorithmus hängt vollständig von dem zu erkennenden Objekt, seiner Umgebung usw. ab.
Wenn Ihr Objekt also nicht seine Größe oder seinen Winkel im Bild ändert, dann verwenden Sie Template Matching.
Wenn das Bild seine Größe und Ausrichtung ändert, können Sie SIFT oder SURF verwenden.
Wenn Ihr Objekt eindeutige Farbmerkmale aufweist, die sich von seinem Hintergrund unterscheiden, können Sie die Methode hsv verwenden.
Wenn Sie eine Gruppe von Bildern als Objekt klassifizieren müssen, zum Beispiel alle Cricket Fledermäuse sollten erkannt werden, dann können Sie eine Reihe von positiven Bildern trainieren, um dem Computer zu sagen, wie das Objekt aussieht und negatives Bild zu sagen, wie Es ist nicht möglich, es kann mit Haartraining durchgeführt werden.
können Sie die Schiebefenstermethode ausprobieren. Wenn Ihr Objekt in allen Beispielen identisch ist
Eine Möglichkeit, dies zu tun, besteht darin, nach bekannten Farben, Formen und Größen zu suchen.
Sie durch Ausführen einen HSV Schwelle auf dem Bild beginnen könnten, durch Ihr Bild HSV-Farbraum konvertieren und dann
cv2.inRange(source, (minHue, minSat, minVal), (maxHue, maxSat, maxVal))
Nächsten Aufruf, könnten Sie cv2.findContours
verwenden, um alle Bereiche in Ihrem Bild zu finden, die Ihre Farbanforderungen. Dann könnten Sie Methoden wie boundingRect
und contourArea
verwenden, um bestimmte Attribute des gewünschten Objekts zu finden.
Was Sie am Ende erhalten, ist im Wesentlichen eine "Pipeline", die einen Rahmen aufnehmen kann und nach einer Form sucht, die den von Ihnen festgelegten Kriterien entspricht. Abhängig von der Komplexität dessen, was Sie tun möchten (Sie haben nicht gesagt, was Sie suchen), kann dies funktionieren oder nicht, aber ich habe es mit angemessenem Erfolg verwendet.
GRIP ist eine Anwendung, mit der Sie Schwellenwerte in einer visuellen Weise, und es wird auch Python-Code für Sie generieren, wenn Sie möchten. Ich empfehle den generierten Code nicht so wie er ist, da ich auf diese Weise auf einige Probleme gestoßen bin. Hier ist der Link zu GRIP: https://github.com/WPIRoboticsProjects/GRIP
- 1. Einfache Objekterkennung
- 2. Objekterkennung in Bildern (HOG)
- 3. Objekterkennung im Binärbild
- 4. Android OpenCV Objekterkennung
- 5. Objekterkennung in der Bildverarbeitung
- 6. Objekterkennung auf Android-Kamera
- 7. Vuforia Objekterkennung Unity Sample
- 8. Mehrstufige Objekterkennung mit Computer Vision
- 9. Verwenden Sie Kernbild für Objekterkennung
- 10. OpenCV .xml-Datei Kopieren zur Objekterkennung
- 11. mAP-Metrik in Objekterkennung und Computer Vision
- 12. Objekterkennung mit EMGU CV in C#
- 13. Wo fange ich an, über Bildverarbeitung und Objekterkennung zu lernen?
- 14. Kann ich parallele Objekterkennung in Selenium Webdriver haben
- 15. Wie funktioniert die Objekterkennung mithilfe der CNN-Funktionen im Tensorflow?
- 16. Der beste Ansatz für eine bestimmte Aufgabe zur Objekterkennung/Bilderkennung?
- 17. Kontrasteinstellung für Objekterkennung und Sturz der falschen Anwendung
- 18. Vuforia Objekterkennung Unity Sample Ergebnisse in Android Black Screen
- 19. Wie latentes SVM-Modell für Objekterkennung trainiert wird? Es stürzt mit Matlab 2012b, Windows 64bit OS
- 20. Wo finde ich Arbeitscodebeispiele zur Objekterkennung (Autos, Personen) in OpenCL oder CUDA geschrieben?
- 21. Wie kann man bestimmte Merkmale im Mustererkennungsalgorithmus in der Bildverarbeitung für die Objekterkennung extrahieren?
- 22. Was ist die beste Methode zur Objekterkennung in Bewegtbildern mit niedriger Auflösung?
- 23. Uncaught Reference: Benachrichtigung nicht
- 24. Wie kann man das ckpt-Datenmodell in das Tensorflow-iOS-Beispiel verwenden?
- 25. Wie schreibe ich eine Augmented-Reality-Anwendung?
- 26. Die besten Artikel zum Thema Kantenerkennung/Bilderkennung
- 27. Gibt es einen guten Rahmen/SDK auf WiFi-Positionierung mit C#?
- 28. Wie ist die Segmentierung nützlich?
- 29. Warum hat dieses Modell eine softmax-Schicht?
- 30. OpenCV für ANDROID Bild vergleichen
siehe: [Gibt es eine weniger restriktive Stack Exchange Site speziell für nicht zu spezifische Fragen?] (Http://meta.stackoverflow.com/questions/252777/is-there- a-less-restrictive-stack-exchange-site-speziell-geeignet-für-nicht-zu-spe) – nlloyd
bist du noch auf der Suche nach einer Antwort? – user1269942
Ich würde vorschlagen ** Gaussian pyramiding ** –