Zum Inhalt wechseln
LG4ML
  • Start
  • Idee
  • Projekte
  • Über uns
  • Wiki
  • Blog

Buzzwords

7
  • Transfer Learning
  • Machine Learning
  • Künstliche Intelligenz
  • Deep Learning
  • Data Science Workflow
  • Computer Vision
  • Big Data

Computer Vision

3
  • YOLOv4
  • Object Tracking
  • Frame Differencing

Grundlagen

14
  • Unüberwachtes Lernen
  • Überwachtes Lernen
  • Trainingsphase
  • Sampling
  • Regression
  • Preprocessing
  • Metrics
  • Klassifikation
  • Hyperparameter Tuning
  • Hyperparameter
  • Distanzmetriken
  • Data Science Workflow
  • Data Exploration
  • Cross Validation

Lernverfahren

8
  • Support Vector Machine
  • Principal Component Analysis
  • Perceptron
  • Logistische Regression
  • Lineare Regression
  • K-Nearest-Neighbours
  • K-Means
  • Decision Tree

Neuronale Netze

5
  • Verlustfunktion
  • Transfer Learning
  • Künstliches Neuron
  • Early Stopping
  • Aktivierungsfunktion

Preprocessing

8
  • Value Imputation
  • Scaling
  • Principal Component Analysis
  • Outlier Detection Basic
  • Outlier Detection Advanced
  • Frequenz Filter
  • Feature Engineering
  • Data Augmentation

Python Pakete

1
  • Data-Science Pakete
View Categories
  • Startseite
  • Docs
  • Computer Vision
  • YOLOv4

YOLOv4

4 min read

YOLO ist ein Framework zur Objekterkennung, das von NutzerInnen etwa mit OpenCV sehr einfach genutzt werden kann. Bei ausreichender Rechenleistung ist YOLO in der Lage, in Echtzeit mit bis zu 30 FPS Objekte zu erkennen. Auch in Bezug auf die Genauigkeit werden bessere Ergebnisse erzielt als von anderen Netzwerken zur Objekterkennung. Dieser Wiki Artikel befasst sich mit der Funktionsweise bzw. dem Aufbau von YOLOv4 aus technischer Perspektive und erklärt das Zusammenspiel der verschiedenen Komponenten. Grundlage sind dabei im Wesentlichen die folgenden Paper:

  • Bochkovskiy, A.,Wang, C.-Y., & Liao, H.-Y. M. (2020). Yolov4: Optimal speed and accuracy of object detection.
  • He, K., Zhang, X., Ren, S., & Sun, J. (2015). Deep residual learning for image recognition.
  • Liu, S., Qi, L., Qin, H., Shi, J., & Jia, J. (2018). Path aggregation network for instance segmentation.
  • He, K., Zhang, X., Ren, S., & Sun, J. (2014). Spatial pyramid pooling in deep convolutional networks for visual recognition.
  • Redmon, J., & Farhadi, A. (2018). Yolov3: An incremental improvement.

Grundlegender Aufbau #

Vereinfachte Darstellung der YOLOv4-Architektur

Die obenstehende Abbildung zeigt vereinfacht dargestellt den Informationsfluss durch die verschiedenen Komponenten der Objekterkennung, wie aus einem Inputbild Bounding Boxes sowie zugehörige Klassen abgeleitet werden. Die drei Abschnitte Backbone, Neck und Head erfüllen dabei verschiedene Aufgaben, die nachfolgend weiter spezifiziert werden. YOLOv4 nutzt im Backbone CSP-Darknet53, im Neck Spatial Pyramid Pooling sowie Path Aggregation Networks und im Head bestehende Komponenten von YOLOv3 (Bochkovskiy, Wang, & Liao, 2020, S. 7). Die Funktionen der einzelnen Komponenten sowie deren Zusammenspiel wird nachfolgend weiter spezifiziert.

Backbone #

Allgemein werden die Netzwerke im Backbone dazu genutzt, mit Hilfe von Convolution und MaxPooling Schichten Features aus dem Input-Bild zu generieren und werden daher auch als Feature Extractor bezeichnet (Bochkovskiy et al., 2020, S. 2). Einige Beispiele sind VGG16, ResNet-50 oder ResNeXt50. YOLOv4 nutzt als Feature Extractor CSP-Darknet50, das zu den residualen Netzwerken zählt. Diese verbessern mit sogenannten Skipverbindungen den Informationsfluss und ermöglichen das Training von großen Netzwerken (He et al., 2015). Die Abkürzung CSP steht für Cross Stage Partial und meint die Methodik, dass jeweils nur ein Teil des Bildes durch Convolution bearbeitet und anschließend mit dem verbleibenden Teil wieder zusammen geführt wird. Vorteil davon ist ein besserer Informations- bzw. Gradientenfluss, der das Training des Netzwerks erheblich beschleunigt und die Ergebnisse verbessert (Wang et al., 2019, S. 4–6). Output vom Backbone zum Neck sind Feature-Maps, also die Ausgabe von Convolution Schichten.

Neck #

Das Neck stellt die Verbindung zwischen Backbone und Head dar und transformiert die Feature Maps weiter. Durch Path Aggregation Networks können einzelne zusammenhängende Instanzen und daraus die zugehörigen Bounding Boxes ermittelt werden. PANet nutzt eine Bottom-Up-Path-Aggregation sowie Adaptive-Feature-Pooling, um verschiedene Feature Ebenen miteinander zu kombinieren und daraus eine pixelgenaue Vorhersage der Instanzen treffen zu können (Liu et al., 2018, S. 3–5). Zweiter Bestandteil vom Neck ist das Spatial Pyramid Pooling, das Eingaben unabhängig von ihrer Größe durch 3-Level-Pooling zu Feature-Vektoren einheitlicher Länge transformiert. Hintergrund dieser Transformation ist, dass nachfolgende Dense-Schichten zur Klassifikation der gefundenen Instanzen eine konstante Größe benötigen, da die einzelnen Neuronen eine feste Anzahl an Gewichten haben (He et al., 2014, S. 1–2).

Head #

Im letzen Schritt der Objekterkennung müssen die gefundenen Instanzen einer oder mehreren Klassen zugeordnet werden. YOLOv4 nutzt dafür die bestehende Methodik aus YOLOv3. Auf Basis eines Multilabel-Klassifikationsproblems wird für jede Instanz bzw. Bounding Box die Wahrscheinlichkeit ausgegeben, dass die Klasse zu finden ist. Ein Objekt kann daher keiner, einer oder mehreren Klassen zugeordnet werden (bspw.
durch hierarchisch orientierte Klassen wie Apfel und Obst) (Redmon & Farhadi, 2018, S. 2). Endgültige Ausgabe vom Head ist daher ein Vektor je Objekt mit Wahrscheinlichkeiten für jede Klasse sowie den Koordinaten der zugehörigen Bounding Box.

Anwendung #

Vergleich der Objekterkennung durch YOLOv4 (links) und Frame Differencing (rechts)

Im Vergleich zu weitaus simpleren Verfahren zur Objekterkennung, wie etwa dem Frame Differencing, kann YOLOv4 in Bezug auf die Genauigkeit deutlich bessere Ergebnisse erzielen. Zudem besteht die Möglichkeit, einen Custom-Classifier zu trainieren. Dieser ist dann in der Lage, individuell gewählte Klassen von Objekten zu erkennen und ist nicht auf die vortrainierten Klassen beschränkt. Ein Link dazu findet sich untenstehend im weiterführenden Material.

Weiterführende Links:
– Custom YOLO Classifier trainieren: https://medium.com/analytics-vidhya/train-a-custom-yolov4-object-detector-using-google-colab-61a659d4868
– YOLOv4 Object Detection Tutorial: https://machinelearningknowledge.ai/yolov4-object-detection-tutorial-with-image-and-video/
– Projekt “Objekterkennung mit YOLOv4”: Objekterkennung mit YOLOv4

Updated on 23/06/2022

What are your Feelings

  • Happy
  • Normal
  • Sad
Share This Article :
  • Facebook
  • X
  • LinkedIn
  • Pinterest

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Inhalt
  • Grundlegender Aufbau
    • Backbone
    • Neck
    • Head
  • Anwendung

LG4ML

Promoting Machine Learning from Lüneburg!

© 2025 LG4ML

Navigation

  • Kontakt
  • Datenschutzerklärung
  • Impressum

Folge uns auf

Github Slack Instagram

Made with 🍺 in Lüneburg.

Cookie-Hinweis
Wir verwenden Cookies auf unserer Website, um Ihnen die bestmögliche Erfahrung zu bieten, indem wir uns an Ihre Präferenzen und wiederholten Besuche erinnern. Wenn Sie auf "Alle akzeptieren" klicken, erklären Sie sich mit der Verwendung aller Cookies einverstanden. Sie können jedoch die Einstellungen besuchen, um eine kontrollierte Zustimmung zu erteilen.
EinstellungenAlle akzeptieren
Zustimmung verwalten

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
immer aktiv
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDauerBeschreibung
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
SPEICHERN & AKZEPTIEREN