Informieren Sie sich über die YOLO Objekterkennung, ihre Vorteile, ihre Entwicklung in den letzten Jahren und einige Anwendungen aus der Praxis.
Objekterkennung ist eine in der Computervision verwendete Technik zur Identifizierung und Lokalisierung von Objekten in einem Bild oder Video.
Bei der Bildlokalisierung handelt es sich um den Vorgang, die korrekte Position eines oder mehrerer Objekte mithilfe von Begrenzungsrahmen zu ermitteln, die rechteckigen Formen um die Objekte herum entsprechen.
Dieser Prozess wird manchmal mit der Bildklassifizierung oder Bilderkennung verwechselt, deren Ziel es ist, die Klasse eines Bildes oder eines Objekts innerhalb eines Bildes in eine der Kategorien oder Klassen vorherzusagen.
Die folgende Abbildung entspricht der visuellen Darstellung der vorherigen Erklärung. Das im Bild erkannte Objekt ist „Person“.
In diesem konzeptionellen Blog erfahren Sie zunächst mehr über die Vorteile der Objekterkennung, bevor wir Ihnen YOLO, den hochmodernen Algorithmus zur Objekterkennung, vorstellen.
Im zweiten Teil konzentrieren wir uns mehr auf den YOLO-Algorithmus und seine Funktionsweise. Danach stellen wir einige reale Anwendungen vor, die YOLO verwenden.
Im letzten Abschnitt wird die Entwicklung von YOLO von 2015 bis 2020 erläutert, bevor abschließend auf die nächsten Schritte eingegangen wird.
Was ist YOLO?
You Only Look Once (YOLO) ist ein hochmoderner Echtzeit-Objekterkennungsalgorithmus, der 2015 von Joseph Redmon , Santosh Divvala , Ross Girshick und Ali Farhadi in ihrem berühmten Forschungspapier „ You Only Look Once: Unified, Real-Time Object Detection “ vorgestellt wurde.
Die Autoren formulieren das Problem der Objekterkennung als Regressionsproblem statt als Klassifizierungsaufgabe, indem sie Begrenzungsrahmen räumlich trennen und jedem der erkannten Bilder mithilfe eines einzelnen Convolutional Neural Network (CNN) Wahrscheinlichkeiten zuordnen.
Durch die Teilnahme am Kurs „Bildverarbeitung mit Keras in Python“ können Sie auf Keras basierende tiefe neuronale Netzwerke für Bildklassifizierungsaufgaben erstellen.
Wenn Sie sich mehr für Pytorch interessieren, erfahren Sie im Abschnitt „ Deep Learning mit Pytorch“ mehr über Convolutional Neural Networks und wie Sie damit deutlich leistungsfähigere Modelle erstellen können.
Was macht YOLO für die Objekterkennung so beliebt?
Zu den Gründen, warum YOLO die Konkurrenz anführt, gehören:
- Geschwindigkeit
- Erkennungsgenauigkeit
- Gute Verallgemeinerung
- Open Source
1- Geschwindigkeit
YOLO ist extrem schnell, da es keine komplexen Pipelines benötigt. Es kann Bilder mit 45 Bildern pro Sekunde (FPS) verarbeiten. Darüber hinaus erreicht YOLO im Vergleich zu anderen Echtzeitsystemen eine mehr als doppelt so hohe durchschnittliche Präzision (mAP), was es zu einem hervorragenden Kandidaten für die Echtzeitverarbeitung macht.
Aus der Grafik unten können wir ersehen, dass YOLO mit 91 FPS den anderen Objektdetektoren weit voraus ist.
YOLO-Geschwindigkeit im Vergleich zu anderen hochmodernen Objektdetektoren ( Quelle )
2- Hohe Erkennungsgenauigkeit
YOLO übertrifft andere hochmoderne Modelle hinsichtlich der Genauigkeit bei sehr wenigen Hintergrundfehlern bei weitem.
3- Bessere Verallgemeinerung
Dies gilt insbesondere für die neuen Versionen von YOLO, die später im Artikel besprochen werden. Mit diesen Fortschritten hat YOLO einen Schritt weiter gemacht, indem es eine bessere Generalisierung für neue Domänen bietet, was es ideal für Anwendungen macht, die auf eine schnelle und robuste Objekterkennung angewiesen sind.
Beispielsweise zeigt das Dokument „Automatische Erkennung von Melanomen mit Yolo Deep Convolutional Neural Networks“, dass die erste Version YOLOv1 im Vergleich zu YOLOv2 und YOLOv3 die niedrigste durchschnittliche Präzision bei der automatischen Erkennung von Melanomen aufweist.
4- Open Source
Die Veröffentlichung von YOLO als Open Source hat die Community dazu veranlasst, das Modell ständig zu verbessern. Dies ist einer der Gründe, warum YOLO in so kurzer Zeit so viele Verbesserungen hervorgebracht hat.
YOLO-Architektur
Die YOLO-Architektur ähnelt der von GoogleNet . Wie unten dargestellt, verfügt sie über insgesamt 24 Faltungsschichten, vier Max-Pooling-Schichten und zwei vollständig verbundene Schichten.
Die Architektur funktioniert wie folgt:
- Ändert die Größe des Eingabebilds auf 448 x 448, bevor es durch das Faltungsnetzwerk geleitet wird.
- Um die Anzahl der Kanäle zu reduzieren, wird zunächst eine 1×1-Faltung angewendet, worauf dann eine 3×3-Faltung folgt, um eine quaderförmige Ausgabe zu erzeugen.
- Die Aktivierungsfunktion im Hintergrund ist ReLU, mit Ausnahme der letzten Schicht, die eine lineare Aktivierungsfunktion verwendet.
- Einige zusätzliche Techniken, wie Batch-Normalisierung und Dropout, regulieren das Modell und verhindern eine Überanpassung.
Nach Abschluss des Kurses „Deep Learning in Python“ sind Sie bereit, mit Keras komplexe Netzwerke mit mehreren Ausgaben zu trainieren und zu testen und tiefer in das Deep Learning einzutauchen.
Wie funktioniert die YOLO-Objekterkennung?
Nachdem Sie nun die Architektur verstehen, verschaffen wir uns anhand eines einfachen Anwendungsfalls einen Überblick darüber, wie der YOLO-Algorithmus die Objekterkennung durchführt.
„Stellen Sie sich vor, Sie haben eine YOLO-Anwendung erstellt, die anhand eines vorgegebenen Bildes Spieler und Fußbälle erkennt.
Doch wie kann man diesen Vorgang jemandem, insbesondere Nicht-Eingeweihten, erklären?
→ Das ist der springende Punkt dieses Abschnitts. Sie werden den gesamten Prozess verstehen, wie YOLO die Objekterkennung durchführt; wie man Bild (B) aus Bild (A) erhält.“
Der Algorithmus arbeitet basierend auf den folgenden vier Ansätzen:
- Restblöcke
- Begrenzungsrahmen-Regression
- Intersection Over Unions oder kurz IOU
- Nicht maximale Unterdrückung.
Schauen wir uns jeden einzelnen genauer an.
1- Restblöcke
Dieser erste Schritt beginnt mit der Aufteilung des Originalbilds (A) in NxN Gitterzellen gleicher Form, wobei N in unserem Fall 4 ist, wie im Bild rechts dargestellt. Jede Zelle im Gitter ist für die Lokalisierung und Vorhersage der Klasse des Objekts, das sie abdeckt, zusammen mit dem Wahrscheinlichkeits-/Konfidenzwert verantwortlich.
2- Bounding-Box-Regression
Der nächste Schritt besteht darin, die Begrenzungsrahmen zu bestimmen, die den Rechtecken entsprechen, die alle Objekte im Bild hervorheben. Wir können so viele Begrenzungsrahmen haben, wie es Objekte in einem bestimmten Bild gibt.
YOLO bestimmt die Attribute dieser Begrenzungsrahmen mithilfe eines einzelnen Regressionsmoduls im folgenden Format, wobei Y die endgültige Vektordarstellung für jeden Begrenzungsrahmen ist.
Y = [pc, bx, von, bh, bw, c1, c2]
Dies ist besonders während der Trainingsphase des Modells wichtig.
- pc entspricht dem Wahrscheinlichkeitswert des Gitters, das ein Objekt enthält. Beispielsweise haben alle Gitter in Rot einen Wahrscheinlichkeitswert größer als Null. Das Bild rechts ist die vereinfachte Version, da die Wahrscheinlichkeit jeder gelben Zelle Null (unbedeutend) ist.
- bx, by sind die x- und y-Koordinaten des Mittelpunkts des Begrenzungsrahmens in Bezug auf die einhüllende Gitterzelle.
- bh, bw entsprechen der Höhe und der Breite des Begrenzungsrahmens in Bezug auf die einhüllende Gitterzelle.
- c1 und c2 entsprechen den beiden Klassen Spieler und Ball. Wir können so viele Klassen haben, wie Ihr Anwendungsfall erfordert.
Um das zu verstehen, schauen wir uns den Spieler unten rechts genauer an.
3- Schnittmenge über Gewerkschaften oder Schuldscheine
Meistens kann ein einzelnes Objekt in einem Bild mehrere Gitterboxkandidaten für die Vorhersage haben, obwohl nicht alle davon relevant sind. Das Ziel der IOU (ein Wert zwischen 0 und 1) besteht darin, solche Gitterboxen zu verwerfen, um nur die relevanten zu behalten. Hier ist die Logik dahinter:
- Der Benutzer definiert seinen IOU-Auswahlschwellenwert, der beispielsweise 0,5 betragen kann.
- Dann berechnet YOLO den IOU jeder Gitterzelle, der sich aus der Schnittfläche geteilt durch die Vereinigungsfläche ergibt.
- Schließlich ignoriert es die Vorhersage der Gitterzellen mit einem IOU ≤ Schwellenwert und berücksichtigt diejenigen mit einem IOU > Schwellenwert.
Unten sehen Sie eine Abbildung der Anwendung des Rasterauswahlprozesses auf das Objekt unten links. Wir können beobachten, dass das Objekt ursprünglich zwei Rasterkandidaten hatte und am Ende nur „Raster 2“ ausgewählt wurde.
4- Non-Max-Unterdrückung oder NMS
Das Festlegen eines Schwellenwerts für die IOU reicht nicht immer aus, da ein Objekt mehrere Boxen mit IOU über dem Schwellenwert haben kann und das Belassen aller dieser Boxen möglicherweise Rauschen enthält. Hier können wir NMS verwenden, um nur die Boxen mit der höchsten Wahrscheinlichkeitsbewertung für eine Erkennung beizubehalten.
YOLO-Anwendungen
Die YOLO-Objekterkennung hat in unserem täglichen Leben verschiedene Anwendungen. In diesem Abschnitt werden wir einige davon in den folgenden Bereichen behandeln: Gesundheitswesen, Landwirtschaft, Sicherheitsüberwachung und selbstfahrende Autos.
1- Anwendung in der Industrie
Die Objekterkennung wurde in vielen praktischen Branchen wie dem Gesundheitswesen und der Landwirtschaft eingeführt. Lassen Sie uns jeden einzelnen anhand spezifischer Beispiele verstehen.
Gesundheitspflege
Insbesondere bei Operationen kann es aufgrund der biologischen Unterschiede zwischen den einzelnen Patienten schwierig sein, Organe in Echtzeit zu lokalisieren. Kidney Recognition in CT nutzt YOLOv3, um die Lokalisierung von Nieren in 2D und 3D anhand von Computertomographie-Scans (CT) zu erleichtern.
Der Kurs „Biomedizinische Bildanalyse in Python“ kann Ihnen dabei helfen, die Grundlagen der Untersuchung, Bearbeitung und Messung biomedizinischer Bilddaten mit Python zu erlernen.
Landwirtschaft
Künstliche Intelligenz und Robotik spielen in der modernen Landwirtschaft eine wichtige Rolle. Ernteroboter sind auf Sicht basierende Roboter, die eingeführt wurden, um das manuelle Pflücken von Obst und Gemüse zu ersetzen. Eines der besten Modelle auf diesem Gebiet verwendet YOLO. In „ Tomato detection based on modified YOLOv3 framework“ beschreiben die Autoren, wie sie YOLO verwendet haben, um die Obst- und Gemüsesorten für eine effiziente Ernte zu identifizieren.
2- Sicherheitsüberwachung
Obwohl die Objekterkennung hauptsächlich in der Sicherheitsüberwachung eingesetzt wird, ist dies nicht die einzige Anwendung. YOLOv3 wurde während der Covid19-Pandemie verwendet, um Verstöße gegen die soziale Distanz zwischen Menschen abzuschätzen.
Weitere Informationen zu diesem Thema finden Sie in „ Ein auf Deep Learning basierendes Framework zur Überwachung sozialer Distanz für COVID-19“ .
3- Selbstfahrende Autos
Die Echtzeit-Objekterkennung ist Teil der DNA autonomer Fahrzeugsysteme. Diese Integration ist für autonome Fahrzeuge von entscheidender Bedeutung, da sie die richtigen Fahrspuren und alle Objekte und Fußgänger in der Umgebung richtig identifizieren müssen, um die Verkehrssicherheit zu erhöhen. Der Echtzeitaspekt von YOLO macht es zu einem besseren Kandidaten im Vergleich zu einfachen Bildsegmentierungsansätzen.
YOLO, YOLOv2, YOLO9000, YOLOv3, YOLOv4, YOLOR, YOLOX, YOLOv5, YOLOv6, YOLOv7 und Unterschiede
Seit der ersten Veröffentlichung von YOLO im Jahr 2015 hat es sich mit verschiedenen Versionen stark weiterentwickelt. In diesem Abschnitt werden wir die Unterschiede zwischen den einzelnen Versionen verstehen.
YOLO oder YOLOv1, der Ausgangspunkt
Diese erste Version von YOLO stellte aufgrund ihrer Fähigkeit, Objekte schnell und effizient zu erkennen, eine bahnbrechende Neuerung für die Objekterkennung dar.
Wie viele andere Lösungen hat jedoch auch die erste Version von YOLO ihre eigenen Einschränkungen:
- Es hat Schwierigkeiten, kleinere Bilder innerhalb einer Gruppe von Bildern zu erkennen, wie etwa eine Gruppe von Personen in einem Stadion. Das liegt daran, dass jedes Raster in der YOLO-Architektur für die Erkennung einzelner Objekte ausgelegt ist.
- Dann kann YOLO neue oder ungewöhnliche Formen nicht erfolgreich erkennen.
- Schließlich behandelt die Verlustfunktion, die zur Annäherung an die Erkennungsleistung verwendet wird, Fehler bei kleinen und großen Begrenzungsrahmen gleich, was tatsächlich zu falschen Lokalisierungen führt.
YOLOv2 oder YOLO9000
YOLOv2 wurde 2016 mit der Idee erstellt, das YOLO-Modell besser, schneller und stärker zu machen .
Die Verbesserung umfasst, ist aber nicht beschränkt auf, die Verwendung von Darknet-19 als neue Architektur, Batch-Normalisierung, höhere Auflösung der Eingaben, Faltungsschichten mit Ankern, Dimensionsclustering und (5) feinkörnige Funktionen.
1- Batch-Normalisierung
Durch das Hinzufügen einer Batch-Normalisierungsschicht wurde die Leistung um 2 % mAP verbessert. Diese Batch-Normalisierung beinhaltete einen Regularisierungseffekt, der eine Überanpassung verhinderte.
2- Höhere Eingangsauflösung
YOLOv2 verwendet direkt einen Input mit höherer Auflösung von 448×448 statt 224×224, wodurch das Modell seinen Filter anpasst, um bei Bildern mit höherer Auflösung eine bessere Leistung zu erzielen. Dieser Ansatz erhöhte die Genauigkeit um 4 % mAP, nachdem 10 Epochen lang mit den ImageNet-Daten trainiert wurde .
3- Faltungsschichten mit Ankerboxen
Anstatt die genauen Koordinaten der Begrenzungsrahmen der Objekte vorherzusagen, wie es YOLOv1 tut, vereinfacht YOLOv2 das Problem, indem die vollständig verbundenen Ebenen durch Ankerrahmen ersetzt werden. Dieser Ansatz verringerte die Genauigkeit leicht, verbesserte jedoch die Modellrückrufrate um 7 %, was mehr Raum für Verbesserungen bietet.
4- Dimensionalitätsclusterung
Die zuvor erwähnten Ankerboxen werden von YOLOv2 automatisch mithilfe von k-means-Dimensionsclustering mit k=5 gefunden, anstatt eine manuelle Auswahl durchzuführen. Dieser neuartige Ansatz bot einen guten Kompromiss zwischen der Trefferquote und der Präzision des Modells.
Um das K-Means-Dimensionsclustering besser zu verstehen, werfen Sie einen Blick auf unsere Tutorials K-Means-Clustering in Python mit scikit-learn und K-Means-Clustering in R. Sie vertiefen sich in das Konzept des K-Means-Clusterings mit Python und R.
5- Feinkörnige Funktionen
YOLOv2-Vorhersagen generieren 13×13 Feature-Maps, was natürlich für die Erkennung großer Objekte ausreicht. Für die Erkennung viel feinerer Objekte kann die Architektur jedoch geändert werden, indem die 26 × 26 × 512 Feature-Map in eine 13 × 13 × 2048 Feature-Map umgewandelt und mit den ursprünglichen Features verknüpft wird. Dieser Ansatz verbesserte die Modellleistung um 1 %.
YOLOv3 – Eine schrittweise Verbesserung
An YOLOv2 wurde eine schrittweise Verbesserung durchgeführt, um YOLOv3 zu erstellen.
Die Änderung umfasst hauptsächlich eine neue Netzwerkarchitektur: Darknet-53 . Dies ist ein 106-köpfiges neuronales Netzwerk mit Upsampling-Netzwerken und Restblöcken. Es ist viel größer, schneller und genauer als Darknet-19 , das das Rückgrat von YOLOv2 bildet. Diese neue Architektur hat sich auf vielen Ebenen als vorteilhaft erwiesen:
1- Bessere Vorhersage von Begrenzungsrahmen
YOLOv3 verwendet ein logistisches Regressionsmodell, um den Objekthaftigkeitswert für jeden Begrenzungsrahmen vorherzusagen.
2- Genauere Klassenvorhersagen
Anstatt Softmax zu verwenden, wie es in YOLOv2 durchgeführt wird, wurden unabhängige logistische Klassifikatoren eingeführt, um die Klasse der Begrenzungsrahmen genau vorherzusagen. Dies ist sogar bei komplexeren Domänen mit überlappenden Beschriftungen (z. B. Person → Fußballspieler) nützlich. Die Verwendung eines Softmax würde jede Box auf nur eine Klasse beschränken, was nicht immer der Fall ist.
3- Genauere Vorhersage auf unterschiedlichen Skalen
YOLOv3 führt für jeden Standort im Eingabebild drei Vorhersagen in unterschiedlichen Maßstäben durch, um das Upsampling der vorherigen Ebenen zu unterstützen. Diese Strategie ermöglicht es, feinkörnigere und aussagekräftigere semantische Informationen für ein qualitativ besseres Ausgabebild zu erhalten.
YOLOv4 – Optimale Geschwindigkeit und Genauigkeit der Objekterkennung
Diese Version von YOLO verfügt im Vergleich zu allen vorherigen Versionen und anderen hochmodernen Objektdetektoren über eine optimale Geschwindigkeit und Genauigkeit der Objekterkennung .
Das Bild unten zeigt, dass YOLOv4 YOLOv3 und FPS in der Geschwindigkeit um 10 % bzw. 12 % übertrifft.
YOLOv4 ist speziell für Produktionssysteme konzipiert und für parallele Berechnungen optimiert.
Das Rückgrat der YOLOv4-Architektur ist CSPDarknet53 , ein Netzwerk mit 29 Faltungsschichten mit 3 × 3 Filtern und ungefähr 27,6 Millionen Parametern.
Diese Architektur fügt im Vergleich zu YOLOv3 die folgenden Informationen für eine bessere Objekterkennung hinzu:
- Der Spatial Pyramid Pooling (SPP)-Block vergrößert das rezeptive Feld erheblich, trennt die relevantesten Kontextfunktionen und beeinträchtigt nicht die Netzwerkgeschwindigkeit.
- Anstelle des in YOLOv3 verwendeten Feature Pyramid Network (FPN) verwendet YOLOv4 PANet zur Parameteraggregation aus verschiedenen Erkennungsebenen.
- Bei der Datenerweiterung wird die Mosaiktechnik verwendet, die zusätzlich zu einem selbstadversariellen Trainingsansatz vier Trainingsbilder kombiniert.
- Führen Sie eine optimale Hyperparameterauswahl mithilfe genetischer Algorithmen durch.
YOLOR – Sie sehen nur eine Darstellung
Als einheitliches Netzwerk für mehrere Aufgaben basiert YOLOR auf dem einheitlichen Netzwerk, das eine Kombination aus expliziten und impliziten Wissensansätzen darstellt.
Explizites Wissen ist normales bzw. bewusstes Lernen. Implizites Lernen hingegen erfolgt unbewusst (aus Erfahrung).
Durch die Kombination dieser beiden Techniken ist YOLOR in der Lage, eine robustere Architektur zu erstellen, die auf drei Prozessen basiert: (1) Merkmalsausrichtung, (2) Vorhersageausrichtung für die Objekterkennung und (3) kanonische Darstellung für Multi-Task-Lernen.
1- Vorhersageausrichtung
Dieser Ansatz führt eine implizite Darstellung in die Feature-Map jedes Feature-Pyramidennetzwerks (FPN) ein, die die Genauigkeit um etwa 0,5 % verbessert.
2- Vorhersageverfeinerung zur Objekterkennung
Die Modellvorhersagen werden durch Hinzufügen einer impliziten Darstellung zu den Ausgabeebenen des Netzwerks verfeinert.
3- Kanonische Darstellung für Multi-Task-Lernen
Das Durchführen eines Multitasking-Trainings erfordert die Ausführung der gemeinsamen Optimierung der Verlustfunktion, die für alle Tasks gilt. Dieser Prozess kann die Gesamtleistung des Modells verringern. Dieses Problem kann durch die Integration der kanonischen Darstellung während des Modelltrainings gemildert werden.
Aus der folgenden Grafik können wir ersehen, dass YOLOR auf den MS COCO -Daten im Vergleich zu anderen Modellen eine hochmoderne Inferenzgeschwindigkeit erreicht hat.
YOLOX – Übertrifft die YOLO-Serie im Jahr 2021
Dabei wird eine Baseline verwendet, die eine modifizierte Version von YOLOv3 ist, mit Darknet-53 als Rückgrat.
YOLOX wurde im Jahr 2021 in der Abhandlung „ Exceeding YOLO Series“ veröffentlicht und bringt die folgenden vier Schlüsselmerkmale auf den Tisch, um im Vergleich zu den älteren Versionen ein besseres Modell zu schaffen.
1- Ein effizienter entkoppelter Kopf
Der in den vorherigen YOLO-Versionen verwendete gekoppelte Kopf verringert nachweislich die Leistung der Modelle. YOLOX verwendet stattdessen einen entkoppelten Kopf, der die Trennung von Klassifizierungs- und Lokalisierungsaufgaben ermöglicht und so die Leistung des Modells erhöht.
2- Robuste Datenerweiterung
Durch die Integration von Mosaic und MixUp in den Datenaugmentationsansatz konnte die Leistung von YOLOX erheblich gesteigert werden.
3- Ein ankerfreies System
Ankerbasierte Algorithmen führen im Hintergrund Clustering durch, was die Inferenzzeit erhöht. Durch das Entfernen des Ankermechanismus in YOLOX wurde die Anzahl der Vorhersagen pro Bild reduziert und die Inferenzzeit deutlich verbessert godzilla minus one.
4- SimOTA zur Etikettenzuweisung
Anstatt den Schnittmengen-of-Union-Ansatz (IoU) zu verwenden, führte der Autor SimOTA ein, eine robustere Strategie zur Labelzuweisung, die hochmoderne Ergebnisse erzielt, indem sie nicht nur die Trainingszeit verkürzt, sondern auch zusätzliche Hyperparameterprobleme vermeidet. Darüber hinaus verbesserte sie die Erkennungs-mAP um 3 %.
YOLOv5
Zu YOLOv5 gibt es im Vergleich zu anderen Versionen keine veröffentlichte Forschungsarbeit und es ist die erste Version von YOLO, die in Pytorch und nicht in Darknet implementiert wird.
YOLOv5 wurde im Juni 2020 von Glenn Jocher veröffentlicht und verwendet ähnlich wie YOLOv4 CSPDarknet53 als Rückgrat seiner Architektur. Die Version umfasst fünf verschiedene Modellgrößen: YOLOv5s (kleinste), YOLOv5m, YOLOv5l und YOLOv5x (größte).
Eine der wichtigsten Verbesserungen in der YOLOv5-Architektur ist die Integration der Fokusschicht , die durch eine einzelne Schicht dargestellt wird, die durch Ersetzen der ersten drei Schichten von YOLOv3 erstellt wird. Diese Integration reduzierte die Anzahl der Schichten und Parameter und erhöhte außerdem sowohl die Vorwärts- als auch die Rückwärtsgeschwindigkeit ohne größere Auswirkungen auf den mAP.
Die folgende Abbildung vergleicht die Trainingszeit zwischen YOLOv4 und YOLOv5s.
YOLOv6 – Ein einstufiges Objekterkennungsframework für industrielle Anwendungen
Das auf industrielle Anwendungen mit hardwarefreundlichem, effizientem Design und hoher Leistung ausgerichtete Framework YOLOv6 (MT-YOLOv6) wurde von Meituan , einem chinesischen E-Commerce-Unternehmen, veröffentlicht.
Diese in Pytorch geschriebene neue Version war nicht Teil des offiziellen YOLO, erhielt aber dennoch den Namen YOLOv6, da ihr Grundgerüst von der ursprünglichen einstufigen YOLO-Architektur inspiriert war.
YOLOv6 führte drei wesentliche Verbesserungen gegenüber dem vorherigen YOLOv5 ein: ein hardwarefreundliches Rückgrat- und Halsdesign, einen effizient entkoppelten Kopf und eine effektivere Trainingsstrategie.
YOLOv6 liefert im Vergleich zu den vorherigen YOLO-Versionen hervorragende Ergebnisse in Bezug auf Genauigkeit und Geschwindigkeit im COCO-Datensatz, wie unten dargestellt.
Vergleich modernster effizienter Objektdetektoren. Alle Modelle wurden mit TensorRT 7 getestet, mit Ausnahme des quantisierten Modells mit TensorRT 8 ( Quelle ).
- YOLOv6-N erreichte 35,9 % AP im COCO-Datensatz bei einem Durchsatz von 1234 (Durchsätze) FPS auf einer NVIDIA Tesla T4 GPU.
- YOLOv6-S erreichte einen neuen hochmodernen AP von 43,3 % bei 869 FPS.
- YOLOv6-M und YOLOv6-L erreichten bei gleicher Inferenzgeschwindigkeit ebenfalls eine bessere Genauigkeitsleistung von 49,5 % bzw. 52,3 %.
All diese Eigenschaften machen YOLOv5 zum richtigen Algorithmus für industrielle Anwendungen.
YOLOv7 – Trainierbares „Bag-of-Freebies“ setzt neue Maßstäbe für Echtzeit-Objektdetektoren
YOLOv7 wurde im Juli 2022 in dem Artikel Trained bag-of-freebies sets new state-of-the-art for real-time object detectors veröffentlicht . Diese Version stellt einen bedeutenden Fortschritt im Bereich der Objekterkennung dar und übertrifft alle vorherigen Modelle in Bezug auf Genauigkeit und Geschwindigkeit.
YOLOv7 hat eine große Veränderung in seiner (1) Architektur und (2) auf der Trainable-Bag-of-Freebies-Ebene vorgenommen:
1- Architektonische Ebene
YOLOv7 hat seine Architektur durch die Integration des Extended Efficient Layer Aggregation Network (E-ELAN) reformiert, wodurch das Modell vielfältigere Funktionen erlernen und so besser lernen kann.
Darüber hinaus skaliert YOLOv7 seine Architektur, indem es die Architektur der Modelle, von denen es abgeleitet ist, wie YOLOv4, Scaled YOLOv4 und YOLO-R, verknüpft. Dadurch kann das Modell den Anforderungen unterschiedlicher Inferenzgeschwindigkeiten gerecht werden.
2- Trainierbare Tüte voller Gratisgeschenke
Der Begriff „ Bag-of-Freebies“ bezieht sich auf die Verbesserung der Modellgenauigkeit ohne Erhöhung der Trainingskosten und aus diesem Grund hat YOLOv7 nicht nur die Inferenzgeschwindigkeit, sondern auch die Erkennungsgenauigkeit verbessert.
Fazit
In diesem Artikel wurden die Vorteile von YOLO im Vergleich zu anderen hochmodernen Objekterkennungsalgorithmen sowie seine Entwicklung von 2015 bis 2020 mit einer Hervorhebung seiner Vorteile behandelt.
Angesichts der rasanten Weiterentwicklung von YOLO besteht kein Zweifel daran, dass es noch sehr lange führend auf dem Gebiet der Objekterkennung bleiben wird.
Der nächste Schritt dieses Artikels ist die Anwendung des YOLO-Algorithmus auf reale Fälle. Bis dahin kann Ihnen unser Kurs „Einführung in Deep Learning in Python“ dabei helfen, die Grundlagen neuronaler Netzwerke zu erlernen und zu lernen, wie Sie Deep-Learning-Modelle mit Keras 2.0 in Python erstellen.
Häufig gestellte Fragen zu YOLO
Ja, YOLO ist ein Echtzeit-Erkennungsalgorithmus, der sowohl mit Bildern als auch mit Videos funktioniert.
In Bezug auf die mittlere durchschnittliche Präzision (mAP) erreichte Faster R-CNN 87,69 %. YOLOv3 ist jedoch unglaublich schnell und seine Frames pro Sekunde (FPS) sind 8-mal schneller als die von Faster R-CNN.
Dies liegt daran, dass YOLO alle Objekte in einem Bild in EINEM Vorwärtsdurchgang vorhersagt.
YOLO kann mehr als 9000 Klassen gleichzeitig erkennen.