Analyse des Strukturprinzips von YOLO v4

导读

YOLO v1 hat die Tür zur einstufigen Zielerkennung geöffnet, und die Erkennungsgeschwindigkeit ist der von zweistufig um einige Blöcke voraus. Obwohl es immer noch eine Lücke zwischen der Genauigkeit und der zweistufigen gibt, verbessert sich die Designleistung, da YOLO weiterhin aktualisiert wird ist besser. Backbone und verschiedene Tricks: Die Erkennungsgenauigkeit der YOLO-Serie hat gegenüber Two-Stage nicht verloren und behält weiterhin eine ultraschnelle Erkennungsgeschwindigkeit bei, die in der Branche weit verbreitet ist. Derzeit wurde YOLO auf die fünfte Generation aktualisiert, aber ich denke, dass der Artikel YOLO v4 für jeden am besten geeignet ist, ihn sorgfältig zu lesen, da er einem Übersichtsartikel zur Zielerkennung entspricht. Nach dem Lesen erhalten Sie einen allgemeinen Überblick Verständnis der aktuellen Zielerkennung. Rahmen. In der Evolutionsgeschichte der Computer Vision gab es viele hervorragende CNN-Architekturen und verschiedene Tricks zur Verbesserung der Genauigkeit, und sogar Transformer hat bei Computer Vision-Aufgaben glänzt. Viele Netzwerkstrukturen und Tricks lassen sich jedoch nur auf kleine Datensätze oder nur auf bestimmte Aufgaben und Szenarien anwenden.
Fügen Sie hier eine Bildbeschreibung ein
Daher kombinierte der Autor in YOLO v4 eine Vielzahl allgemeiner technischer Methoden für den Netzwerkaufbau, das Training und die Optimierung und führte eine große Anzahl von Experimenten durch, um die Wirksamkeit dieser Module zu überprüfen. Zu den vom Autor verwendeten Optimierungsmethoden gehören: stufenübergreifende Teilverbindung (CSP), gewichtete Restverbindung (WRC), Cross-Small-Batch-Normalisierung (CmBN), selbstgegnerisches Training (SAT), Mischaktivierungsfunktion, Mosaikdatenverbesserung, DropBlock-Regularisierungstransformation, CIoU-Verlust usw. Mit der Unterstützung dieser Mittel kann YOLO v4 endlich Tesla V100 verwenden, um 43,5 % AP und 65 FPS-Geschwindigkeit auf dem MS CoCo-Datensatz auszuführen.
Im Allgemeinen umfassen die Beiträge von YOLO v4 hauptsächlich die folgenden Punkte:

  1. Es wird ein effizientes und leistungsstarkes Objekterkennungsmodell entwickelt. Es ermöglicht jedem, eine 1080 Ti- oder 2080 Ti-GPU zu verwenden, um einen superschnellen und genauen Objektdetektor zu trainieren;
  2. Überprüfen Sie die Auswirkungen modernster Bag-of-Freebies- und Bag-of-Specials-Objekterkennungsmethoden während der Detektorschulung.
  3. Die hochmodernen Methoden wurden modifiziert, um effizienter zu sein und für das Training mit einer GPU geeignet zu sein, einschließlich CBN, PAN, SAM usw.

YOLO v4结构原理解析

Das Folgende ist eine detaillierte Analyse des relevanten Arbeitsrahmens von YOLO v4.
Zunächst fasst der Autor die vorhandenen Zielerkennungsalgorithmen zusammen:

Fügen Sie hier eine Bildbeschreibung ein
Wie in der Abbildung gezeigt, folgen die meisten Zieldetektoren mittlerweile diesem Prozess, egal ob zweistufig oder einstufig, aber der Schwerpunkt der Verbesserung ist ein anderer. One-Stage konzentriert sich mehr auf die Verbesserung der Wirbelsäule und des Nackens, während Two-Stage sich mehr auf den Kopfteil konzentriert.

  1. Eingabe: Eingabebild, Patches, Bildpyramide
  2. Backbone: VGG16, ResNet-50, EfficientNet-B0/B7, CSPResNeXt50, CSPDarknet53, SpineNet…
  3. Hals: SPP, FPN, PAN, BiFPN…
  4. Köpfe: RPN, SSD, YOLO, RetinaNet, CornerNet, CenterNet, schnelleres R-CNN, Maske R-CNN…

Anschließend stellte der Autor in dem Artikel eine große Anzahl aktueller Optimierungsmethoden im Bereich der Zielerkennung vor, analysierte deren Auswirkungen auf das Modell und verbesserte einige der Methoden. Die Autoren unterteilen diese Methoden in zwei Teile: Bag of Freebies und Bag of Specials.

  • „Bag of Freebies“
    enthält hier die Optimierungsmethoden, die zur Verbesserung der Genauigkeit während der Offline-Trainingsphase verwendet werden. Sie werden in der Inferenzphase nicht verwendet, sodass sie die Inferenzzeit nicht verlängern.

    • Daten- und
      Beispieldatenverbesserung : Zufälliges Löschen, Ausschneiden, Verstecken, Rastermaske, MixUp, CutMix, GAN, Mosaik ...
      Probenverteilung : Fokusverlust, schwieriges Beispiel-Mining-Feature-
      Map : DropOut, DropConnect, DropBlock-
      Bounding-Box-Verlust Funktion : MSE, IoU-Verlust, GIoU-Verlust, DIoU-Verlust, CIoU-Verlust, L1-Verlust, L2-Verlust
  • Bag of Specials
    enthält eine Methode, die auch am Inferenzprozess teilnimmt, um die Genauigkeit zu verbessern, was einige Rechenkosten mit sich bringt, aber es ist akzeptabel, einen Kompromiss mit der verbesserten Genauigkeit einzugehen, daher wird sie häufig verwendet.

    • Erhöhen Sie das Empfangsfeld/die Multiskalenfunktionen
      SPP, ASPP, RFB
    • Aufmerksamkeitsmechanismus
      Squeeze-and-Excitation, räumliches Aufmerksamkeitsmodul
    • Feature Fusion
      SFAM, ASFF, BiFPN
    • Aktivierungsfunktionen
      ReLU, Leaky-ReLU, Mish
    • Nachbearbeitung
      Soft-NMS, DIoU NMS

Wie bereits erwähnt, gibt es so viele Optimierungsmethoden, die den Zielerkennungsalgorithmus verbessern können, egal ob es sich um Bag of Freebies oder Bag of Special handelt. Wie hat der Autor also YOLO v4 erstellt? Welche Methoden kamen noch einmal zum Einsatz? Welche Verbesserungen wurden vorgenommen?

  • Ein gutes Klassifizierungsmodell von Backbone
    ist nicht unbedingt für die Zielerkennung geeignet, da die Zielerkennung die folgenden Punkte erreichen muss, um die Genauigkeit zu verbessern:
    • Eine größere Netzwerkeingangsauflösung und eine große Eingangsauflösung begünstigen die Erkennung kleiner Zielobjekte
    • Je tiefer die Netzwerkstruktur ist, desto tiefer ist die Netzwerkschicht, desto mehr kann sie ein größeres Empfangsfeld abdecken
    • Je mehr Parameter bei großen Datensätzen vorhanden sind, desto stärker ist die Netzwerkdarstellungsfähigkeit und desto mehr unterschiedliche Objekte können erkannt werden

In Anbetracht der oben genannten Punkte verglich der Autor beim Entwerfen des Backbones von YOLO v4 CSPResNext50, CSPDarknet53 und EfficientNet-B3 in verschiedenen Dimensionen und wählte schließlich CSPDarknet53 durch Kompromiss als Backbone aus.
Fügen Sie hier eine Bildbeschreibung ein

  • Aus der Tabelle können wir ersehen
    , dass das Empfangsfeld von CSPDarknet53 zwischen CSPResNext50 und EfficientNet-B3 liegt, mit den meisten Parametern, aber der schnellsten Berechnungsgeschwindigkeit. Um das unzureichende Empfangsfeld von CSPDarknet53 auszugleichen, fügte der Autor dem Halsteil einen SPP-Block hinzu und nutzte PANet, um Multiskalen-Fusionsfunktionen zu erlernen, um die Erkennungsfähigkeit kleiner Ziele zu verbessern.
    Als SPP zum ersten Mal vorgeschlagen wurde, um das Problem der festen Eingabe des Modells zu lösen, wurde es tatsächlich zwischen der Faltungsschicht und der vollständig verbundenen Schicht platziert, sodass aufgrund der vollständigen Einschränkung keine Notwendigkeit besteht, die Eingabegröße festzulegen Verbundene Schicht, und da es keine Größenänderung/Zuschnitt/Verzerrung gibt In diesen Schritten ist es nicht erforderlich, Faltungsoperationen für jeden Vorschlag einzeln durchzuführen (Ändern der Faltungsreihenfolge und direktes Durchführen von Faltungsoperationen zuerst für das gesamte Bild) und nur Sie müssen die relative Position des Vorschlags auf der Feature-Map entsprechend der Downsampling-Rate ermitteln. Ja, das spart viel Rechenaufwand.
    Die PANet-Struktur ist gegenüber der FPN-Struktur verbessert. Die Struktur von FPN ist von oben nach unten, das heißt, die Feature-Map der obersten Ebene wird durch Upsampling-Operationen zur Feature-Map der unteren Ebene hinzugefügt/kontaktiert, um Multiskalen-Fusionsfunktionen zu erreichen und das Problem der semantischen Informationen zu lösen Das Problem kleiner Objekte verschwindet mit der Vertiefung des Netzwerks allmählich. Problem, ebenso wie die Anpassung an Ziele auf verschiedenen Skalen. PANet geht noch einen Schritt weiter, indem es eine Bottom-Up-Struktur hinzufügt, die auf der Top-Down-Struktur basiert, um eine tiefere Fusion durchzuführen und sicherzustellen, dass jede Feature-Map semantische Informationen aller Maßstäbe enthält, wodurch die Erkennungsrate verbessert und die Rate verpasster Erkennungen verringert wird.
  • Die Wahl zwischen „Bag of Freebies“ und „Bag of Specials“
    Der Autor verwendete CutMix und Mosaik zur Datenverbesserung, Drop Block zur Regularisierung und Klassenbeschriftungsglättung, um die Robustheit und Fehlertoleranz des Modells zu verbessern. Darüber hinaus gibt es CIou-Verlust, Cosinus-Annealing-Scheduler, Mish-Aktivierungsfunktion usw. Diese Fertigkeiten werden wir später gesondert und konkret erläutern, da viele kleine Fertigkeitsentwürfe sehr genial und interessant sind.

总结

Das Obige ist der gesamte Strukturrahmen von YOLO V4. Es ist ersichtlich, dass der Autor viel Arbeit geleistet hat, um die Anforderungen und Schwachstellen der aktuellen Zielerkennung zu analysieren und die Auswirkungen verschiedener Tricks auf die Leistung des Ziels zu vergleichen Der Erkennungsalgorithmus wird detailliert beschrieben und schließlich YOLO V4 bestimmt. Die Struktur verwendet CSPDarkNet53 als Backbone, SPP und PANet als Hals und den Kopf von YOLO V3. Gleichzeitig hat YOLO V4 mit der Unterstützung verschiedener Tuning-Methoden erfolgreich eine schnellere Geschwindigkeit als das Modell erreicht, das seine Genauigkeit übertrifft, eine höhere Genauigkeit als das Modell, das seine Geschwindigkeit übertrifft, und einen perfekten Kompromiss. Im Folgenden werde ich Artikel schreiben, um die im Artikel erwähnten Tuning-Methoden und Netzwerkstrukturen im Detail zu analysieren und mit Ihnen zu teilen.

Supongo que te gusta

Origin blog.csdn.net/Just_do_myself/article/details/118443279
Recomendado
Clasificación