SegBlocks: blockbasierte dynamische Auflösungsnetzwerke für Echtzeit-Segmentation

SegBlocks reduziert die Rechenkosten bestehender neuronaler Netzwerke, indem die Verarbeitungsauflösung von Bildregionen dynamisch an deren Komplexität angepasst wird. Unsere Methode teilt ein Bild in Blöcke auf und unterschreibt Blöcke geringer Komplexität, wodurch die Anzahl der Operationen und der Speicherverbrauch verringert wird. Ein leichtgewichtiges Policy-Netzwerk, das komplexe Regionen auswählt, wird mittels Verstärkungslernen trainiert. Zudem führen wir mehrere in CUDA implementierte Module ein, um Bilder blockweise zu verarbeiten. Vor allem wichtig ist unser neuartiges BlockPad-Modul, das die Merkmalsdiskontinuitäten an Blockgrenzen vermeidet, an denen bestehende Methoden leiden, gleichzeitig jedoch den Speicherverbrauch unter Kontrolle hält. Unsere Experimente auf den Datensätzen Cityscapes, CamVid und Mapillary Vistas für die semantische Segmentierung zeigen, dass die dynamische Bildverarbeitung im Vergleich zu statischen Baselines ähnlicher Komplexität ein besseres Verhältnis zwischen Genauigkeit und Komplexität ermöglicht. Beispielsweise senkt unsere Methode die Anzahl der Fließkomma-Operationen von SwiftNet-RN18 um 60 % und erhöht die Inferenzgeschwindigkeit um 50 %, wobei die mIoU-Genauigkeit auf Cityscapes nur um 0,3 % abnimmt.