Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Convolution

Bei der Faltung wird ein kleiner Gewichtungskern über eine Eingabe verschoben, um eine Merkmalskarte zu erzeugen. Sie ist die zentrale Operation von CNNs. Hier geht es um Schrittweite, Padding und Varianten.

Eine Faltung ist eine Operation, bei der ein kleines Raster aus Gewichten, Kernel oder Filter genannt, über eine Eingabe geschoben und an jeder Position eine gewichtete Summe berechnet wird. In der Computer Vision (CV) ist die Eingabe ein Bild oder ein Stapel von Merkmalskarten. Jeder Kernel erzeugt eine Ausgabekarte, deren Werte dort hoch sind, wo sein Muster auftritt: an einer vertikalen Kante, in einem Texturausschnitt oder, tiefer in einem Netzwerk, in einem Teil eines Rads oder Gesichts. Von Hand entworfene Kernel werden seit Langem in der Bildverarbeitung zum Weichzeichnen, Schärfen und zur Kantenerkennung verwendet. In einem faltenden neuronalen Netzwerk (CNN) sind die Kernelwerte Modellgewichte, die während des Trainings gelernt werden. So entdeckt das Netzwerk seine eigenen Merkmalsdetektoren.

So funktioniert die Faltung#

An jeder Position liegt der Kernel über einem Ausschnitt der Eingabe. Jedes Kernelgewicht wird mit dem darunterliegenden Eingabewert multipliziert. Die Produkte werden addiert und um einen Bias ergänzt, um einen Ausgabewert zu erhalten. Wird der Kernel über die gesamte Höhe und Breite geschoben, entsteht eine zweidimensionale Ausgabekarte. Reale Eingaben haben mehrere Kanäle, etwa die roten, grünen und blauen Kanäle eines Bildes. Daher erstreckt sich jeder Kernel über alle Eingabekanäle: Ein 3×3-Kernel bei einer Eingabe mit 64 Kanälen enthält 3 × 3 × 64 = 576 Gewichte und erzeugt weiterhin nur einen Ausgabekanal. Eine Faltungsschicht wendet viele solcher Kernel an. Die Anzahl der Kernel legt die Anzahl der Ausgabekanäle fest. Eine Schicht mit 64 Eingabe- und 128 Ausgabekanälen und 3×3-Kerneln hat daher 3 × 3 × 64 × 128 = 73.728 Gewichte.

Derselbe Kernel wird an jeder Position wiederverwendet. Deshalb benötigen Faltungsschichten viel weniger Parameter als vollständig verbundene Schichten und erkennen ein in einer Bildecke gelerntes Muster auch überall sonst. Eine Verschiebung der Eingabe verschiebt die Ausgabe um denselben Betrag. Diese Eigenschaft heißt Translationsäquivarianz. Jeder Ausgabewert hängt nur von einer kleinen Nachbarschaft der Eingabe ab. Durch das Stapeln von Schichten wird das rezeptive Feld, das ein tiefer Ausgabewert zusammenfasst, von wenigen Pixeln auf den größten Teil des Bildes erweitert.

Bibliotheken für Deep Learning berechnen tatsächlich eine Kreuzkorrelation: Bei einer mathematischen Faltung wird der Kernel vor dem Verschieben umgedreht, bei PyTorchs Conv2d jedoch nicht. Da der Kernel gelernt wird, lernt das Netzwerk einfach die umgedrehten Gewichte. In der Praxis sind beide Verfahren austauschbar. GPU-Bibliotheken wie cuDNN formulieren Faltungen meist als große Matrixmultiplikationen um oder verwenden Winograd- oder FFT-basierte Algorithmen, die dasselbe Ergebnis schneller berechnen, als wenn der Kernel buchstäblich verschoben wird.

Schrittweite, Padding, Dilatation und Gruppen#

Vier Hyperparameter bestimmen die Form der Ausgabe einer Faltung und ihre Berechnungskosten:

  • Schrittweite: Der Abstand zwischen Kernelpositionen. Bei einer Schrittweite von 2 wird jede zweite Position übersprungen und die Höhe und Breite der Ausgabe halbiert. Auf diese Weise verkleinern viele moderne CNNs die Auflösung.
  • Padding: Zusätzliche Werte, üblicherweise Nullen, die am Rand der Eingabe hinzugefügt werden. Ein Padding von 1 sorgt dafür, dass die Ausgabe einer 3×3-Faltung bei Schrittweite 1 dieselbe Größe wie die Eingabe hat.
  • Dilatation: Vergrößert die Abstände zwischen den Kernelpunkten. Ein 3×3-Kernel mit Dilatation 2 deckt so mit denselben neun Gewichten einen Bereich von 5×5 ab und vergrößert das rezeptive Feld ohne zusätzliche Kosten.
  • Gruppen: Teilt die Kanäle in unabhängige Gruppen auf. Bei einer Gruppe pro Kanal filtert eine tiefenweise Faltung jeden Kanal einzeln. Eine anschließende punktweise 1×1-Faltung mischt die Kanäle. Dieses Paar heißt tiefenweise separierbare Faltung und wurde durch MobileNets für mobile Hardware bekannt.

Für eine Eingabe der Größe n, eine Kernelgröße k, ein Padding p, eine Schrittweite s und eine Dilatation d lautet die Ausgabegröße ⌊(n + 2p − d(k − 1) − 1) / s⌋ + 1. Das folgende Codebeispiel wendet vier Schichten an, die jeweils eine Merkmalskarte mit 64 Kanälen und einer Größe von 80×80 auf 128 Kanäle abbilden:

import torch
from torch import nn

x = torch.randn(1, 64, 80, 80)  # a 64-channel, 80x80 feature map

# Four ways to map 64 input channels to 128 output channels
layers = {
    "standard 3x3": nn.Conv2d(64, 128, kernel_size=3, padding=1, bias=False),
    "stride 2": nn.Conv2d(64, 128, kernel_size=3, stride=2, padding=1, bias=False),
    "dilation 2": nn.Conv2d(64, 128, kernel_size=3, padding=2, dilation=2, bias=False),
    "depthwise separable": nn.Sequential(
        nn.Conv2d(64, 64, kernel_size=3, padding=1, groups=64, bias=False),  # one 3x3 filter per channel
        nn.Conv2d(64, 128, kernel_size=1, bias=False),  # 1x1 convolution mixes channels
    ),
}
for name, layer in layers.items():
    params = sum(p.numel() for p in layer.parameters())
    print(f"{name}: output {tuple(layer(x).shape)}, {params:,} weights")

Die Standardschicht erzeugt eine Ausgabe der Größe (1, 128, 80, 80) und hat 73.728 Gewichte. Eine Schrittweite von 2 halbiert die Ausgabe auf (1, 128, 40, 40), bei unveränderter Anzahl an Gewichten. Eine Dilatation von 2 erhält die Größe 80×80 und 73.728 Gewichte, während jede Ausgabe einen Bereich von 5×5 erfasst. Das tiefenweise separierbare Faltungspaar erzeugt dieselbe Ausgabe (1, 128, 80, 80) mit nur 8.768 Gewichten, also etwa 8,4-mal weniger. YOLO26 verwendet beide Ansätze: Fünf 3×3-Faltungen mit Schrittweite 2 verkleinern ein Bild mit 640×640 Pixeln auf das 20×20-Raster seiner tiefsten Backbone-Merkmalskarte. Der Klassifizierungszweig des Detektionskopfs kombiniert tiefenweise 3×3- und punktweise 1×1-Faltungen, um den Rechenaufwand zu senken.

Faltungen in anderen Dimensionen#

  • 1D-Faltung: Verschiebt sich entlang einer einzigen Achse und eignet sich für Audio-Wellenformen, Sensorsignale und Zeitreihen.
  • 3D-Faltung: Ergänzt eine Tiefen- oder Zeitachse und eignet sich für Videoclips sowie Volumenscans wie CT und MRT in der medizinischen Bildanalyse.
  • Transponierte Faltung: Verteilt jeden Eingabewert über eine größere Ausgabe und vergrößert Merkmalskarten in Segmentierungsmodellen wie U-Net. Mit eigenen gelernten Gewichten stellt sie die räumliche Größe wieder her, die eine Faltung mit Schrittweite reduziert hat.
  • Vollständig verbundene Schicht: Verbindet jede Eingabe mit jeder Ausgabe und verwendet für jede Verbindung ein eigenes Gewicht. Eine Faltung ist eine vollständig verbundene Schicht, die auf lokale Nachbarschaften beschränkt ist und deren Gewichte über Positionen hinweg gemeinsam nutzt.
  • Pooling: Verschiebt wie eine Faltung ein Fenster über die Eingabe, wendet aber eine feste Regel an, etwa die Auswahl des Maximums, und verwendet keine gelernten Gewichte.
  • Selbstaufmerksamkeit: Berechnet datenabhängige Gewichte zwischen allen Positionspaaren und verknüpft so weit auseinanderliegende Bildbereiche in einer einzigen Schicht. Eine Faltung wendet überall denselben festen Kernel an und erfasst nur ein lokales Fenster. Dadurch steigen ihre Kosten linear mit der Pixelanzahl.
  • Bildfilterung: Klassische Filter wie die Gaußsche Unschärfe und der Sobel-Kantendetektor sind Faltungen mit festen, von Hand entworfenen Kerneln. Auch OpenCVs filter2D berechnet eine Korrelation, wie Bibliotheken für Deep Learning. Durch Umdrehen des Kernels entsteht eine echte Faltung.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens