DeOldify: Meine Reise mit KI-gestützter Kolorierung historischer Videos – Ein persönlicher Workflow mit wissenschaftlichem Hintergrund

Einleitung
In diesem Blog-Beitrag teile ich meine persönliche Erfahrung mit DeOldify – einem Tool, das ich auf meinem Fedora Desktop mit einer NVIDIA RTX 5090 GPU getestet habe. Ich beschreibe meinen Workflow für ein 12-minütiges Video Schritt für Schritt und verbinde ihn mit dem wissenschaftlichen Hintergrund, der mich immer wieder beeindruckt.

Mein wissenschaftlicher Blick auf DeOldify
DeOldify hat mich von Anfang an fasziniert – es ist ein Open-Source-Projekt von Jason Antic, das ich 2021 entdeckt habe und das auf Deep Learning basiert. Für mich als Techniker ist der Kern besonders spannend: Es verwendet eine Variante von Generative Adversarial Networks (GANs), bei der ein Generator Farben schafft und ein Diskriminator die Authentizität prüft. Anders als bei klassischen GANs setzt DeOldify auf einen „NoGAN“-Ansatz, der Transfer Learning mit stabilisiertem Training kombiniert, um Artefakte zu vermeiden. Das erinnert mich an bahnbrechende Arbeiten wie „Unsupervised Representation Learning with Deep Convolutional GANs“ von Radford et al. (2015), die ich in meinem Studium vertieft habe. Für Videos wird frameweise gearbeitet, mit einem Fokus auf zeitliche Konsistenz – ein Aspekt, den Studien wie Zhang et al. (2019) als Schlüsselherausforderung in der Videokolorierung hervorheben. Meine RTX 5090 hat hier durch CUDA die Inferenz enorm beschleunigt, was mich jedes Mal staunen lässt, wie effizient solche Modelle laufen können.

Mein praxisnaher Workflow: Schritt für Schritt
Auf meinem Desktop PC habe ich alles in einer Conda-Umgebung (deoldify_env mit Python 3.11) eingerichtet, um Chaos zu vermeiden. Hier ist, wie ich es für mein 12-minütiges WWII-Video gemacht habe, inklusive der kleinen Stolpersteine, die ich unterwegs gemeistert habe:

  1. Vorbereitung der Umgebung und des Videos:
    • Ich habe eine conda Umgebung erstellt: conda create -n deoldify_env python=3.11 -y; conda activate deoldify_env.
    • Dann die Tools installiert: pip install torch torchvision –index-url https://download.pytorch.org/whl/cu128; pip install fastai opencv-python pillow jupyter ffmpeg-python.
    • DeOldify geklont: git clone https://github.com/jantic/DeOldify.git; cd DeOldify.
    • Das Videomodell geladen: mkdir models; wget https://data.deepai.org/deoldify/ColorizeVideo_gen.pth -O models/ColorizeVideo_gen.pth.
    • Mein Video vorbereitet: Ich habe es in video/source/ kopiert – mkdir -p video/source; cp /path/to/input.mp4 video/source/test.mp4.
  2. Die Kolorierung starten:
    • Ich habe ein Python Skript colorize_video.py erstellt, das ich an meine Bedürfnisse angepasst habe:
from deoldify import device
from deoldify.device_id import DeviceId
from deoldify.visualize import *
import warnings
warnings.filterwarnings("ignore")
import torch
import os

device.set(device=DeviceId.GPU0)

colorizer = get_video_colorizer()
source_path = 'video/source/source.mp4'
render_factor = 35

os.makedirs("video/result", exist_ok=True)
colorizer.colorize_from_file_name(source_path, render_factor=render_factor)
print("Kolorierung abgeschlossen! Output in video/result/")
    • Gestartet mit python colorize_video.py. Es hat etwa 30 Minuten gedauert.

Meine Ergebnisse und Reflexionen
Das Endergebnis hat mich wirklich erstaunt: Die Videos wirken lebendiger, mit Farben, die die Geschichte greifbar machen – olivgrüne Uniformen, die ich mir immer nur in Schwarz-Weiß vorgestellt habe. Aber es gab Artefakte wie Flackern, die mich an die Grenzen von GANs erinnert haben. In meiner Praxis habe ich den Render-Faktor angepasst, um Details zu schärfen.


Das komplette Video kann ich hier leider nicht präsentieren, da in dem Videos Hakenkreuze zu sehen sind. Ich werde aber demnächst ein anderes Video kolorieren und hier das Vorher/Nacher präsentieren.

Referenzen:

  • Antic, J. (2019). DeOldify: A Self-Supervised GAN for Video Colorization. GitHub Repository.
  • Radford, A., et al. (2015). Unsupervised Representation Learning with Deep Convolutional GANs. arXiv.

Autor: Ing. Thomas Postl
Datum: 15. Mai 2025