How to Colorize Videos Using Deep Exemplar-based Video Colorization

Aug 28, 2024 | Data Science

Have you ever come across black-and-white videos and wondered how they could be transformed into vibrant masterpieces? With the Deep Exemplar-based Video Colorization implemented in PyTorch, you can unlock the full spectrum of colors from your old footage! This guide will walk you through the setup and execution of this powerful video colorization technique.

Prerequisites

  • Python 3.6+
  • Nvidia GPU + CUDA, CuDNN

Installation

To kick-start the colorization process, you’ll need to prepare your environment. Follow these commands step-by-step:

conda create -n ColorVid python=3.6
source activate ColorVid
pip install -r requirements.txt

Next, download the pretrained models from this link, unzip the file, and place the relevant files in the corresponding folders:

  • video_moredata_l1 under the checkpoints folder
  • vgg19_conv.pth and vgg19_gray.pth under the data folder

Data Preparation

Before you can colorize your very own video, you need to extract its frames and have a reference image ready to guide the coloring process. Here’s how you can prepare your data:

  • Place your video frames into a folder, e.g., .sample_videos/v32_180.
  • Store your reference images in another folder, e.g., .sample_videos/v32.

If you prefer to automatically retrieve color images, consider using the retrieval algorithm from this link which fetches similar images from the ImageNet dataset, or try your own image database at this link.

Testing the Model

Once you’ve prepared your data, you can run the colorization test using the command line:

python test.py --image-size [image-size]
                --clip_path [path-to-video-frames]
                --ref_path [path-to-reference]
                --output_path [path-to-output]

For instance, to colorize a sample legacy video, you can execute:

python test.py --clip_path .sample_videos/clips/v32
                --ref_path .sample_videos/ref/v32
                --output_path .sample_videos/output

Keep in mind that we typically use images sized at 216×384 during training, proportional to a 1:2 aspect ratio. The input should be scaled accordingly before inference.

Training Your Own Model

If you’re interested in training the model with your own data, start by running:

python train.py --data_root [root of video samples]
                 --data_root_imagenet [root of image samples]
                 --gpu_ids [gpu ids]

Due to copyright restrictions, we do not provide the complete video dataset but refer to the repository for retrieving semantically similar images from ImageNet.

Visual Comparison with State-of-the-Arts

Sample Colorization Comparison

For further visual results of video colorization, check our Youtube demo.

Troubleshooting

If you encounter issues during installation or execution, consider the following troubleshooting tips:

  • Ensure that your GPU drivers are correctly installed and compatible with CUDA.
  • Verify that all necessary packages are installed as per the requirements.txt file.
  • Double-check the paths used in your commands to make sure they point to the correct directories.
  • If errors persist, consult the official GitHub issues page for potential solutions.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox