Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Das schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source

Das schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source

王林
王林nach vorne
2023-05-09 14:52:081018Durchsuche

Autoren: Chu Yi, Kai Heng usw.

Kürzlich hat die Abteilung für visuelle Intelligenz von Meituan YOLOv6 entwickelt, ein Zielerkennungs-Framework für industrielle Anwendungen, das sich sowohl auf Erkennungsgenauigkeit als auch auf Argumentationseffizienz konzentrieren kann. Während des Forschungs- und Entwicklungsprozesses forschte und optimierte die Abteilung für visuelle Intelligenz weiter und stützte sich dabei auf einige hochmoderne Entwicklungen und wissenschaftliche Forschungsergebnisse aus Wissenschaft und Industrie. Experimentelle Ergebnisse mit COCO, dem maßgeblichen Zielerkennungsdatensatz, zeigen, dass YOLOv6 andere Algorithmen derselben Größe in Bezug auf Erkennungsgenauigkeit und -geschwindigkeit übertrifft. Es unterstützt auch die Bereitstellung verschiedener Plattformen, was die Anpassungsarbeit während der Projektbereitstellung erheblich vereinfacht . Dies ist Open Source, in der Hoffnung, mehr Studenten zu helfen.

1. Übersicht

YOLOv6 ist ein Zielerkennungs-Framework, das von der Abteilung für visuelle Intelligenz von Meituan entwickelt wurde und für industrielle Anwendungen bestimmt ist. Dieses Framework konzentriert sich sowohl auf die Erkennungsgenauigkeit als auch auf die Inferenzeffizienz. Zu den in der Branche am häufigsten verwendeten Größenmodellen gehört: YOLOv6-nano hat eine Genauigkeit von bis zu 35,0 % AP auf COCO und eine Inferenzgeschwindigkeit von bis zu 1242 FPS T4; YOLOv6 – Die Genauigkeit von s auf COCO kann 43,1 % AP erreichen, und die Inferenzgeschwindigkeit auf T4 kann 520 FPS erreichen. In Bezug auf die Bereitstellung unterstützt YOLOv6 die Bereitstellung verschiedener Plattformen wie GPU (TensorRT), CPU (OPENVINO), ARM (MNN, TNN, NCNN), was die Anpassungsarbeiten während der Projektbereitstellung erheblich vereinfacht. Derzeit ist das Projekt als Open Source auf Github verfügbar, Portal: YOLOv6. Freunde in Not sind bei Star herzlich willkommen, es abzuholen und jederzeit darauf zuzugreifen.

Ein neues Framework mit weitaus höherer Genauigkeit und Geschwindigkeit als YOLOv5 und YOLOX

Die Objekterkennung als Basistechnologie im Bereich Computer Vision ist in der Branche weit verbreitet, wobei die Algorithmen der YOLO-Serie umfassender sind Leistung und wird nach und nach zum bevorzugten Rahmen für die meisten industriellen Anwendungen. Bisher hat die Branche viele YOLO-Erkennungsframeworks abgeleitet, von denen YOLOv5[1], YOLOX[2] und PP-YOLOE[3] die repräsentativsten sind. Im tatsächlichen Einsatz haben wir jedoch festgestellt, dass dies der Fall ist Bei den oben genannten Frameworks gibt es hinsichtlich Geschwindigkeit und Genauigkeit noch viel Raum für Verbesserungen. Auf dieser Grundlage haben wir ein neues Zielerkennungs-Framework – YOLOv6 – entwickelt, indem wir bestehende fortschrittliche Technologien in der Branche erforscht und darauf zurückgegriffen haben. Das Framework unterstützt die gesamte Kette industrieller Anwendungsanforderungen wie Modelltraining, Inferenz und plattformübergreifende Bereitstellung und hat eine Reihe von Verbesserungen und Optimierungen auf Algorithmusebene vorgenommen, z. B. Netzwerkstruktur und Trainingsstrategien am COCO-Datensatz YOLOv6 Die relevanten Ergebnisse sind in Abbildung 1 dargestellt und übertreffen sowohl Genauigkeit als auch Geschwindigkeit:

Das schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source

Abbildung 1-1 Leistungsvergleich von YOLOv6-Modellen verschiedener Größen und anderen Modellen

Das schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source

Abbildung 1-2 YOLOv6 Leistungsvergleich mit anderen Modellen bei unterschiedlichen Auflösungen Abbildung 1-1 zeigt den Leistungsvergleich jedes Erkennungsalgorithmus unter Netzwerken unterschiedlicher Größe. Die Punkte auf der Kurve stellen jeweils die dar Leistung des Erkennungsalgorithmus unter Netzwerkmodellen unterschiedlicher Größe (s /winzig/nano) Wie aus der Abbildung ersichtlich ist, übertrifft YOLOv6 andere Algorithmen der YOLO-Serie derselben Größe in Bezug auf Genauigkeit und Geschwindigkeit. Abbildung 1-2 zeigt den Leistungsvergleich jedes Erkennungsnetzwerkmodells, wenn sich die Eingabeauflösung ändert. Die Punkte auf der Kurve von links nach rechts stellen dar, wenn die Bildauflösung sequentiell zunimmt (384/448/512/576/640). Leistung dieses Modells, wie aus der Abbildung ersichtlich ist, behält YOLOv6 unter verschiedenen Auflösungen immer noch einen großen Leistungsvorteil bei.

2. Einführung in die Schlüsseltechnologien von YOLOv6

YOLOv6 hat viele Verbesserungen vor allem in den Bereichen Rückgrat, Nacken, Kopf und Trainingsstrategien vorgenommen:

  • Wir haben ein effizienteres Backbone und einen Hals auf einheitliche Weise entworfen: Inspiriert von den Designideen hardwarebewusster neuronaler Netze haben wir reparametrisierbare und effizientere Backbone-Netzwerke EfficientRep Backbone und Rep-PAN basierend auf dem RepVGG-Stil entworfen[4 ] Hals.
  • Optimiert und entwickelt ein prägnanterer und effektiverer, effizienter entkoppelter Kopf, der den zusätzlichen Verzögerungsaufwand, der durch allgemeine entkoppelte Köpfe verursacht wird, weiter reduziert und gleichzeitig die Genauigkeit beibehält.
  • In Bezug auf die Trainingsstrategie verwenden wir das Anker-freie Anker-freie Paradigma, ergänzt durch SimOTA[2] Etikettenzuordnungsstrategie und SIoU[9] Bounding-Box-Regressionsverlust, um die Erkennungsgenauigkeit weiter zu verbessern.

2.1 Hardwarefreundliches Backbone-Netzwerkdesign

Das von YOLOv5/YOLOX verwendete Backbone und Neck basieren beide auf CSPNet[5] und verwenden einen Multi-Branch-Ansatz und eine Reststruktur. Bei Hardware wie GPUs erhöht diese Struktur die Latenz bis zu einem gewissen Grad und verringert die Auslastung der Speicherbandbreite. Abbildung 2 unten ist eine Einführung in das Roofline-Modell[8] im Bereich der Computerarchitektur und zeigt die Beziehung zwischen Rechenleistung und Speicherbandbreite in Hardware.

Das schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source

Abbildung 2 Einführungsdiagramm des Dachlinienmodells

Also haben wir Backbone und Neck basierend auf der Idee des hardwarebewussten neuronalen Netzwerkdesigns neu gestaltet und optimiert. Diese Idee basiert auf den Eigenschaften der Hardware und den Eigenschaften des Inferenz-Frameworks/Kompilierungs-Frameworks. Beim Aufbau des Netzwerks werden die Hardware-Rechenleistung und die Speicherbandbreite umfassend berücksichtigt , Kompilierungsoptimierungseigenschaften, Netzwerkdarstellungsfunktionen usw. und dann Erhalten Sie eine schnelle und gute Netzwerkstruktur. Für die beiden oben genannten neu gestalteten Erkennungskomponenten nennen wir sie in YOLOv6 EfficientRep Backbone bzw. Rep-PAN Neck. Ihre Hauptbeiträge sind:

  1. Einführung der RepVGG-Stilstruktur.
  2. Rückgrat und Nacken werden basierend auf der Idee des Hardware-Bewusstseins neu gestaltet.
RepVGG

[4] Die Style-Struktur ist eine reparametrisierbare Struktur, die während des Trainings eine Topologie mit mehreren Zweigen aufweist und während der tatsächlichen Bereitstellung äquivalent zu einer einzelnen 3x3-Faltung verschmolzen werden kann (Fusion Der Prozess ist in Abbildung 3 dargestellt unten). Durch die verschmolzene 3x3-Faltungsstruktur kann die Rechenleistung rechenintensiver Hardware (wie GPU) effektiv genutzt werden, und es kann auch die Hilfe von NVIDIA cuDNN- und Intel MKL-Kompilierungsframeworks in Anspruch genommen werden, die auf GPU/CPU stark optimiert wurden .

Experimente zeigen, dass YOLOv6 durch die obige Strategie Hardwareverzögerungen reduziert und die Genauigkeit des Algorithmus erheblich verbessert, wodurch das Erkennungsnetzwerk schneller und stärker wird. Am Beispiel des Nano-Modells verbessert diese Methode im Vergleich zur von YOLOv5-nano verwendeten Netzwerkstruktur die Geschwindigkeit um 21 % und die Genauigkeit um 3,6 % AP. Abbildung 3: Fusionsprozess des Rep-Operators [4] Im Vergleich zum in YOLOv5 verwendeten CSP-Backbone kann dieses Backbone die Rechenleistung der Hardware (z. B. GPU) effizient nutzen und verfügt außerdem über starke Darstellungsfähigkeiten.

Abbildung 4 unten ist das spezifische Designstrukturdiagramm von EfficientRep Backbone. Wir haben die gewöhnliche Conv-Ebene mit Schritt = 2 im Backbone durch die RepConv-Ebene mit Schritt = 2 ersetzt. Gleichzeitig wird der ursprüngliche CSP-Block in RepBlock umgestaltet, wobei der erste RepConv von RepBlock die Kanaldimension transformiert und ausrichtet. Darüber hinaus optimieren wir den ursprünglichen SPPF zu einem effizienteren SimSPPF. Abbildung 4: EfficientRep Backbone-Strukturdiagramm Basierend auf der Idee des hardwarebewussten neuronalen Netzwerkdesigns wird eine effektivere Feature-Fusion-Netzwerkstruktur für YOLOv6 entwickelt.

Das schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source

Rep-PAN basiert auf der PAN[6]-Topologie, verwendet RepBlock, um den in YOLOv5 verwendeten CSP-Block zu ersetzen, und passt gleichzeitig die Operatoren im gesamten Neck an, um eine effiziente Argumentation zu erreichen Hardware. Behält gute Multiskalen-Feature-Fusion-Fähigkeiten bei (Rep-PAN-Strukturdiagramm ist in Abbildung 5 unten dargestellt). Abbildung 5 Rep-PAN-Strukturdiagramm Der Erkennungskopf des ursprünglichen YOLOv5 wird durch Zusammenführen und Teilen der Klassifizierungs- und Regressionszweige implementiert, während der Erkennungskopf von YOLOX die Klassifizierungs- und Regressionszweige entkoppelt und zwei zusätzliche 3x3-Faltungsschichten hinzufügt. Die Erkennungsgenauigkeit wird zwar verbessert, aber das Netzwerk Die Verzögerung wird bis zu einem gewissen Grad erhöht.

Das schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source Aus diesem Grund haben wir das Design des Entkopplungskopfs optimiert und dabei das Gleichgewicht zwischen den zugehörigen Bedienerdarstellungsfunktionen und dem Hardware-Rechenaufwand berücksichtigt und mithilfe der Hybrid-Channels-Strategie einen effizienteren Entkopplungskopf neu entworfen. Die Struktur reduziert die Verzögerung bei gleichzeitiger Beibehaltung der Genauigkeit und verringert den zusätzlichen Verzögerungsaufwand, der durch die 3x3-Faltung im Entkopplungskopf verursacht wird. Durch die Durchführung von Ablationsexperimenten an einem Nanomodell und den Vergleich der Entkopplungskopfstruktur mit der gleichen Anzahl von Kanälen wird die Genauigkeit um 0,2 % AP und die Geschwindigkeit um 6,8 % erhöht.

Abbildung 6: Effizientes entkoppeltes Kopfstrukturdiagramm

2.3 Effektivere Trainingsstrategie

Um die Erkennungsgenauigkeit weiter zu verbessern, haben wir den fortgeschrittenen Forschungsfortschritt anderer Erkennungsrahmen in der Wissenschaft und im akademischen Bereich aufgenommen und daraus gelernt Branche: Ankerfreies Ankerfreies Paradigma, SimOTA-Label-Zuweisungsstrategie und SIoU-Bounding-Box-Regressionsverlust.

Ankerfreies ankerfreies Paradigma

Das schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source

YOLOv6 verwendet eine prägnantere ankerfreie Erkennungsmethode. Da ankerbasierte Detektoren vor dem Training eine Clusteranalyse durchführen müssen, um den optimalen Ankersatz zu bestimmen, erhöht dies in gewissem Maße die Komplexität des Detektors und führt in einigen Edge-End-Anwendungen zu einer großen Anzahl von Erkennungsergebnissen Die Notwendigkeit, zwischen Hardwareschritten transportiert zu werden, führt ebenfalls zu zusätzlichen Verzögerungen. Das ankerfreie ankerfreie Paradigma wurde in den letzten Jahren aufgrund seiner starken Generalisierungsfähigkeit und einfacheren Decodierungslogik häufig verwendet. Nach experimentellen Untersuchungen zu Anchor-Free haben wir festgestellt, dass der Anchor-Free-Detektor im Vergleich zu der zusätzlichen Verzögerung, die durch die Komplexität des Anchor-basierten Detektors verursacht wird, eine Geschwindigkeitsverbesserung von 51 % aufweist.

SimOTA-Label-Zuweisungsstrategie

Um mehr qualitativ hochwertige positive Proben zu erhalten, führt YOLOv6 den SimOTA-Algorithmus

[4]

ein, um positive Proben dynamisch zuzuweisen und so die Erkennungsgenauigkeit weiter zu verbessern. Die Etikettenzuordnungsstrategie von YOLOv5 basiert auf dem Shape-Matching und erhöht die Anzahl positiver Proben durch die gitterübergreifende Matching-Strategie, wodurch das Netzwerk schnell konvergiert. Diese Methode ist jedoch eine statische Zuordnungsmethode und wird nicht mit der angepasst Prozess des Netzwerktrainings.

In den letzten Jahren sind viele Methoden entstanden, die auf der dynamischen Etikettenzuweisung basieren. Solche Methoden werden positive Proben basierend auf der Netzwerkausgabe während des Trainingsprozesses zuweisen und dadurch mehr hochwertige positive Proben generieren, was wiederum das Netzwerk fördert Optimierung. OTA[7] modelliert beispielsweise den Sample-Matching als optimales Übertragungsproblem und ermittelt die beste Sample-Matching-Strategie unter globalen Informationen, um die Genauigkeit zu verbessern. OTA verwendet jedoch den Sinkhorn-Knopp-Algorithmus, der die Trainingszeit verlängert [4]

Der Algorithmus verwendet die Top-K-Approximationsstrategie, um die beste Übereinstimmung der Stichproben zu erhalten, was das Training erheblich beschleunigt. Daher übernimmt YOLOv6 die dynamische Zuordnungsstrategie von SimOTA und kombiniert sie mit dem ankerfreien Paradigma, um die durchschnittliche Erkennungsgenauigkeit beim Nanomodell um 1,3 % AP zu erhöhen.

SIoU-Bounding-Box-Regressionsverlust

Um die Regressionsgenauigkeit weiter zu verbessern, verwendet YOLOv6 die SIoU

[9]Bounding-Box-Regressionsverlustfunktion, um das Lernen des Netzwerks zu überwachen. Das Training von Zielerkennungsnetzwerken erfordert im Allgemeinen die Definition von mindestens zwei Verlustfunktionen: Klassifizierungsverlust und Bounding-Box-Regressionsverlust, und die Definition der Verlustfunktion hat oft einen größeren Einfluss auf die Erkennungsgenauigkeit und Trainingsgeschwindigkeit.

In den letzten Jahren gehören zu den häufig verwendeten Bounding-Box-Regressionsverlusten IoU-, GIoU-, CIoU-, DIoU-Verluste usw. Diese Verlustfunktionen berücksichtigen den Grad der Überlappung, den Mittelpunktabstand und das Seitenverhältnis zwischen den Vorhersagerahmen und der Zielrahmen und andere Faktoren, um die Lücke zwischen den beiden zu messen und so das Netzwerk so zu steuern, dass der Verlust minimiert wird, um die Regressionsgenauigkeit zu verbessern. Diese Methoden berücksichtigen jedoch nicht die Übereinstimmung der Richtung zwischen der Vorhersagebox und der Zielbox . Die SIoU-Verlustfunktion definiert den Distanzverlust neu, indem sie den Vektorwinkel zwischen erforderlichen Regressionen einführt, wodurch der Freiheitsgrad der Regression effektiv verringert, die Netzwerkkonvergenz beschleunigt und die Regressionsgenauigkeit weiter verbessert wird. Durch die Verwendung des SIoU-Verlusts für Experimente mit YOLOv6s wird die durchschnittliche Erkennungsgenauigkeit im Vergleich zum CIoU-Verlust um 0,3 % AP erhöht.

3. Experimentelle Ergebnisse

Nach den oben genannten Optimierungsstrategien und Verbesserungen hat YOLOv6 in mehreren Modellen unterschiedlicher Größe eine hervorragende Leistung erzielt. Tabelle 1 unten zeigt die experimentellen Ablationsergebnisse von YOLOv6-nano. Aus den experimentellen Ergebnissen können wir ersehen, dass unser selbst entwickeltes Erkennungsnetzwerk große Fortschritte in Bezug auf Genauigkeit und Geschwindigkeit gebracht hat. Das schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source

Tabelle 1 YOLOv6-Nano-Ablations-ExperimentergebnisseTabelle 2 unten zeigt YOLOv6 und andere derzeit gängige Algorithmen der YOLO-Serie. Vergleichsexperiment Ergebnisse. Wie aus der Tabelle ersichtlich ist:

Das schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source

Tabelle 2 Vergleich der Leistung jedes Größenmodells von YOLOv6 mit anderen models#🎜🎜 #

  • YOLOv6-nano erreichte eine Genauigkeit von 35,0 % AP auf COCO val, während TRT FP16 batchsize=32 auf T4 für die Inferenz verwendet wurde, wodurch eine Leistung erzielt wurde Von 1242 FPS wird im Vergleich zu YOLOv5-nano die Genauigkeit um 7 % AP und die Geschwindigkeit um 85 % erhöht.
  • YOLOv6-tiny erreichte eine Genauigkeit von 41,3 % AP auf COCO val. Gleichzeitig kann es mit TRT FP16 Batchsize=32 auf T4 zur Inferenz eine erreichen Leistung von 602 FPS im Vergleich zu YOLOv5-s, die Genauigkeit wird um 3,9 % erhöht und die Geschwindigkeit wird um 29,4 % erhöht.
  • YOLOv6-s erreichte eine Genauigkeit von 43,1 % AP auf COCO val. Gleichzeitig kann es mit TRT FP16 Batchsize=32 auf T4 zur Inferenz eine erreichen Im Vergleich zu YOLOX-s ist die Genauigkeit um 2,6 % erhöht und die Geschwindigkeit ist um 38,6 % höher. Im Vergleich zu PP-YOLOE-s ist die Genauigkeit um 0,4 % erhöht, wenn TRT FP16 auf T4 verwendet wird Bei der Einzelbatch-Inferenz wird die Geschwindigkeit um 71,3 % erhöht.

4. Zusammenfassung und Ausblick

Dieser Artikel stellt die Arbeit von Meituans Visual Intelligence vor Abteilung Basierend auf der Optimierung und praktischen Erfahrung des Zielerkennungs-Frameworks haben wir die Trainingsstrategie, das Backbone-Netzwerk, die Multi-Scale-Feature-Fusion, den Erkennungskopf usw. für das YOLO-Serien-Framework durchdacht und optimiert und ein neues Erkennungs-Framework entworfen – YOLOv6 Die ursprüngliche Absicht bestand darin, praktische Probleme zu lösen, die bei der Implementierung industrieller Anwendungen auftreten.

Beim Aufbau des YOLOv6-Frameworks haben wir einige neue Methoden erforscht und optimiert, wie zum Beispiel das selbst entwickelte EfficientRep Backbone und Rep-Neck basierend auf hardwarebewussten Designideen für neuronale Netze . und Efficient De Coupled Head, aber auch einige hochmoderne Fortschritte und Ergebnisse aus Wissenschaft und Industrie, wie z. B. Anchor-Free, SimOTA und SIoU-Regressionsverlust. Experimentelle Ergebnisse des COCO-Datensatzes zeigen, dass YOLOv6 hinsichtlich Erkennungsgenauigkeit und -geschwindigkeit zu den Besten gehört.

In Zukunft werden wir das YOLOv6-Ökosystem weiter aufbauen und verbessern. Die Hauptarbeit umfasst die folgenden Aspekte: #🎜🎜 #

    Verbessern Sie die gesamte Palette der YOLOv6-Modelle und verbessern Sie weiterhin die Erkennungsleistung.
  1. Entwerfen Sie hardwarefreundliche Modelle auf einer Vielzahl von Hardwareplattformen.
  2. Unterstützt die vollständige Anpassung wie die Bereitstellung der ARM-Plattform und die quantitative Destillation.
  3. Parallele Erweiterung und Einführung verwandter Technologien wie halbüberwachtes, selbstüberwachtes Lernen usw.
  4. Entdecken Sie die Generalisierungsleistung von YOLOv6 in unbekannteren Geschäftsszenarien.

Das obige ist der detaillierte Inhalt vonDas schnelle und genaue Zielerkennungs-Framework von YOLOv6 ist Open Source. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen