Objekterkennung
Objekterkennung ist ein Teilgebiet der Bildverarbeitung bzw. des computerbasierten Sehens bei der man versucht in Bildern einzelne Objekte zu identifizieren. Ein Bild wird hierbei in Regionen unterteilt, die sinnvolle Einheiten bilden, welche dann weiter auf Merkmale hin untersucht werden, um die Bildregion einer Klasse von Objekten zuordnen zu können. Eine vorläufige Objekterkennung läuft meistens nach diesem Schema ab: Unterteile ein Bild in kleinere Bildausschnitte (Fenster) fester Größe und wende dann einen Klassifizierungsalgorithmus auf dieses Fenster an.[1]
Während es uns Menschen relativ leicht fällt einzelne Objekte, z. B. ein Pudel oder ein Schäferhund, einer abstrakten Kategorie zuzuordnen, in diesem Fall der Kategorie Hund, ist es extrem schwer dies einem Computer beizubringen. Diese Aufgabe wird umso schwieriger, je mehr Klassen von Objekten identifiziert werden sollen. Deswegen wendet man i. d. R. einen spezifischen Algorithmus auf das Bild an, welcher z. B. nur Gesichter erkennen kann.[2]
Methodik
In der abstrakten Bildverarbeitung dienen Objekterkennungsmethoden dazu, bestimmte Objekte bzw. Muster von anderen Objekten zu unterscheiden. Dazu muss das eigentliche Objekt zunächst mathematisch beschrieben werden. Oft genutzte Verfahren der Bildverarbeitung sind die Kantenerkennung, Transformationen sowie Größen- und Farberkennung. Je genauer die Beschreibung des Objektes möglich ist und je mehr auswertbare Informationen vorhanden sind, umso zuverlässiger arbeitet die Objekterkennung.
Komplexere Methoden zur Objekterkennung kommen aus dem Bereich der künstlichen Intelligenz, wie maschinelles Lernen oder Deep-Learning-basierte Ansätze. Für Ansätze des maschinellen Lernens ist es notwendig, zunächst Merkmale mit einer der folgenden Methoden zu definieren und dann eine Technik wie die Support Vector Machine (SVM) zur Klassifizierung zu verwenden.
Ansätze aus dem maschinellen Lernen:
- Viola-Jones-Methode, die auf Haar-Wavelets basiert
- Scale-invariant feature transform (SIFT) und Speeded Up Robust Features (SURF)
- Histogram of oriented gradients (HOG)
Auf der anderen Seite sind Deep-Learning-Techniken in der Lage, eine Objekterkennung durchzuführen, ohne händisch vorab bestimmte Merkmale definieren zu müssen. Diese Techniken basieren typischerweise auf einem Convolutional Neural Network (CNN). Ein solches künstliches neuronales Netz muss zuvor trainiert werden. Hierzu sind große Mengen an Bildern notwendig. Diese zum Training benutzten Bilder müssen zuvor in irgendeiner Form klassifiziert worden sein. Es muss also eine Information existieren, was auf dem Bild dargestellt ist. Hierfür existieren spezielle Datenbanken wie z. B. ImageNet oder der COCO-Datensatz[3].
Deep-Learning-Ansätze:[4]
- Region Proposals (R-CNN, Fast R-CNN, Faster R-CNN[5]) und darauf aufbauend Detectron[6].
- Single Shot MultiBox Detector (SSD)[7], mit einer einstufigen Detektionsstrategie.
- You Only Look Once (YOLO)[8][9], mit einer einstufigen Detektionsstrategie.
Eine einstufige Detektionsstrategie bedeutet, dass die zu analysierenden Bilder nur einmal gelesen werden müssen. Der Anfang 2020 wohl schnellste Ansatz ist das erst im selben Jahr veröffentlichte YOLOv5. Zu seiner Anwendung sind einfache Open-Source-Lösungen verfügbar[10]. Sie basieren auf folgendem Ansatz: Mit einer hohen Anzahl von Datensätzen aus der COCO-Datenbank wurde ein künstliches neuronales Netz aufwendig trainiert. Dieses fertig trainierte Netz ist als Datei verfügbar und kann dann mit Methoden aus dem „Deep Neural Network module (dnn)“ der lokal installierten Software OpenCV benutzt werden, um Bilder oder Videosequenzen in Echtzeit zu untersuchen. In dem zu untersuchenden Bildmaterial werden dann die „eintrainierten“ Objekte erkannt.
Anwendungen
Industrieelle Anwendungen
Eine Objekterkennung ist zum Beispiel bei komplizierten Fertigungsprozessen notwendig. Oftmals wird hier die Übereinstimmung der Form eines Objektes mit einer Vorgabe ermittelt (Template-Matching), oder die korrekte Lage desselben auf einem Fliessband geprüft. Zusätzlich zu den optischen Sensoren können zur Unterstützung auch induktive, kapazitive oder magnetische Sensoren eingesetzt werden. Man spricht in diesem Zusammenhang auch von Sensorfusion.
Darüber hinaus wird die Objekterkennung in der Qualitätsicherung zur Vollständigkeitsprüfung eingesetzt.
Fahrerassistenzsysteme
Etiketten, die es in roter oder blauer Ausführung gibt, können beispielsweise bereits durch einen einfachen Farbsensor unterschieden werden. Soll aber zudem noch erkannt werden, ob auf dem roten Etikett eine Schrift aufgebracht ist, so muss meist eine entsprechende Kamera eingesetzt werden.
In Fahrzeugen werden zunehmend kamerabasierte Fahrerassistenzsysteme eingesetzt, um beispielsweise Verkehrsschilder oder die Fahrspur automatisch zu erkennen. Bei der Detektion von Verkehrszeichen wird nach kreisförmigen Objekten gesucht. Eine rote Umrandung deutet dann auf ein Verbotsschild hin. Alternativ kann auch nur mit Mustern bekannter Zeichen verglichen werden (Template-Matching).
Komplexere Formen der Objekterkennung kommen dann zum Einsatz, wenn sich drehende oder schnell bewegte Objekte in einem Bild verfolgt werden müssen. Dann kommen mathematische Korrelatoren zum Einsatz, die sich an das Objekt anpassen können, wie z. B. bei einem sich wegdrehenden Hubschrauber, dessen Position vor einem komplexen Hintergrund ermittelt werden muss. Mittels geeigneter Bildverarbeitungssysteme sind Positionsbestimmungen von Objekten unterhalb der Pixelauflösung der zugrunde liegenden Bilder möglich.
Landwirtschaft
Mit Hilfe der App Plantix können Pflanzenkrankheiten erkannt werden, die mit künstlichen neuronalen Netzen arbeitet.[11]
Siehe auch
Weblinks
- Objekterkennung (PDF; 1,01 MB)
- Kurs CS231n an der Stanford University. Lehrstoff im Bereich Computer Vision: Eigenen neuronalen Netze implementieren, trainieren und debuggen. Die Vorlesungsinhalte von 2017 sind online abrufbar. (englisch)
- The PASCAL Visual Object Classes Homepage (englisch)
Literatur
- David A. Forsyth, Jean Ponce: COMPUTER VISION: A MODERN APPROACH. 2. Auflage, Pearson Education, Prentice Hall, Boston, 2012, ISBN 978-0-13-608592-8
- Richard Szeliski: Computer Vision - Algorithms and Applications. Springer-Verlag, London 2011, ISBN 978-1-84882-934-3, doi:10.1007/978-1-84882-935-0 (szeliski.org)
Einzelnachweise
- ↑ David A. Forsyth, Jean Ponce: Computer Vision: A Modern Approach. 2. Auflage. Pearson, Boston 2012, ISBN 978-0-13-608592-8.
- ↑ Richard Szeliski: Computer Vision: Algorithms and Applications, 2nd ed. Abgerufen am 25. September 2022.
- ↑ COCO – Common Objects in Context. Abgerufen am 29. Januar 2019 (englisch).
- ↑ Adrian Rosebrock: YOLO object detection with OpenCV. In: PyImageSearch. 12. November 2018, abgerufen am 14. Januar 2019 (amerikanisches Englisch).
- ↑ Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. 4. Juni 2015, arxiv:1506.01497 [abs].
- ↑ Detectron. facebook research, abgerufen am 21. Januar 2019 (englisch).
- ↑ Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed: SSD: Single Shot MultiBox Detector. Band 9905, 2016, S. 21–37, doi:10.1007/978-3-319-46448-0_2, arxiv:1512.02325 [abs].
- ↑ Joseph Redmon, Ali Farhadi: YOLOv3: An Incremental Improvement. 8. April 2018, arxiv:1804.02767 [abs].
- ↑ Joseph Chet Redmon: YOLO: Real-Time Object Detection. Abgerufen am 14. Januar 2019.
- ↑ Jacob Solawetz: YOLOv5 New Version - Improvements And Evaluation. 29. Juni 2020, abgerufen am 23. September 2021 (englisch).
- ↑ Die App Plantix erkennt kranke Pflanzen. Wired, 31. März 2017, abgerufen am 21. Januar 2019.