Einsatz von GAN für bessere Objektdetektoren

Florian Maurer

29. März, 2021

Inhalt

  1. Motivation
  2. Theorieeinschub
    1. Objekt-Detektoren
    2. Performance-Metrik
    3. GAN
  3. Durchführung des Experiments
  4. Ergebnisse
  5. Ausblick

Motivation

  • Bilder seltener Domains sind im Training unterrepräsentiert

  • für seltene Ereignisse gibt es nur wenige Daten

  • wie ermöglicht man dennoch ein robustes Training hierfür

Motivation

bisher entstehen Nachtbilderkennungen wie diese:

Bad Prediction
Quelle: eigenes Bild

Motivation

Können GANs hierbei helfen?

  • hinzunahme generierter Bilder

Theorieeinschub

  • Erklärung der Grundprinzipien von Objekt-Detektoren und GANs

Objekt Detektoren

Object-Detection-Problem ist deutlich komplexer als Klassifikationsproblem

Unterschied Klassifikation und Objekterkennung
Quelle: https://www.datacamp.com/community/tutorials/object-detection-guide

State-of-the-Art

Verschiedene Objektdetektoren:

  • R-CNN
  • YOLO
  • SSD

R-CNN

  • Evaluation in zwei Schritten
    • Region proposal + CNN + Klassifizierung mit SVM)
  • für Real-Time-Detection zu langsam
Architektur R-CNN
Quelle: https://arxiv.org/pdf/1311.2524.pdf

Single-Shot-Detector

  • SSD und YOLO
  • ein tiefes neuronales Netzwerk

You only look once

  • Verwendung des ML-Frameworks “Darknet” (tatsächlich)
  • berechnet Wahrscheinlichkeitskarte
  • Hier wird tinyYOLOv4 betrachtet
    • FPS > 25
You-Only-Look-Once
Quelle: https://arxiv.org/abs/1506.02640

Performance Metrik

mean Average Precision (mAP)

  • Fläche unter der Präzisions-Recall-Kurve
  • häufig in Literatur verwendet (PASCAL VOC, COCO)
  • Durchschnitt der verwendeten Klassen

Average Precision

Precision Recall
Quelle: https://commons.wikimedia.org/wiki/File:Precisionrecall.svg

Intersection over Union

  • Korrektheit einer Einschätzung wird über IoU definiert
    • IoU@0.5
Intersection over Union
Quelle: https://jonathan-hui.medium.com/map-mean-average-precision-for-object-detection-45c121a31173

Einführung in GAN

  • Generative Adversarial Networks
  • Deep Learning Architektur
  • Domain Conversion, aber auch unsupervised learning

Domain Conversion

drawing
Quelle: https://dopelemon.me/cycle-gan.html

GAN-Prinzip

GAN beschreibt eine Architektur aus 2 neuronalen Netzwerken, bestehend aus

  • Generator
  • Diskriminator
drawing
Quelle: https://arxiv.org/abs/1705.07663v3

MinMax-Formel

Formal kann man das Training eines GANs ausdrücken als

  • D soll auf echter Menge X korrekte Bilder als korrekt identifizieren
    • \(\mathbb{E}(\log(D(X)))\)
    • wenige Falschentscheidungen
  • G soll Daten generieren, die D nicht enttarnt
    • \(\mathbb{E}(\log (1 - D(G(Z))))\)
    • erzeugte Bilder sollen von gutem Detektor/Diskriminator nicht erkannt werden

Somit kommt man zur MinMax-Formel:

\[ \min_{G} \max\limits_{D} \mathbb{E}(\log(D(X))) + \mathbb{E}(\log (1 - D(G(Z)))) \]

Finde Diskriminator mit bester Erkennungsrate und Generator der die besten Bilder erzeugt

Data Pairs

Erste Domain Conversion GANs wie Pix2Pix benötigen Bildpaare der beiden Domains:

New York at day and night comparison
Quelle: https://www.flickr.com/photos/katiealley/3464218796/

das recht neue CycleGAN (2017) benötigt keine Pairs

  • nutzt Cycle consistency loss

Cycle Consistency loss

  • Inverse-Operation möglichst geringen Fehler zum Ursprungsbild hat
  • gleichzeitige Minimierung des Diskriminators
Quelle: https://dopelemon.me/cycle-gan.html

CycleGAN

benötigt je 2 Netzwerke für Generator und Diskriminator:

Quelle: https://www.researchgate.net/publication/337798765_Advanced_analysis_of_diffusion_MRI_data
  • Domain Conversion: AtoB, BtoA
  • Diskriminator von A und B

GANs konvergieren nicht

  • Loss-Funktion ist nicht monoton
    • zwei gegensätzliche Trainings
  • keine klare Grenze möglich
  • nach bestimmter Epoche das beste nehmen

Durchführung

  • trainiere GAN zu Konvertierung von Tagesbildern auf Nachtbilder
  • trainiere Objektdetektor mit (aus Tagesbildern) generierten Nachtbildern
    • vortrainierte Gewichte von tinyYOLOv4
Method Overview
Quelle: https://github.com/LCAD-UFES/publications-arruda-ijcnn-2019

Umgebung

  • CycleGAN
  • tinyYOLOv4 (pre-trained MS COCO)
  • Berkeley Deep Drive

Berkeley Deep Drive

  • freier Datensatz
  • Autofahrten
    • verschiedene Uhrzeiten, verschiedene Strecken
  • Bilder in Größe 1280x720px
  • 10 Objektklassen

Trainingsdatensatz

Datensatzname Szenario 10k Szenario 1k
day 10k Tagesbilder 1k Tagesbilder
day generated 10k Tag und 10k generierte 1k Tag und 1k generierte
day night 10k Tag und 10k Nachtbilder 1k Tag und 100 Nachtbilder
day night generated 10k Tag, 10k Nacht und 10k generierte 1k Tag, 100 Nacht und 1k generierte

Erzeugen des Datensatzes

  • BDD ist bereits unterteilt in Training- und Validierungsdaten
    • separieren nach Tageszeit
    • da Datensatz größer als für Experiment notwendig
      • ersten X aus Train-Day, ersten Y aus Test-Day
      • ersten X aus Train-Night, ersten Y aus Test-Night

Validierungsszenarien

Datensatzname Szenario 10k Szenario 1k
DAY 1000 Tagesbilder 1000 Tagesbilder
NIGHT 1000 Nachtbilder 1000 Nachtbilder
GENERATED 1000 zu DAY generierte Nachtbilder 1000 zu DAY generierte Nachtbilder

Hardware

  • Intel i7-9700 (8) @ 4.7 GHz
  • 16 GB DDR4 RAM
  • Nvidia GeForce RTX 2070 SUPER 8GB
  • Ubuntu 18.04, CUDA 11

Ergebnisse

generated image
Quelle: durch CycleGAN generiertes Bild

Ergebnisse - Beispiel

Prediction on generated image
Quelle: durch CycleGAN generiertes Bild

Ergebnisse 1k Car

car results 1k
eigenes Bild

Ergebnisse 10k Car

car results 1k
eigenes Bild

Ergebnisse 1k mAP

car results 1k
eigenes Bild

Ergebnisse 10k mAP

car results 1k
eigenes Bild

Änderung der AP nach Klassen

ap improvement
eigenes Bild

Ausblick

  • Weitere Objektdetektoren testen (großes YOLOv4, SSD, …)

  • alternative GANs trainieren (bspw. StyleGAN)

  • weitere Use-Cases (Schnee, Nebel, Hagel) für Domain Transfer ausprobieren

    • BDD bietet Bilder mit foggy und snow an
  • Bilder

Quellenangaben

Siehe Ausarbeitung.

Goodfellow, Ian J., Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, und Yoshua Bengio. 2014. „Generative Adversarial Networks“. arXiv:1406.2661 [cs, stat], Juni. http://arxiv.org/abs/1406.2661.